
//menu state manager for categories menu

Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
					((expiredays==null) ? "" : ";expires="+exdate.toGMTString()+";path=/");
}
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 "";
}

//hstate object defined in catsMenu.php - retrieval phase

function hstate_restore(){
	for (k=0;k<hstate.l1.length;k++){
		id=hstate.l1[k];
		hstate_save($('div#c'+id+' a'),1,false);
	}
	for (k=0;k<hstate.l2.length;k++){
		id=hstate.l2[k];
		hstate_save($('a#sc'+id),2,false);
	}
}

function hstate_save(obj,level){
	if (arguments.length==2) animate=true;
	else animate=arguments[2];
	if (level==1){
		if (animate)
			$(obj).toggleClass('minus').parent().next().slideToggle();
		else $(obj).addClass('minus').parent().next().show();
		var id=$(obj).parent().attr('id').substring(1);
		if ($(obj).hasClass('minus')){
			if (!hstate.l1.in_array(id)){
				hstate.l1.push(id);
				//document.cookie='hstate_l1='+hstate.l1.join(",");
				setCookie('hstate_l1',"",-1);
				setCookie('hstate_l1',hstate.l1.join(","),999);
			}
			//alert(document.cookie);
		}else{
			if (hstate.l1.in_array(id)){
				var temp=[];
				for (k=0;k<hstate.l1.length;k++)
					if (hstate.l1[k]!=id)
						temp.push(hstate.l1[k]);
				//document.cookie='hstate_l1='+;
				setCookie('hstate_l1',"",-1);
				setCookie('hstate_l1',temp.join(","),999);
				hstate.l1=temp;
			}
			//alert(document.cookie);
		}
		return false;
	}
	if (level==2){
		if (animate)
			$(obj).toggleClass('minus').next().slideToggle();
		else $(obj).addClass('minus').next().show();
		var id=$(obj).attr('id').substring(2);
		if ($(obj).hasClass('minus')){
			if (!hstate.l2.in_array(id)){
				hstate.l2.push(id);
				//document.cookie='hstate_l2='+hstate.l2.join(",");
				setCookie('hstate_l2',"",-1);
				setCookie('hstate_l2',hstate.l2.join(","),999);
			}
			//if (animate) alert(document.cookie);
		}else{
			//$(obj).removeClass('firstMinus');
			if (hstate.l2.in_array(id)){
				var temp=[];
				for (k=0;k<hstate.l2.length;k++)
					if (hstate.l2[k]!=id)
						temp.push(hstate.l2[k]);
				//alert(hstate.l2+"\n"+temp);
				//document.cookie='hstate_l2='+temp.join(",");
				setCookie('hstate_l2',"",-1);
				setCookie('hstate_l2',temp.join(","),999);
				hstate.l2=temp;
			}
			//alert(document.cookie);
		}
		return false;
	}
}

