var HTTP_AJAX_ROOT="http://www.esploro.it/ajax/";
var action=1;
var action_merchant=1;
var action_suggested=1; //action flag for suggested category
var action_subcategory=1; 
var category_vars=new Object;
var keyStr = "ABCDEFGHIJKLMNOP" +
               "QRSTUVWXYZabcdef" +
               "ghijklmnopqrstuv" +
               "wxyz0123456789+/" +
               "=";
			   

jQuery(document).ready(function(){
	set_href_stop();
	
	jQuery("#price_max_cat").keydown(function(event) {
		
		// Allow only backspace and delete
		if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 9) {
			// let it happen, don't do anything
		} else if (event.keyCode == 13) { //on enter keystroke
			cat_set_price_filter('');
		
		} else {
			// Ensure that it is a number and stop the keypress
			if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
				event.preventDefault(); 
			}   
		}
	});
	
	jQuery("#price_min_cat").keydown(function(event) {
		
		// Allow only backspace and delete
		if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 9 ) {
			// let it happen, don't do anything
		} else if (event.keyCode == 13) { //on enter keystroke
			cat_set_price_filter('');
		
		} else {
			// Ensure that it is a number and stop the keypress

			if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
				event.preventDefault(); 
			}   
		}
	});
	
	jQuery("#search_string_cat").keydown(function(event) {
		if (event.keyCode == 13) { //on enter keystroke
			cat_set_search_filter('');
		}
	});
});

function set_category_vars(id_brand,id_merchant,id_category,price_min,price_max,drilldown,page_name_cat,url_order,current_total_link,domain,search_string,current_total_link_search,subcategory_search_string) {
	if (typeof(search_string)=='undefined') var search_string="";
	if (typeof(current_total_link_search)=='undefined') var current_total_link_search="";
	if (typeof(subcategory_search_string)=='undefined') var subcategory_search_string="";
	
	category_vars.id_brand=id_brand;
	category_vars.id_merchant=id_merchant;
	category_vars.id_category=id_category;
	category_vars.price_min=price_min;
	category_vars.price_max=price_max;
	category_vars.drilldown=drilldown;
	category_vars.page_name_cat=page_name_cat;
	category_vars.url_order=url_order;
	category_vars.current_total_link='http://'+escape(decode64(current_total_link));
	category_vars.current_total_link_search='http://'+decode64(current_total_link_search);
	category_vars.search_string=String(search_string).replace(/&quote;/gi,'"');
	category_vars.subcategory_search_string=String(subcategory_search_string).replace(/&quote;/gi,'"');

	HTTP_AJAX_ROOT='http://'+decode64(domain)+'ajax/';
	
	if (category_vars.drilldown!="") category_vars.drilldown_text="-"+category_vars.drilldown;
	else category_vars.drilldown_text="";
}

function set_href_stop(){
	jQuery("#showlistf1_j a").unbind();
	jQuery("#showlistf2_j a").unbind();
	jQuery("#showlistf3_j a").unbind();
	
	
	jQuery("#showlistf1_j a").click(function(e) {
		
		e.preventDefault();
		
		jQuery.ajax({
			url: HTTP_AJAX_ROOT + "ajax_category_show_brands.php",
			data: "action="+action+"&id_category="+category_vars.id_category+"&id_brand="+category_vars.id_brand+"&id_merchant="+category_vars.id_merchant+"&price_min="+category_vars.price_min+"&price_max="+category_vars.price_max+"&action_merchant="+action_merchant+"&search_string="+escape(category_vars.search_string)+"&subcategory_search_string="+escape(category_vars.subcategory_search_string),
			dataType: 'jsonp',
			jsonp: 'callback',
			jsonpCallback: 'CB_category_show_brands'
		});
	
	});
	
	jQuery("#showlistf2_j a").click(function(e) {

		e.preventDefault();

		jQuery.ajax({
			url: HTTP_AJAX_ROOT + "ajax_category_show_brands.php",
			data: "action="+action+"&id_category="+category_vars.id_category+"&id_brand="+category_vars.id_brand+"&id_merchant="+category_vars.id_merchant+"&price_min="+category_vars.price_min+"&price_max="+category_vars.price_max+"&action_merchant="+action_merchant+"&search_string="+escape(category_vars.search_string)+"&subcategory_search_string="+escape(category_vars.subcategory_search_string),
			dataType: 'jsonp',
			jsonp: 'callback',
			jsonpCallback: 'CB_category_show_merchants'
		});
	
	});
	
	jQuery("#showlistf3_j a").click(function(e) {

		e.preventDefault();

		jQuery.ajax({
			url: HTTP_AJAX_ROOT + "ajax_category_show_subcategories.php",
			data: "action="+action_subcategory+"&id_category="+category_vars.id_category,
			dataType: 'jsonp',
			jsonp: 'callback',
			jsonpCallback: 'CB_category_show_subcategories'
		});
	
	});
}

function CB_category_show_brands(data) {
	jQuery("#brand_filter_fj").empty();
	for (var i=0;i<data.all_brands.length;i++) {
		jQuery("#brand_filter_fj").append('<li><a href="'+category_vars.page_name_cat+'--d'+category_vars.id_category+'-'+data.all_brands[i].page_name+category_vars.drilldown_text+'.html">'+data.all_brands[i].name+'</a> <span class="dd_num">('+data.all_brands[i].total+')</span></li>');
		
	}
	
	if (data.action==1) {
		action=0;
		jQuery("#brand_filter_fj").append('<li class="seeall_li"><span id="showlistf1_j" class="show"><a class="grey" href="'+unescape(category_vars.url_order)+'.html">Meno marche...</a></span></li>');

	} else {
		action=1;
		jQuery("#brand_filter_fj").append('<li class="seeall_li"><span id="showlistf1_j" class="show"><a class="grey" href="'+unescape(category_vars.url_order)+'~wa~0.html">Più marche...</a></span></li>');
		scroll(0,jQuery("#brand_filter_fj").position().top-60);
		
	}
	
	set_href_stop();
		
}

function CB_category_show_merchants(data) {
	jQuery("#merchant_filter_fj").empty();
	
	for (var i=0;i<data.all_merchants.length;i++) {
		jQuery("#merchant_filter_fj").append('<li><a href="javascript:ps_link(\''+encode64(category_vars.page_name_cat+'--d'+category_vars.id_category+'-'+data.all_merchants[i].page_name.replace(/-/gi,'_')+category_vars.drilldown_text+'.html')+'\');">'+data.all_merchants[i].name+'</a> <span class="dd_num">('+data.all_merchants[i].total+')</span></li>');
		
	}
	
	if (data.action_merchant==1) {
		action_merchant=0;
		jQuery("#merchant_filter_fj").append('<li class="seeall_li"><span id="showlistf2_j" class="show"><a class="grey" href="javascript:ps_link(\''+encode64(category_vars.url_order+'.html')+'\');">Meno negozi...</a></span></li>');

	} else {
		action_merchant=1;
		jQuery("#merchant_filter_fj").append('<li class="seeall_li"><span id="showlistf2_j" class="show"><a class="grey" href="javascript:ps_link(\''+encode64('\''+category_vars.url_order+'~wa~3.html\'')+'\');">Più negozi...</a></span></li>');

		
	}
	
	set_href_stop();
		
}

function CB_category_show_subcategories(data) {
	jQuery("#subcategory_filter_fj").empty();
	
	for (var i=0;i<data.subcategories.length;i++) {
		jQuery("#subcategory_filter_fj").append('<li><a href="javascript:ps_link(\''+encode64(category_vars.page_name_cat+'--d'+category_vars.id_category+'-'+data.subcategories[i].search_string_url.replace("-","_")+category_vars.drilldown_text+'.html')+'\');">'+data.subcategories[i].name_menu+'</a></li>');
		
	}
	
	if (data.action_subcategory==1) {
		action_subcategory=0;
		jQuery("#subcategory_filter_fj").append('<li class="seeall_li"><span id="showlistf3_j" class="show"><a class="grey" href="'+unescape(category_vars.url_order)+'.html">Meno categorie...</a></span></li>');

	} else {
		action_subcategory=1;
		jQuery("#subcategory_filter_fj").append('<li class="seeall_li"><span id="showlistf3_j" class="show"><a class="grey" href="'+unescape(category_vars.url_order)+'~wa~2.html">Più categorie...</a></span></li>');

		
	}
	
	set_href_stop();
		
}

function filter_hide_menu(id) {
	jQuery("#"+id).hide();
	jQuery("#"+id+"_link").attr('href',"javascript:filter_show_menu('"+id+"');");
	jQuery("#"+id+"_link").css('backgroundImage',"url('http://www.esploro.it/images/buttons/filter-arrow-right.gif')");
}

function filter_show_menu(id) {
	jQuery("#"+id).show();
	jQuery("#"+id+"_link").attr('href',"javascript:filter_hide_menu('"+id+"');");
	jQuery("#"+id+"_link").css('backgroundImage',"url('http://www.esploro.it/images/buttons/filter-arrow-down.gif')");
}

function cat_set_search_filter(link) {
	if (jQuery.trim(jQuery("#search_string_cat").val())!="") {

		var search_string_temp=String(jQuery.trim(jQuery("#search_string_cat").val()));
		
		search_string_temp=search_string_temp.replace(/-/gi,' ');
		search_string_temp=search_string_temp.replace(/~/gi,' ');
		search_string_temp=search_string_temp.replace(/\./gi,' ');
		search_string_temp=search_string_temp.replace(/\!/gi,' ');
		search_string_temp=search_string_temp.replace(/\?/gi,' ');
		search_string_temp=search_string_temp.replace(/\//gi,' ');
		search_string_temp=search_string_temp.replace(/€/gi,'');
		search_string_temp=search_string_temp.replace(/#/gi,' ');
		search_string_temp=search_string_temp.replace(/\*/gi,' ');
		search_string_temp=search_string_temp.replace(/\+/gi,' ');
		search_string_temp=search_string_temp.replace(/@/gi,' ');
		search_string_temp=search_string_temp.replace(/”/gi,'');
		search_string_temp=search_string_temp.replace(/“/gi,'');
		search_string_temp=search_string_temp.replace('|',' ');
		search_string_temp=search_string_temp.replace(/\(/gi,'');
		search_string_temp=search_string_temp.replace(/\)/gi,'');
		search_string_temp=search_string_temp.replace(/"/gi,'');
		search_string_temp=search_string_temp.replace(/</gi,'');
		search_string_temp=search_string_temp.replace(/>/gi,'');
		search_string_temp=search_string_temp.replace('^',' ');
		search_string_temp=search_string_temp.replace(/$/gi,'');
		search_string_temp=search_string_temp.replace(/’/gi,'');
		search_string_temp=search_string_temp.replace(/&/gi,' ');
		search_string_temp=jQuery.trim(search_string_temp);
		
		search_string_temp=search_string_temp.replace(/ /gi,'_');
		//alert(escape(search_string_temp));

		if (link!="") link='http://'+decode64(link)+"-ricerca_"+escape(search_string_temp);
		else link=category_vars.current_total_link_search+"-ricerca_"+escape(search_string_temp);
		
		window.location=link+".html";
	}
}

function cat_set_price_filter(link) {
	if ((jQuery("#price_min_cat").val()=="" || parseInt(jQuery("#price_min_cat").val())==0) && (jQuery("#price_max_cat").val()=="" || parseInt(jQuery("#price_max_cat").val())==0)) {
		alert ('Devi impostare un prezzo per eseguire la ricerca');
	} else {
	
		if (jQuery("#price_min_cat").val()=="") jQuery("#price_min_cat").val('0');
		if (jQuery("#price_max_cat").val()=="") jQuery("#price_max_cat").val('0');
		
		if (parseInt(jQuery("#price_min_cat").val()) > parseInt(jQuery("#price_max_cat").val())) {
			alert('Il prezzo massimo deve essere superiore a quello minimo');
		} else {
			
			if (link!="") link='http://'+escape(decode64(link))+"-prezzo_da_"+jQuery("#price_min_cat").val()+"_a_"+jQuery("#price_max_cat").val();
			else link=category_vars.current_total_link+"-prezzo_da_"+jQuery("#price_min_cat").val()+"_a_"+jQuery("#price_max_cat").val();
			
			window.location=link+".html";
		}
	}
}

function suggested_more(parent_id,id_category) {
	jQuery.ajax({
		url: HTTP_AJAX_ROOT + "ajax_suggetsted_category.php",
		data: "parent_id="+parent_id+"&action="+action_suggested+"&id_category="+id_category,
		dataType: 'jsonp',
		jsonp: 'callback',
		jsonpCallback: 'CB_suggested_category'
	});
}

function CB_suggested_category(data) {
	jQuery("#related_category_contents ul").empty();
	jQuery("#related_category_contents ul").html(data.content_html);
	
	if (data.action==1) action_suggested=0;
	else action_suggested=1;
}

  function encode64(input) {
     input = escape(input);
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;

     do {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);
        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;
        if (isNaN(chr2)) {
           enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
           enc4 = 64;
        }

        output = output +
           keyStr.charAt(enc1) +
           keyStr.charAt(enc2) +
           keyStr.charAt(enc3) +
           keyStr.charAt(enc4);
        chr1 = chr2 = chr3 = "";
        enc1 = enc2 = enc3 = enc4 = "";

     } while (i < input.length);

     return output;

  }

  function decode64(input) {
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;

     // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
     var base64test = /[^A-Za-z0-9\+\/\=]/g;
     if (base64test.exec(input)) {

     }
     input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
     do {
        enc1 = keyStr.indexOf(input.charAt(i++));
        enc2 = keyStr.indexOf(input.charAt(i++));
        enc3 = keyStr.indexOf(input.charAt(i++));
        enc4 = keyStr.indexOf(input.charAt(i++));
 
        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;

        output = output + String.fromCharCode(chr1);
        if (enc3 != 64) {
           output = output + String.fromCharCode(chr2);
        }
        if (enc4 != 64) {
           output = output + String.fromCharCode(chr3);
        }
        chr1 = chr2 = chr3 = "";
        enc1 = enc2 = enc3 = enc4 = "";

     } while (i < input.length);

     return unescape(output);
  }

