var Scriptaculous={Version:'1.8.2',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');},REQUIRED_PROTOTYPE:'1.6.0.3',load:function(){function convertVersionString(versionString){var v=versionString.replace(/_.*|\./g,'');v=parseInt(v+'0'.times(4-v.length));return versionString.indexOf('_')>-1?v-1:v;}
if((typeof Prototype=='undefined')||(typeof Element=='undefined')||(typeof Element.Methods=='undefined')||(convertVersionString(Prototype.Version)<convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= "+
Scriptaculous.REQUIRED_PROTOTYPE);var js=/scriptaculous\.js(\?.*)?$/;$$('head script[src]').findAll(function(s){return s.src.match(js);}).each(function(s){var path=s.src.replace(js,''),includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider,sound').split(',').each(function(include){Scriptaculous.require(path+include+'.js')});});}};Scriptaculous.load();;if(typeof Product=='undefined'){var Product={};}
Product.Zoom=Class.create();Product.Zoom.prototype={initialize:function(imageEl,trackEl,handleEl,zoomInEl,zoomOutEl,hintEl){this.containerEl=$(imageEl).parentNode;this.imageEl=$(imageEl);this.handleEl=$(handleEl);this.trackEl=$(trackEl);this.hintEl=$(hintEl);this.containerDim=Element.getDimensions(this.containerEl);this.imageDim=Element.getDimensions(this.imageEl);this.imageDim.ratio=this.imageDim.width/this.imageDim.height;this.floorZoom=1;if(this.imageDim.width>this.imageDim.height){this.ceilingZoom=this.imageDim.width/this.containerDim.width;}else{this.ceilingZoom=this.imageDim.height/this.containerDim.height;}
if(this.imageDim.width<=this.containerDim.width&&this.imageDim.height<=this.containerDim.height){this.trackEl.up().hide();this.hintEl.hide();this.containerEl.removeClassName('product-image-zoom');return;}
this.imageX=0;this.imageY=0;this.imageZoom=1;this.sliderSpeed=0;this.sliderAccel=0;this.zoomBtnPressed=false;this.showFull=false;this.selects=document.getElementsByTagName('select');this.draggable=new Draggable(imageEl,{starteffect:false,reverteffect:false,endeffect:false,snap:this.contain.bind(this)});this.slider=new Control.Slider(handleEl,trackEl,{axis:'horizontal',minimum:0,maximum:Element.getDimensions(this.trackEl).width,alignX:0,increment:1,sliderValue:0,onSlide:this.scale.bind(this),onChange:this.scale.bind(this)});this.scale(0);Event.observe(this.imageEl,'dblclick',this.toggleFull.bind(this));Event.observe($(zoomInEl),'mousedown',this.startZoomIn.bind(this));Event.observe($(zoomInEl),'mouseup',this.stopZooming.bind(this));Event.observe($(zoomInEl),'mouseout',this.stopZooming.bind(this));Event.observe($(zoomOutEl),'mousedown',this.startZoomOut.bind(this));Event.observe($(zoomOutEl),'mouseup',this.stopZooming.bind(this));Event.observe($(zoomOutEl),'mouseout',this.stopZooming.bind(this));},toggleFull:function(){this.showFull=!this.showFull;if(typeof document.body.style.maxHeight=="undefined"){for(i=0;i<this.selects.length;i++){this.selects[i].style.visibility=this.showFull?'hidden':'visible';}}
val_scale=!this.showFull?this.slider.value:1;this.scale(val_scale);this.trackEl.style.visibility=this.showFull?'hidden':'visible';this.containerEl.style.overflow=this.showFull?'visible':'hidden';this.containerEl.style.zIndex=this.showFull?'1000':'9';return this;},scale:function(v){var centerX=(this.containerDim.width*(1-this.imageZoom)/2-this.imageX)/this.imageZoom;var centerY=(this.containerDim.height*(1-this.imageZoom)/2-this.imageY)/this.imageZoom;var overSize=(this.imageDim.width>this.containerDim.width&&this.imageDim.height>this.containerDim.height);this.imageZoom=this.floorZoom+(v*(this.ceilingZoom-this.floorZoom));if(overSize){if(this.imageDim.width>this.containerDim.width){this.imageEl.style.width=(this.imageZoom*this.containerDim.width)+'px';}
if(this.containerDim.ratio){this.imageEl.style.height=(this.imageZoom*this.containerDim.width*this.containerDim.ratio)+'px';}}else{this.slider.setDisabled();}
this.imageX=this.containerDim.width*(1-this.imageZoom)/2-centerX*this.imageZoom;this.imageY=this.containerDim.height*(1-this.imageZoom)/2-centerY*this.imageZoom;this.contain(this.imageX,this.imageY,this.draggable);return true;},startZoomIn:function()
{if(!this.slider.disabled){this.zoomBtnPressed=true;this.sliderAccel=.002;this.periodicalZoom();this.zoomer=new PeriodicalExecuter(this.periodicalZoom.bind(this),.05);}
return this;},startZoomOut:function()
{if(!this.slider.disabled){this.zoomBtnPressed=true;this.sliderAccel=-.002;this.periodicalZoom();this.zoomer=new PeriodicalExecuter(this.periodicalZoom.bind(this),.05);}
return this;},stopZooming:function()
{if(!this.zoomer||this.sliderSpeed==0){return;}
this.zoomBtnPressed=false;this.sliderAccel=0;},periodicalZoom:function()
{if(!this.zoomer){return this;}
if(this.zoomBtnPressed){this.sliderSpeed+=this.sliderAccel;}else{this.sliderSpeed/=1.5;if(Math.abs(this.sliderSpeed)<.001){this.sliderSpeed=0;this.zoomer.stop();this.zoomer=null;}}
this.slider.value+=this.sliderSpeed;this.slider.setValue(this.slider.value);this.scale(this.slider.value);return this;},contain:function(x,y,draggable){var dim=Element.getDimensions(draggable.element);var xMin=0,xMax=this.containerDim.width-dim.width;var yMin=0,yMax=this.containerDim.height-dim.height;x=x>xMin?xMin:x;x=x<xMax?xMax:x;y=y>yMin?yMin:y;y=y<yMax?yMax:y;if(this.containerDim.width>dim.width){x=(this.containerDim.width/2)-(dim.width/2);}
if(this.containerDim.height>dim.height){y=(this.containerDim.height/2)-(dim.height/2);}
this.imageX=x;this.imageY=y;this.imageEl.style.left=this.imageX+'px';this.imageEl.style.top=this.imageY+'px';return[x,y];}}
Product.Config=Class.create();Product.Config.prototype={initialize:function(config){this.config=config;this.taxConfig=this.config.taxConfig;this.settings=$$('.super-attribute-select');this.state=new Hash();this.priceTemplate=new Template(this.config.template);this.prices=config.prices;this.settings.each(function(element){Event.observe(element,'change',this.configure.bind(this))}.bind(this));this.settings.each(function(element){var attributeId=element.id.replace(/[a-z]*/,'');if(attributeId&&this.config.attributes[attributeId]){element.config=this.config.attributes[attributeId];element.attributeId=attributeId;this.state[attributeId]=false;}}.bind(this))
var childSettings=[];for(var i=this.settings.length-1;i>=0;i--){var prevSetting=this.settings[i-1]?this.settings[i-1]:false;var nextSetting=this.settings[i+1]?this.settings[i+1]:false;if(i==0){this.fillSelect(this.settings[i])}
else{this.settings[i].disabled=true;}
$(this.settings[i]).childSettings=childSettings.clone();$(this.settings[i]).prevSetting=prevSetting;$(this.settings[i]).nextSetting=nextSetting;childSettings.push(this.settings[i]);}
var separatorIndex=window.location.href.indexOf('#');if(separatorIndex!=-1){var paramsStr=window.location.href.substr(separatorIndex+1);this.values=paramsStr.toQueryParams();this.settings.each(function(element){var attributeId=element.attributeId;element.value=(typeof(this.values[attributeId])=='undefined')?'':this.values[attributeId];this.configureElement(element);}.bind(this));}},configure:function(event){var element=Event.element(event);this.configureElement(element);},configureElement:function(element){this.reloadOptionLabels(element);if(element.value){this.state[element.config.id]=element.value;if(element.nextSetting){element.nextSetting.disabled=false;this.fillSelect(element.nextSetting);this.resetChildren(element.nextSetting);}}
else{this.resetChildren(element);}
this.reloadPrice();},reloadOptionLabels:function(element){var selectedPrice;if(element.options[element.selectedIndex].config){selectedPrice=parseFloat(element.options[element.selectedIndex].config.price)}
else{selectedPrice=0;}
for(var i=0;i<element.options.length;i++){if(element.options[i].config){element.options[i].text=this.getOptionLabel(element.options[i].config,element.options[i].config.price-selectedPrice);}}},resetChildren:function(element){if(element.childSettings){for(var i=0;i<element.childSettings.length;i++){element.childSettings[i].selectedIndex=0;element.childSettings[i].disabled=true;if(element.config){this.state[element.config.id]=false;}}}},fillSelect:function(element){var attributeId=element.id.replace(/[a-z]*/,'');var options=this.getAttributeOptions(attributeId);this.clearSelect(element);element.options[0]=new Option(this.config.chooseText,'');var prevConfig=false;if(element.prevSetting){prevConfig=element.prevSetting.options[element.prevSetting.selectedIndex];}
if(options){var index=1;for(var i=0;i<options.length;i++){var allowedProducts=[];if(prevConfig){for(var j=0;j<options[i].products.length;j++){if(prevConfig.config.allowedProducts&&prevConfig.config.allowedProducts.indexOf(options[i].products[j])>-1){allowedProducts.push(options[i].products[j]);}}}else{allowedProducts=options[i].products.clone();}
if(allowedProducts.size()>0){options[i].allowedProducts=allowedProducts;element.options[index]=new Option(this.getOptionLabel(options[i],options[i].price),options[i].id);element.options[index].config=options[i];index++;}}}},getOptionLabel:function(option,price){var price=parseFloat(price);if(this.taxConfig.includeTax){var tax=price/(100+this.taxConfig.defaultTax)*this.taxConfig.defaultTax;var excl=price-tax;var incl=excl*(1+(this.taxConfig.currentTax/100));}else{var tax=price*(this.taxConfig.currentTax/100);var excl=price;var incl=excl+tax;}
if(this.taxConfig.showIncludeTax||this.taxConfig.showBothPrices){price=incl;}else{price=excl;}
var str=option.label;if(price){if(this.taxConfig.showBothPrices){str+=' '+this.formatPrice(excl,true)+' ('+this.formatPrice(price,true)+' '+this.taxConfig.inclTaxTitle+')';}else{str+=' '+this.formatPrice(price,true);}}
return str;},formatPrice:function(price,showSign){var str='';price=parseFloat(price);if(showSign){if(price<0){str+='-';price=-price;}
else{str+='+';}}
var roundedPrice=(Math.round(price*100)/100).toString();if(this.prices&&this.prices[roundedPrice]){str+=this.prices[roundedPrice];}
else{str+=this.priceTemplate.evaluate({price:price.toFixed(2)});}
return str;},clearSelect:function(element){for(var i=element.options.length-1;i>=0;i--){element.remove(i);}},getAttributeOptions:function(attributeId){if(this.config.attributes[attributeId]){return this.config.attributes[attributeId].options;}},reloadPrice:function(){var price=0;for(var i=this.settings.length-1;i>=0;i--){var selected=this.settings[i].options[this.settings[i].selectedIndex];if(selected.config){price+=parseFloat(selected.config.price);}}
optionsPrice.changePrice('config',price);optionsPrice.reload();return price;if($('product-price-'+this.config.productId)){$('product-price-'+this.config.productId).innerHTML=price;}
this.reloadOldPrice();},reloadOldPrice:function(){if($('old-price-'+this.config.productId)){var price=parseFloat(this.config.oldPrice);for(var i=this.settings.length-1;i>=0;i--){var selected=this.settings[i].options[this.settings[i].selectedIndex];if(selected.config){price+=parseFloat(selected.config.price);}}
if(price<0)
price=0;price=this.formatPrice(price);if($('old-price-'+this.config.productId)){$('old-price-'+this.config.productId).innerHTML=price;}}}}
Product.Super={};Product.Super.Configurable=Class.create();Product.Super.Configurable.prototype={initialize:function(container,observeCss,updateUrl,updatePriceUrl,priceContainerId){this.container=$(container);this.observeCss=observeCss;this.updateUrl=updateUrl;this.updatePriceUrl=updatePriceUrl;this.priceContainerId=priceContainerId;this.registerObservers();},registerObservers:function(){var elements=this.container.getElementsByClassName(this.observeCss);elements.each(function(element){Event.observe(element,'change',this.update.bindAsEventListener(this));}.bind(this));return this;},update:function(event){var elements=this.container.getElementsByClassName(this.observeCss);var parameters=Form.serializeElements(elements,true);new Ajax.Updater(this.container,this.updateUrl+'?ajax=1',{parameters:parameters,onComplete:this.registerObservers.bind(this)});var priceContainer=$(this.priceContainerId);if(priceContainer){new Ajax.Updater(priceContainer,this.updatePriceUrl+'?ajax=1',{parameters:parameters});}}}
Product.OptionsPrice=Class.create();Product.OptionsPrice.prototype={initialize:function(config){this.productId=config.productId;this.priceFormat=config.priceFormat;this.includeTax=config.includeTax;this.defaultTax=config.defaultTax;this.currentTax=config.currentTax;this.productPrice=config.productPrice;this.showIncludeTax=config.showIncludeTax;this.showBothPrices=config.showBothPrices;this.productPrice=config.productPrice;this.productOldPrice=config.productOldPrice;this.skipCalculate=config.skipCalculate;this.duplicateIdSuffix=config.idSuffix;this.oldPlusDisposition=config.oldPlusDisposition;this.plusDisposition=config.plusDisposition;this.oldMinusDisposition=config.oldMinusDisposition;this.minusDisposition=config.minusDisposition;this.optionPrices={};this.containers={};this.displayZeroPrice=true;this.initPrices();},setDuplicateIdSuffix:function(idSuffix){this.duplicateIdSuffix=idSuffix;},initPrices:function(){this.containers[0]='product-price-'+this.productId;this.containers[1]='bundle-price-'+this.productId;this.containers[2]='price-including-tax-'+this.productId;this.containers[3]='price-excluding-tax-'+this.productId;this.containers[4]='old-price-'+this.productId;},changePrice:function(key,price){this.optionPrices[key]=parseFloat(price);},getOptionPrices:function(){var result=0;var nonTaxable=0;$H(this.optionPrices).each(function(pair){if(pair.key=='nontaxable'){nonTaxable=pair.value;}else{result+=pair.value;}});var r=new Array(result,nonTaxable);return r;},reload:function(){var price;var formattedPrice;var optionPrices=this.getOptionPrices();var nonTaxable=optionPrices[1];optionPrices=optionPrices[0];$H(this.containers).each(function(pair){var _productPrice;var _plusDisposition;var _minusDisposition;if($(pair.value)){if(pair.value=='old-price-'+this.productId&&this.productOldPrice!=this.productPrice){_productPrice=this.productOldPrice;_plusDisposition=this.oldPlusDisposition;_minusDisposition=this.oldMinusDisposition;}else{_productPrice=this.productPrice;_plusDisposition=this.plusDisposition;_minusDisposition=this.minusDisposition;}
var price=optionPrices+parseFloat(_productPrice)
if(this.includeTax=='true'){var tax=price/(100+this.defaultTax)*this.defaultTax;var excl=price-tax;var incl=excl*(1+(this.currentTax/100));}else{var tax=price*(this.currentTax/100);var excl=price;var incl=excl+tax;}
excl+=parseFloat(_plusDisposition);incl+=parseFloat(_plusDisposition);excl-=parseFloat(_minusDisposition);incl-=parseFloat(_minusDisposition);excl+=parseFloat(nonTaxable);incl+=parseFloat(nonTaxable);if(pair.value=='price-including-tax-'+this.productId){price=incl;}else if(pair.value=='old-price-'+this.productId){if(this.showIncludeTax||this.showBothPrices){price=incl;}else{price=excl;}}else{if(this.showIncludeTax){price=incl;}else{if(!this.skipCalculate||_productPrice==0){price=excl;}else{price=optionPrices+parseFloat(_productPrice);}}}
if(price<0)price=0;if(price>0||this.displayZeroPrice){formattedPrice=this.formatPrice(price);}else{formattedPrice='';}
if($(pair.value).select('.price')[0]){$(pair.value).select('.price')[0].innerHTML=formattedPrice;if($(pair.value+this.duplicateIdSuffix)&&$(pair.value+this.duplicateIdSuffix).select('.price')[0]){$(pair.value+this.duplicateIdSuffix).select('.price')[0].innerHTML=formattedPrice;}}else{$(pair.value).innerHTML=formattedPrice;if($(pair.value+this.duplicateIdSuffix)){$(pair.value+this.duplicateIdSuffix).innerHTML=formattedPrice;}}};}.bind(this));},formatPrice:function(price){return formatCurrency(price,this.priceFormat);}};if(!PfpjRom)var PfpjRom={};PfpjRom.AddressTippersBehaviour=Class.create();PfpjRom.AddressTippersBehaviour.prototype={initialize:function(tippers_value,state,config,levels_to_paret,is_tippers_required,enable_obj,primary_billing_id,primary_shipping_id,is_default_billing,is_default_shipping){this.enableObj=(enable_obj==true||enable_obj==null?true:false);this.config=config||{};is_tippers_required=(is_tippers_required==true||enable_obj==null?true:false);this.triggerBaseId=(this.config.trigger||null);this.requiredHintPath=(this.config.required_hint_path||"span.required");this.optionsConfig=(this.config.options||{});this.fieldsConfig=(this.config.fields||{});this.requiredClass=(this.config.required_class||"required-entry");this.state=state;this.primaryBilling=(primary_billing_id!=null&&$(primary_billing_id)!=undefined?$(primary_billing_id):null);this.primaryShipping=(primary_shipping_id!=null&&$(primary_shipping_id)!=undefined?$(primary_shipping_id):null);this.isDefaultBilling=(is_default_billing==true?true:false);this.isDefaultShipping=(is_default_shipping==true?true:false);if(!is_tippers_required){for(var fieldName in this.fieldsConfig){if(fieldName.indexOf('pfpj_tip_pers')!=-1){for(var fieldOption in this.fieldsConfig[fieldName]){if(this.state=='all'||this.state=='billing')
this.fieldsConfig[fieldName][fieldOption]['billing'].required=false;if(this.state=='all'||this.state=='shipping')
this.fieldsConfig[fieldName][fieldOption]['shipping'].required=false;}
break;}}}
this.tippersValue=(!(tippers_value==""||tippers_value==undefined)?tippers_value:this.config.default_option);this.levelsToParet=(levels_to_paret!=undefined?levels_to_paret:1);this.enableObject(this,this.enableObj);},enableObject:function(addr,enableObj){if(!enableObj){addr.enableObj=false;return false;}
addr.enableObj=enableObj;addr.fields={};for(var fieldName in addr.fieldsConfig){if($(fieldName)){addr.fields[fieldName]=$(fieldName);}}
addr.options={};for(var optionValue in addr.optionsConfig)
if($(addr.triggerBaseId+optionValue))
addr.options[optionValue]=$(addr.triggerBaseId+optionValue);for(var option in addr.options)
Event.observe(addr.options[option],'click',addr.eventListenerTippers.bindAsEventListener(addr,addr));if(addr.state=='all'||addr.state=='billing'){Event.observe(addr.fields[addr.getFieldName(addr,'pfpj_for_billing')],'change',addr.eventListenerStateFields.bindAsEventListener(addr,addr));}
if(addr.state=='all'||addr.state=='shipping'){Event.observe(addr.fields[addr.getFieldName(addr,'pfpj_for_shipping')],'change',addr.eventListenerStateFields.bindAsEventListener(addr,addr));}
if(addr.primaryBilling!=null)
Event.observe(addr.primaryBilling,'change',addr.eventListenerPrimaryBilling.bindAsEventListener(addr,addr));if(addr.primaryShipping!=null)
Event.observe(addr.primaryShipping,'change',addr.eventListenerPrimaryShipping.bindAsEventListener(addr,addr));addr.initObject(addr);return true;},initObject:function(addr){addr.switchOptions(addr);},setTippersValue:function(addr,v){addr.tippersValue=v;},setStateDefaultValue:function(addr,name,state){var _name=addr.getFieldName(addr,name);if(addr.isDefaultBilling&&_name=='pfpj_for_billing'){addr.fields[_name].value=1;addr.fields[_name].checked=true;}else if(addr.isDefaultShipping&&_name=='pfpj_for_shipping'){addr.fields[_name].value=1;addr.fields[_name].checked=true;}else{addr.fields[_name].value=addr.getDefaultValue(addr,_name,addr.tippersValue,state);addr.fields[_name].checked=(addr.fields[_name].value==1?true:false);}},eventListenerTippers:function(e,addr){addr.setTippersValue(addr,Event.element(e).value);if(addr.state=='all'||addr.state=='billing')
addr.setStateDefaultValue(addr,'pfpj_for_billing',addr.state);if(addr.state=='all'||addr.state=='shipping')
addr.setStateDefaultValue(addr,'pfpj_for_shipping',addr.state);addr.switchOptions(addr);},eventListenerStateFields:function(e,addr){var el=Event.element(e);for(var optionValue in addr.options){if(addr.options[optionValue].checked==true){addr.setTippersValue(addr,optionValue);}}
addr.setStateFieldsByPrimary(addr,el);addr.switchOptions(addr);},setStateFieldsByPrimary:function(addr,el){if(el.id==addr.getFieldName(addr,'pfpj_for_billing')){if(addr.primaryBilling!==null){if(addr.primaryBilling.checked)
addr.isDefaultBilling=true;else
addr.isDefaultBilling=false;}
if(addr.isDefaultBilling){el.checked=true;el.value=1;}}
if(el.id==addr.getFieldName(addr,'pfpj_for_billing')&&addr.primaryBilling!=null){el.value=(el.checked?1:0);if(!el.checked&&addr.primaryBilling.checked)
addr.primaryBilling.checked=false;}
if(el.id==addr.getFieldName(addr,'pfpj_for_shipping')){if(addr.primaryShipping!==null){if(addr.primaryShipping.checked){addr.isDefaultShipping=true;}else{addr.isDefaultShipping=false;}}
if(addr.isDefaultShipping){el.checked=true;el.value=1;}}
if(el.id==addr.getFieldName(addr,'pfpj_for_shipping')&&addr.primaryShipping!=null){el.value=(el.checked?1:0);if(!el.checked&&addr.primaryShipping.checked)
addr.primaryShipping.checked=false;}},eventListenerPrimaryBilling:function(e,addr){if(Event.element(e).checked){var billingName=addr.getFieldName(addr,'pfpj_for_billing');addr.fields[billingName].checked=true;addr.fields[billingName].value=1;addr.isDefaultBilling=true;}else{addr.isDefaultBilling=false;}
addr.eventListenerStateFields(e,addr);},eventListenerPrimaryShipping:function(e,addr){if(Event.element(e).checked){var shippingName=addr.getFieldName(addr,'pfpj_for_shipping');addr.fields[shippingName].checked=true;addr.fields[shippingName].value=1;addr.isDefaultShipping=true;}else{addr.isDefaultShipping=false;}
addr.eventListenerStateFields(e,addr);},getFieldName:function(addr,name){for(var fieldName in addr.fields){if(fieldName.indexOf(name)!=-1)
return fieldName;}
return null;},getIsForBilling:function(addr){var billingEl=addr.fields[addr.getFieldName(addr,'pfpj_for_billing')];if(billingEl.checked==true)
return true;return false;},getIsForShipping:function(addr){var shippingEl=addr.fields[addr.getFieldName(addr,'pfpj_for_shipping')];if(shippingEl.checked==true)
return true;return false;},isShowField:function(addr,fieldName,tippers_value,state,check_state_field){var ret;if(state=='billing'){ret=((check_state_field&&addr.getIsForBilling(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value][state].show;}else if(state=='shipping'){ret=((check_state_field&&addr.getIsForShipping(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value][state].show;}else{ret=((check_state_field&&addr.getIsForBilling(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value]['billing'].show;ret=ret||(((check_state_field&&addr.getIsForShipping(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value]['shipping'].show);}
return ret;},isRequiredField:function(addr,fieldName,tippers_value,state,check_state_field){var ret;if(state=='billing'){ret=((check_state_field&&addr.getIsForBilling(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value][state].required;}else if(state=='shipping'){ret=((check_state_field&&addr.getIsForShipping(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value][state].required;}else{ret=((check_state_field&&addr.getIsForBilling(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value]['billing'].required;ret=ret||(((check_state_field&&addr.getIsForShipping(addr))||!check_state_field)&&addr.fieldsConfig[fieldName][tippers_value]['shipping'].required);}
return ret;},getDefaultValue:function(addr,fieldName,tippers_value,state){var defaultValue;if(state!='all'){defaultValue=addr.fieldsConfig[fieldName][tippers_value][state].defaultValue;}else{defaultValue=(addr.fieldsConfig[fieldName][tippers_value]['billing'].defaultValue==1||addr.fieldsConfig[fieldName][tippers_value]['shipping'].defaultValue==1?1:0);}
return defaultValue;},switchOptions:function(addr){var billingName=addr.getFieldName(addr,'pfpj_for_billing');var shippingName=addr.getFieldName(addr,'pfpj_for_shipping');if(addr.state=='all'||addr.state=='billing')
addr.setStateFieldsByPrimary(addr,addr.fields[billingName]);if(addr.state=='all'||addr.state=='shipping')
addr.setStateFieldsByPrimary(addr,addr.fields[shippingName]);for(var fieldName in addr.fields){if(billingName!=fieldName&&shippingName!=fieldName){if(addr.isShowField(addr,fieldName,addr.tippersValue,addr.state,true)){addr.fields[fieldName].up(addr.levelsToParet).show();}else{addr.fields[fieldName].up(addr.levelsToParet).hide();addr.fields[fieldName].value="";}}}
if(addr.state=='all'||addr.state=='billing'){if(addr.isShowField(addr,billingName,addr.tippersValue,addr.state,false)){addr.fields[billingName].up(addr.levelsToParet).show();}else{addr.fields[billingName].up(addr.levelsToParet).hide();addr.setStateDefaultValue(addr,'pfpj_for_billing',addr.state);}}
if(addr.state=='all'||addr.state=='shipping'){if(addr.isShowField(addr,shippingName,addr.tippersValue,addr.state,false)){addr.fields[shippingName].up(addr.levelsToParet).show();}else{addr.fields[shippingName].up(addr.levelsToParet).hide();addr.setStateDefaultValue(addr,'pfpj_for_shipping',addr.state);}}
for(var fieldName in addr.fields){if(billingName!=fieldName&&shippingName!=fieldName){var spanReqEl=addr.fields[fieldName].up(addr.levelsToParet).down(addr.requiredHintPath);if(addr.isRequiredField(addr,fieldName,addr.tippersValue,addr.state,true)){addr.fields[fieldName].removeClassName(addr.requiredClass);addr.fields[fieldName].addClassName(addr.requiredClass);if(spanReqEl!=undefined)
spanReqEl.show();}else{addr.fields[fieldName].removeClassName(addr.requiredClass);if(spanReqEl!=undefined)
spanReqEl.hide();}}}},mutateFieldsNames:function(addr,prefix_new,prefix_old,suffix_new,suffix_old){var newFieldsConfig={};for(var fieldName in addr.fieldsConfig){var newFieldName=addr._mutateName(fieldName,prefix_new,prefix_old,suffix_new,suffix_old);;newFieldsConfig[newFieldName]=addr.fieldsConfig[fieldName];}
addr.fieldsConfig=newFieldsConfig;addr.triggerBaseId=addr._mutateName(addr.triggerBaseId,prefix_new,prefix_old,suffix_new,suffix_old);},mutatePrimaryNames:function(addr,prefix_new,prefix_old,suffix_new,suffix_old){var primary_billing_id;var primary_shipping_id;if(addr.primaryBilling!=null){primary_billing_id=addr._mutateName(addr.primaryBilling.id,prefix_new,prefix_old,suffix_new,suffix_old);addr.primaryBilling=($(primary_billing_id)!=undefined?$(primary_billing_id):null);}
if(addr.primaryShipping!=null){primary_shipping_id=addr._mutateName(addr.primaryShipping.id,prefix_new,prefix_old,suffix_new,suffix_old);addr.primaryShipping=($(primary_shipping_id)!=undefined?$(primary_shipping_id):null);}},_mutateName:function(fieldName,prefix_new,prefix_old,suffix_new,suffix_old){var newFieldName=fieldName;if(!((prefix_new==""||prefix_new==null)&&(prefix_old==""||prefix_old==null))){if(!(prefix_old==""||prefix_old==null)){if(newFieldName.indexOf(prefix_old)==0){newFieldName=prefix_new+newFieldName.substr(prefix_old.length);}}else{newFieldName=prefix_new+newFieldName;}}
if(!((suffix_new==""||suffix_new==null)&&(suffix_old==""||suffix_old==null))){if(!(suffix_old==""||suffix_old==null)){if(newFieldName.indexOf(suffix_old)>-1&&newFieldName.indexOf(suffix_old)==newFieldName.length-suffix_old.length){newFieldName=newFieldName.substr(0,newFieldName.indexOf(suffix_old))+suffix_new;}}else{newFieldName=newFieldName+suffix_new;}}
return newFieldName;},setFieldsValues:function(addr,addr_source,prefix_source,prefix_target,suffix_source,sufix_target){for(fieldName in addr.fields){var field_source;if(addr.fields[fieldName]){field_source=$(addr._mutateName(fieldName,prefix_source,prefix_target,suffix_source,sufix_target));if(field_source)
addr.fields[fieldName].value=field_source.value;}}
for(var optionValue in addr.options){addr.options[optionValue].checked=addr_source.options[optionValue].checked;if(addr.options[optionValue].checked==true){addr.setTippersValue(addr,optionValue);}}
addr.switchOptions(addr);},eventListenerSetFieldsValues:function(e,addr,addr_source,prefix_source,prefix_target,suffix_source,sufix_target){var trigger_el;trigger_el=Event.element(e);if(trigger_el.checked){addr.setFieldsValues(addr,addr_source,prefix_source,prefix_target,suffix_source,sufix_target);}},syncWithBilling:function(addr,addr_source,trigger,prefix_source,prefix_target,suffix_source,sufix_target){if($(trigger)){addr.triggerSyncWithBilling=$(trigger);Event.observe(addr.triggerSyncWithBilling,'click',addr.eventListenerSetFieldsValues.bindAsEventListener(addr,addr,addr_source,prefix_source,prefix_target,suffix_source,sufix_target));}},eventListenerCheckFieldState:function(e,addr){var el=Event.element(e);el.checked=true;el.value=1;}}
if(Validation){Validation.add('validate-pfpj-cnp','CNP invalid.',function(v,elm){if(Validation.get('IsEmpty').test(v))return true;if(v.length!=13)
return false;var regex=/^([0-9])([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{3})([0-9])$/;var patt=new RegExp(regex);var matches=patt.exec(v);if(!matches)
return false;var sex=matches[1];var year=matches[2];var month=matches[3];var day=matches[4];var regionCode=matches[5];var ord=matches[6];var crc=matches[7];if(sex<=0)
return false;var validateDate=true;var yPrefix="";if(sex==1||sex==2)
yPrefix="19";else if(sex==3||sex==4)
yPrefix="18";else if(sex==5||sex==6)
yPrefix="20";else if(sex==7||sex==8||sex==9)
validateDate=false;if(month<=0||month>12)
return false;if(day<=0||day>31)
return false;if(validateDate){var testDate=new Date(parseInt(yPrefix+year,10),parseInt(month,10)-1,parseInt(day,10),0,0,0);if((testDate.getFullYear()!=parseInt(yPrefix+year,10))||(testDate.getMonth()+1!=parseInt(month,10))||(testDate.getDate()!=parseInt(day,10))){return false;}else{var today=new Date();if(today<testDate){return false;}}}
var regionsCodes={'01':'Alba','02':'Arad','03':'Argeş','04':'Bacău','05':'Bihor','06':'Bistriţa-Năsăud','07':'Botoşani','08':'Braşov','09':'Brăila','10':'Buzău','11':'Caraş-Severin','12':'Cluj','13':'Constanţa','14':'Covasna','15':'Dâmboviţa','16':'Dolj','17':'Galaţi','18':'Gorj','19':'Harghita','20':'Hunedoara','21':'Ialomiţa','22':'Iaşi','23':'Ilfov','24':'Maramureş','25':'Mehedinţi','26':'Mureş','27':'Neamţ','28':'Olt','29':'Prahova','30':'Satu Mare','31':'Sălaj','32':'Sibiu','33':'Suceava','34':'Teleorman','35':'Timiş','36':'Tulcea','37':'Vaslui','38':'Vâlcea','39':'Vrancea','40':'Bucureşti','41':'Bucureşti S.1','42':'Bucureşti S.2','43':'Bucureşti S.3','44':'Bucureşti S.4','45':'Bucureşti S.5','46':'Bucureşti S.6','51':'Călăraşi','52':'Giurgiu'};if(regionsCodes[regionCode]==undefined)
return false;if(ord<=0)
return false;var tk='279146358279';var s=0;for(var i=0;i<12;i++)
s+=v[i]*tk[i];var c=s%11;if(!(c<10))
c=1;if(crc!=c){return false;}
return true;});Validation.add('validate-pfpj-cif','CIF invalid.',function(v,elm){if(Validation.get('IsEmpty').test(v))return true;var prefix="";if(v.indexOf("RO")==0){prefix="RO";v=v.replace(/ro\s*/i,"");}
if(v.length>10)
return false;var regex=/^([0-9]{1,9})([0-9])$/;var patt=new RegExp(regex);var matches=patt.exec(v);if(!matches)
return false;var code=matches[1];var crc=matches[2];v=v.split("").reverse().join("").substr(1);var tk="753217532".split("").reverse().join("");var s=0;for(var i=0;i<v.length;i++)
s+=v[i]*tk[i];var c=s*10%11;if(!(c<10))
c=0;if(crc!=c){return false;}
return true;});}
