/**
 * @(#)library/lib_genlist.js
 *
 * Copyright 1999-2007(c) MijnWinkel B.V.
 *
 * Version 7.4.0 30-may-2007
 */

function SearchFields(){
	var me=this,sm=getSearchMethod(),first=0,n=0,aid=getCVE("_aid"),sel,s="",def='<select name="searchview" onchange="JavaScript:__selectSearchView(this);">';

	var labels=[],controls=[],minmax=[];

	function getInput(i,nr,off){
		var t=__getUI(i);
		return '<input type=hidden name=_domv'+(nr+off)+'><input $$attr_list$$ onkeypress="JavaScript:__keyPressed();" name=_dominput'+(nr+off)+' value="'+_stripInfo(getCtlVal("_dv"+(nr+off)))+'">'
	}
	me.searchMethod=sm;
	
	var activeField=0;
	me.hiddenControls=__getHiddenDom();
	me.count=1;
	me.next=function(){activeField++};
	me.getLabel=function(n){
		if(n==null)n=0;
		return(activeField<labels.length&&labels[activeField]!=null)?labels[activeField][n]:"";
	};
	me.getControl=function(attr,n){
		if(attr==null)attr="";
		if(n==null)n=0;
		return(activeField<controls.length&&controls[activeField]!=null)?controls[activeField][n].replace("$$attr_list$$",attr):""
	};
	me.getMinMax=function(){return(activeField<minmax.length)?minmax[activeField]:false};
	
	if(sm==2){
		me.label[0]=["",""];
		me.count=1;
		if(_dv!=null&&_dv[0]!=null){
			s='<select $$attr_list$$ name="searchview" onchange="JavaScript:__selectSearchView(this);">';
			var o=getCVE("_optionall"),b=false,v=getCtlVal("_domain").toLowerCase(),i=1,dv=_dv[0],l=dv.length,all='<option value=*'+((v=="*")?' selected':'')+'>'+m("allproducts");
			if(o==1)s+=all;
			for(;i<l;i++){
				if(!b){
					b=(v==dv[i].toLowerCase());
					s+='<option value=\''+__htmlEsc(dv[i])+'\''+((b)?' selected':'')+'>'+dv[i];
				}else s+='<option value=\''+__htmlEsc(dv[i])+'\'>'+dv[i];
			}
			if(o==2)s+=all;
			controls[0]=[s,""];
		}else {
			controls[0]=[fieldLabel(_a2i(aid)),""];
		}
	}
	else if(sm==4){
		setCtlVal("_g","1");
		var tl=6,last,nr=0,i=0;
		for(;i<_dom.length;i++){
			if(_dom[i].length>0){
				if(_typ[i]!=7){
					labels[nr]=[fieldLabel(_a2i(_dom[i][0])),""];
					minmax[nr]=(__getUI(i)==6);
					if(minmax[nr])labels[nr][1]=labels[nr][0];
					
					var d=_dom[i],typ='1:';
					if(_dom[i].length==1){
						__domv[nr]=d[0]+':'+i+':';
						if(__getUI(i)==6){
							typ='6:';
							controls[nr]=[getInput(i,nr,0),getInput(i,nr,__MDOM)];
						}else controls[nr]=[getInput(i,nr,0),""];
						__domv[nr]+=typ;
					}
					else{
						__lastDomain=i;
						var n=1,dv=getCVE("_dv"+nr).toLowerCase(),sel="",val='',r=_r[d[0]];
						if(dv!="")dv=dv.replace(/&apos;/gi,"'").replace(/&#60;/gi,"<").replace(/&#62;/gi,">");
						s='<select $$attr_list$$ name=_domv'+nr+' onchange="JavaScript:__selectDomain('+i+',this);">';
						sel=(dv==val)?'selected':'';
						s+='<option '+sel+' value=\''+__htmlEsc(val)+'\'>'+m("all");
						if(r==null){
							for(;n<d.length;n++){
								val=d[0]+':'+i+':5:'+d[n];
								val=val.toLowerCase();
								sel=(dv==val)?'selected':'';
								s+='<option '+sel+' value=\''+__htmlEsc(val)+'\'>'+d[n]
							}
						}else{
							for(;n<r.length;n++)if(r[n]>0){
								if(isPart(i,r[n])){
									val=d[0]+':'+i+':5:'+d[r[n]];
									val=val.toLowerCase();
									sel=(dv==val)?'selected':'';
									s+='<option '+sel+' value=\''+__htmlEsc(val)+'\'>'+d[r[n]]
								}
							}
						}s+='</select>';
						controls[nr]=[s,""]
					}
				}
				nr++;
			}
		}
		me.count=nr;
	}
	else if(sm==1){
		me.searchField=m("allproducts");
		setCtlVal("_g","1");
		setCtlVal("_aid","A")
	}
	else{
		s+=def;
		for(var i=1;i<_m.length;i++){
			if(_se[_m[i][0]]==1&&!isMenuFld(i)){
				n++;
				first=i;
				sel=(aid==getAID(i))?'selected':'';
				s+='<option '+sel+' value='+getAID(i)+'>'+fieldLabel(i)+'</option>'
			}
		}
		if(n==1){
			s='<span class="mediumBold">'+fieldLabel(first)+':</span>';
			setCtlVal("_aid",getAID(first))
		}else s+='</select>';
	}
	
	me.hasNext=function(){
		return activeField<me.count;
	};
}


function SearchSelectionFields(type){
	var me=this,sm=getSearchMethod(),first=0,n=0,aid=getCVE("_aid"),i=1;
	var labels=[],selection=[],minmax=[];
	type=(type==null)?1:((type=="menu")?2:1);

	me.searchMethod=sm;

	var activeField=0;
	me.count=1;
	me.next=function(){activeField++};
	me.getMinMax=function(){return(activeField<minmax.length)?minmax[activeField]:false};

	me.getLabel=function(n){
		if(n==null)n=0;
		return(activeField<labels.length)?labels[activeField][n]:"";
	};
	
	if(sm==2){
		me.count=1;
		if(_dv!=null&&_dv[0]!=null){
			var v=getCtlVal("_domain").toLowerCase(),dv=_dv[0],l=dv.length;
			for(;i<l;i++){
				if(v==dv[i].toLowerCase()){
					selection[nr]=[dv[i],""];
					break;
				};
			}
		}else selection[nr]=[v,""];
	}
	else if(sm==4){
		var tl=6,last,nr=0,i=0;
		for(;i<_dom.length;i++){
			if(_dom[i].length>0){
				selection[nr]=['',''];
				labels[nr]=['',''];
				minmax[nr]=false;
				if((_typ[i]!=7&&type==1)||(_typ[i]==7&&type==2)){
					labels[nr]=[fieldLabel(_a2i(_dom[i][0])),""];
					minmax[nr]=(__getUI(i)==6);
					var d=_dom[i],typ='1:';
					if(_dom[i].length==1){
						selection[nr]=[_stripInfo(getCtlVal("_dv"+(nr+0))),_stripInfo(getCtlVal("_dv"+(nr+__MDOM)))];
					}
					else{
						var n=1,dv=getCVE("_dv"+nr).toLowerCase(),val='',r=_r[d[0]];
						if(dv!="")dv=dv.replace(/&apos;/gi,"'");
						
						if(r==null){
							for(;n<d.length;n++){
								val=(d[0]+':'+i+':5:'+d[n]).toLowerCase();
								if(dv==val){
									selection[nr]=[d[n],''];
									break;
								}
							}
						}else{
							for(;n<r.length;n++)if(r[n]>0){
								val=(d[0]+':'+i+':5:'+d[r[n]]).toLowerCase();
								if(dv==val){
									selection[nr]=[d[r[n]],''];
									break;
								}
							}
						}
					}
				}
				nr++;
			}
		}
		me.count=nr;

	}
	else{
		for(;i<_m.length;i++){
			if(_se[_m[i][0]]==1&&!isMenuFld(i)){
				n++;
				first=i;
				if(aid==getAID(i)){
					selection[nr]=[fieldLabel(i),''];
					break;
				}
			}
		}
	}
	me.hasNext=function(){return activeField<me.count};
	me.getValue=function(n){return selection[activeField][n]};

}
function isEmptyVal(v){return(v!=null&&v!='')?(v.replace(/&#160;|&nbsp;|^\\s+|\\s+$/gi,'')==''):true}


function getCredit(){return(this._credit!=null)?_credit:""}

function setCustomFormFields(){
	var f=getData(),i,n,v,c;
	if(f){
		for(i=f.length-1;i>=0;i--){
			c=f[i];
			n=""+((c)?c.name:"");
			if(n.indexOf("form_")==0){
				v=_inf[n];
				if(v&&v!="")c.value=v;
			}
		}
	}
}
function getCustomFormField(n,def){
	var v=(_inf["form_"+n]);
	return(v)?v:((def)?def:"");
}
function getCustomFormFieldSubmitted(n,def){
	var v=(_inf["form_"+n]);
	return(v)?v:((def)?def:"");
}

/** remote access **/

function refreshProduct(){
	var c=getElementOnId("myshp-product");
	if(c==null)c=getElementOnId("myshp-product"+getCID()+"."+getRowNumber());
	
	self.innerData="";
	self.w=function(s){self.innerData+=s};
	if(self.displayProduct)displayProduct();
	else if(self.__refeshProduct)__refeshProduct();
	else c=null;
	if(c)c.innerHTML=self.innerData;
	trigger("next");
	trigger("prev");
}

function refreshReleadtedProduct(){_rel.increment()}

var __refeshProduct=null;
function dpRegister(f){__refeshProduct=f}

function refreshReladtedProductInner(){_rel.redraw()}

function setRaw(n,v){
	if(v!=null){
		n=_i(n);
		if(__rowData&&n<__rowData.length)__rowData[n]=v;
	}
	else{
		setCtlVal("_oid",_i(n[0]+1));
		_d[0]=n;
		__rowData=n;
		__activeRow=0;
	}
}
function getRaw(){return _activeRow}

var _relData=null;
function getRelatedData(){return _relData}

function Related(){
	var me=this,buf=[],lst,flds=[];
	me.reset=function(){
		me.count=0;
		me.index=0;
		me.active=0;
		lst=[];
	};
	me.clear=function(){
		lst=null;
		var c=getElementOnId("myshp-related");
		if(c)c.innerHTML="";
		buf=[];
		self._stc=null;
		flds=[];
		if(_relData)_relData.clear();
	};
	me.append=function(){for(var i=0,p=me.append.arguments,n=p.length;i<n;i++)buf.push(p[i])};
	me.toString=function(s){return buf.join("")};
	me.add=function(v){lst[lst.length]=v};
	me.enabled=function(){return lst!=null}
	me.increment=function(){
		me.count++;
		me.active=me.count;
	};
	me.hasNext=function(){return(lst!=null&&me.index<lst.length)};
	me.next=function(){return lst[me.index++]};
	me.isFirst=function(){return me.index==0};
	me.redraw=function(){
		var c=getElementOnId("myshp-related");
		if(c){
			self.innerData="";
			self.w=function(s){self.innerData+=s};
			displayReleated();
			c.innerHTML=self.innerData;
		}
	};
	me.setStock=function(v){
		self._stc=[];
		_stc[__rowData[0]]=v;
	};
	me.fldAdd=function(n){
		for(var i=1;i<_m.length;i++)if(_m[i][0]==n){
			flds[i]=1;
			break;
		}
	};
	me.show=function(i){return flds[i]}
	me.reset();
	me.init=function(){
		if(self.RelatedData&&self._stc){
			var i=0,d=new RelatedData(),l=d.count();
			for(;i<l;i++)_stc[d.getOid(i)]=d.getStock(getCID(),i);
		}
	};
	me.dataLoaded=false;
}
var _rel=new Related();

function RelatedDataTemplate(duplicate){
	var me=this,_d=[],_cid=[],_meta=[],_set=[],_stock=[];
	
	me.set=function(d,n,stock){
		if(n==null)n=_rel.active;
		_d[n]=d
		_stock[n]=stock;
	};
	me.get=function(n){
		var v="",d=_d[_rel.active];
		if(n==null)v=d;
		else if(n>=0&&n<d.length)v=d[n];
		return v;
	};
	me.setCid=function(i,cid){_cid[i]=cid};
	me.setMeta=function(cid,meta){_meta[cid]=meta};
	me.setSettings=function(cid,set){_set[cid]=set};
	me.setStock=function(v){_stock[_i(_rel.active)]=v};
	me.getStock=function(){
		return _stock[_i(_rel.active)]
	};
	
	me.show=function(i){return _fs[__rowData[0]+1].active(i)};
	me.count=function(){return _d.length};
	me.select=function(i){
		__k2i=[];
		__rowData=_d[i];
		if(_cid.length>0&&_meta[_cid[i]]){
			setCtlVal('_cid',_cid[i]);
			_m=_meta[_cid[i]]();
			
			
			
			_c=_set[_cid[i]]()
		}
	}; 
	me.clear=function(){_d=[];_cid=[];_meta=[];_set=[];_stock=[]};
	
	if(duplicate==true){
		/*
		 * Duplicate the related products.
		 */
		if(!_rel.dataLoaded&&self.RelatedData){
			_rel.dataLoaded=true;
			for(var data,d=new RelatedData(),i=0,l=d.count();i<l;i++)me.set(d.get(i),i,d.getStock(getCID(),i));
		}
	};
}

/*
 * Load the next related product or show the product list if the last is loaded.
 */
function nextRelated(){
	if(_rel.enabled()){
		if(_rel.hasNext())new Remote().request(this.response2,"catalog_item_data","_oid",_rel.next());
		else _rel.redraw();
	}
}

/*
 * Field selection base class, used to create on the fly field 
 * selection objects.
 */
function FieldSelection(){
	var me=this,fld=[],fldsel=[];
	me.set=function(col,lst){fld[col]=lst};
	me.setActive=function(col,v){fldsel[col]=v};
	me.get=function(i){return fld[i]};
	me.active=function(i){return fldsel[i]};
}

function parseDocument(doc,rel){

	if(doc==null)return;
	function get(c){
		var v="";
		try{v=c.firstChild.nodeValue}
		catch(e){}
		return v
	}
	function getAttr(c,n){
		var v="";
		try{v=c.getAttribute(n)}
		catch(e){}
		return v
	}
	function getCols(r){return r.getElementsByTagName('col')}
	
	var index=0,rows=doc.getElementsByTagName('row'),type,done=[];
	if(rows!=null){
		for(;index<rows.length;index++){
			row=rows[index];
			type=row.getAttribute("type")
		 	if(!done[type]&&type=="catalog"){
		 		
		 		done[type]=true;
				var cols=row.getElementsByTagName('col'),s="",v,item=[],l=cols.length,c;
				item[0]=row.getAttribute("number");
				for(var i=0;i<l;i++){
					if(cols[i].firstChild!=null){
						v=cols[i].firstChild.nodeValue;
						if(v)item[i+1]=v;
						else item[i+1]="";
					}
				}
				if(_relData==null)_relData=new RelatedDataTemplate();
				if(!rel){
					_relData.set(item);
					_relData.setCid(item[0],getCID());
				}
				else setRaw(item);
				
			}
			else if(!done[type]&&type=="catalog_replace"){
		 		done[type]=true;
				var cols=row.getElementsByTagName('col'),l=cols.length,n,c,i=0;
				for(;i<l;i++){
					c=cols[i];
					n=c.getAttribute("number");
					v=(c.firstChild!=null)?c.firstChild.nodeValue:"";
					if(v&&v!=''&&v!='*'){
						if(n){
							if(rel)setRaw(n,v);
							else _relData.get()[n]=v;
						}
						else{
							n=c.getAttribute("name");
							if(n&&n=="stock"){
								if(rel)_rel.setStock(v);
								else _relData.setStock(v);
							}
						}
					}
				}
			}
			else if(type=="catalog_selection"){
				if(this.selection)selection.reset();
				var cols=row.getElementsByTagName('col'),l=cols.length,col,i=0,opts,optsl,opti,opt,oid=_i(row.getAttribute("number"))+1;
				var info=new FieldSelection();
				_fs[oid]=info;
				for(;i<l;i++){
					col=cols[i];
					colNr=cols[i].getAttribute("number");
					opts=cols[i].getElementsByTagName('option');
					optsl=opts.length;
					var lst=[],sel="";
					for(opti=0;opti<optsl;opti++){
						opt=opts[opti];
						if(opt.firstChild!=null){
							lst[opti]=opt.firstChild.nodeValue;
							if(sel==""&&opt.getAttribute("selected")){
								sel=opt.getAttribute("inline");
								if(sel=="")sel=lst[opti];
							}
						}
					}
					lst[optsl]="";
					info.set(colNr,lst);
					info.setActive(colNr,sel);
				}
			}
			else if(rel&&type=="catalog_related"){
				var cols=row.getElementsByTagName('col'),l=cols.length,i=0;
				if(l>0){
					_rel.reset();
					for(;i<l;i++)if(cols[i].firstChild!=null){
						_rel.add(cols[i].firstChild.nodeValue);
					}
				}
			}
			else if(!done[type]&&type=="catalog_related_fields"){
				done[type]=true;
				var cols=row.getElementsByTagName('col');
				if(cols)
					for(var l=cols.length,i=0;i<l;i++){
						if(cols[i].firstChild!=null)_rel.fldAdd(cols[i].firstChild.nodeValue);
					}
			}
			else if(rel&&!done[type]&&type=="catalog_nav"){
		 		done[type]=true;
				var cols=getCols(row),v,l=cols.length,c,t;
				for(var i=0;i<l;i++){
					c=cols[i];
					v=get(c);
					t=getAttr(c,"type");
					if(t=="next")_inf['oidnext']=v;
					else if(t=="prev")_inf['oidprev']=v;
				}
			}
		}
	}
}

function response3(doc){
	if(_relData==null)_relData=new RelatedDataTemplate(true);
	parseDocument(doc,false);
	refreshReladtedProductInner();
}
function response2(doc){
	parseDocument(doc,false);
	refreshReleadtedProduct();
	nextRelated();
}
function response(doc){
	 _rel.clear();
	parseDocument(doc,true);
	refreshProduct();
	nextRelated();
}

function Remote(filter){
	var me=this,req=null,callback=null;
	if(filter==null)filter=false;

	function val(f,i){
		var v=f[i].value;
		if(v!=null&&v!="")v=v.replace("+","%2b");
		return v
	}
	me.request=function(cb,type){
		var qs,q=new QueryString(),f=getData(),i=0,l,argl=me.request.arguments,n;
		if(cb&&f){
			
			l=f.length;
			for(;i<l;i++){
				var n=f[i].name,add=true;
				if(filter)add=(n!="s"&&n!="c");
				if(add)q.set(n,val(f,i));
			}
			
			l=argl.length;
			for(i=2;i<l;i+=2)q.set(argl[i],argl[i+1]);
			q.set('type',type);
			q.set('aid',getAID(1));
			qs=q.getQueryString();
			dalert(qs);
			callback=cb;
			if(window.XMLHttpRequest)req=new XMLHttpRequest();
		    else if(window.ActiveXObject)req=getReq();
		    if(req){
		    	if(self.lockAjax)lockAjax(true);
		        req.onreadystatechange=processReqChange;
		        if(hasNoFrames()){
	        		if(self._inf&&_inf["rpc_domain"]=="1"){
	            		if(_inf["rpc_domain_folder"]!="")req.open('POST',_inf["rpc_domain_folder"]+"rpc/"+"?jid="+(new Date()).getTime(),true);
	            		else req.open('POST',"/rpc/"+"?jid="+(new Date()).getTime(),true);
	            	}
	            	else{
	            		req.open('POST',getNewUri("rpc","")+"?jid="+(new Date()).getTime(),true);
	            	}
		        }
	            else req.open('POST',"/servlets/ClientAJAX?jid="+(new Date()).getTime(),true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				req.send(qs);
		    }else callback(null);
		}
	};
	function getReq(){
		var activex="Microsoft.XMLHTTP",req=null;
		try{req=new ActiveXObject("Msxml2.XMLHTTP");}
		catch(err){}
		if(req==null){
			try{req=new ActiveXObject(activex);}
			catch(err){}
		}
		return req;
	}

	function processReqChange(){
    	if(req.readyState==4){
	        if(req.status==200){
				var doc=req.responseXML.documentElement;
				dalert(req.responseText);
				if(!doc){
					var xmlTxt=req.responseText;
					if(typeof DOMParser!="undefined")doc=(new DOMParser()).parseFromString(xmlTxt,"text/xml");
					else if(typeof ActiveXObject!="undefined"){
						doc=new ActiveXObject("Microsoft.XMLDOM");
						if(doc){
							doc.async=false;
							doc.loadXML(xmlTxt);
						}
					}
					if(doc)doc=doc.documentElement;
				}
				if(doc)callback(doc);
			}else callback(null);
			done=true;
        }
    }
}

function relatedOrder(oid,cid,count){
	if(count!=null)oid=count+"__"+oid;
	showPopup(oid,cid);
}

function orderTriggered(extra,oid,count){
	var f=getData(),s=new SB(),ss=new SB(),sep1='',sep2='',v,l;
	dalert("orderTiggered");
	if(f){
		if(!oid)oid=getOID();
		
		dalert("oid"+oid);
		if(selection.enabled(oid)){
			if(count!=null&&count!="")count+="_";
			else count="";
			
			dalert(count);
			for(var index=0,c,i=1;i<getNrOfFields();i++){
				if(selection.isInlineSelection(oid,i)){
					dalert("field: "+'_selection'+count+oid+'_'+(i-1));
					c=f['_selection'+count+oid+'_'+(i-1)];
					if(c){
						if(c.selectedIndex!=-1)index=c.selectedIndex;
						v=trim(c.options[index].value);
						l=fieldLabel(i);
						s.append(sep1,l," ",v);
						ss.append(sep2,l,"%3d",v);
						sep1=',';
						sep2=';';
					}
				}
			}
			if(extra){
				extra['_xd']=s.toString();
				extra['_xds']=ss.toString();
			}
		}
		c=f["productcount"];
		if(c&&extra)extra['_xc']=c.value;
	}
}

function getStockVal(count,oid){
	var v=-1,n;
	
	if(count==null){
		n=(oid==null)?__rowData[0]:(_i(oid)-1);
		if(self._stc&&_stc[n]!=null)v=_stc[n];
		if(v==-1)v=fieldRaw(getStockFld());
		if(v=="")v=0;
		if(v!=-1&&self.getBasketInfo)v-=getBasketInfo().getProductQuantity(oid,getCID());
	}
	else{
		if(_relData){
			_rel.active=count;
			v=_relData.getStock();
			if(v==null)v=_relData.get(getStockFld());
		}
		else{
			/*
			 * Related fields stock value on page entry.
			 */
			 if(self.RelatedData){
				var d=new RelatedData();
				v=d.getStock(getCID(),count);
				if(v==null){
					var data=d.get(count);
					if(getStockFld()<data.length)v=data[getStockFld()];
				}
			 }
		}
	}
	return(v=="*")?-1:v;
}

function SB(){
	var me=this,buf=[];
	me.append=function(){for(var i=0,p=me.append.arguments,n=p.length;i<n;i++)buf.push(p[i])};
	me.toString=function(s){return buf.join("")};
}

function Selection(){
	var me=this,ins=[];
	me.has=function(oid,col){return (self._fs!=null)&&(_fs[oid]!=null)&&(_fs[oid].get(--col)!=null)};
	me.get=function(oid,col,first){
		if(first==null)first=false;
		var sel=_fs[oid].get(--col);
		if(first)sel=sel[0];
		else if(sel.length<3&&sel[0].indexOf(';')!=-1){
			sel=sel[0].split(';');
			sel[sel.length]="";
			if(!ins[oid])ins[oid]=[];
			ins[oid][col]=true;
		}
		return sel
	};
	me.active=function(oid,col){return _fs[oid].active(--col)};
	me.enabled=function(oid){return (self._fs!=null)&&(_fs[oid]!=null)};
	me.isInlineSelection=function(oid,col){return(ins[oid]&&ins[oid][--col])?ins[oid][col]:false};
	me.reset=function(oid){ins[oid]=[]}; 
}
var selection=new Selection();

function _selectProduct(ctl,i,oid,callback,count){
	if(!selection.isInlineSelection(oid,i)){
		
		var n=(count=="")?"":count+"_";
		for(var f=getData(),c;i<getNrOfFields();i++){
			c=f['_selection'+n+oid+'_'+i];
			if(c!=null)c.selectedIndex=-1;
		}
		setCtlVal("_oid",oid);
		new Remote().request(callback,"catalog_item_data","_oid",oid,"counter",count);
	}
}
var _activeOid;
function getNextOid(offset){
	var oid=(offset>0)?_inf["oidnext"]:_inf["oidprev"];
	if(oid==null){
		if(_activeOid==null)_activeOid=_i(getCtlVal("_oid"));
		_activeOid+=offset;
	}else _activeOid=oid;
	return _activeOid
	 
}

function selectProduct(ctl,i,oid,rowNr){
	if(self.setRowNumber)setRowNumber((rowNr)?rowNr:0);
	if(ctl==null)_activeOid=_i(oid);
	_selectProduct(ctl,i,oid,self.response,"")
}
function selectProductRel(ctl,i,oid,count){
	_rel.active=count;
	_selectProduct(ctl,i,oid,self.response3,count)
}

function continueNextPage(vt){
	var f=getData();
	if(f!=null){
		// do not validate
		if(vt=="")vt=null;
		if(this.hasNoFrames&&hasNoFrames())f.action=getNewUriCheckout("placeorder","1")+getSIDQuery();
		else f.action=getOrderHandler();
		nextPage(vt,-1)
	}
}

var __triggers=[];
function registerTrigger(n,func){__triggers[n]=func}
function trigger(n){if(__triggers[n])__triggers[n]()}
