/**
 * @(#)menubuilder.js
 *
 * Copyright 1999-2007(c) MijnWinkel B.V.
 *
 * Version 7.10.0 
 */

var __DOMAIN_STORE=14;
var __menuqs="",patched=false;
function trim(v){return(v=='')?v:v.replace(/^\s+|\s+$/gi,'')}

function MaxValue(n){
	var me=this,val=(n==null)?0:n;
	me.reset=function(i){val=(i==null)?0:i};
	me.set=function(i){if(i>val)val=i};
	me.get=function(){return val};
}
var menuIndentLevel=new MaxValue(0);

function getMenuLevelCount(){return(_menuDomainRef==null)?1:(_menuDomainRef.length-1)}
function getMenuMaxDomainPos(){return(getMenuLevelCount()>0)?((_menuDomainRef==null)?1:_menuDomainRef[_menuDomainRef.length-2]):0}
function MenuItems(l,def){
	var me=this,index=0,level=0,refList=null,nameList=null,selectedIndex=[];
	function getVal(n){
		var v="";n++;
		if(n==0||(refList!=null&&refList[n]==0))v="";
		else v=(refList==null)?nameList[n]:nameList[refList[n]];
		return v
	}
	me.label="";
	me.value="";
	me.next=function(){
		me.label=getVal(index);
		me.value=me.label;
		index++;
		//var b=me.hasNext();
		//if(b&&me.label=="")b=me.next();
		return me.hasNext();
	};
	me.reset=function(){index=0};
	me.levelCount=getMenuLevelCount();
	me.setLevel=function(l,def){
		if(me.levelCount>0){
			if(def==null)def=true;
			level=(l<=me.levelCount)?l:0;
			if(_menuDomainRef==null&&!patched){
				for(var i=_menuitems.length;i>0;i--)_menuitems[i]=_menuitems[i-1];
				_menuitems[0]="";
				patched=true;
			}
			nameList=(_menuDomainRef==null)?_menuitems:_dom[_menuDomainRef[level]];
			refList=_r[nameList[0]];
			me.count=(refList==null)?nameList.length:refList.length;
			me.reset();
			var a=getCVE("_dv"+level).split(":");
			if(a.length>3&&def){
				a[3]=trim(a[3].toLowerCase());
				if(a[3]!=""){
					a[3]=a[3].replace(/&amp;/g,"&");
					a[3]=a[3].replace(/&apos;/g,"'").replace(/&#60;/g,"<").replace(/&#61;/g,"=").replace(/&#62;/g,">");
				}
				for(var i=0;i<me.count;i++){
					var v=getVal(i);
					if(v!=null)v=trim(v.toLowerCase());
					
					//alert(a[3]+" == "+v);
					
					if(a[3]==v){
						selectedIndex[level]=i+1;
						break;
					}
				}
			}
		}
	};
	me.getLevel=function(){return level};
	me.isMaxLevel=function(){return me.getLevel()==(me.levelCount-1)};
	me.getTitle=function(i){return fieldLabel(_a2i(_dom[i][0]))};
	me.setLevel((l!=null)?l:0,def);
	me.hasNext=function(){return index<me.count};
	me.getLabel=getVal;
	me.isSelected=function(){var b=index==selectedIndex[me.getLevel()];
		if(b)menuIndentLevel.set(me.getLevel()+1);
		return b;
	};
	me.getDomainPos=function(){return(me.levelCount>0&&(_menuDomainRef!=null))?_menuDomainRef[me.getLevel()]:0};
}
function getMenuProperty(n,def){return(_menu[n]==null)?def:_menu[n]}
function menuKeypress(ctl,e){
	if(!e)e=window.event;
	if(e.keyCode==13){
		window.setTimeout("menuSearch();",1);
		return false
	} else return true;
}
function getMenuQS(){return __menuqs}
function clearMenuQS(){__menuqs=""}
function menuQS(n,v){__menuqs+=n+'='+escape(v)+"&"}
function menuClear(pos){
	var nr=0,i=0;
	clearMenuQS();
	for(;i<=pos;i++)nr+=(getCVE("_domv"+i,"")!="")?1:0;
	for(i=(pos+1);i<__DOMAIN_STORE;i++)setCtlVal("_domv"+i,"");
	var v=["_h","","_start",0,"_p",0,"_vprev","","_v","","_val","","_g",1,"_searchdomain",-1,"_domflds",nr,"_flds",nr];
	for(i=0;i<v.length;i++)setCtlVal(v[i],v[++i]);
}

function menuSubmit(){
	var f=getData(),p;
	
	if(hasNoFrames())p=getNewUri("productlist",getCID())+getSIDQuery();
	else{
		p="/servlets/doDepartmentArticleList"+getSIDQuery();
		if(_cv("AE")=="customcatalog"&&_cv("AY")!="")p=__servlet+"DoCatalogListCustom"+getSIDQuery();
	}
	
	setCtlVal("_viewtype",1);
	setCtlVal("_moreinfo","0");
	if(f!=null){
		__b.save();
		if(!hasLayout())f.action=p;
		else if(_inf["catalog_folder"]&&trim(_inf["catalog_folder"])!="")f.action=_inf["catalog_folder"]
		
		try{f.submit()}
		catch(err){
			f["s"].value="";
			f["c"].value="";
			
			
			f.submit();
		}
	}
	else{
	 	var i=0,a=["_searchmethod","_searchdomain","_flds","_domflds","_g","_val","_v","_vprev","_p","_h","_start","_vid","_cid","_view","_orderview","_lang","_viewtype","_rows","_aid","_oid","_keyvalue","_cuid","_cusr"];
		for(;i<a.length;i++)menuQS(a[i],getCtlVal(a[i]));
		for(i=0;i<14;i++)menuQS("_domv"+i,getCtlVal("_domv"+i));
		if(__q.getOnPrefix)__menuqs+=__q.getOnPrefix("custom_");
		window.open(p+getMenuQS(),"_self");
	}
}
function menuSearch(name){
	menuClear(getMenuMaxDomainPos());
	var ctl,i,a=[],c="",c1=new RegExp("^\"|^'"),c2=new RegExp("\"$|'$"),s="";
	setCtlVal("_searchmethod","1");
	if(name!=null){
		ctl=getElementOnId(name);
		if(ctl!=null)s=ctl.value;
		setCtlVal("_keyvalue",s);
	}
	else{
	 s=getCtlVal("_keyvalue");
	 setCtlVal("search",s);
	 setCtlVal("_v",s);
	}
	s=menuSearchFilter(s);
	if((c1.test(s)&&c2.test(s))){
		s=s.substring(1,s.length-1);
		a[0]=s;
	}
	else{
		c="x";
		a=s.split(" ");
		if(a.length<2)a=s.split("+");
		if(a.length<2){
			a=s.split("|");
			c=".";
		}
	}
	i=a.length;
	setCtlVal("_val",s);
	setCtlVal("_v",a[0]);
	if(i>1)if(a[1]!="")setCtlVal("_v1",a[1]);else i--;
	if(i>2)if(a[2]!="")setCtlVal("_v2",a[2]);else i--;
	setCtlVal("_flds",i);
	setCtlVal("_op",c);
	menuSubmit();
}
function menuSearchFilter(s){
	if(s!=""){
		var i=0,r=[/^\s|\s$/ig,/ö|õ|ô|ó|ò/ig,/ï|í|ì/ig,/ë|ê|é|è/ig,/ä|ã|â|à/ig,/ü|û|ú|ù/ig,/ý/ig],n=['','o','i','e','a','u','y'];
		for(;i<r.length;i++)s=s.replace(r[i],n[i]);
		if((self.filter+"")!="undefined")s=self.filter(s);
	}return s
}
function menuDomainSearch(level,index){
	var mnu=new MenuItems(level,false),c,pos=mnu.getDomainPos();
	menuClear(level);
	setCtlVal("_keyvalue","");
	setCtlVal("_val","");
	setCtlVal("search","");
			
	setCtlVal("_domflds","1");
	setCtlVal("_flds","1");
	setCtlVal("_searchmethod","4");
	
	c=getCtl("_domv"+level);
	if(c!=null){
		if(c.length!=null)c.selectedIndex=index+1;
		else setCtlVal("_domv"+level,_dom[pos][0].toLowerCase()+':'+pos+':5:'+mnu.getLabel(index).toLowerCase());
	}
	if(this.event_menuItemSelected!=null)event_menuItemSelected(level+1,mnu.getLabel(index));
	menuSubmit();
	return false;
}
function selectMenuItem(level,lbl){
	var mnu=new MenuItems(--level,false),pos=mnu.getDomainPos();
	setCtlVal("_domv"+level,_dom[pos][0].toLowerCase()+':'+pos+':5:'+lbl.toLowerCase());
}
function menuLoadPage(p){
	window.open(p,"inline");
	var c=getElementOnId("inlineframe");
	if(c!=null)c.className="show";
	window.scrollTo(0,0);
	return false;
}
function menuLink(n){newWindow(getMenuProperty(n))}
function isEMailAddress(n){var v=getMenuProperty(n);return((v!=null)?v.indexOf("mailto:")!=-1:false)}
function menuBasket(){
	var bt=__b.get(__SYS+__BUT),bu=__b.get(__SYS+__BU);
	
	if(bt==''){
		if(hasNoFrames())bt="_self";
		else bt="_parent";
	}
	
	if(bu==''){
		if(hasLayout())bu=makeURL(getNewUri("checkout/basket","1"),'_viewtype',5);
		else if(hasNoFrames())bu=makeURL(getNewUri("basket","1"),'_viewtype',5);
		else bu=makeURL('/shop'+getVID()+'/c'+getCID()+'/framekassa.html');
	}
	window.open(bu,bt);
	return false;
}
function menuSearchClear(ctl,def){if(ctl.value==def)ctl.value=""}
function getInlineFrame(){return '<span id=inlineframe class=hide><iframe id=inline name=inline src="javascript:\'<html><body bgcolor='+getBGColor()+'></body></html>\'" border=0 height=100% width=100% frameborder=0 framespacing=0 marginheight=0 marginwidth=0 noresize scrolling=no hspace=0 vspace=0></iframe></span>'}
function getQuickSearch(v,s,style){
	if(s==null)s=10;
	return '<input '+((style!=null)?'style="'+style+'"':'')+' onkeypress="JavaScript:return menuKeypress(this);" name="_keyvalue" type="text" size="'+s+'" value="'+_inf["_keyvalue"]+'">'
}

function newWindow(p){
	var s='toolbar=yes,location=yes,resizable=yes,status=yes,scrollbars=yes,menubar=yes,width=';
	s+=(screen.width*0.8)+",height="+(screen.height*0.85-200)+",left="+(screen.width*0.09)+",top="+(screen.height*0.05);
	window.open(p,"_blank",s);
}
function getSearchButton(v,style){return '<input '+((style!=null)?'style="'+style+'"':'')+' name="searchcmd" type="button" value="'+v+'" onclick="JavaScript:menuSearch()";>'}

function MenuBlockList(){
	var me=this,index=-1,current=-1,order=[,,,,,],pos;
	me.name="";
	me.first=true;
	me.last=false;
	me.count=0;
	me.next=function(){
		index++;
		me.first=(index==0);
		while(order[index]==null&&index<order.length)index++;
		current++;
		me.name=order[index];
		me.last=(current>=(me.count-1));
		return me.hasNext();
	};
	me.reset=function(){
		me.first=true;
		me.last=false;
		index=-1;
		current=-1;
	};
	me.hasNext=function(){return current<me.count};

	addToList("custom1",getMenuProperty("customblock1",-1));
	addToList("custom2",getMenuProperty("customblock2",-1));
	pos=getMenuProperty("useextra",-1);
	addToList("useextra",(_menuDomainRef==null&&pos==0)?-1:pos);
	if(getMenuProperty("usequicksearch")==1)addToList("quicksearch",0);

	if(getMenuLevelCount()>0)addToList("items",1);
	if(getMenuProperty("urloptions")==1)addToList("basket",2);

	function addToList(n,index){
		if(index==null)index=0;
		if(index>=0){
			me.count++;
			if(index>order.length)index=order.length-1;
			if(order[index]!=null){
				for(var i=0;i<order.length;i++)if(order[i]==null){
					index=i;
					break;
				}
			}
			order[index]=n;
		}
	}
}

function frameCenter(bag){return '</td><td valign=top>'+getInlineFrame()}

function frameEnd(bag){return '</td></tr></table>'}


