﻿///<reference path="jquery-1.3.2-vsdoc.js">
///<reference path="../js/plugins/input.js">


var windows_list = { "box_error_login": 300, "box_send_login": 300, "box_access_denied": 300, "box_add_basket": 300, "sendPasswordBox": 150, "backetErrDiv": 150, "extraSearchBox": 150, "shopsListTable": 60 };
// JScript File

function menuImgRestore(n) {
    $("#m" + n).attr('src', menuImage[n-1]);
}
function menuImgSet(n) {
    $("#m" + n).attr('src', overmenuImage[n-1]);
}

function menuPreload() {
    document.mimageArray = new Array(overmenuImage.length);
    for (var i = 0; i < overmenuImage.length; i++) {
        document.mimageArray[i] = new Image;
        document.mimageArray[i].src = overmenuImage[i];
    }

}

//function LoginForm_handler(pef)
//{
//    var MainForm = GetAspNetFrom();
//    var LoginForm = document.LoginForm;
//    if(pef==null) pef="";
//	
//	if (navigator.appName.indexOf("Explorer") != -1) 
//	{
//		try {
//			window.external.AutoCompleteSaveForm(MainForm);
//		}
//		catch(e) {};
//	}
//	
//	if(!form_check(MainForm, GetLoginValidator(pef), 'ru')) {
//		alert(form_check_msg(",\n"), true);
//		form_check_getfield(0).focus();
//	}else{
//	    LoginForm.login.value = MainForm['login'+pef].value;
//	    LoginForm.passw.value = MainForm['passw'+pef].value;
//	    LoginForm.submit();
//	}
//	return false;
//}
//function LoginForm_Reset(pef){
//    if(pef==null) pef="";
//    var MainForm = GetAspNetFrom();
//    var LoginForm = document.LoginForm;
//	    LoginForm.login.value = ''; 
//	    MainForm['login'+pef].value = '';
//	    LoginForm.passw.value = '';
//	    MainForm['passw'+pef].value ='';
//}

//function submitenterLogin(myfield,e,pef)
//{
//    var keycode;
//    if (window.event) keycode = window.event.keyCode;
//    else if (e) keycode = e.which;
//    else return true;

//    if (keycode == 13)
//       {
//       LoginForm_handler(pef);
//       return false;
//       }
//    else
//       return true;


//}
function LoginS() {
    if ($.trim($('#login_s').val()) == "") {
        alert("Пожалуйста, введите Ваш логин");
        $('#login_s').focus();
        return false;
    }
    if ($.trim($('#password_s').val()) == "") {
        alert("Пожалуйста, введите Ваш пароль");
        $('#password_s').focus();
        return false;
    }
    return true;
}
function OnLoginToSite(data) {
    if (data.Result.Status == 0)
        AjaxRedirect(data.url);
    else {
        ShowLoginError();
        $("#float_login").show();
    }
}
$(document).ready(function() {

    protectImages();

    $("body").click(CloseAllPopUp);
    $(document).keydown(KeyPress);
    AddBacketEvents();
    BindBasketEvents();

    // enter press on search
    $("#textfield").keydown(function(evt) {

        var keycode = (window.event) ? event.keyCode : evt.which;

        if (keycode == 13) {
            StartSearch();
            return false;
        }
    });

    $("#SearchStartBtn").click(function() { StartSearch(); });
    TestLoginError();
    $(".good_item .product_input01").mask_number_input();
    $(".good_item .product_input01").keyup(GoodItemValidate);

    // для картинок из новостей
    $("img[bigimagepath]").addClass("pointer");

    $("img[bigimagepath]").click(function(evnt) {
        GetMedImagePosition($(this).attr("bigimagepath"), this, true);
        jQuery.Event(evnt).stopPropagation();
    });
    if (typeof (NeedShowLoginError) != "undefined") ShowLoginError();
    try {
        FunctionAddIMIcon();
    } catch (e) { }


});
function TestLoginError() {
    if (window.location.href.indexOf("ReturnURL") >= 0) {
        ShowAccessDenied();
    }

}
function ShowAccessDenied() {
    ShowWindow("box_access_denied");

}
function BindBasketEvents() {

    $("#basket_full").mouseover(ShowBasketStart);
    $("#basket_full").mouseout(CloseBasketStart);
    $("#basket_product").mouseover(ShowBasketStart);
    $("#basket_product").mouseout(CloseBasketStart);
    
}
function UpdateBasketProductIncons() {
    var ev = "newBasketGoods=" + unescape($("#jsBasketGoods").val()) + ";"
    eval(ev);
    updateBaskeGoodsItems(newBasketGoods);
    BasketGoods = newBasketGoods
}
function AddBacketEvents(){
   //$(".buy_button").bind("mouseout mouseover mousedown mouseup", BuyButtonShow);
}

function DLAjaxPostBack(control_id, data) {
    if (data == "show_login_error") {
        ShowLoginError()
    }
    if (data == "show_basket") {
        //setTimeout(ShowBasketProc, 500);

    }
    if (data == "show_addbasket") {
        setTimeout(SetupBasket, 500);
    }
    if (data == "cur_order_reload") {
        setTimeout(OrderBindEvents, 500);
    }
    if (data.indexOf("redirect|") >= 0) {
        var i = data.indexOf("redirect|") + "redirect|".length;
        var url = data.substring(i);
        AjaxRedirect(url);
        
    }
    if (data ==  "cur_order_dev_input" ) {
        //setTimeout(SetupOrderDelivery, 500);
        //setTimeout(setOrderMapImg, 500);        
    }

}

function setOrderMapImg() {


    var mpath =$("#CurrBigImg").val();

    
    $("#MedInfoImg").attr("bigimagepath", mpath);
    
    if (mpath.charAt(mpath.length-1) == "/") {
        $("#MedInfoImg").css("visibility", "hidden");
    }
    else {
        $("#MedInfoImg").css("visibility", "visible");
    }

    $("#MedInfoImg").click(function(evnt) {
        GetMedImagePosition($(this).attr("bigimagepath"), this, true);
        jQuery.Event(evnt).stopPropagation();
    });
    
}


function ShowBasketProc() {
    BindBasketEvents();
    UpdateBasketProductIncons();
    redrawPriseCorners();
    CloseBasketStart();
    
}
function AjaxRedirect(url) {
    var hash = window.location.hash;
    if ((hash.length > 0) && (hash.charAt(0) === '#')) {
         hash = hash.substring(1);
     }
     if (hash.length > 0){
         if (url.indexOf("?") < 0) {
             url += "?";
         }
         url += "&rdr=n";
         url += "#" + hash;
     }
     window.location.href = url;



}
function SetupBasket() {
    $("#addbasket_div .add_input").focus();
    $("#addbasket_div .add_input").select();
}
function KeyPress(e) {
    if (e.which == 27) {
        CloseAllPopUp();

        if (window.HideAddDialog) {
            HideAddDialog();
        }
    }
}
function CloseAllPopUp(e) {
    var box;
    var h = 30;

    $.each(windows_list, function(key, val) {
        box = $("#" + key);
        if (!box.is(":hidden")) {
            box.animate({ height: "" + val + "px" }, "fast", null, function() { $(this).hide() });
        }
    });
/*    
    for (var id in windows_list) {
        box = $("#" + id);
        if (!box.is(":hidden")) {
            //if (box.height() != null) h = box.height();
            box.animate({ height: "" + h + "px" }, "fast", null, function() { $(this).hide() });
            //alert("" + h + "px");
        }
    }
    */
}

function LoginErrorClick(event) {
    event.stopPropagation();
};

function ShowLoginError() {
    ShowWindow("box_error_login");

}
function ShowWindow(id, height, inputBoxName, ShiftXY, cbFunction) {
    CloseAllPopUp();
    var login_input;

    (inputBoxName == null) ? login_input = $("#login_input") : login_input = $("#" + inputBoxName);
     
    var box = $("#"+id);

    box.click(LoginErrorClick);
    box.find("div.err07").click(CloseAllPopUp);

    var position = login_input.position();


    if (ShiftXY != null) {
        position.top += ShiftXY.Y;
        position.left += ShiftXY.X;
    }
    
    position.top += login_input.height();
    position.left -= 7;
    //box.hide()
    box.css("left", position.left + "px");
    box.css("top", position.top + "px");
    box.height(15);
    box.show();
    if (height == null) {
        if (windows_list[id]) {
            height = windows_list[id];
        }
    }
    box.animate({ height: "" + height + "px" });

}

function BuyButtonShow(event) {
    var img_src ;
    var img = $(this).find("img");
    switch (event.type) {
        case 'mouseout':
            img_src = "buy.jpg";
            break;
        case 'mousedown':
            img_src = "buy_n.jpg";
            break;
        case 'mouseover':
        case 'mouseup':
            img_src = "buy_a.jpg";
            break;
    }
    img.attr("src", site_path + "images/" + img_src);
    return false;
}

function AddToBacket(ProductID, QuantityPB, event, sender) {

    if (typeof (AddToBacket2Control) != "undefined") {

        var c = $("#" + HiddenCountFieldName).val();

        // если поле product_input01 не редактировалось, а сразу нажали корзину
        if (c ==0) {
            $("#" + HiddenCountFieldName).val(QuantityPB);
            c = QuantityPB;
        }

        if ((c % QuantityPB) == 0) {
            AddToBacket2Control(ProductID, QuantityPB, c);
            
            // бегущая иконка

            $("#buy" + ProductID).hide();

            $("#processing_buy").clone().appendTo("#runningB" + ProductID);

        }
    } else {
        //SetBacketErrDivPos(event); // все равно на открытой части нет корзин
        jQuery.Event(event).stopPropagation();
        return false;
    }

}

function setBasketPic(obj) {
    $(obj).attr('src', image_path + 'buy_product.gif');
}

function ShowSendLogin(event) {
    //var sendPasswordBox = $("#sendPasswordBox");

    $("#sendPasswordBox .auth").val('');
    $("#sendPasswordBox #sendPasswordBoxInfoPlace").text('');
    $("#sendPasswordBox .AlertText").hide();

    ShowWindow("sendPasswordBox");    
    
    jQuery.Event(event).stopPropagation();

    return false;
}

var basket_timeout;
function ShowBasketStart() {
    clearTimeout(basket_timeout);
    basket_timeout=setTimeout(ShowBasket,500);
}
function ShowBasket() {
    var basket_full = $("#basket_full");
    var position = basket_full.position();
    var main_tbl = $("#main_tbl");
    var main_tbl_pos = main_tbl.position();
    var box=$("#basket_product");
    position.top += basket_full.height();
    position.left = main_tbl_pos.left + main_tbl.width() - box.width() +14;
    //box.hide()
    box.css("left", position.left + "px");
    box.css("top", position.top + "px");

    box.show();
}
function CloseBasketStart() {
    clearTimeout(basket_timeout);
    basket_timeout = setTimeout(CloseBasket, 500);
}
function CloseBasket() {
    $("#basket_product").hide();
}



var backetErrDivW=0;
var backetErrDivH=0;
function SetshopsListTablePos() {

    var backetErrDiv = $("#shopsListTable");

    backetErrDiv.find("div .popClose").click(CloseAllPopUp);

    backetErrDiv.click(LoginErrorClick);

    if (backetErrDivH == 0) {
        backetErrDivW = backetErrDiv.width();
        backetErrDivH = backetErrDiv.height();
    }

    var scroll = getScrollXY();

    backetErrDiv.css("left", ((document.body.clientWidth / 2 + scroll[0]) - backetErrDivW / 2) + "px");

    backetErrDiv.css("top", (document.documentElement.clientHeight/2 + scroll[1]) - backetErrDivH/2 + "px");

    backetErrDiv.show();

    backetErrDiv.animate({ height: backetErrDiv.height() + 50 + "px"}, "fast");
}


function SetCenterBox(Box) {
    var scroll = getScrollXY();
    Box.css("left", ((document.body.clientWidth / 2 + scroll[0]) - Box.width() / 2) + "px");
    Box.css("top", (document.documentElement.clientHeight / 2) - Box.height() + "px");
}

var GSearchDataLoaded = false;
function ShowExtraSearchBox(event) {
    var Shift = { "X": -34, "Y": 13};
    ShowWindow('extraSearchBox', 150, 'textfield', Shift);

    if (!GSearchDataLoaded) {
        // подгружаем данные для поиска после анимации
        setTimeout("Products.GetProductsInfo(ExtraSearchBinder)", 500);
        GSearchDataLoaded = true;
    }
    jQuery.Event(event).stopPropagation();
}


function getScrollXY() {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return [scrOfX, scrOfY];
}


var GExtraSearchEnabled = false;
function ExtraSearchBinder(data) {

    $(".search_select").change(function() {
        GExtraSearchEnabled = true;
    });
    
    var SelectArray = {"#VendorSelect": "Vendors", "#ClassSelect" : "Classes", "#TypeSelect": "Types"};

    var currSelect;

    $.each(SelectArray, function(id, val) {
        currSelect = $(id);
        $.each(data[val], function() {
            currSelect.append('<option value="' + this.ID + '">' + this.Name + '</option');
        });
    })
}

function StartSearch() {

    $('#textfield').val($('#textfield').val().replace(/(^\s+)|(\s+$)/g, ""));

    var searchString = $('#textfield').val();
    
    // News and Actions search checkboxes
    var cbNews = $('#cbNews'); 
    var cbActs = $('#cbActs');

    if (cbActs.attr("checked") || cbNews.attr("checked")) {

        var sectionStr = "";

        cbNews.attr("checked") ? sectionStr = "news" : (cbActs.attr("checked") ? sectionStr = "action" : "");

        (cbActs.attr("checked") && cbNews.attr("checked")) ? sectionStr = "action,news" : "";

        if (cbNews.attr("checked") && !cbActs.attr("checked"))
            window.location.href = root_path + 'news/search.aspx?txt=' + escape(searchString);
        else if (!cbNews.attr("checked") && cbActs.attr("checked"))
            window.location.href = root_path + 'actions/search.aspx?txt=' + escape(searchString);
        else if (cbNews.attr("checked") && cbActs.attr("checked"))
            window.location.href = root_path + 'search.aspx?txt=' + escape(searchString);
    }
    else {
        if ((searchString.length > 1) || GExtraSearchEnabled) {

            var ref = root_path + 'products/search.aspx?text=' + encodeURI(escape(searchString));

            if (GExtraSearchEnabled) {
                ref += "&c=" + escape($("#ClassSelect").val());
                ref += "&t=" + escape($("#TypeSelect").val());
                ref += "&v=" + escape($("#VendorSelect").val());
            }
            window.location.href = ref;
        }
    }
}

function HideExtraSerachPart() {
    var cbNews = $('#cbNews');
    var cbActs = $('#cbActs');

    if (cbNews.attr("checked") || cbActs.attr("checked")) {

        $("#extraSearchBox .search05").hide();
        $("#search01div").removeClass("search01");
        $("#search01div").addClass("search_mini01");
    }
    else {
        $("#extraSearchBox .search05").show();
        $("#search01div").removeClass("search_mini01");
        $("#search01div").addClass("search01");
    }
}

function CheckDigitalInput(sender, qpb, e) {

    var pattern = new RegExp("^[0-9]{0,4}$");

    if ((e.which != 8) && (e.which != 46)) {

        var l = $(sender).val();

        if (!pattern.test(l)) {
            $(sender).val(l.substring(0, l.length - 1));
        }
    }

    if ((($(sender).val() % qpb) != 0) || ($(sender).val()=='')) {
        $(sender).addClass("pre_error");
    }
    else {
        $(sender).removeClass("pre_error");
    }   
}

function GetGoodDiv(div) {
    while (div.attr("class") != "good_item" && div.length > 0) {
        div = div.parent();
    }
    return div;
}
function GoodItemValidate(e) {

    var input = $(this);
    var good_div = GetGoodDiv(input)
    var gid = good_div.attr("gid");
    var pre_box = good_div.attr("prebox");
    var count = $(".product_input01", good_div).val();
    var is_valid = true;
    if (!(count > 0 && count % pre_box == 0)) {
        input.addClass("pre_error");
        is_valid = false;
        
    } else {
        input.removeClass("pre_error")
    }
    if (is_valid) {
        var k = e.charCode || e.keyCode || e.which;
        Sys.Debug.trace("GoodItemValidate " + k);
        if (k == 13) {
            AddToBacketCount(input);
        }
    }
    
}
function AddToBacketCount(sender) {

    var good_div = GetGoodDiv($(sender))
    var gid = good_div.attr("gid");
    var pre_box = good_div.attr("prebox");
    var count = $(".product_input01", good_div).val();
    if (count % pre_box == 0 && count > 0) {
        AddToBacket2Control(gid, pre_box, count);
        $(".product_input01", good_div).val(pre_box);
        $("#processing_buy").clone().appendTo(good_div);
        $(".buy_button", good_div).hide();
    }
    return false;
}
function updateBaskeGoodsItems(newBasketGoods) {
    Sys.Debug.trace(newBasketGoods)
    var good_div;
    var count = 0;
    for (var id in newBasketGoods) {
        good_div = $(".good_item[gid='" + id + "']");
        if (BasketGoods[id] == null) {
            Sys.Debug.trace("add " + id);
            // add\
            good_div.parents(".basket_icon").addClass("product_bg_leaf");

        }
        count++;
        $(".buy_button", good_div).show();
        $(".processing_buy", good_div).remove();
    }
    for (var id in BasketGoods) {
        if (newBasketGoods[id] == null) {
            Sys.Debug.trace("remove " + id);
            // remove item
            $(".good_item[gid='" + id + "']").parents(".basket_icon").removeClass("product_bg_leaf");
        }
    }
    if (count == 0) {
        CloseBasketStart
    }

}

function setCookie(c_name, value) {
    document.cookie = c_name + "=" + escape(value);
}


function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function delCookie ( c_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = c_name += "=; expires=" + cookie_date.toGMTString();
}


function redrawPriseCorners() {

    if (typeof (BasketGoods) != "undefined") {

        if (typeof (CurrentDrawingType) != "undefined") {
            switch (CurrentDrawingType) {
                case "Tile":
                    $("#priceDiv .product_bg_leaf").each(function() { $(this).removeClass("product_bg_leaf"); });
                    $.each(BasketGoods, function(id, cnt) {
                        var cornerID = "#listik" + id;
                        $(cornerID).addClass("product_bg_leaf");
                        var qpb = $("input[gid='" + id + "']").attr("qpb");
                        $("input[gid='" + id + "']").val(qpb);
                    });
                    break;

                case "List":
                    $("#priceDiv .product_bg_leaf_end").each(function() { $(this).removeClass("product_bg_leaf_end"); });
                    $.each(BasketGoods, function(id, cnt) {
                        var cornerID = "#listik" + id;
                        $(cornerID).addClass("product_bg_leaf_end");
                        var qpb = $("input[gid='" + id + "']").attr("qpb");
                        $("input[gid='" + id + "']").val(qpb);
                    });
                    break;

                case "Table":
                    $("#priceDiv .smallbasketlist").each(function() { $(this).css("visibility", "hidden"); });
                    $.each(BasketGoods, function(id, cnt) {
                        var cornerID = "#listik" + id;
                        $(cornerID).css("visibility", "visible");
                        var qpb = $("input[gid='" + id + "']").attr("qpb");
                        $("input[gid='" + id + "']").val(qpb);
                    });
                    break;
            }

            $.each(BasketGoods, function(id, cnt) {

                $("#buy" + id).show();
                $("#runningB" + id).empty();
            });
        }
    }
}

 
function enterOnInput(evt, sender) {

    var keycode = (window.event) ? event.keyCode : evt.which;

        if (keycode == 13) {
            var buyBtnId = '#buy' + $(sender).attr("gid");
            $(buyBtnId).click();
        }
        return true;
    }


    function protectImages() {
        $('img').error(function() {
            $(this).attr("src", image_path + "no_photo.gif");
            $(this).attr("width", "50");
            $(this).attr("height", "50");
        });
    }