VarienForm=Class.create();VarienForm.prototype={initialize:function(c,b){var a=this;a.form=$(c);if(!a.form)return;a.cache=$A();a.currLoader=false;a.currDataIndex=false;a.validator=new Validation(a.form);a.elementFocus=a.elementOnFocus.bindAsEventListener(a);a.elementBlur=a.elementOnBlur.bindAsEventListener(a);a.childLoader=a.onChangeChildLoad.bindAsEventListener(a);a.highlightClass="highlight";a.extraChildParams="";a.firstFieldFocus=b||false;a.bindElements();if(a.firstFieldFocus)try{Form.Element.focus(Form.findFirstElement(a.form))}catch(d){}},submit:function(){this.validator&&this.validator.validate()&&this.form.submit();return false},bindElements:function(){var a=Form.getElements(this.form);for(var b in a)if(a[b].id){Event.observe(a[b],"focus",this.elementFocus);Event.observe(a[b],"blur",this.elementBlur)}},elementOnFocus:function(b){var a=Event.findElement(b,"fieldset");a&&Element.addClassName(a,this.highlightClass)},elementOnBlur:function(b){var a=Event.findElement(b,"fieldset");a&&Element.removeClassName(a,this.highlightClass)},setElementsRelation:function(a,d,c,e){var b=this;if(a=$(a)){if(!b.cache[a.id]){b.cache[a.id]=$A();b.cache[a.id].child=d;b.cache[a.id].dataUrl=c;b.cache[a.id].data=$A();b.cache[a.id].first=e||false}Event.observe(a,"change",b.childLoader)}},onChangeChildLoad:function(a){element=Event.element(a);this.elementChildLoad(element)},elementChildLoad:function(b,c){var a=this;a.callback=c||false;if(b.value){a.currLoader=b.id;a.currDataIndex=b.value;if(a.cache[b.id].data[b.value])a.setDataToChild(a.cache[b.id].data[b.value]);else new Ajax.Request(a.cache[a.currLoader].dataUrl,{method:"post",parameters:{parent:b.value},onComplete:a.reloadChildren.bind(a)})}},reloadChildren:function(transport){var a=this,data=eval("("+transport.responseText+")");a.cache[a.currLoader].data[a.currDataIndex]=data;a.setDataToChild(data)},setDataToChild:function(c){var h="</option>",g='" title="',f='" class="',b=this;if(c.length){var a=$(b.cache[b.currLoader].child);if(a){var d='<select name="'+a.name+'" id="'+a.id+f+a.className+g+a.title+'" '+b.extraChildParams+">";if(b.cache[b.currLoader].first)d+='<option value="">'+b.cache[b.currLoader].first+h;for(var e in c)if(c[e].value){d+='<option value="'+c[e].value+'"';if(a.value&&(a.value==c[e].value||a.value==c[e].label))d+=" selected";d+=">"+c[e].label+h}d+="</select>";Element.insert(a,{before:d});Element.remove(a)}}else{var a=$(b.cache[b.currLoader].child);if(a){var d='<input type="text" name="'+a.name+'" id="'+a.id+f+a.className+g+a.title+'" '+b.extraChildParams+">";Element.insert(a,{before:d});Element.remove(a)}}b.bindElements();b.callback&&b.callback()}};RegionUpdater=Class.create();RegionUpdater.prototype={initialize:function(f,e,d,g,c,h){var b="undefined",a=this;a.countryEl=$(f);a.regionTextEl=$(e);a.regionSelectEl=$(d);a.zipEl=$(h);a.regions=g;a.disableAction=typeof c==b?"hide":c;a.zipOptions=typeof zipOptions==b?false:zipOptions;a.regionSelectEl.options.length<=1&&a.update();Event.observe(a.countryEl,"change",a.update.bind(a))},update:function(){var a=this;if(a.regions[a.countryEl.value]){var f,c,d,b;if(a.regionTextEl){b=a.regionTextEl.value.toLowerCase();a.regionTextEl.value=""}if(!b)b=a.regionSelectEl.getAttribute("defaultValue");a.regionSelectEl.options.length=1;for(regionId in a.regions[a.countryEl.value]){d=a.regions[a.countryEl.value][regionId];c=document.createElement("OPTION");c.value=regionId;c.text=d.name;if(a.regionSelectEl.options.add)a.regionSelectEl.options.add(c);else a.regionSelectEl.appendChild(c);if(regionId==b||d.name.toLowerCase()==b||d.code.toLowerCase()==b)a.regionSelectEl.value=regionId}if(a.disableAction=="hide"){if(a.regionTextEl)a.regionTextEl.style.display="none";a.regionSelectEl.style.display=""}else if(a.disableAction=="disable"){if(a.regionTextEl)a.regionTextEl.disabled=true;a.regionSelectEl.disabled=false}a.setMarkDisplay(a.regionSelectEl,true)}else{if(a.disableAction=="hide"){if(a.regionTextEl)a.regionTextEl.style.display="";a.regionSelectEl.style.display="none";Validation.reset(a.regionSelectEl)}else if(a.disableAction=="disable"){if(a.regionTextEl)a.regionTextEl.disabled=false;a.regionSelectEl.disabled=true}else if(a.disableAction=="nullify"){a.regionSelectEl.options.length=1;a.regionSelectEl.value="";a.regionSelectEl.selectedIndex=0;a.lastCountryId=""}a.setMarkDisplay(a.regionSelectEl,false)}var e=new ZipUpdater(a.countryEl.value,a.zipEl);e.update()},setMarkDisplay:function(a,f){var e="required-entry",d="label.required > em",c="label > span.required";a=$(a);var b=a.up(0).down(c)||a.up(1).down(c)||a.up(0).down(d)||a.up(1).down(d);if(b){inputElement=b.up().next("input");if(f){b.show();inputElement&&inputElement.addClassName(e)}else{b.hide();inputElement&&inputElement.removeClassName(e)}}}};ZipUpdater=Class.create();ZipUpdater.prototype={initialize:function(b,a){this.country=b;this.zipElement=$(a)},update:function(){var a=this;if(typeof optionalZipCountries=="undefined")return false;if(a.zipElement!=undefined)a._setPostcodeOptional();else Event.observe(window,"load",a._setPostcodeOptional.bind(a))},_setPostcodeOptional:function(){var c="required-entry",a=this;a.zipElement=$(a.zipElement);if(a.zipElement==undefined)return false;var d=$$('label[for="'+a.zipElement.id+'"]')[0];if(d!=undefined)var b=d.down("em")||d.down("span.required");if(optionalZipCountries.indexOf(a.country)!=-1){while(a.zipElement.hasClassName(c))a.zipElement.removeClassName(c);b!=undefined&&b.hide()}else{a.zipElement.addClassName(c);b!=undefined&&b.show()}}};
