var filter1;
var filter2;
var filter3;
var filter4;  
$(document).ready(function(){
    filter1 = false;
    filter2 = false;
    filter3 = false;
    filter4 = false;        
    $("div.productContainer").mouseover(function(){
        $(this).addClass("hover");
    });
    $("div.productContainer").mouseout(function(){
        $(this).removeClass("hover");
    });
    $('select#perpage').change(function(){
        var value = $(this).val();
        var q = $("input#queryString").val();
        $.ajax({
            type: "post",
            url: URL_SITE + "mvc.php",
            data: {
                "action" : "changeSearchPerPage",
                "value" : value,
                "q" : q
            },
            success: function (res) {
                window.location = res;
            }
        });
    });
   
    $('select#sortby').change(function(){
        var value = $(this).val();
        var q = $("input#queryString").val();
        $.ajax({
            type: "post",
            url: URL_SITE + "mvc.php",
            data: {
                "action" : "setProductFilters",
                "q" : q,
                "type" : "sortby",
                "sortby" : value
            },
            success: function (res) {
                window.location = res;
            }
        });            
    });   
    var q = $("input#queryString").val();   
    $.ajax({
        type: "post",
        url: URL_SITE + "mvc.php",
        data: {
            "action" : "ajaxGetFilters",
            "query" : q,
            "type" : "category"
        },
        success: function (res) {
            filter1 = true;  
            checkFiltersStatus();
            if (res){
                $("div.catFilterBox").parent().show();                           
                $("div.catFilterBox").html(res);   
                $("button#categoryApply").click(function(){
                    var categories = '';
                    var counter = 0;
                    var q = $("input#queryString").val();
                    $("input.categoryFilter:checked").each(function(){
                        categories += $(this).val() + "^";
                        counter++;
                    });
                    categories = categories.substr(0, categories.length-1);
                    if (counter){
                        $.ajax({
                            type: "post",
                            url: URL_SITE + "mvc.php",
                            data: {
                                "action" : "setProductFilters",
                                "q" : q,
                                "type" : "category",
                                "categories" : categories
                            },
                            success: function (res) {
                                window.location = res;
                            }
                        });
                    }else{
                        alert(filterText4);
                    }
                    return false;
                });
                makeItSearchable();                   
            }                         
        }
    });     
    
    $.ajax({
        type: "post",
        url: URL_SITE + "mvc.php",
        data: {
            "action" : "ajaxGetFilters",
            "query" : q,
            "type" : "brand"
        },
        success: function (res) {
            filter2 = true;        
            checkFiltersStatus();            
            if (res){
                $("div.brandFilterBox").parent().show();                                                
                $("div.brandFilterBox").html(res);   
                $("button#brandApply").click(function(){
                    var brands = '';
                    var counter = 0;
                    var q = $("input#queryString").val();
                    $("input.brandFilter:checked").each(function(){
                        brands += $(this).val() + "^";
                        counter++;
                    });
                    brands = brands.substr(0, brands.length-1);
                    if (counter){
                        $.ajax({
                            type: "post",
                            url: URL_SITE + "mvc.php",
                            data: {
                                "action":"setProductFilters",
                                "q" : q,
                                "type" : "brand",
                                "brands" : brands
                            },
                            success: function (res) {
                                window.location = res;
                            }
                        });
                    }else{
                        alert(filterText2);
                    }
                    return false;
                });
                makeItSearchable();                
            }            
        }
    });  

    $.ajax({
        type: "post",
        url: URL_SITE + "mvc.php",
        data: {
            "action" : "ajaxGetFilters",
            "query" : q,
            "type" : "merchant"
        },
        success: function (res) {
            filter3 = true;    
            checkFiltersStatus();            
            if (res){            
                $("div.merchantFilterBox").parent().show();                                
                $("div.merchantFilterBox").html(res);                
                $("button#merchantApply").click(function(){
                    var merchants = '';
                    var counter = 0;
                    var q = $("input#queryString").val();
                    $("input.merchantFilter:checked").each(function(){
                        merchants += $(this).val() + "^";
                        counter++;
                    });
                    merchants = merchants.substr(0, merchants.length-1);
                    if (counter){
                        $.ajax({
                            type: "post",
                            url: URL_SITE + "mvc.php",
                            data: {
                                "action":"setProductFilters",
                                "q" : q,
                                "type" : "merchant",
                                "merchants" : merchants
                            },
                            success: function (res) {
                                window.location = res;
                            }
                        });
                    }else{
                        alert(filterText3);
                    }
                    return false;
                });
                makeItSearchable();
            }            
        }
    });       
    $.ajax({
        type: "post",
        url: URL_SITE + "mvc.php",
        data: {
            "action" : "ajaxGetPriceFilters",
            "query" : q
        },
        success: function (res) {
            filter4 = true;   
            checkFiltersStatus();            
            $("div.priceBox").html(res);                
            var start = priceMinValue < 1 ? priceMinValue : priceMinValue-1;
            var end   = priceMaxValue + 1;
            $("input.priceMin").val(siteCurrency+" "+priceMinValue);
            $("input.priceMax").val(siteCurrency+" "+priceMaxValue);            
            $("div.priceSlider").slider({
                range: true,
                min: start,
                max: end,
                values: [ start, end ],
                slide: function( event, ui ) {
                    $("input.priceMin").val(siteCurrency+" "+ui.values[0]);
                    $("input.priceMax").val(siteCurrency+" "+ui.values[1]);
                },
                create: function(event, ui) {
                    $("input.priceMin").val(siteCurrency+" "+start);
                    $("input.priceMax").val(siteCurrency+" "+end);
                }
            });
            if (!$("div.noResultsContainer").length){
                $("div.priceBox").show();   
            }
            $("button#priceApply").click(function(){
                var fromCurr = $("input#priceFrom").val().split(" ");
                var toCurr = $("input#priceTo").val().split(" ");
                var from = floatval(fromCurr[1]);
                var to   = floatval(toCurr[1]);
                var q = $("input#queryString").val();
                if (from && to && (to<from || to == from)){
                    alert(filterText1);
                }else{
                    $.ajax({
                        type: "post",
                        url: URL_SITE + "mvc.php",
                        data: {
                            "action":"setProductFilters",
                            "q" : q,
                            "type" : "price",
                            "from" : from,
                            "to" : to
                        },
                        success: function (res) {
                            window.location = res;
                        }
                    });
                }
                return false;
            });    
            $("input#priceFrom").blur(function(){
                var val = $(this).val();
                var valArr = val.split(" ");
                if (valArr.length==2){
                    if (valArr[0]!=siteCurrency){
                        alert(filterText5+siteCurrency+filterText6+valArr[0]);
                        $(this).val(siteCurrency+" "+valArr[1]);
                    }
                    if (!IsNumeric(valArr[1])){
                        alert(filterText7+siteCurrency+" 102");
                        $(this).val(siteCurrency+" 102");
                    }
                }else{
                    if (!IsNumeric(val)){
                        alert(filterText7+siteCurrency+" 102");
                        $(this).val(siteCurrency+" 102");
                    }else{
                        $(this).val(siteCurrency+" "+val);
                    }
                }
            });
            $("input#priceTo").blur(function(){
                var val = $(this).val();
                var valArr = val.split(" ");
                if (valArr.length==2){
                    if (valArr[0]!=siteCurrency){
                        alert(filterText5+siteCurrency+filterText6+valArr[0]);
                        $(this).val(siteCurrency+" "+valArr[1]);
                    }
                    if (!IsNumeric(valArr[1])){
                        alert(filterText7+siteCurrency+" 102");
                        $(this).val(siteCurrency+" 102");
                    }
                }else{
                    if (!IsNumeric(val)){
                        alert(filterText7+siteCurrency+" 102");
                        $(this).val(siteCurrency+" 102");
                    }else{
                        $(this).val(siteCurrency+" "+val);
                    }
                }
            });                
                
        }
    });        
   
    $("a.shareFacebook").click(function(){
        var link = $("input.fbLink", $(this).parent().parent().parent()).val();
        fbs_click(link);
        return false;
    });
});

function checkFiltersStatus()
{
    if (filter1 && filter2 && filter3 && filter4){
        $("div.loadingFilters").hide();
    }
}

function makeItSearchable()
{
    $("input.filterSearch").unbind("focus");
    $("input.filterSearch").unbind("blur");    
    $("input.filterSearch").unbind("keyup"); 
    $("ul.filtersCheckBox a").unbind("click");
    $("input.filterSearch").focus(function(){
        if ($(this).val()=="Search..."){
            $(this).val("");
        }
    });
    $("input.filterSearch").blur(function(){
        if ($(this).val()==""){
            $(this).val("Search...");
        }
    });
    $("input.filterSearch").keyup(function(){
        var search = $(this).val().toLowerCase();
        var container = $("div.scrollBox ul.filtersCheckBox", $(this).parent().parent());
        if (search && search!="Search..."){
            $("li a", container).each(function(){
                var val = $(this).html().toLowerCase();
                if (val.indexOf(search)==-1){
                    $(this).parent().hide();
                }
            });
        }else{
            $("li", container).show();
        }
    });
    $("ul.filtersCheckBox a").click(function(){
        var elem = $(this);
        var checked = $("input", elem.parent()).attr("checked");
        if (checked){
            $("input", elem.parent()).removeAttr("checked");
        }else{
            $("input", elem.parent()).attr("checked","checked");
        }
        return false;
    });
}
