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.charAt(i)*tk.charAt(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.charAt(i)*tk.charAt(i);var c=s*10%11;if(!(c<10))
c=0;if(crc!=c){return false;}
return true;});}
