var autoFocus_skipFilled = 1;
var closedBoxes = new Array();
var openBoxes = new Array();
var interactiveTable_rowData = new Array();

function findObj(n,d){ 
 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { 
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} 
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; 
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); 
 if(!x && d.getElementById) x=d.getElementById(n); return x; 
}

function relocate(url){
 if(typeof(s_sessVar)!='undefined'&&typeof(s_sessID)!='undefined') url+=((url.indexOf('?')!=-1)?'&':'?')+s_sessVar+'='+escape(s_sessID);
 var r=(typeof(document.rootDir)!='undefined')?document.rootDir:'/db/';
 if(url.substring(0,r.length)!=r && url.substring(0,1)!='/') url=r+url;
 window.status='Bezig met laden: '+url;
 location.href=url;
}

function fetchOpenBoxes(){
 var cObj;
 openBoxes = s_cookieRead('openBoxes');
 if(!openBoxes) openBoxes = new Array();
 var l = (typeof(openBoxes.length)!='undefined') ? openBoxes.length : 0;
 for(var i=0;i<l;i++){
  cObj=findObj(openBoxes[i]);
  if(cObj){
   toggleMultiple(cObj);
  }
 }
}

function addOpenBox(objID){
 var l = (typeof(openBoxes.length)!='undefined') ? openBoxes.length : 0;
 if(!in_array(objID,openBoxes)){
  openBoxes[l] = objID;
 }
}

function removeOpenBox(objID){
 openBoxes = array_remove_val(openBoxes,objID);
}

function saveOpenBoxes(){
 if(openBoxes && openBoxes.length){
  s_cookieCreate('openBoxes',openBoxes,365);
 }
}

function fetchClosedBoxes(){
 var cObj;
 closedBoxes = s_cookieRead('closedBoxes');
 if(!closedBoxes) closedBoxes = new Array();
 var l = (typeof(closedBoxes.length)!='undefined') ? closedBoxes.length : 0;
 for(var i=0;i < l;i++){
  cObj = findObj(closedBoxes[i]);
  if(cObj){
   cObj.style.display = 'none';
  }
 }
}

function addClosedBox(objID){
 var l = (typeof(closedBoxes.length)!='undefined') ? closedBoxes.length : 0;
 closedBoxes[l] = objID;
}

function in_array(item,arr){
 for(k in arr){
  if(arr[k]==item) return true;
 }
 return false;
}

function array_remove_val(arr,val){
 var nArr = new Array(),nl=0;
 var l = (typeof(arr.length)!='undefined') ? arr.length : 0;
 for(var i=0;i<l;i++){
  if(arr[i]!=val){
   nArr[nl] = arr[i];
   nl=nArr.length;
  }
 }
 return nArr;
}

function removeClosedBox(objID){
 var nClosedBoxes = new Array();
 var l = (typeof(closedBoxes.length)!='undefined') ? closedBoxes.length : 0;
 var nl = (typeof(nClosedBoxes.length)!='undefined') ? nClosedBoxes.length : 0;
 for(var i=0;i<l;i++){
  if(closedBoxes[i]!=objID) nClosedBoxes[nl] = closedBoxes[i];
  nl = (typeof(nClosedBoxes.length)!='undefined') ? nClosedBoxes.length : 0;
 }
 closedBoxes = nClosedBoxes;
}

function saveClosedBoxes(){
 if(closedBoxes && closedBoxes.length){
  s_cookieCreate('closedBoxes',closedBoxes,365);
 }
}

function toggle_rows(objID){
 var objs = xGetElementById(objID);
 if(objs.style.display=='none'){
  addOpenBox(objID);
  toggleMultiple(objID);
 }else{
  removeOpenBox(objID);
  toggleMultiple(objID);
 }
}

function toggleMultiple(obj){
 if(typeof(obj)=='string') obj = findObj(obj);
 if(obj && typeof(obj.length)!='undefined'&&obj.length>1){
  for(i=0;i<obj.length;i++){
   if(obj[i].style.display=='block'){
    obj[i].style.display = 'none';
   }else{
    obj[i].style.display = 'block';
   }
  }
 }else if(obj){
  if(obj.style.display=='block'){
   obj.style.display = 'none';
  }else{
   obj.style.display = 'block';
  }
 }
}

function processSubmit(frm,noSubmit){
 if(typeof(frm)=='string') frm = findObj(frm);
 var btn = xGetElementsByTagName('button',frm);
 window.status = 'Een ogenblik geduld a.u.b.';
 if(btn){
  btn.innerHTML = 'Een ogenblik geduld a.u.b.';
  btn.disabled = true;
 }
 if(!noSubmit) frm.submit();
}

function fldSetValue(obj,val){
 if(typeof(obj)=='string') obj = findObj(obj);
 if(obj) obj.value = val;
}

function toggleLayerBlock(obj){
 if(typeof(obj)=='string') obj = findObj(obj);
 if(obj.style.display!='block'){
  obj.style.display = 'block';
  return true;
 }else{
  obj.style.display = 'none';
  return false;
 }
}

function toggleLayerInline(obj){
 if(typeof(obj)=='string') obj = findObj(obj);
 if(obj.style.display=='inline'){
  obj.style.display = 'none';
  return false;
 }else{
  obj.style.display = 'inline';
  return true;
 }
}

function toggle(obj){
 if(typeof(obj)=='string') obj = findObj(obj);
 if(typeof(obj.getAttribute('for'))!='undefined'){
  var lObj = findObj(obj.getAttribute('for'));
  if(lObj.style.display!='none'){
   lObj.style.display = 'none';
   addClosedBox(obj.getAttribute('for'));
  }else{
   lObj.style.display = 'block';
   removeClosedBox(obj.getAttribute('for'));
  }
 }else if(obj){
  var lObj = obj;
  if(lObj.style.display!='none'){
   lObj.style.display = 'none';
   addClosedBox(lObj.id);
  }else{
   lObj.style.display = 'block';
   removeClosedBox(lObj.id);
  }
 }
}

function selGetCheckedBoxes(stN,frm){
 var cf = new Array;
 if(frm){
  if(typeof(frm)=='string') frm = findObj(frm);
  var elts = (typeof(frm.elements)!='undefined')?frm.elements:false; 
  var elts_cnt = (typeof(elts.length)!='undefined')?elts.length:0;
  for(var i=0;i<elts_cnt;i++){
   if(((stN&&elts[i].name==stN)||(!stN&&typeof(elts[i])=='object'))&&elts[i].checked){
    var cfl = (typeof(cf.length)!='undefined')?cf.length:0;
    cf[cfl]=elts[i];
   }
  }
 }else{
  var elts = findObj(stN);
  var elts_cnt = (typeof(elts.length)!='undefined')?elts.length:0;
  for(var i=0;i<elts_cnt;i++){
   if(typeof(elts[i])!='undefined'&&typeof(elts[i].checked)!='undefined'&&elts[i].checked){
    var cfl = (typeof(cf.length)!='undefined')?cf.length:0;
    cf[cfl]=elts[i];
   }
  }
 }
 return cf;
}

function selGetCheckedBoxesBegin(stN,frm){
 var cf = new Array;
 if(frm){
  if(typeof(frm)=='string') frm = findObj(frm);
  var elts = (typeof(frm.elements)!='undefined')?frm.elements:false; 
  var elts_cnt = (typeof(elts.length)!='undefined')?elts.length:0;
  for(var i=0;i<elts_cnt;i++){
   if(stN&&elts[i].name.substring(0,stN.length)==stN&&selIsChecked(elts[i])){
    var cfl = (typeof(cf.length)!='undefined')?cf.length:0;
    cf[cfl]=elts[i];
   }
  }
 }
 return cf;
}

function selGetBoxesBegin(stN,frm){
 var cf = new Array;
 if(frm){
  if(typeof(frm)=='string') frm = findObj(frm);
  var elts = (typeof(frm.elements)!='undefined')?frm.elements:false; 
  var elts_cnt = (typeof(elts.length)!='undefined')?elts.length:0;
  for(var i=0;i<elts_cnt;i++){
   if(stN&&elts[i].name.substring(0,stN.length)==stN){
    var cfl = (typeof(cf.length)!='undefined')?cf.length:0;
    cf[cfl]=elts[i];
   }
  }
 }
 return cf;
}

function selIsChecked(obj){
 if(typeof(obj)=='string') obj=findObj(obj);
 if(obj && typeof(obj.checked)!='undefined' && obj.checked){
  return true;
 }
 return false;
}

function selCheck(obj){
	if(typeof(obj)=='string') obj=findObj(obj);
	if(typeof(obj.checked)!='undefined' && !obj.checked){
		obj.checked = true;
	}else{
		obj.checked = false;
	}
	return true;
}

function selIsDisabled(obj){
 if(typeof(obj)=='string') obj=findObj(obj);
 if(obj && typeof(obj.disabled)!='undefined' && obj.disabled){
  return true;
 }
 return false;
}

function testValidPostcode(pc){
 if(pc.length >= 6){
  for(var i=0;i<4;i++){
   if(!(pc.charAt(i)>=0&&pc.charAt(i)<=9)) return false;
  }
  if(pc.charAt(4)==' '){
   if(!((pc.charAt(5)>='a'&&pc.charAt(5)<='z')||(pc.charAt(5)>='A'&&pc.charAt(5)<='Z'))) return false;
   if(!((pc.charAt(6)>='a'&&pc.charAt(6)<='z')||(pc.charAt(6)>='A'&&pc.charAt(6)<='Z'))) return false;
  }else{
   if(!((pc.charAt(4)>='a'&&pc.charAt(4)<='z')||(pc.charAt(4)>='A'&&pc.charAt(4)<='Z'))) return false;
   if(!((pc.charAt(5)>='a'&&pc.charAt(5)<='z')||(pc.charAt(5)>='A'&&pc.charAt(5)<='Z'))) return false;
  }
  return true;
 }else return false;
}

function checkFldFocus(){
 var fl = document.forms.length;
 if(!fl) return;
 for(var i=0;i<fl;i++){
  var e = document.forms[i].elements;
  var el = e.length;
  if(!el) return;
  for(var j=0;j<el;j++){
   var cel = e[j];
   if(typeof(cel.autofocus)!='undefined' && cel.autofocus){
    var celt = (typeof(cel.type)!='undefined') ? cel.type.toLowerCase() : '';
    var sf = autoFocus_skipFilled;
    switch(cel.type){
     case 'text':
     case 'radio':
     case 'checkbox':
      if(!cel.disabled){
       if((sf && !cel.value)||(!sf && cel.value)){
        cel.focus();
        return;
       }
      }
      break;
     
     default:
      if(typeof(cel.tagName)!='undefined' && cel.tagName.toLowerCase()=='textarea' && !cel.disabled){
       if((!sf && cel.innerHTML)||(sf && cel.innerHTML)){
        cel.focus();
        return;
       }
      }
      break;
    }
   }
  }
 }
}

function s_serializeToString(obj){
 var objType = typeof(obj);
 objType = objType.toString();
 if(objType.substring(0,1)=='o'){
  var len = (typeof(obj.length)!='undefined') ? obj.length : 0;
  var str = 'a:'+len+':{';
  for(var i = 0;i < len;i++){
   str+='i:'+i+';';
   str+=s_serializeToString(obj[i]);
  }
  str+= '}';
  return str;
 }else if(objType.substring(0,1)=='s'){
  return 's:'+obj.length+':"'+escape(obj)+'";';
 }else{
  window.status = 's_serializeToString: unable to serialize object of type \''+objType+'\'.';
  return false;
 }
}

function s_deserializeFromString(str){
 var objType = str.substring(0,1),obj = null;
 str = str.substring(2);
 if(objType=='a'){
  obj = new Array();
  var len = parseInt(str.substring(0,str.indexOf(':'))),sPos = str.indexOf('{'),ePos = 0,arKey,arD = 0;
  ePos = str.indexOf('}'); 
  //FIXME still doesn't handle nested arrays, 
  //should be able to find last bracket } instead 
  //of first from left
  str = str.substring(sPos + 1,(ePos - sPos) + 2);
  var parts = str.split(';');
  for(var i = 0; i < parts.length - 1;i+=2){ arKey = parseInt(parts[i].substring(2));
   obj[arKey] = s_deserializeFromString(parts[i+1]); }
  return obj;
  
 }else if(objType=='s'){
  obj = new String();
  var len = parseInt(str.substring(0,str.indexOf(':'))); 
  var sPos = str.indexOf('"');
  obj = str.substring(sPos + 1,len + 4);
  return obj;
 }else{
  window.status = 's_deserializeFromString: unable to deserialize string \''+str+'\'. Unknown string format.';
  return false;
 }
}

function s_cookieCreate(name,value,days){
 if(days){
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }else expires = "";
 var c = name+"=";
 c+=escape(s_serializeToString(value));
 c+=expires+"; path=/";
 document.cookie = c;
}

function s_cookieRead(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++){
  var c = ca[i];
  while(c.charAt(0)==' ') c = c.substring(1,c.length);
  if(c.indexOf(nameEQ) == 0){
   var value = unescape(c.substring(nameEQ.length,c.length));
   var ret = s_deserializeFromString(value);
   return ret;
  }
 }
 return null;
}

function it_row_out(obj){
 var trObj = obj;
 if(typeof(document.getElementsByTagName)!='undefined'){
  var tdObjs = trObj.getElementsByTagName('td');
 }else if(typeof(trObj.cells)!='undefined'){
  var tdObjs = trObj.cells;
 }else{
  return false;
 }
 var l = tdObjs.length;
 for(var i=0;i<l;i++){
  if(tdObjs[i].className=='prodRow' || tdObjs[i].className=='col_mouseOver') tdObjs[i].className = 'col_mouseOut';
 }
 return true;
}
function it_row_over(obj){
 var trObj = obj;
 if(typeof(trObj.cells)!='undefined'){
  var tdObjs = trObj.cells;
 }else if(typeof(document.getElementsByTagName)!='undefined'){
  var tdObjs = trObj.getElementsByTagName('td');
 }else{
  return false;
 }
 var l = tdObjs.length;
 for(var i=0;i<l;i++){
  if(tdObjs[i].className=='prodRow' || tdObjs[i].className=='col_mouseOut') tdObjs[i].className = 'col_mouseOver';
 }
 return true;
}

function deleteSelection(selName,frm,txt_itemName_s,txt_itemName_m,txt_itemPl_s,txt_itemPl_m){
	if(!txt_itemName_s) txt_itemName_s = 'product';
	if(!txt_itemName_m) txt_itemName_m = 'producten';
	if(!txt_itemPl_s) txt_itemPl_s = 'dit';
	if(!txt_itemPl_m) txt_itemPl_m = 'deze';
	
	if(typeof(frm)=='string') frm = findObj(frm);
	var selection = selGetCheckedBoxes(selName,frm);
	if(selection.length>=1){
		var txt = 'Weet u zeker dat u '+((selection.length==1) ? txt_itemPl_s+' '+txt_itemName_s : txt_itemPl_m+' '+txt_itemName_m)+' permanent wilt verwijderen?\n';
		for(var i=0;i<selection.length;i++){
			txt+= '- '+selection[i].getAttribute('title')+'\n';
		}
		if(confirm(txt)){
			window.status = 'Een ogenblik geduld a.u.b.';
			frm.submit();
			return true;
			
		}else{
			return false;
		}
	}else{
		alert('U heeft geen '+txt_itemName_m+' geselecteerd.');
		return false;
	}
}

function editSelectionSingle(selName,frm,urlPrepend,txt_itemName_s){
	if(!txt_itemName_s) txt_itemName_s = 'product';
	
	if(typeof(frm)=='string') frm = findObj(frm);
	var selection = selGetCheckedBoxes(selName,frm);
	if(selection.length>1){
		alert('U kunt maximaal één '+txt_itemName_s+' per keer wijzigen.');
		return false;
	}else if(selection.length==1){
		var url = urlPrepend+selection[0].value;
		location.href = url;
		return true;
	}else{
		alert('U heeft geen '+txt_itemName_s+' geselecteerd om te wijzigen.');
		return false;
	}
}

xAddEventListener(window,'load',checkFldFocus);

