var hashTrack=window.location.hash;
var list_cache;
var list_cache_name='';
var search_timeout;
var cached_query = new Object;
var cached_content = new Object;
var current_list = new Object;

function update_nav_anchor() {
		var tmp="!"+$('#nav input,#pg').filter(function() { if (this.value != "" && this.value != 0) return this.value; }).serialize();
		window.location.hash=tmp;		
		hashTrack=window.location.hash;
		tmp=hashTrack.split('!')
		return tmp[1];
}
function aj_load(tmp,anchor_call){	
	if (anchor_call) { // Anchor Hash Is Available
		tmp=tmp.split('#!');
		tmp=tmp[1];		
	} else {
		tmp=update_nav_anchor();
	}	
	
	var detect_target=tmp.split("=");
	$("#content").fadeTo("fast", 0.33);
	//console.log(cached_query["q"+encodeURIComponent(tmp)]);
	if (cached_query["q"+encodeURIComponent(tmp)]!=undefined) {
		current_list=cached_query["q"+encodeURIComponent(tmp)];
		$("#content").html(cached_content["q"+encodeURIComponent(tmp)]).fadeTo("slow", 1);
	} else if (detect_target[0]=="g" || detect_target[0]=="i") {
		var req=$.post("product.php?"+tmp, {a:1,nocache:1} ,function(data){ 
			$("#content").html(data).fadeTo("slow", 1);
			set_inputs();			
			_gaq.push(['_trackPageview', "/req/"+$('h1').text()]);			
		});
	} else {
		if (!tmp) tmp="a=1"; //Prevent full page load on ajax request
		var req=$.post("index.php", tmp ,function(data){
			list_cache_name=$("#content").html(data).fadeTo("slow", 1).find("h1").html();
			list_cache=data;
			cached_query[$('#cached').attr("name")]=$.parseJSON($('#cached').val());
			current_list=cached_query[$('#cached').attr("name")];
			cached_content[$('#cached').attr("name")]=$('#content').html();
			_gaq.push(['_trackPageview', "/req/"+$('h1').text()]);
			if (anchor_call) set_inputs(); // Update is based on anchor so recalculate selected class and menu values		
		});
	}
}

function set_inputs(){		
	if (!$('#var_storage').val()) return;		
	remove_selected_menu();	
	$.each($.parseJSON($('#var_storage').val()),function(name,value){
		if (name=='t'||name=='pr'||name=='w'||name=='x') {
			$.each(value,function(name2,value2){
				$('input[name="'+name+'['+name2+']"]').parent().parent().find("li").addClass("inactive");
				$('input[name="'+name+'['+name2+']"]').prop("checked",true).parent().removeClass("inactive").addClass("selected");
			});
		} else {
			$('input[name="'+name+'"]').val(value).filter(function(){
				if (name!='p') {
					$(this).parent().parent().find("li").addClass("inactive");
					$(this).prop("checked",true).parent().removeClass("inactive").addClass("selected");
				}
			});			
		}
	});
}
function search_code(chk){
	if (search_timeout!=chk) return false;
	var tmp=$('#header input').val();
	$.post("product.php?i="+tmp, {a: true} ,function(data){  $("#content").html(data); });
	tmp='i='+tmp;
	window.location.hash=tmp;
	hashTrack=window.location.hash;
	_gaq.push(['_trackPageview', "/search/"+tmp]);
}
function paging(page){
	$("#img_page a").remove();
	if (isNaN(page)) page = 1;
	$("#pg").attr("value",page);
	var item_number=12;
	var number=(page-1)*item_number;
	for (var i = 0; i < item_number;i++) {
		var code=current_list[number + i];
		if (code==undefined) break;			
		var tmp=code.split('_');
		if (undefined!=tmp[1]&&tmp[1]>0) {
			$("#img_page").append('<a href="product.php?g='+tmp[1]+'"><img src="p/j'+Math.floor(tmp[0]/1000)+'/'+tmp[0]+'.jpg" alt="جواهر" /></a>')
		} else {
			$("#img_page").append('<a href="product.php?i='+tmp[0]+'"><img src="p/j'+Math.floor(tmp[0]/1000)+'/'+tmp[0]+'.jpg" alt="جواهر" /></a>')
		}
	}
	
	if (page>1) {
		$("#prev").html('<a href="#">'+$("#prev").text()+'</a>');
	} else {
		$("#prev").html($("#prev").text());
	}
	
	if ((page)*item_number<current_list.length) {
		$("#next").html('<a href="#">'+$("#next").text()+'</a>');
	} else {
		$("#next").html($("#next").text());
	}
	update_nav_anchor();
	list_cache_name=$("h1").html();
	list_cache=$("#content").html();
	_gaq.push(['_trackPageview', '/paging/'+$('h1').text()]);
}
$(document).ready(function(){	
	cached_query[$('#cached').attr("name")]=$.parseJSON($('#cached').val());
	current_list=cached_query[$('#cached').attr("name")];
	cached_content[$('#cached').attr("name")]=$('#content').html();
	if ("onhashchange" in window) { // event supported?
		window.onhashchange = function () {
			if (window.location.hash != hashTrack) {
				hashTrack = window.location.hash;
				//console.log('back detected');
				aj_load(hashTrack,true);
			}
		}
	} else { // event not supported:
		window.setInterval(function () { // Detect Back Button
			if (window.location.hash != hashTrack) {
				hashTrack = window.location.hash;
				//console.log('back detected');
				aj_load(hashTrack,true);
			}
		}, 100);
	}
	if ( hashTrack !='' ) { // Detect Anchor on Refresh Or New Entry		
		//console.log('Anchor Detect On Load');
		aj_load(hashTrack,true);	
	} else set_inputs(); // Replace Inputs with Value From $_GET
	
	$("#content").delegate("#pager a","click",function(e){
		e.preventDefault();
		var page=0;		
		if ($(this).parent().attr("id")=='next') page=1; 
		else if ($(this).parent().attr("id")=='prev') page=-1;		
		if (page==0) page=parseInt($(this).html(),10)-1;
		else page=parseInt($("#pg").val(),10)+page;
		paging(page);
	}).delegate("#pg","keypress",function(e){//keypress
		if ( e.which == 13 ){
			paging(parseInt($("#pg").val()));
		}
	}).delegate("#img_page a,.detail_img a","click",function(e){
		e.preventDefault();		
		$("#content").fadeTo("fast", 0.33);
		$.post($(this).attr('href'), {a: true} ,function(data){  $("#content").html(data).fadeTo("slow", 1).find("#back_link:last").filter(function(){if (list_cache_name) return true;}).html(list_cache_name);});
		var tmp=$(this).attr('href').split('?');
		window.location.hash="!"+tmp[1];
		hashTrack=window.location.hash;
		//remove_selected_menu();
		_gaq.push(['_trackPageview', tmp[1]]);
	});
	
	$("#header").delegate("input","keyup",function(e){
		search_timeout=e.timeStamp;
		setTimeout("search_code("+search_timeout+")",1000);
	});		
	
	$("#content").delegate(".price","click",function(e){
		e.preventDefault();					
		var tmp = $(this).attr("href").split('#');
		$(this).load('p.php?i='+tmp[1]);
	});	
	
	$("#content").delegate("#thumb_img a","click",function(e){
		e.preventDefault();
		$('#thumb_img img').removeClass('selected');
		var tmp=$(this).find('img').addClass('selected').attr('src').split('.jpg');
		tmp=tmp[0].split("-");
		if (!tmp[1])
			$("#big_img").attr("src",tmp[0]+"b.jpg");
		else
			$("#big_img").attr("src",tmp[0]+"b-"+tmp[1]+".jpg");
	});	
	
	$("#content").delegate(".back_link","click",function(e){
		e.preventDefault();			
		if 	(list_cache) {
			$("#content").html(list_cache);	
			//list_cache='';
		} else aj_load('','');
		update_nav_anchor();
		_gaq.push(['_trackPageview', 'backlink']);
	});
	$("#nav").delegate("a","click",function(e){
		e.preventDefault();	
		if ($(this).hasClass("more")) {
			$(this).parent().parent().find(".hidem").removeClass();
			$(this).remove();
		}else {
			$(this).parent().find("input").trigger("click");
		}
	}).delegate("input","change",function(e){
		var element=$(this).parent();
		var selected_before=element.hasClass("selected");

		element.parent().find("li").removeClass('selected inactive');
		element.parent().find("input").prop("checked",false);

		$("#pg").attr("value",1);
		if (!selected_before) {
			element.parent().find("li").addClass("inactive");
			element.addClass('selected').removeClass("inactive").find("input").prop("checked", true).val(1);
		}			
		aj_load('','');
	});
});

function remove_selected_menu(){
	$("#nav li").removeClass('selected');
	$("#nav input").prop("checked",false);
}
