﻿var sbarstate_restored = false;
var searched = false;

$(document).ready(function() {
    initSbar();
});

function initSbar() {

    setDefByCodeMsg();

    //check for state cookie, restore state when present
    var ckst = getSBarCookie();
    //alert($.cookie('SBState'));
    if (ckst != null) {
        var st = parseSBarCookie(ckst);
        setState(st);
        //delete cookie
        delSBarCookie();
        sbarstate_restored = true;
    }

    updateselection();

    $('#sbar ul li').click(function(e) {
        resetfilter($(this).parent(), 'li');
        selectfilter($(this));
        $('#style').val('');
        return true;
    });

    //work-around for programatically submiting the form when using ajax
    $('form').submit(function(event) {
        //clear search by code message from txt
        setSearchMode();
        eval($(this).attr("onsubmit"));
        return $(this).attr("onsubmit") == null;
    });

    //submit on Search click
    $('#dvSearchBtn').click(function(e) {
        searched = true;
        return sbarSubmit();
    });

    $('#dvByCode img').click(function(e) {
        var scode = $('#style').val();
        searched = scode != '' && scode != $('#byCodeMsg').val();
        if(searched)
            return sbarSubmit();
    });

    $('#sbartoggle').click(function(e) {
        toggleBar();
    });


    $('#style').focus(function(e) {
        $(this).val('');
    });

}


function getState() {

    var obj = new String('obj = { ');  
    $('input').each(function(e) {
        obj = obj.concat($(this).attr('id') + ': \'' + $(this).val() + '\',');
    });
    obj = obj.substring(0, obj.length - 1) + ' }';
    return eval(obj);
}

function setState(state) {
    //var obj = new String();
    $.each(state, function(i, v) {
        //obj = obj.concat(i + "=" + v).concat(';');
        $('#' + i).val(v);
    });
    //alert(state.page);
}


function parseSBarCookie(state) {
    return JSON.parse(state);
}

function setSBarCookie() {
    $.cookie('SBState', JSON.stringify(getState()), { path: '/' });
    //alert(JSON.stringify(getState()));
}

function getSBarCookie() {
    return $.cookie('SBState');
}

function delSBarCookie() {
    $.cookie('SBState', null, { path: '/' });
}

function onStyleKeyPress(txt, e) {
    var valid = true;
    if (window.event) // IE
        keynum = e.keyCode;
    else if (e.which) // Netscape/Firefox/Opera
        keynum = e.which;

    if (keynum == 13)
    {
        if (txt.value != '') {
            sbarSubmit();
            searched = true;
        }
        else 
            valid = false;
    }
    return valid;
}

function sbarSubmit() {
    doGAT(window.location.href + '/search-query');
    submitSearch();
}

function submitSearch() {

    //reset page if pager present
    var hdpage = $("input:hidden#page");
    if (hdpage.attr("id") != null)
        hdpage.val('');
    //submit form
    sbarstate_restored = false;
    $("#formId").trigger('submit');
    return false;
}

function setDefByCodeMsg() {
    if ($('#style').val() == '')
        $('#style').val($('#byCodeMsg').val());

}

function setSearchMode() {
    var code = $('#style');
    if (code.val() == $('#byCodeMsg').val())
        code.val('');
    //search by code => reset other filters
    if (code.val() != '')
        resetfilters();
}

function toggleBar() {
    var cBar = $('#sbar');
    var sbar = $('#sbarcontent');
    var sbarx = $('#sbartoggle');
    var footSB = $('#footerSearchBar');
    var pgPrev = $('#pgPrev');
    var gateWay = $('#gateway');

    $('#sbartoggle img').toggle();

    if (sbar.css('left') == '-230px') {
        // these tricks are made to work-around the search-bar float (IE8/Mozilla)
        if (pgPrev != null)
            pgPrev.css("z-index", "5");
        if (gateWay != null)
            gateWay.css("z-index", "9");
        sbarx.css("border-top", "1px solid #d5d5d5");
        sbarx.css("border-right", "1px solid #d5d5d5");
        sbarx.css("border-bottom", "1px solid #d5d5d5");
        //
        sbar.css("border-right", "1px solid #d5d5d5");
        sbar.css("border-bottom", "1px solid #d5d5d5");
        sbar.css("border-top", "1px solid #d5d5d5");
        //
        sbarx.animate({ left: '+=226' }, 'fast');
        sbar.animate({ left: '+=230' }, 'fast', function() {
            sbarx.css("float", "right");
        });
    }
     else
     {
        if (pgPrev != null)
            pgPrev.css("z-index", "50");
        if (gateWay != null)
            gateWay.css("z-index", "11");

         sbarx.animate({ left: '-=226' }, 'fast');
         sbar.animate({ left: '-=230' }, 'fast', function() {
             sbar.css("border-right", "0px");
             //
             sbarx.css("left", "0");
             sbarx.css("float", "left");
             sbarx.css("border-top", "1px solid #d5d5d5");
             sbarx.css("border-right", "1px solid #d5d5d5");
             sbarx.css("border-bottom", "1px solid #d5d5d5");
             //
             cBar.css("border-top", "0px");
        });
    }
}


function resetfilters() {
    resetfilter($('#sbarcontent'), 'li');
    $('ul', '#sbarcontent').each(function() {
        selectfilter($('li:last',$(this)));
    });
}

function resetfilter(cntx, selector) {
    cntx.each(function() {
        $(selector, $(this)).removeClass("filter-sel");
        $(selector, $(this)).find('img.noCube').remove();
        //REMOVE IMG ONLY IN STYLES -- MATERIALS -- LENSES
        $(selector, $(this)).find('p:dvMArrow').find('img').remove();
        $(selector, $(this)).find('img.siCube').css("border", "0px");
    });
}

function selectfilter(li) {
    var hd = $(li).parent().parent().find('input:hidden:first');
    var hdVal = $(li).find('span:first').text();
    hd.val(hdVal);
    $(li).addClass("filter-sel");
    //
    $(li).find('img.siCube').css("border", "1px solid red");

}

function updateselection() {
    $('#sbar ul li').each(function(e) {
        var hd = $(this).parent().parent().find('input:hidden:first');
        var hdVal = $(this).find('span:first').text();
        if(hd.val() == hdVal)
            $(this).addClass("filter-sel");

    });
}

