var RegexpArticleNumber = /^[1-9]\d{0,2}$/;
var GVarOnPage = {
    "catalog" : false,
    "wizard"  : false,
    "wizard_" : false,
    "search"  : false
}

function G_onkeydown(event) {
    var id = false;
    event = event || window.event;
    var key = event.keyCode;
    if(event.ctrlKey) {
        var tag = (event.target || event.srcElement).tagName;
        if(tag != 'INPUT' && tag != 'TEXTAREA') {
            if(key == 37) {
                id = document.getElementById('page_previous');
                if (id) {
                    if (GVarOnPage['catalog']) {
                        G_submit(GVarOnPage['catalog'] - 1);
                        return;
                    } else if (GVarOnPage['search']) {
                        Search_onsubmit(GVarOnPage['search'] - 1);
                        return;
                    } else if (GVarOnPage['wizard']) {
                        Wizard_submit(GVarOnPage['wizard'] - 1);
                        return;
                    } else if (GVarOnPage['wizard_']) {
                        WL_submit(GVarOnPage['wizard_'] - 1);
                        return;
                    }
                }
            }
            if(key == 39) {
                id = document.getElementById('page_next');
                if (id) {
                    if (GVarOnPage['catalog']) {
                        G_submit(GVarOnPage['catalog'] + 1);
                        return;
                    } else if (GVarOnPage['search']) {
                        Search_onsubmit(GVarOnPage['search'] + 1);
                        return;
                    } else if (GVarOnPage['wizard']) {
                        Wizard_submit(GVarOnPage['wizard'] + 1);
                        return;
                    } else if (GVarOnPage['wizard_']) {
                        WL_submit(GVarOnPage['wizard_'] + 1);
                        return;
                    }
                }
            }
            if(id) {
                location.href = id.href;
            }
        }
    }
}

function G_submit(page) {
    document.getElementById('page').value = page;
    document.getElementById('on_page').value = document.getElementById('top_items_on_page').value;
    document.getElementById('sort_by').value = document.getElementById('top_sort_by').value;
    document.getElementById('form_submit').submit();
}

function G_color(sElement) {
    var oElement = document.getElementById(sElement);
    oElement.style.color = oElement.options[oElement.selectedIndex].style.color;
    oElement.style.backgroundColor = oElement.options[oElement.selectedIndex].style.backgroundColor;
}

function G_number_format(digit) {
    var i, r = '', dec = 3;
    var str = digit.toString().split('.');
    var a_int = str[0].split('');
    for (i = a_int.length - 1; i >= 0; i--) {
        r = ((dec == 1 && i > 0) ? ' ' : '') + a_int[i] + r;
        dec = (dec == 1) ? 3 : dec - 1;
    }
    r = (str[1]) ? r + '.' + str[1] : r;
    return r;
}

function Glob_SelectOptionByValue(oOption, sValue) {
    var oOptions = oOption.getElementsByTagName("option");
    for (var i = 0; i < oOptions.length; i++) {
        if (oOptions.item(i).getAttribute("value") == sValue) {
            oOptions.item(i).selected = true;
            break;
        }
    }
}

function Glob_CalculateTotalWeight() {
    var fTotalWeight = 0;
    var regexpArticleID = /^article_id_(\d+)$/;
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if (regexpArticleID.test(aCrumb[0])) {
            var aArticleData = aCrumb[1].split("-");
            fTotalWeight += aArticleData[0] * aArticleData[2];
        }
    }
    document.getElementById("total_weight").value = fTotalWeight;
}

function Glob_CalculateInstallation(fTotalWeight, floor) {
    var aBefore = new Array( 50,  100,  150,  200,  300,   400);
    var aFloor1 = new Array(185,  345,  700, 1060, 2135,  6455);
    var aFloor2 = new Array(255,  525, 1060, 1600, 3215,  9695);
    var aFloor3 = new Array(345,  705, 1420, 2140, 4295, 12935);
    var aFloor4 = new Array(435,  885, 1780, 2680, 5375, 32375);
    var aFloor5 = new Array(525, 1065, 2140, 3220, 6455, 39575);

    for (var i = 0; i < aBefore.length; i++) {
        if (fTotalWeight < aBefore[i]) {
            switch (floor) {
                case "lift" :
                    return aFloor1[i];
                case "base" :
                    return aFloor2[i];
                case "floor-1" :
                    return aFloor1[i];
                case "floor-2" :
                    return aFloor2[i];
                case "floor-3" :
                    return aFloor3[i];
                case "floor-4" :
                    return aFloor4[i];
                case "floor-5" :
                    return aFloor5[i];
            }
        }
    }
    return 0;
}

function Glob_GetDeliveryPriceByWeight(fWeight) {
    var aBefore = new Array(  5,   20,   50,  100,  150,  200,  300,  400,  500);
    var aPrice  = new Array(500, 1000, 1100, 1200, 1250, 1500, 1550, 2000, 3000);
    for (var i = 0; i < aBefore.length; i++) {
        if (fWeight < aBefore[i]) {
            return aPrice[i];
        }
    }
    return 0;
}

function Glob_rubric_target(id) {
    for (var i = 1; i <= 3; i++) {
        var target = document.getElementById('rubric_target_' + i);
        var js = document.getElementById('rubric_js_' + i);
        if (i != id) {
            target.style.backgroundPosition = '0px 0px';
            switch (i) {
                case 1:
                    js.onmouseover = function () { Global_rubric_target(1, true); };
                    js.onmouseout  = function () { Global_rubric_target(1, true); };
                    break;
                case 2:
                    js.onmouseover = function () { Global_rubric_target(2, true); };
                    js.onmouseout  = function () { Global_rubric_target(2, true); };
                    break;
                case 3:
                    js.onmouseover = function () { Global_rubric_target(3, true); };
                    js.onmouseout  = function () { Global_rubric_target(3, true); };
                    break;
            }
        } else {
            target.style.backgroundPosition = '0px -52px';
            js.onmouseover = null;
            js.onmouseout  = null;
        }
    }
}

function Global_SelectOption(value, select_id) {
    var oSelect = document.getElementById(select_id);
    var oOptions = oSelect.getElementsByTagName('option');
    for (var i = 0; i < oOptions.length; i++) {
        if (oOptions.item(i).getAttribute('value') == value) {
        	oOptions.item(i).selected = true;
			break;
		}
	}
}

function GL_basket() {
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if (/^article_id_(\d+)$/.test(aCrumb[0])) {
            return true;
        }
    }
    return false;
}

function IntoBasket(iArticleID, sPrice, sWeight, bType) {
    var iNumber, iPrice, iInputArticlesNumber;
    if (bType && !GL_basket()) {
        alert('Пожалуйста, добавьте опции модели после выбора товара.');
    } else {
        var bag_in = document.getElementById('bag_in_' + iArticleID);
        if (bag_in) {
            bag_in.href = '/basket/';
            (bag_in.className == 'bag_in') ? bag_in.className = 'bag_go' : bag_in.innerHTML = 'Оформить заказ';
        }
        var oInputArticleNumber = document.getElementById('input_article_number-' + iArticleID);
        if (RegexpArticleNumber.test(oInputArticleNumber.value)) {
            iInputArticlesNumber =	parseInt(oInputArticleNumber.value);
        } else {
            iInputArticlesNumber =	1;
            oInputArticleNumber.value = 1;
        }
        var ArticlesFromCookie = GetCookie('articles_in_basket');
        var PriceFromCookie = GetCookie('price_in_basket');
        var oLabel = document.getElementById('label-' + iArticleID);
        if (ArticlesFromCookie && PriceFromCookie) {
            iNumber = parseInt(ArticlesFromCookie) + iInputArticlesNumber;
            iPrice = parseFloat(PriceFromCookie) + parseFloat(sPrice) * iInputArticlesNumber;
            document.cookie = 'articles_in_basket=' + iNumber + '; path=/';
            document.cookie = 'price_in_basket=' + iPrice + '; path=/';
            var ArticleInCookie = GetCookie('article_id_' + iArticleID);
            if (ArticleInCookie != null) {
                var aArticleData = ArticleInCookie.split('-');
                document.cookie = 'article_id_' + iArticleID + '=' + (parseInt(aArticleData[0])
                    + iInputArticlesNumber) + '-' + sPrice + '-' + sWeight + '-' + bType + '; path=/';
            } else {
                document.cookie = 'article_id_' + iArticleID + '=' + iInputArticlesNumber + '-'
                    + sPrice + '-' + sWeight + '-' + bType + '; path=/';
            }
        } else {
            iNumber = iInputArticlesNumber;
            iPrice = iInputArticlesNumber * parseFloat(sPrice);
            document.cookie = 'articles_in_basket=' + iInputArticlesNumber + '; path=/';
            document.cookie = 'price_in_basket=' + iPrice + '; path=/';
            document.cookie = 'article_id_' + iArticleID + '=' + iInputArticlesNumber + '-'
                + sPrice + '-' + sWeight + '-' + bType + '; path=/';
        }
        ParseCookieBasket();
    }
}

function GetCookie(sName) {
	var aCookie = document.cookie.split("; ");
	for (var i=0; i < aCookie.length; i++) {
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0])
			return unescape(aCrumb[1]);
	}
  return null;
}

function ParseCookieBasket() {
	var basket_form = document.getElementById('basket_form');
	var hdr_link_tobuy = document.getElementById('hdr_link_tobuy');
	var ArticlesFromCookie = GetCookie('articles_in_basket');
	var PriceFromCookie = GetCookie('price_in_basket');
	var cookieOrderFrom = GetCookie('order_from');
	if (cookieOrderFrom == null && document.referrer) {
		document.cookie = 'order_from=' + escape(document.referrer) + '; path=/';
	}
	if (ArticlesFromCookie && PriceFromCookie) {
    	if (hdr_link_tobuy) {
    	    hdr_link_tobuy.className = 'hdr_link_white';
    	}
	    basket_form.innerHTML = '';

        var oA = document.createElement('a');
        basket_form.appendChild(oA);
        oA.href = '/basket/';
        oA.style.margin = '0px 5px 0px 0px';
        oA.style.background = 'transparent url(/img/basket_sprite.gif) no-repeat scroll 0px -51px';
        oA.style.styleFloat = 'left';
        oA.style.cssFloat = 'left';
        oA.style.width = '52px';
        oA.style.height = '51px';

        var oDIV = document.createElement('div');
        basket_form.appendChild(oDIV);
        oDIV.innerHTML = 'Выбрано товаров: ' + ArticlesFromCookie;

        var oDIV = document.createElement('div');
        basket_form.appendChild(oDIV);
        oDIV.innerHTML = 'На сумму: ' + G_number_format(PriceFromCookie) + ' руб.';

        var oDIV = document.createElement('div');
        basket_form.appendChild(oDIV);

        var oA = document.createElement('a');
        oDIV.appendChild(oA);
        oA.href = '/basket/';
        oA.innerHTML = 'Оформить заказ';
        oA.style.color = '#ffff66';

        var oSpan = document.createElement('span');
        oDIV.appendChild(oSpan);
        oSpan.innerHTML = ' &#187;';
        oSpan.style.color = '#ffff66';
	}
}

function Global_rubric_target(target_id, bool_active) {
    var oDIV = document.getElementById('rubric_target_' + target_id);
    var pos = (bool_active) ? '0' : '-26';
    var aSplit = oDIV.style.backgroundPosition.split(' ');
    oDIV.style.backgroundPosition = (parseInt(aSplit[1]) == pos)
        ? '0px -52px' : '0px ' + pos + 'px';
}

