/**
 * @(#)shop/shop.js
 *
 * Copyright 1999-2009(c) MijnWinkel B.V.
 *
 * Version 9.3.0 6-apr-2009
 */
window.history.go(1);
var shopPopup=[],shopPage=[],shopParam=[],shopKeys=[];
function trim(v){return(v=='')?v:v.replace(/^\s+|\s+$|&nbsp;|&#160;/gi,'')}

function Navigator(){
	var init=true,me=this;
	var p=[],n=[],ret,par,page,servlet,whlp,isstatic=false,ptarget=null,ftarget="";;

	me.exclude="";
	me.setTarget=function(s){ptarget=s};
	me.getTarget=function(){return ptarget};

	me.setFrame=function(s){ftarget=s};
	
	me.setServlet=function(n,domain){servlet=((domain!=null)?domain:"")+"/servlets/"+n};
	
	
	me.getServlet=function(p){
		if(p==null)p=true;
		return servlet+((p)?getParameters():"")
	};
	function _setFld(n,v){
		var f=getData(),c;
		if(f!=null)c=f[n];
		if(c!=null)c.value=v;
	}
	function _getURL(s){return((isstatic)?"":"")+s;}
	
	function _3(p){par=p;}
	function _4(){return par;}
	function _1i(name,val){
		var b=false,l=n.length;
		for(var i=0;i<l;i++){
			if(n[i]==name){
				b=true;
				break;
			}
		}
		if(!b)n[l]=name;
		p[name]=val;
		if(!init)_setFld(name,val);
	}
	function _1h(n){
		var s=p[n];
		return(s==null)?s="":s;
	}
	function _5(v){me.set("xsl",v);}

	function _8(n){
		page=_getURL("/shop/"+n);
		_setFld("page",n);
	}
	function _9(){return page+getParameters();}
	function getParameters(){
		var l=n.length,s="?",nn="",name;
		for(var i=0;i<l;i++){
			name=n[i];
			
			if(me.exclude&&me.exclude!=""){
				if(me.exclude.indexOf("|"+name+"|")==-1){
					s+=nn+name+"="+escape(p[name]);
					nn="&";
				}
			}
			else{ 
				s+=nn+name+"="+escape(p[name]);
				nn="&";
			}
		}return s;
	}
	function _1a(p){
		if(p==null||p==""){
			me.setXSL("static_department");
			me.setServlet("DepartmentList");
			_load(me.getServlet(),"");
		}
		else _load('/data/v'+me.get("vid")+'/objects/c'+me.get("cid")+'/'+p,getParameters());
	}
	function _1c(p){
		/*if(p==null)p='help.html';*/
        if(p==null)p='welcome_at_myshop.html';
		if(whlp!=null)whlp.close();
		
		var lang="nl",f=getData();
		
		if(me.get("lang")!="")lang=me.get("lang");
		else if(me.get("editlang")!="")lang=me.get("editlang");
		else if(f&&f["editlang"])lang=f["editlang"].value;
		if(lang!="en"&&lang!="nl")lang="nl";
		//var host=(lang=="en")?"myshop.com":"mijnwinkel.nl";
        var host="mijnwinkel.nl";
		/*whlp=window.open("http://www.mijnwinkel.nl/help/nl/index.html","Help","scrollbars=1,height=800,width=1000,left=10,top=10");*/
        whlp=window.open("http://www."+host+"/help/"+lang+"?page="+p.substring(0,(p.length-5))+"&language="+lang,"Help","height=800,width=1000,left=10,top=10");
	}
	function _1d(p,domain){
		me.setServlet(p,domain);
		_load(me.getServlet(),"");
	}
	function _1b(p){_load(p,"");}
	function _load(page,q){
		if(me.getTarget()!=null)window.setTimeout('window.open("'+(page+q)+'","'+me.getTarget()+'");',10);
		else{
			var p=self.parent;
			if(p!=null){
				if(p.department==null)window.setTimeout('self.parent.parent.parent.department.location.replace("'+page+q+'");',1);
				else window.setTimeout('self.parent.department.location.replace("'+page+q+'");',1);
			}
		}
	}
	function _1g(t){
		try{
			me.set("activetab",(t!=null)?t:"");
			me.setXSL("static_menu");
			me.setServlet("ShopList");
			window.setTimeout('self.parent.menu.location.replace("'+me.getServlet()+'");',1);
		}catch(e){}
	}
	
	function _1e(k,w,h,l,t){_loadPop(k,me.getPage(),w,h,l,t);}
	function _1f(k,w,h,l,t){_loadPop(k,me.getServlet(),w,h,l,t);}
	
	this.loadPopup=function(page,k,w,h,l,t){
		_loadPop(k,page,w,h,l,t)
	};
	
	function _loadPop(k,page,w,h,l,t){
		if(shopPopup[k]!=null&&shopPopup[k].frames!=null)shopPopup[k].focus();
		else{
			if(shopPopup[k]!=null)shopPopup[k].close();
			var d=new Date();
			if(parseInt(navigator.appVersion)>=4){
				w=(w==null)?parseInt(screen.width*0.8,10):w;
				h=(h==null)?parseInt(screen.height*0.85,10)-200:h;
				l="left="+((l==null)?parseInt((screen.width-w)*0.5,10):l)+",";
				w="width="+w+",";
				t="top="+((t==null)?parseInt((screen.availHeight-h)*0.5,10):t);
				h="height="+h+",";
			}
			else{
				w="width="+((w==null)?"520":w)+",";
				h="height="+((h==null)?"280":h)+",";
				l=(l==null)?"":"left="+l+",";
				t=(t==null)?"":"top="+t;
			}
			shopPopup[k]=window.open("/shop/popup.html?key="+k,ftarget,'toolbar=no,location=no,resizable=yes,status=no,scrollbars=no,menubar=no,'+w+h+l+t);
			shopPage[k]=page;
			shopParam[k]=me.getParameters();
			var b=false;
			var l=shopKeys.length;
			for(var i=0;i<l;i++){
				if(shopKeys[i]==k){
					b=true;
					break;
				}
			}
			if(!b)shopKeys[l]=k;
		}
	}
	function _1j(b){isstatic=b;}
	this.set=_1i;
	this.get=_1h;
	this.setReturn=function(r){ret=r};
	this.getReturn=function(){return ret};
	this.setParameters=_3;
	this.getParameters=_4;
	this.setXSL=_5;
	this.setPage=_8;
	this.getPage=_9;
	this.loadDepartment=_1a;
	this.loadPage=_1b;
	this.loadHelp=_1c;
	this.loadServlet=_1d;
	this.loadPopupPage=_1e;
	this.loadPopupServlet=_1f;
	this.updateMenu=_1g;
	this.setStatic=_1j;

	this.submitPage=function(p){
		var f=getData();
		if(f!=null){
			showBusy();
			var cmd=f["ok"];
			if(cmd==null)cmd=f["submitClose"];
			if(cmd==null)cmd=f["dosubmit"];
			if(cmd!=null)cmd.disabled=true;
			f.action=(p==null)?me.getServlet():p;
			f.submit();
		}
	};
	
	var s=self.location.search;
	if(s&&s!=""){
		var p=s.substr(1).split("&"),l=p.length,i=0,v;
		for(;i<l;i++){
			v=p[i].split("=");
			me.set(v[0],unescape(v[1]));
		}
	}
	
	var f=getData();
	if(f){
		for(var i=0;i<f.length;i++){
			if(f[i].value!="")me.set(f[i].name,f[i].value);
		}
	}
	init=false;
}

function logger(s){
	if(false)try{if(self.console)console.log(s)}catch(e){}
}

/* Close all open child windows. */
function doClose(){
	var k,l=shopKeys.length,i=0;
	for(;i<l;i++){
		k=shopKeys[i];
		try{
			if(shopPopup[k]){
				if(shopPopup[k].doClose)shopPopup[k].doClose(false);
				shopPopup[k]=null;
			}
		}catch(e){}
	}
	/* clear the references */
	l=shopKeys.length,i=0;
	for(;i<l;i++){
		k=shopKeys[i];
		if(shopPopup[k])shopPopup[k]=null;
	}
}

// Load the page as a popup window.
function loadPage(k){
	try{
		if(shopPopup[k].frames[0])
			shopPopup[k].frames[0].location=shopPage[k];
	}catch(e){}
	return shopParam[k];
}
// Callback from the child window when unloading.
function unloadPage(k){
	shopPopup[k]=null;
	shopPage[k]=null;
}

function nw(p){
	var d=new Date();
	var s='toolbar=yes,location=yes,resizable=yes,status=yes,scrollbars=yes,menubar=yes,width=';
	s+=(parseInt(navigator.appVersion)>=4)?((screen.width/100)*80)+",height="+(((screen.height/100)*85)-200)+",left="+((screen.width/100)*9)+",top="+((screen.height/100)*14): "600,height=280";
	window.open(p,d.getTime(),s);
}
function submitPage(f){
	showBusy();
	var cmd=f["ok"];
	if(cmd==null)cmd=f["submitClose"];
	if(cmd==null)cmd=f["dosubmit"];
	if(cmd!=null)cmd.disabled=true;
	f.submit();
	return true;
}

/* Show the default busy/is processing message. */
function showBusy(){
	var f=getData(),show=true;
	if(f&&f["settingsID"])show=(f["settingsID"].value!="_back_");
	if(show){
		var a=getElementOnId("busy");
		if(!a)a=getElementOnId("dialog-busy");
		if(!a)a=getElementOnId("wizard-busy");
		if(a)a.style.display="block";
	}
}

/* Get a reference to the default form. */
function getData(){
	return self.document.forms["data"]
}

/* Get an input field value from the default data form. */
function getValue(name){
	var s="",f=getData();
	if(f)s=f[name].value;
	return s;
}

/* Send a notification to the parent (caller) page. */
function doParentNotify(nav){
	try{
		if(self.parent.document!=null&&self.parent.notifyOpener!=null){
			self.parent.notifyOpener(nav.getReturn(),nav);
		}
	}catch(e){}
}

/* Update the state on the parent (caller) page. */
function updateParent(nav,name,value){
	nav.set("caller",name);
	nav.set("selection",value);
	doParentNotify(nav);
	nav.set("selection","");
	nav.set("caller","");
}

/* Command handler. */
function doCommand(cmd){
	var nav=new Navigator(),cont=true,ret=null,n=doCommand.arguments.length;
	if(n>1){
		var i=1,a=doCommand.arguments;
		for(;i<n;i+=2)nav.set(a[i],a[i+1]);
	}
	if(self.commandHandler)ret=commandHandler(cmd,nav);
	if(ret)cont=ret;
	if(cont&&(cmd=="submitClose"||cmd=="close"||cmd=="closeCancel"||cmd=="notify")){
		if(cmd=="notify")doParentNotify(nav);
		if(cmd=="closeCancel")self.parent.doClose(true);
		if(cmd=="submitClose"||cmd=="close"){
			doParentNotify(nav);
			self.parent.doClose(true);
		}
	}
}

/* Close a dialog page. */
function closeDialog(nav){
	try{
		doParentNotify(nav);
		self.parent.doClose(true);
	}catch(e){}
}

function getParameters(){
	var param=[];
	try{
		if(self.parent.document)
			param=self.parent.parameters;
	}catch(e){}
	return param;
}

function getElementOnId(n){
	var ref;
	if(document.layer)ref=layer[n];
	else if(document.all==null)ref=document.getElementById(n);
	else ref=document.all[n];
	return ref;
}

function doValidate(f,v){
	var b=true,i=0;
	for(;v.length>i;i++){
		var n=v[i];
		b=ValFld(f[n[0]],n[1],n[2],n[3],(n[4]==null)?"":n[4],(n[5]==null)?0:n[5]);
		if(!b)break;
	}return b;
}

function printf(v){
	var arg=printf.arguments,i=1,re=new RegExp("%%","i");
  	for(;i<arg.length;i++)v=v.replace(re,arg[i]);
	return v
}
