function LocationFields(_1,_2,_3,_4){
if(!this.supported){
return;
}
var _5=null;
var _6="";
var _7="";
_4=_4||{};
_1=_1||"country";
_2=_2||"region";
_3=_3||"city";
this.setLanguage(_4.lang);
this.updateLanguage(_4.langConf);
if(_4.urlCities){
this.urlCities=_4.urlCities;
}
if(_4.urlRegions){
this.urlRegions=_4.urlRegions;
}
this.initCountry(_1,_4.excludeCountry);
this.initRegion(_2);
this.initCity(_3,_4.cityMultiple,_4.citySize);
this.fetchRegions();
}
LocationFields.prototype={fetchObjects:{region:null,city:null},lang:null,languages:{en_us:{selectCountryFirst:"...",selectCity:String.fromCharCode(8212)+" select city "+String.fromCharCode(8212),selectRegion:String.fromCharCode(8212)+" select state/region "+String.fromCharCode(8212),selectRegionFirst:"...",wait:"please wait..."}},selectedValues:{country:"",region:"",city:""},supported:document.getElementById&&document.createElement&&document.appendChild&&document.createTextNode?true:false,nodes:{city:null,country:null,region:null},selectedValues:{city:"",country:"",region:""},urlCities:"/utilities/get_cities",urlRegions:"/utilities/get_regions",fetchCities:function(){
var _8=getValue(this.getField("region"));
var _9=getValue(this.getField("country"));
if(_8===""){
this.fillOptions(this.nodes.city,[],[],"",this.lang.selectRegionFirst);
}else{
if(this.fetchObjects.city){
this.fetchObjects.city.transport.abort();
this.fetchObjects.city.transport=null;
}
this.fillOptions(this.nodes.city,[],[],"",this.lang.wait);
this.fetchObjects.city=ndg.fetch(this.urlCities,{onComplete:this.getCityOnCompleteFn(this),parameters:"country="+encodeURIComponent(_9)+"&region="+encodeURIComponent(_8)});
}
},fetchRegions:function(){
var _a=getValue(this.getField("country"));
if(this.fetchObjects.region){
this.fetchObjects.region.transport.abort();
this.fetchObjects.region.transport=null;
}
this.fillOptions(this.nodes.region,[],[],"",this.lang.wait);
this.fillOptions(this.nodes.city,[],[],"",this.lang.selectRegionFirst);
this.fetchObjects.region=ndg.fetch(this.urlRegions,{onComplete:this.getRegionOnCompleteFn(this),parameters:"country="+encodeURIComponent(_a)});
},fillOptions:function(el,_c,_d,_e,_f){
var opt=null;
var i=0;
var end=0;
for(var j=el.options.length-1;j>-1;j--){
el.options[j]=null;
}
if(_f){
opt=document.createElement("option");
opt.value="";
opt.appendChild(document.createTextNode(_f));
el.appendChild(opt);
}
end=_c.length;
for(i=0;i<end;i++){
opt=document.createElement("option");
opt.value=_c[i];
opt.appendChild(document.createTextNode(!_d[i]?_c[i]:_d[i]));
el.appendChild(opt);
if(_c[i]===_e){
opt.selected=true;
if(!el.multiple){
el.options.selectedIndex=!_f?i:i+1;
}
}
opt=null;
}
},forceNode:function(el){
return typeof (el)==="string"?document.getElementById(el):el;
},getCityOnCompleteFn:function(x){
return function(_16){
if(ndg.ajaxType()==="mootools"){
_16=this.transport;
}
var _17=x.getField("city").multiple;
var _18=_17?null:x.lang.selectCity;
x.fillOptions(x.nodes.city,x.parseJSON(_16.responseText),[],x.selectedValues.city,_18);
x.fetchingCities=false;
};
},getCountryOnchangeFn:function(x){
return function(){
x.saveSelection("country",getValue(this));
x.fetchRegions();
};
},getRegionOnchangeFn:function(x){
return function(){
x.saveSelection("region",getValue(this));
x.fetchCities();
};
},getRegionOnCompleteFn:function(x){
return function(_1c){
if(ndg.ajaxType()==="mootools"){
_1c=this.transport;
}
x.fillOptions(x.nodes.region,x.parseJSON(_1c.responseText),[],x.selectedValues.region,x.lang.selectRegion);
x.fetchingRegions=false;
x.fetchCities();
};
},getField:function(_1d){
return (this.nodes[_1d])?this.nodes[_1d]:null;
},initCity:function(id,_1f,_20){
var _21=document.getElementById(id);
var _22=_21.parentNode;
this.saveSelection("city",getValue(_21));
this.nodes.city=ndg.createSelect(_21.name,id,null,_1f,_20);
_22.removeChild(_21);
_22.appendChild(this.nodes.city);
_22=null;
_21=null;
},initCountry:function(id,_24){
this.nodes.country=document.getElementById(id);
this.saveSelection("country",getValue(this.nodes.country));
if(!_24){
this.nodes.country.onchange=this.getCountryOnchangeFn(this);
}
},initRegion:function(id){
var _26=document.getElementById(id);
var _27=_26.parentNode;
this.saveSelection("region",getValue(_26));
this.nodes.region=ndg.createSelect(_26.name,id,null,false);
this.nodes.region.onchange=this.getRegionOnchangeFn(this);
_27.removeChild(_26);
_27.appendChild(this.nodes.region);
_27=null;
_26=null;
},parseJSON:function(_28){
try{
return eval("("+_28+")");
}
catch(e){
return null;
}
},saveSelection:function(_29,_2a){
this.selectedValues[_29]=_2a;
},setLanguage:function(_2b){
if(this.languages[_2b]){
this.lang=this.languages[_2b];
}else{
this.lang=this.languages["en_us"];
}
},updateLanguage:function(_2c){
if(typeof (_2c)!="object"){
return;
}
var _2d="";
for(_2d in _2c){
this.lang[_2d]=_2c[_2d];
}
_2c=null;
}};
ndg.createSelect=function(_2e,id,_30,_31,_32){
var _33=document.createElement("select");
_33.name=_2e;
_33.id=id;
if(_31){
_33.multiple=true;
_33.size=_32||10;
}
ndg.selectOptions(_33,_30);
return _33;
};
ndg.disableFields=function(ids){
if(this.dom){
for(var i=0,end=ids.length;i<end;i++){
document.getElementById(ids[i]).disabled=true;
}
}
};
ndg.enableFields=function(ids){
if(this.dom){
for(var i=0,end=ids.length;i<end;i++){
document.getElementById(ids[i]).disabled=false;
}
}
};
ndg.focusField=function(id){
var _3b=document.getElementById(id);
_3b.focus();
if(_3b.select){
_3b.select();
}
};
ndg.getSelectedValue=function(id){
if(this.dom){
var sel=document.getElementById(id);
return sel.options[sel.selectedIndex].value;
}else{
return "";
}
};
ndg.getValidateSuccess=function(_3e,_3f,_40,_41,_42){
function doValidateSuccess(_43,_44){
if(ndg.ajaxType()==="mootools"){
_44=eval("("+this.transport.getResponseHeader("X-JSON")+")");
}
ndg.showFieldInfo(_3e.id,_44.statusType,_44.status,_40,_41,_42);
}
return doValidateSuccess;
};
ndg.hideFieldInfo=function(_45,_46){
document.getElementById(_45+"Msg").style.display="none";
document.getElementById(_45+"Box").className="";
document.getElementById(_45+"Ind").innerHTML=(_46?"<img src=\""+m1_path+"images/icons/indicator_light.gif\" width=\"16\" height=\"16\" alt=\"Please wait...\">":"");
};
ndg.notBlank=function(_47,_48,_49,_4a,_4b){
if(this.dom){
var _4c=_47.value===""?"error":"ok";
var _4d=_48[_4c];
this.showFieldInfo(_47.id,_4c,_4d,_49,_4a,_4b);
}
};
ndg.selectOptions=function(sel,_4f){
if(sel.multiple){
this.selectMultiOptions(sel,isArray(_4f)?_4f:[_4f]);
}else{
this.selectSingleOption(sel,_4f);
}
};
ndg.selectMultiOptions=function(sel,_51){
var i=0;
var end=sel.options.length;
var opt;
while(i<end){
opt=sel.options[i];
if(inArray(opt.value,_51)){
opt.selected=true;
}
i++;
}
opt=null;
sel=null;
};
ndg.selectSingleOption=function(sel,_56){
var i=0;
var end=sel.options.length;
var opt;
while(i<end){
opt=sel.options[i];
if(opt.value==_56){
opt.selected=true;
sel.selectedIndex=i;
break;
}
i++;
}
opt=null;
sel=null;
};
ndg.showFieldInfo=function(_5a,_5b,_5c,_5d,_5e,_5f){
var _60=document.getElementById(_5a+"Box");
var _61=document.getElementById(_5a+"Msg");
var _62=document.getElementById(_5a+"Ind");
_60.style.margin="0";
if(_5b==="ok"){
if(_5f){
_60.className="successBlock";
_62.innerHTML=_5d?"OK":"";
if(_5e&&_5c!==""){
_61.innerHTML=_5c;
_61.style.display="block";
}else{
_61.innerHTML="";
}
}else{
this.hideFieldInfo(_5a,false);
}
}else{
_60.className="errorBlock";
_62.innerHTML="( ! )";
_61.innerHTML=_5c;
_61.style.display="block";
}
};
ndg.validateField=function(_63,_64,_65,_66,_67,_68,_69){
if(this.dom){
_66=this.empty(_66)?null:_66;
var _6a=this.fetch(_64,{onComplete:this.getValidateSuccess(_63,_66,_67,_68,_69),parameters:_65+"="+encodeURIComponent(_63.value)});
this.hideFieldInfo(_63.id,true);
}
};

