var agent=navigator.userAgent.toLowerCase();var browser_ie=(agent.indexOf("msie")!=-1);Global_run_event_hook=true;Global_combo_array=new Array();Array.prototype.remove=function(dx)
{if(isNaN(dx)||dx>this.length){self.status='Array_remove:invalid request-'+dx;return false}
for(var i=0,n=0;i<this.length;i++){if(this[i]!=this[dx]){this[n++]=this[i]}}
this.length-=1}
function ComboBox_make(){var tmp=$(this.but);tmp.onclick=new Function("",this.name+".toggle()");var inp=$(this.inp);inp.onclick=new Function("",this.name+".toggle()");inp.onblur=new Function("",this.name+".onblur()");}
function ComboBox_onblur(){if(this.selected>-1){var en_val=this.options[this.selected].en_val?this.options[this.selected].en_val:null;this.choose(this.options[this.selected].value,this.options[this.selected].text,en_val);}}
function ComboBox_choose(realval,txtval,en_val){this.value=realval;this.valcon.value=String(txtval).trim();if(this.sFunc)
eval(this.sFunc+"('"+(en_val?en_val:this.valcon.value)+"')");}
function ComboBox_mouseDown(e){var obj,len,el,i;el=e.target?e.target:e.srcElement;while(el.nodeType!=1)el=el.parentNode;var elcl=el.className;if(elcl.indexOf("combo-")!=0){len=Global_combo_array.length
for(i=0;i<len;i++){curobj=Global_combo_array[i]
if(curobj.opslist){curobj.opslist.style.display='none'}}}}
function ComboBox_handleKey(e){var key,obj,eobj,el,strname;eobj=e;key=eobj.keyCode;el=e.target?e.target:e.srcElement;while(el.nodeType!=1)el=el.parentNode;elcl=el.className
if(elcl.indexOf("combo-")==0)
{if(elcl.split("-")[1]=="input")
{strname=el.id.split("txt")[0]
obj=window[strname];obj.expops.length=0
obj.update();obj.build(obj.expops);if(obj.expops.length==1&&obj.expops[0].text=="(No matches)"){}
else{obj.opslist.style.display='block';}
obj.value=el.value;obj.valcon.value=el.value;}}}
function ComboBox_update(){var opart,astr,alen,opln,i,boo;boo=false;opln=this.options.length
astr=this.txtview.value.toLowerCase();alen=astr.length
if(alen==0){for(i=0;i<opln;i++){this.expops[this.expops.length]=this.options[i];boo=true;}}
else{for(i=0;i<opln;i++){opart=this.options[i].text.toLowerCase().substring(0,alen)
if(astr==opart){this.expops[this.expops.length]=this.options[i];boo=true;}}}
if(!boo){this.expops[0]=new ComboBoxItem("(No matches)","")}}
function ComboBox_remove(index){this.options.remove(index)}
function ComboBox_add(){var i,arglen;arglen=arguments.length
for(i=0;i<arglen;i++){this.options[this.options.length]=arguments[i]}}
function ComboBox_full(data){var list=data.split(';');if(list.length>0){var arrlen=list.length;var txt=String(this.valcon.value).toLowerCase();for(var ii=0;ii<arrlen;ii++){nv=list[ii].split(',');var ln=nv.length;if(ln>1)
this.add(new ComboBoxItem(nv[1],this.cod==0?nv[0]:nv[2],this.cod==0?String(nv[2]).replace(/\+/g,' '):null));if(String(nv[1]).toLowerCase()==txt)
this.selected=ii;}}}
function ComboBox_build(arr){var str,arrlen
arrlen=arr.length;str='<table width="100%" class="combo-list-width" cellpadding=0 cellspacing=0>';var strs=new Array(arrlen);for(var i=0;i<arrlen;i++){var c=this.name+'.choose(\''+arr[i].value+'\',\''+arr[i].text+'\''+(arr[i].en_val?',\''+arr[i].en_val+'\'':'')+');'+this.name+'.hide();"';strs[i]='<tr>'+'<td id="'+this.inp+'_'+String(i)+'" class="'+(this.selected==i?'combo-hilite':'combo-item')+'" onClick="'+
c+' onMouseOver="ComboBox_MouseOver(this,'+this.name+');" onMouseOut="ComboBox_MouseOut(this,'+this.name+')" >'+arr[i].text+'</td>'+'</tr>';}
str=str+strs.join("")+'</table>'
if(this.opslist){this.view.removeChild(this.opslist);}
this.opslist=document.createElement("DIV")
this.opslist.innerHTML=str;this.opslist.style.display='none';this.opslist.className="combo-list";this.opslist.onselectstart=returnFalse;this.opslist.onmouseout=new Function("",this.name+".MouseOut()");this.opslist.onmouseover=new Function("",this.name+".MouseOver()");this.onmouseover=new Function("",this.name+".MouseOver()");this.view.appendChild(this.opslist);}
function ComboBox_MouseOut(el,nm){var e=$(nm.inp+'_'+String(nm.selected));var id=el.id.split('_')[1];nm.last_sel=id;}
function ComboBox_MouseOver(el,nm){var e=$(nm.inp+'_'+String(nm.selected));if(e)e.className='combo-item';el.className='combo-hilite';var id=el.id.split('_')[1];nm.selected=id;nm.last_sel="-1";$(nm.inp).focus();var top=parseInt(nm.opslist.scrollTop/18);nm.top=top;nm.button=top+19;}
function ComboBox_Show(){if(this.loading)
{if(!this.opslist)
this.build(this.options);if(this.opslist.style.display=="none"){this.view.style.zIndex=++ComboBox.prototype.COMBOBOXZINDEX;this.opslist.style.display="block";var tbl=$(this.tbl);this.view.style.width=((this.par.style&&this.par.style.width&&this.par.style.width!="")?parseInt(this.par.style.width,10):tbl.offsetWidth)+"px";var top=calculateOffsetTop(tbl)+tbl.offsetHeight;var left=calculateOffsetLeft(tbl);this.view.style.left=((this.par.style&&this.par.style.left&&this.par.style.left!="")?parseInt(this.par.style.left,10):left)+"px";this.view.style.top=top+"px";if(this.selected>-1){this.top=this.selected;this.button=this.top+19;var scroll=this.top*14;this.opslist.scrollTop=scroll;}
if(this.frame){var e=this.frame.style;e.zIndex=ComboBox.prototype.COMBOBOXZINDEX-1;e.left=this.view.style.left;e.top=top+"px";e.width=this.opslist.offsetWidth+"px";e.height=this.opslist.offsetHeight+"px";e.display="block";}}
$(this.inp).focus();}
else LoadListCountry(this.name);}
function ComboBox_inp_focus(){if(this.opslist&&this.options.length>0)this.toggle();else LoadListCountry(this.name);}
function ComboBox_hide(){if(this.opslist){this.opslist.style.display="none";if(this.frame)this.frame.style.display="none";this.last_sel="-1";}
this.is_mouseout=false;}
function ComboBox_toggle(){var inp=$(this.inp);if(!inp.setSelectionRange){var r=inp.createTextRange();var end=inp.value.length;r.select()}
else inp.setSelectionRange(0,inp.value.length);clicked();if(this.opslist&&this.options.length>0){if(this.opslist.style.display=="block"){this.opslist.style.display="none";if(this.frame)this.frame.style.display="none";}
else this.show();}
else if(this.options.length>0)this.show();else LoadListCountry(this.name);}
function load_Countries(data,sel_obj){var curobj;var len=Global_combo_array.length
for(i=0;i<len;i++){curobj=Global_combo_array[i];curobj.full(data);curobj.loading=true;if(curobj.name==sel_obj){curobj.show();curobj.setSelected();}}}
function loading_Countries(sel_obj){var curobj;var len=Global_combo_array.length
for(i=0;i<len;i++){curobj=Global_combo_array[i];return curobj.loading;}}
function set_loading_Countries(sel_obj){var curobj;var len=Global_combo_array.length
for(i=0;i<len;i++){curobj=Global_combo_array[i];curobj.loading=null;}}
function ComboBox(name,inp,but,tbl,par,cod,sFunc){this.name=name;this.par=$(par);this.inp=inp;this.but=but;this.tbl=tbl;this.cod=cod;this.view=document.createElement("DIV");this.view.style.position='absolute';this.options=new Array();this.expops=new Array();this.value="";this.selected=-1;this.last_sel=-1;this.top=0;this.button=19;this.frame=null;this.loading=false;if(browser_ie){this.frame=document.createElement('iframe');var f=this.frame;f.frameborder="0";f.scrolling="no";f.src="javascript://;"
f.style.position="absolute";f.style.display='none';}
this.build=ComboBox_build;this.full=ComboBox_full;this.make=ComboBox_make;this.choose=ComboBox_choose;this.add=ComboBox_add;this.toggle=ComboBox_toggle;this.onblur=ComboBox_onblur;this.update=ComboBox_update;this.remove=ComboBox_remove;this.keydown=ComboBox_keydown;this.keyup=ComboBox_keyup;this.mouseover=ComboBox_MouseOver;this.show=ComboBox_Show;this.hide=ComboBox_hide;this.inp_focus=ComboBox_inp_focus;this.setSelected=ComboBox_SetSelected;this.MouseOut=ComboBox_OnMouseOut;this.MouseOver=ComboBox_OnMouseOver;this.ismouseout=ComboBox_IsMouseOut;this.ishide=ComboBox_IsHide;this.is_mouseout=false;this.make();this.txtview=$(inp);this.valcon=$(inp);this.getvalue=ComboBox_GetValue;this.sFunc=sFunc;if(this.frame)this.par.appendChild(this.frame);this.par.appendChild(this.view);Global_combo_array[Global_combo_array.length]=this;if(Global_run_event_hook){ComboBox_init()}}
function ComboBox_IsMouseOut(){return this.last_sel!="-1";}
function ComboBox_IsHide(){if(this.opslist)
return this.opslist.style.display=="none";else return false;}
ComboBox.prototype.COMBOBOXZINDEX=1000
function ComboBox_init()
{Global_run_event_hook=false;}
function returnFalse(){return false}
function ComboBoxItem(text,value,en_val)
{this.text=text;this.value=value;if(en_val)this.en_val=en_val;}
function ComboBox_OnMouseOut(ev){this.is_mouseout=true;window.status="ComboBox_OnMouseOut(): "+this.name;}
function ComboBox_OnMouseOver(ev){this.is_mouseout=false;window.status="ComboBox_OnMouseOver(): "+this.name;}
function ComboBox_GetValue(){var val=null;var text=String(this.txtview.value).trim().toLowerCase();for(var i=0;i<this.options.length;i++)
if(text==this.options[i].text.trim().toLowerCase()){val=this.options[i].value;break;}
return val}
function ComboBox_keydown(ev){$(this.inp).focus();if(ev.keyCode==38||ev.keyCode==40){var selected=this.selected;if(ev.keyCode==40&&this.selected<this.options.length-1)this.selected++;else if(ev.keyCode==38&&this.selected>-1)this.selected--;var fShow=this.opslist.style.display!='none';if(selected!=this.selected){var el=$(this.inp+'_'+String(selected));if(el)el.className='combo-item';el=$(this.inp+'_'+String(this.selected));el.className='combo-hilite';if(selected<this.selected&&this.selected>this.button){this.top+=1;this.button+=1;}
if(selected>this.selected&&this.selected<this.top){this.top-=1;this.button-=1;}
var scroll=this.top*14;this.opslist.scrollTop=scroll;if(!fShow)
this.choose(this.options[this.selected].value,this.options[this.selected].text);this.choose(this.options[this.selected].value,this.options[this.selected].text,en_val);}
return false;}
else if(ev.keyCode==27)this.toggle();else if(ev.keyCode==13){var inp=$(this.inp);var en_val=this.options[this.selected].en_val?this.options[this.selected].en_val:null;this.choose(this.options[this.selected].value,this.options[this.selected].text);this.toggle();return false;}
else return true;}
function ComboBox_keyup(ev){if(ev.keyCode==38||ev.keyCode==40||ev.keyCode==27||ev.keyCode==13)return false;this.setSelected();return false;}
function ComboBox_SetSelected(){var inp=$(this.inp).value;var len=inp.length;if(len==0)return;this.show();inp=String(inp).toLowerCase();var selected=this.selected;for(var i=0;i<this.options.length;i++)
if(this.options[i].text.toLowerCase().substring(0,len)==inp){this.selected=i;var el=$(this.inp+'_'+String(selected));if(el)el.className='combo-item';el=$(this.inp+'_'+String(this.selected));el.className='combo-hilite';var scroll=this.selected*18;this.opslist.scrollTop=scroll;var _inp=$(this.inp);_inp.value+=el.innerHTML.substring(len,el.innerHTML.length)
if(_inp.createTextRange){var t=_inp.createTextRange();t.moveStart("character",len);t.select()}
else if(_inp.setSelectionRange)
{_inp.setSelectionRange(len,_inp.value.length)}
this.value=this.options[this.selected].value;if(this.sFunc){var en_val=this.options[this.selected].en_val?this.options[this.selected].en_val:null;eval(this.sFunc+"('"+(en_val?en_val:_inp.value)+"')");}
break;}}
