// Input formating

function inputActivate() {
  var i=event.srcElement;
  
  if (i.rdo=="Y") return;
  if (i.tagName=="INPUT") {i.className += " inputSelected"; if (i.upr!=null) i.focus(); else i.select();};

  if (i.form!=null && i.form.hig!=null) {
    var l=document.getElementById(i.id+"_LABEL");
    if (l!=null) if (l.parentElement.className=="label" || l.parentElement.className=="labelRequired") l.parentElement.className += " labelSelected"; else l.className +=" labelSelected";
  }
}

function inputDeActivate() {  
  var i=event.srcElement

  if (i.rdo=="Y") return;
  if (i.tagName=="INPUT") {removeClassName(i,"inputSelected"); document.selection.empty();}
  if (i.dat!=null) FormatYear(i);
  if (i.phn!=null) FormatOutPhone(i);
  if (i.url!=null) FormatURL(i);
  
  if (i.form!=null && i.form.hig!=null) {
    var l=document.getElementById(i.id+"_LABEL");
    if (l!=null) {if (l.parentElement.className.indexOf("labelSelected")>=0) removeClassName(l.parentElement,"labelSelected");if (l.className.indexOf("labelSelected")>=0) removeClassName(l,"labelSelected");}
  }
}

function inputReadOnly(idv) {
  var i=idv.split("|");
  for (x=0; x<i.length; x++) {
    var d=document.getElementById(i[x]);
    if (d!=null) {
      d.rdo="Y";
      d.readOnly=true;
      d.className="readonly";
    }
  }
}

function inputClearReadOnly(idv) {
  var i=idv.split("|");
  
  for (x=0; x<i.length; x++) {
    var d=document.getElementById(i[x]);
    if (d!=null) {
      d.rdo=null;
      d.readOnly=false;
      d.className="";
    }
  }
}

function inputRequired(idv) {
  var i=idv.split("|");
  for (x=0; x<i.length; x++) {
    var d=document.getElementById(i[x]);
    if (d!=null) d.req="Y";
  }
}

function inputClearRequired(idv) {
  var i=idv.split("|");
  for (x=0; x<i.length; x++) {
    var d=document.getElementById(i[x]);
    if (d!=null && d.req!=null) d.req=null;
  }
}

function inputClear(idv, fid) {
  var i=idv.split("|");
  
  for (x=0; x<i.length; x++) {
    var d=document.getElementsByName(i[x]);
    if (d.length<=0 && fid!=null) 
      var d=document.getElementsByName(fid+"xx"+i[x]);

    for (z=0; z<d.length; z++) {
      if (d(z).tagName=="SELECT") comboReset(d(z).id); else d(z).value="";
    }
  }
}

function buttonClick(i, action, parentform) {
  var fid="";
  if (parentform==null) fid=i.form.id;
  if (parentform=="") fid=i.form.id; else fid=parentform;

  var a=document.getElementById(fid+"xxACTION");
  
  if (i.type!="submit" || a==null || action=="") return;
  
  if (i.confirm!=null)
  if (!confirm(i.confirm)) {
    event.returnValue=false;
    event.cancelBubble=true;  
    return false;
  }
    
  if (i.val!=null) Validate=(i.val!="N");
  a.value=action;
  
  var c=document.getElementById("FORMCHANGED");  
  if (c!=null) c.value="Y";

  if (parentform!="") {  
    var f=document.getElementById(parentform);
    if (f==null) return;
    event.returnValue=false;
    event.cancelBubble=true;
    if (f.val==null || f.val=='Y') f.submit();
  }  
}

function buttonDefault() {
  var b=document.getElementsByTagName("BUTTON");
  
  for (bx=0; bx<b.length; bx++) {
    if (b[bx].def!=null && (b[bx].disabled==null || b[bx].disabled==false)) {event.cancelBubble=true; event.returnValue=false; b[bx].click();return false;}
  }  
}

function inputClone(i) {
  var t=i.parentNode;
  
  while (t.tagName!="TR" && t.tagName!="BODY") t=t.parentNode;
  if (t.tagName=="BODY") return;
  
  var tc=t.cloneNode(true);
  var tb=t.parentNode;
  tb.insertBefore(tc, t);
}

function inputReset(i) {
  var v=document.getElementById(i);
  if (v!=null) {
    v.value="";
    v.focus();
  }  
}

function inputKey(f) {

  if (event.shiftKey) return;
  formChanged=true;   
  
  switch (event.keyCode) {

  case 40: {
    for (x=0; x<f.elements.length; x++)
      if (f.elements(x)==event.srcElement)
      for (y=x+1;y<f.elements.length;y++) if (f.elements(y).rdo==null && f.elements(y).readonly==null) {try{f.elements(y).focus();event.keyCode=0;event.returnValue=false;return;} catch(e){};};
    break;  
  }

  case 38: {
    for (x=0; x<f.elements.length; x++)
      if (f.elements(x)==event.srcElement)
      for (y=x-1;y>=0;y--) if (f.elements(y).rdo==null && f.elements(y).readonly==null) {try{f.elements(y).focus();event.keyCode=0;event.returnValue=false;return;} catch(e){};};
    break;  
  } 
  
  case 39: {
    if (event.srcElement.tagName=="SELECT") comboNext(event.srcElement);
    break; 
  } 

  case 37: {
    if (event.srcElement.tagName=="SELECT") comboPrev(event.srcElement);
    break; 
  } 
  }
}

function inputKeyFormat(f) {
  var e=event.srcElement;
  
  if (event.keyCode<32) return;
  
  if (e.upr==null || e.upr=="Y")
    if (window.event.keyCode >96) window.event.keyCode = window.event.keyCode-32;
  
  if (e.phn!=null) FormatPhone(e, f);
  if (e.dat!=null) FormatDate(e);
  if (e.num!=null) FormatNumber(e);
  if (e.len!=null) FormatLength(e);
  if (e.ssn!=null) FormatSsn(e);
  if (e.idv!=null) FormatId(e);
  if (e.max!=null && e.num==null && e.dat==null) FormatMax(e);
  if (e.maxlen!=null) FormatMax(e);
  if (e.zip!=null) FormatZip(e, f);
}

function FormatPhone(v, f) {
  var country;

  if (v.phn=="Y") 
    country="USA";
  else {  
   var c=document.getElementById(f.id+"xx"+v.phn);
   if (c==null) country=v.phn; else country=c.value;
  }
  if (country=="USA") FormatPhoneUS(v);
}

function FormatPhoneUS(v) {
  var ValidChar = /[0123456789]/;
  var LastChar=String.fromCharCode(event.keyCode);  
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;val=val.replace("(","");val=val.replace(")","");val=val.replace(" ","");
    
  if (LastChar.search(ValidChar) != 0 || val.length>10) 
    window.event.keyCode=null;
  else { 
    if(val.length==3) v.value="("+val+") ";
    if(val.length==6) v.value="("+val.substring(0,3)+") "+val.substring(3,6)+"-";
  }  
} 

function FormatOutPhone(v) {
  var country;

  if (v.phn=="Y") 
    country="USA";
  else {  
   var c=document.getElementById(v.form.id+"xx"+v.phn);
   if (c==null) country=v.phn; else country=c.value;
  }
  if (country!="USA") return;
  
  var val=new String(v.value);
  val=val.replace(/-/gi,"");val=val.replace(/\)/gi,"");val=val.replace(/\(/gi,"");val=val.replace(/ /gi,"");
  if (val.length>8)
    v.value="("+val.substring(0,3)+") "+val.substring(3,6)+"-"+val.substring(6,val.length);
}

function FormatSsn(v) {
  var ValidChar = /[0123456789]/;
  var LastChar=String.fromCharCode(window.event.keyCode);
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;
  if (LastChar.search(ValidChar) != 0 || val.length>10) window.event.keyCode=null; else if(val.length==3 || val.length==6) v.value=v.value+"-";
}   

function FormatId(v) {
  var LastChar=String.fromCharCode(window.event.keyCode);
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;
  
  var idtype=getv("IDTYPE");
  var idstate=getv("IDSTATE");

  if (idtype!="" && (idtype=="ID" || idtype=="DL") && idstate=="IL") {
    if (val.length>13) window.event.keyCode=null; else if(val.length==4 || val.length==9) v.value=v.value+"-";
  }  
}

function FormatDate(v) {
  var ValidChar = /[0123456789]/;
  var ValidMonth = /[23456789]/;
  var LastChar=String.fromCharCode(window.event.keyCode);
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;
  if (LastChar.search(ValidChar) != 0 || val.length>9) {if (LastChar=="/"){ if (val.length==1) v.value="0"+val+"/";if (val.length==2 || val.length==5) v.value=val+"/";if (val.length==4) v.value=val.substr(0,2)+"/0"+val.substr(3,1)+"/";};window.event.keyCode=null;} else {if(val.length==1 && val.search(ValidMonth)==0) v.value="0"+v.value+"/"; if(val.length==2 || val.length==5) v.value=v.value+"/";}
}

function FormatLength(v) {
  var m=new Number(v.len);
  var val=v.value;
  if (val.length>=m) window.event.keyCode=null;
}

function FormatNumber(v) {
  var ValidChar = /[0123456789.-]/;
  var LastChar=String.fromCharCode(window.event.keyCode);
  if (LastChar.search(ValidChar) != 0) window.event.keyCode=null;
}  

function FormatMax(v) {
  var m=new Number(v.num);
  var val=v.value;
  if (val.length>m) window.event.keyCode=null;
}  

function FormatZip(v, f) {
  var country;

  if (v.zip=="Y") 
    country="USA";
  else {  
   var c=document.getElementById(f.id+"xx"+v.zip);
   if (c==null) country=v.zip; else country=c.value;
  }
  if (country=="USA" || country=="MEXICO") FormatZipUS(v);
  if (country=="CANADA") FormatZipCA(v);
  if (country=="POLAND") FormatZipPL(v);
}

function FormatZipUS(v) {
  var ValidChar = /[0123456789]/;
  var LastChar=String.fromCharCode(window.event.keyCode);
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;
  if (LastChar.search(ValidChar) != 0 || val.length>9) window.event.keyCode=null; else if(val.length==5) v.value=v.value+"-";
}

function FormatZipCA(v) {
  var val=v.value;
  if (val.length>7) window.event.keyCode=null; else if(val.length==3) v.value=v.value+" ";
}

function FormatZipPL(v) {
  var ValidChar = /[0123456789]/;
  var LastChar=String.fromCharCode(window.event.keyCode);
  var range = document.selection.createRange();if (range.text.length>1) v.value="";
  var val=v.value;
  if (LastChar.search(ValidChar) != 0 || val.length>5) window.event.keyCode=null; else if(val.length==2) v.value=v.value+"-";
}

function FormatYear(v) {
  var m=v.value.split("/");
  if (m[0]!=null && m[1]!=null && m[2]!=null) v.value=fs(m[0])+"/"+fs(m[1])+"/"+fy(m[2]);
}

function FormatURL(v) {
  var val=new String(v.value);
  if (val.length>5) {
    val=val.toLowerCase();
    val=val.replace("https://","");
    val=val.replace("http://","");
    v.value=val;  
  }
}

function fs(s) {
  var o=new String(s); if (o.length<2) o="0"+o; return o;
}

function fy(y) {
  if (y.length==1) y="200"+y;
  if (y.length==3) if (y.substr(0,1)=="0") y="2"+y; else y="1"+y;
  if (y.length==2) {var x=parseInt(y);if (x>=0 && x<20) y="20"+y; else y="19"+y;};
  return y;
}


// Form Validation

var Validate=true;
var Valid=true;
var ValidMsg="";

function formValid(f) {
  if (!Validate) {Validate=true;return true;}
  
  var msg=document.getElementById(f.id+"xxMSG");
  ValidClear(f, msg);    
  
  for (x=0; x<f.elements.length; x++)
  if (IsVisible(f.elements(x))==1 && (IsReadOnly(f.elements(x))==0 || f.elements(x).val=="Y")) {
    if (f.elements(x).req!=null) ValidReq(f.elements(x), f);   
    if (f.elements(x).num!=null) ValidNum(f.elements(x));         
    if (f.elements(x).len!=null) ValidLen(f.elements(x));
    if (f.elements(x).max!=null) ValidMax(f.elements(x));       
    if (f.elements(x).min!=null) ValidMin(f.elements(x));             
    if (f.elements(x).dat!=null) ValidDat(f.elements(x));     
    if (f.elements(x).eml!=null) ValidEmail(f.elements(x));
    if (f.elements(x).ssn!=null) ValidSSN(f.elements(x));         
    if (f.elements(x).phn!=null) ValidPhone(f.elements(x), f);
    if (f.elements(x).zip!=null) ValidZip(f.elements(x), f);
    if (f.elements(x).com!=null) ValidCompare(f.elements(x), f);
    if (f.elements(x).ccn!=null) ValidCCN(f.elements(x));
    if (f.elements(x).ibn!=null) ValidIBAN(f.elements(x));
    if (f.elements(x).xml!=null) ValidXML(f.elements(x));    
    if (f.elements(x).idv!=null) ValidID(f.elements(x));
  }  

  if (ValidMsg!="")
    if (msg!=null) {msg.className="msgE";msg.innerText=ValidMsg;} else alert(ValidMsg);

  if (Valid) {
    var x=0;
    var b=document.getElementsByTagName("BUTTON");
    for (x=0; x<b.length; x++) b(x).disabled=true;
    var b=document.getElementsByTagName("SELECT");
    for (x=0; x<b.length; x++){b(x).rdo="Y"; b(x).readonly=true;}
  }
  else {
    var a=document.getElementById(f.id+"xxACTION");
    if (a!=null) a.value="";
  }
  return Valid;  
}
 
function IsVisible(e) {
  if (e.style.visibility=="hidden" || e.style.display=="none") return 0;
  
  var p=e;  
  for(p; p && p.tagName!="BODY"; p = p.offsetParent){if (p.style.visibility=="hidden" || p.style.display=="none") return 0;};
  return 1;  
}
 
function IsReadOnly(e) {
  if (e.rdo!=null || e.className=="readonly" || e.readonly=="readonly") return 1; else return 0;  
}

function ValidClear(f,msg) {
  Valid=true;
  ValidMsg="";

  var l=f.getElementsByTagName("LABEL"); 
  for (x=0; x<l.length; x++)
    if (l(x).className=="labelError") l(x).className="";    
}

function InValid(i,msg) {
  Valid=false;
  
  var l=document.getElementById(i.id+"_LABEL"); 
  if (l==null) var l=document.getElementById(i.id.substr(0,i.id.length-1)+"_LABEL"); 
  if (l!=null) l.className="labelError";
  
  if (ValidMsg=="")
  { 
    if (i.texterr!=null) ValidMsg=i.texterr; else if (l!=null) ValidMsg=l.innerText+" "+msg; else ValidMsg=i.id+" "+msg; 
    if (i.type!="hidden") {try{i.focus();} catch(e){};}
  }   
}
 
function ValidReq(i, f) {  
  var v=document.getElementById(i.id);
  var T = v.value.replace(/\s+/g, "");
  
  var c=document.getElementById(f.id+"xx"+i.req);
  var cT="";
  if (c!=null) cT=c.value.replace(/\s+/g, "");
  
  if (T.length==0 && cT.length==0) InValid(i, "is required");
}

function ValidNum(i) {
  var p = new Number(i.value);
  if (i.value!="" && isNaN(p)) InValid(i, "must be numeric value");
}

function ValidMin(i) {
  var m=0; 
  m=i.min;
  var T = i.value;

  if (i.num!=null){if (T<m) InValid(i ,"must be greater then "+m);} else if (T.length<m) InValid(i, "must be at least "+m+" characters long");
}

function ValidMax(i) {
  var m=0; 
  m=i.max;
  var T = i.value;

  if (i.num!=null) if (T>m) InValid(i, "must be less then "+m); else if (T.length>m) InValid(i,"must be "+m+" characters or shorter");
}

function ValidLen(i) {
  var m=0; 
  m=i.len;
  var T = i.value;

  if (T!="" && T.length!=m) InValid(i ,"must be "+m+" chars long");
}
   
function ValidDat(i) {
  if (i.value=="NONE") return;

  var m=i.value.split("/");
  var d=new Date();

  var min=i.min;
  if (min!=null) {
    if (min=="current") min=""+(d.getMonth()+1)+"/"+d.getDate()+"/"+d.getYear();
    else
    if (!Date.parse(min) && !isNaN(parseInt(min))) min="1/1/"+(parseInt(d.getYear())+parseInt(min));
  }  
  var max=i.max;
  if (max!=null) {
    if (max=="current") max=""+(d.getMonth()+1)+"/"+d.getDate()+"/"+d.getYear();
    else
    if (!Date.parse(max) && !isNaN(parseInt(max))) max="1/1/"+(parseInt(d.getYear())-parseInt(max));
  } 
  var sYear = 1900;
  if (i.startyear!=null) sYear=i.startyear;
  var eYear = 2090;
  if (i.endyear!=null) eYear=i.endyear;

  if (i.value=="" || i.value.indexOf("@")>=0 || i.value=="NONE") return; 
  if (!Date.parse(i.value) && i.value!="") {InValid(i,"is not a valid date"); return;}
  if (m[0] < 1 || m[0] > 12) {InValid(i,"is not a valid date"); return;}
  if (m[1] < 1 || m[1] > 31) {InValid(i,"is not a valid date"); return;}    
  if (m[2].length<2 || m[2].length==3) {InValid(i,"is not a valid date"); return;}    
  if (m[2].length==2) if (m[2] < 20) m[2]="20"+m[2]; else m[2]="19"+m[2];
  if (m[2] < sYear || m[2] > eYear) {InValid(i,"is out of range"); return;}    
  if (min!=null && Date.parse(i.value)<Date.parse(min)) {InValid(i,"must be later then "+min); return;}    
  if (max!=null && Date.parse(i.value)>Date.parse(max)) {InValid(i,"must be earlier then "+max); return;} 
  i.value=m[0]+"/"+m[1]+"/"+m[2];
}
  
function ValidEmail(i) {
  if (!/^[A-Za-z0-9\'\.\_\-]+\@[A-Za-z0-9\.\_\-]+(\.[A-Za-z]+)+$/.test(i.value) && i.value!="") InValid(i, "is not a valid e-mail address")
}
  
function ValidSSN(i) {
  if (!/^(\d{3}-)?(\d{2})-(\d{4})$/.test(i.value) && i.value!="" && i.value!="NONE") InValid(i,"is not valid Social Security Number")
} 

function ValidID(i) {
  if (getv("IDSTATE")=="IL") {
    if (getv("IDTYPE")=="ID") ValidILID(i);
    if (getv("IDTYPE")=="DL") ValidILDL(i);
  }
}

function ValidILID(i) {
  if (!/^(\d{4}-)?(\d{4})-(\d{3})(\D{1})$/.test(i.value) && i.value!="") InValid(i,"is not valid Illinois ID Card Number")
} 

function ValidILDL(i) {
  if (!/^(\D{1})(\d{3}-)?(\d{4})-(\d{4})$/.test(i.value) && i.value!="") InValid(i,"is not valid Illinois Driver License Number")
} 
  
function ValidPhone(i, f) {
  var country;

  if (i.zip=="Y") 
    country="USA";
  else {  
   var c=document.getElementById(f.id+"xx"+i.zip);
   if (c==null) country=i.zip; else country=c.value;
  }
  if (i.value!="" && country=="USA" && !/^(\()(\d{3})(\))(\s)(\d{3})-(\d{4})$/.test(i.value)) InValid(i,"is not a valid phone number")
}

function ValidZip(i, f) {
  var country;

  if (i.zip=="Y") 
    country="USA";
  else {  
   var c=document.getElementById(f.id+"xx"+i.zip);
   if (c==null) country=i.zip; else country=c.value;
  }
  if (i.value!="" && ((country=="USA" || country=="MEXICO") && !/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(i.value)) || (country=="CANADA" && !/^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/.test(i.value)) || (country=="POLAND" && !/(^\d{2}-\d{3}$)/.test(i.value))) InValid(i, "is not valid postal code");
}

function ValidCompare(i, f) {  
  var c=document.getElementById(f.id+"xx"+i.com);
  if (c==null) return;
  
  var l=document.getElementById(c.id+"_LABEL"); 
  var lab="other field"
  if (l!=null) lab=l.innerText;
  
  if (c!=null && c.value!=i.value) InValid(i, "must be equal to "+lab);
}

function ValidCCN(i) {
  if (i.value.length==0) return;
  
  var v=new String(i.value);
  var sum = 0; 
  var mul = 1; 
  var vl = v.length;
  
  for (z = 0; z<vl; z++) {
    var digit = v.substring(vl-z-1,vl-z);
    var tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10) sum += (tproduct % 10) + 1; else sum += tproduct;
    if (mul == 1) mul++; else mul--;
  }
  if ((sum % 10) != 0) InValid(i,"not a valid credit card number");
}

function ValidIBAN(i) {  
  if (i.value.length==0) return;
  if (i.value.length!=26) InValid(i, "is not a valid IBAN Account number (length must be 26)");
  
  var iban=i.value.substring(2,i.value.length)+"PL"+i.value.substring(0, 2);
  if (!IBANCheckSum(iban)) InValid(i, "is not a valid IBAN Account number (wrong checksum)");
} 

function IBANCheckSum(v) {
	var n;	
  
  var is=new String(v);	
	var ns=new String();

	for (z=0; z<is.length; z++) {
		var a = is.charCodeAt(z);
		if (a>=65 & a<=90) n=a-55; else n=is.charAt(z);
		ns=ns+n; 
	}
	var m = parseInt(ns.substring(0,2),10);
	var r = m % 97;
	for (z=2; z<ns.length; z++) {
		m = 10*r + parseInt(ns.substring(z, z+1),10);
		r = m % 97;
  }
	return (r==1);	
}

function ValidXML(i) {  
  var v=document.getElementById(i.id);
  var T = v.value;
  
  xX = new ActiveXObject("Msxml2.DOMdocument");
  xX.loadXML(T);    
  
  if (xX.parseError!=0) xX.loadXML("<root>"+T+"</root>");    
  if (xX.parseError!=0) InValid(i, xX.parseError.reason);
}

// Form Panels

function panelSwitch(pid, fid) {  
  var p=document.getElementById(pid);
  var f=document.getElementById(fid+"xxPANELS");
  if (p==null) return;

  if (p.style.display=="none")  {
    p.style.display="block"; 
    if (f!=null) f.value=pid;
  }
  else { 
    p.style.display="none"; 
    if (f!=null) f.value="";
  }
  resizePanels('y');
   
}

function panelHide(pid) {  
  var p=document.getElementById(pid);
  if (p==null) return;

  p.style.display="none"; 
  resizePanels('y');   
}

function IsPanelChild(pid, i) {
  var p=document.getElementById(pid);
  if (p==null || i==null) return false;
  
  var t=i.parentNode;
  while (t!=p && t.tagName!="BODY") t=t.parentNode;
  if (t.tagName=="BODY") return false; else return true;
}


//Select Combo Functions

function comboNext(i) {
  if (i.rdo!=null) return;
  var v=i.value;
  
  for (o=0; o<i.options.length; o++)
    if (i.options(o).value==v) if (o+1<i.options.length) i.value=i.options(o+1).value; else i.value=i.options(0).value;    
  if (i.sub!=null) i.form.submit();
  if (i.chn!=null) comboChange(i);
}

function comboPrev(i) {
  if (i.rdo!=null) return;
  var v=i.value;
  
  for (o=0; o<i.options.length; o++)
    if (i.options(o).value==v) if (o-1>0) i.value=i.options(o-1).value; else i.value=i.options(i.options.length-1).value;    
  if (i.sub!=null) i.form.submit();
  if (i.chn!=null) comboChange(i);
}

function comboChange(i) {
  if (i.rdo!=null) return;
  var v="";

  if (i.chn!=null) {v=i.chn.replace(/#V#/gi,i.value);eval(v);}
}

function comboBack(i) {
  comboSet(i.id,i.rdo);
}

function comboSet(i, v, t) {
  var c=document.getElementById(i);
  if (c==null) return; 

  if (t==null)   
    for (x=0; x<c.options.length; x++) {
      if (c.options[x].value.replace(/ /gi,"")==v.replace(/ /gi,"")) c.options.selectedIndex=x;
    }
  else
    for (x=0; x<c.options.length; x++) {
      if (c.options[x].innerText.replace(/ /gi,"")==v.replace(/ /gi,"")) c.options.selectedIndex=x;
    }
}

function comboReset(i) {
  var c=document.getElementById(i);
  if (c==null) return; 
  
  if (c.options.length>0) c.options.selectedIndex=0;
}

function comboAdd(i, iid, itxt, p) {
  var c=document.getElementById(i);
  if (c==null) return; 
  
  if (c.options(iid)==null) {
    var oOption = document.createElement("OPTION");
    c.options.add(oOption);  
    oOption.innerText = itxt;
    oOption.value = iid;
    if (p) oOption.param=p;
  }  
}