function Forms()
{var ana=this;ana.polType=1;ana.inputs={};ana.doneSections={};this.init=function()
{var done=function(response)
{if(response.errorCode=='OK')
{ana.summaries=response.list;ana.days=response.days;ana.months=response.months;}};ajax.requestPost('forms','list',{},done);ajax.requestInvisiblePost('sessionFlow','applicationStart');}
this.popup=function(windowname)
{var url;switch(windowname)
{case'trailer1':url='http://www.asesorseguros.com/formulario/seccion_ayuda.html';break;case'trailer2':url='http://www.asesorseguros.com/formulario/seguridad.html';break;case'saving':url='http://www.asesorseguros.com/formulario/politica_privacidad.html';break;case'tipA6':url='http://www.asesorseguros.com/formulario/ficha_tecnica_fecha_produccion.html';break;case'tipA7':url='http://www.asesorseguros.com/formulario/ficha_tecnica_potencia.html';break;case'tipA10':url='http://www.asesorseguros.com/formulario/ficha_tecnica_rematriculado.html';break;}
window.open(url,'','scrollbars=yes, menubar=yes, height=600, width=800, resizable=yes, toolbar=no, location=yes, status=no');ajax.requestInvisiblePost("sessionFlow","popup");}
this.getSummaryItems=function(arr)
{var ret=[];var body=ana.summaries.A.body;arr.each(function(bodyItem){var historyValue=ana.getHistoryValue(body,bodyItem);if(!historyValue.data.list&&bodyItem=='brand'){var temp=[];historyValue.data.list=controller.staticForms.staticForms.forms['A']['data']['inputs'];historyValue.data.selected=controller.brandValue;}
if(historyValue)ret.push(historyValue);});return ret;}
var submitCallback=function(response,params)
{if(response.errorCode=='OK'&&response.userCode)
{ana.storeHistory(ana.inputs.formId);controller.results.quoteDef=response.QuoteDef;controller.user.accessCode=response.userCode;controller.user.accessPwd=response.pwd;controller.results.fetchResults('results','view',response.QuoteID);}
else if(response.errorCode=='InvalidDate')
alert(ana.errorMessages["_drivingDate"]);else if(response.errorCode=='InvalidNIF')
alert(ana.errorMessages["_NIF"]);else if(response.errorCode=='InvalidCIF')
alert(ana.errorMessages["_CIF"]);else if(response.errorCode=='InvalidNIForCIF')
alert(ana.errorMessages["_CIForNIF"]);else if(response.errorCode=='GoToSave')
{controller.switchView('saving');}else if(response.errorCode=='claimErr')
{alert(response.errorMessage);}
else if(response.errorCode=='OK')
{if(params._action=='submit')
{ana.storeHistory(ana.inputs.formId);ana.skipForms(response.skipForms,response.noSkipForms,response.formId.charAt(0));if(response.formId=='A1')
ajax.requestInvisiblePost('sessionFlow','A1');else if(response.formId=='B3')
{ana.submitSection('A');ajax.requestInvisiblePost('sessionFlow','B1');}
else if(response.formId=='C1')
{ajax.requestInvisiblePost('sessionFlow','C1');ana.submitSection('B');}}
if(response.data)
{ana.inputs={formId:response.formId};ana.formData=response.data;ana.formTitle=response.formTitle;ana.formTitle2=response.formTitle2;ana.formTip=response.tip;ana.progress=response.progress;ana.message=response.displayMessage;if(ana.formData)
{if(ana.formData.inputType=="select")
{if(ana.formData.inputs[0].options.length==1&&ana.formData.inputName!='version')
{controller.forms.setInputValue(ana.formData.inputs[0].inputName,ana.formData.inputs[0].options[0].id);response.skipped=true;controller.forms.submitForm();}
else if(ana.formData.inputs[0].options.length==2&&ana.formData.inputs[0].options[0].id==-1)
{controller.forms.setInputValue(ana.formData.inputs[0].inputName,ana.formData.inputs[0].options[1].id);response.skipped=true;controller.forms.submitForm();}
else
response.skipped=false;}
else
response.skipped=false;}}
if(response.selected)
{var body=ana.summaries[response.section].body;response.selected.eachAttrib(function(attrib){var historyValue=ana.getHistoryValue(body,attrib);if(historyValue)
{historyValue.data.selected=response.selected[attrib];if(response.affectedList)historyValue.data.list=response.affectedList[attrib];if(historyValue.type=='date'||historyValue.type=='datefull')
{historyValue.data.day=response.selected[attrib+'Day'];historyValue.data.month=response.selected[attrib+'Month'];historyValue.data.year=response.selected[attrib];}}});}}}
this.quoteModifyCallback=function(response)
{if(response.errorCode=='OK')
{if(response.summary)
{response.summary.eachAttrib(function(section){var body=ana.summaries[section].body;response.summary[section].selected.eachAttrib(function(attrib){var historyValue=ana.getHistoryValue(body,attrib);if(historyValue)
{historyValue.data.selected=response.summary[section].selected[attrib];var list=response.summary[section].list[attrib];if(list)historyValue.data.list=list;if(historyValue.type=='date'||historyValue.type=='datefull')
{historyValue.data.day=response.summary[section].selected[attrib+'Day'];historyValue.data.month=response.summary[section].selected[attrib+'Month'];historyValue.data.year=response.summary[section].selected[attrib];}
historyValue.visible=true;}});});}
ana.doneSections={'A':true,'B':true,'C':true};}}
this.submitForm=function(formId)
{if(formId)ana.inputs.formId=formId;var response=controller.staticForms.staticForms.forms[ana.inputs.formId];if(response)
{var realForm=ana.inputs.formId;submitCallback(response,{_module:'forms',_action:'submit'});ajax.broadcast('forms','submit',ana.inputs,response);}
else{if(ana.inputs.formId=='B3')
{birthYearOfDriver=ana.inputs.birthYear;}
ajax.requestPost('forms','submit',ana.inputs,submitCallback);}}
this.getNewList=function(section,inputName,inputValue,month,day,summary)
{var params={inputName:inputName,inputValue:inputValue,summary:summary};if(month)params[inputName+'Month']=month;if(day)params[inputName+'Day']=day;var body=ana.summaries[section].body;var historyValue=ana.getHistoryValue(body,inputName);var updateFormData=function(inputName,list)
{if(ana.formData&&ana.formData.inputs&&ana.formData.inputName==inputName)
{var input=ana.formData.inputs.getObjByParamVal('inputName',inputName);if(input)input.options=list;}}
ajax.requestPost('forms','list',params,function(response,params){if(response.errorCode=='OK')
{if(historyValue)
{historyValue.data.selected=inputValue;}
params.historyValues=[];if(response.visibleList)
{response.visibleList.eachAttrib(function(attrib){historyValue=ana.getHistoryValue(body,attrib);if(historyValue)
{historyValue.data.list=response.visibleList[attrib];historyValue.data.selected=-1;historyValue.data.day='';historyValue.data.month='';historyValue.data.year='';historyValue.visible=response.visibleList[attrib];params.historyValues.push(historyValue);updateFormData(attrib,historyValue.data.list);}});}
if(response.affectedList)
{response.affectedList.eachAttrib(function(attrib){historyValue=ana.getHistoryValue(body,attrib);if(historyValue)
{historyValue.data.list=response.affectedList[attrib];if(response.selected)
{historyValue.data.selected=response.selected[attrib];}
else
{historyValue.data.selected=-1;}
historyValue.data.day='';historyValue.data.month='';historyValue.data.year='';params.historyValues.push(historyValue);updateFormData(attrib,historyValue.data.list);}});}
params.section=section;}});}
this.startNewbie=function()
{ana.inputs={formId:"A"};delete ana.formData;delete ana.formTitle;delete ana.formTitle2;delete ana.formTip;ana.progress=0;controller.switchView('forms',null,null,true);}
this.goToSpecForm=function(formName,inputName,inputId)
{ana.inputs={formId:formName};ana.setInputValue(inputName,inputId);controller.switchView('forms',null,null,false);}
this.setVars=function(vars)
{ana.inputs={formId:vars.formId};ana.formData=vars.formData;ana.formTitle=vars.formTitle;ana.formTitle2=vars.formTitle2;ana.formTip=vars.formTip;ana.progress=vars.progress;}
this.setInputValue=function(inputName,inputId)
{ana.inputs[inputName]=inputId;}
this.getSelectedValue=function(section,key)
{var selected=ana.getHistoryValue(section,key).data.selected;return(selected?selected:'');}
this.getVehicleData=function()
{var body=ana.summaries['A'].body;var brandData=ana.getHistoryValue(body,'brand').data;if(!brandData.list)return;brand=brandData.list.getObjByParamVal('id',brandData.selected);var modelData=ana.getHistoryValue(body,'model').data;var model=modelData.list.getObjByParamVal('id',modelData.selected);return(brand.descr+" "+model.descr+"...");}
this.getBrand=function()
{return ana.getHistoryValue('A','brand').data.selected;}
var getDriverGender=function()
{var genderData=ana.getHistoryValue('B','DriverGender').data;if(!genderData.list)return"";return genderData.list.getObjByParamVal('id',genderData.selected);}
this.getDriverData=function()
{var gender=getDriverGender();var birthDate=ana.getHistoryValue('B','birth').data;birthDayDri=birthDate.day?birthDate.day:1;var dateOfBirth=birthDate.year*10000+birthDate.month*100+birthDayDri*1+'';var mydate=new Date()
var year=mydate.getYear()
if(year<1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()+1
if(month<10)
month="0"+month
var daym=mydate.getDate()
if(daym<10)
daym="0"+daym
var curDate=year*10000+month*100+daym+'';age=ana.getAgeToday(ana.getFecha(dateOfBirth),ana.getFecha(curDate));return(gender.descr+" | "+age+" años...");}
this.getFecha=function(date){fecha={'Y':date.substring(0,4),'n':date.substring(4,2),'d':date.substring(6,2)};return fecha;}
this.getAgeToday=function(arr_nac,arr_other){if(arr_other['d']*1-arr_nac['d']*1<0){if(arr_nac['n']*1==12){arr_nac['n']=1;arr_nac['Y']=arr_nac['Y']*1+1;}else{arr_nac['n']=arr_nac['n']*1+1;}}
if(arr_other['n']*1-arr_nac['n']*1<0){arr_nac['Y']=arr_nac['Y']*1+1;}
res=arr_other['Y']*1-arr_nac['Y']*1;return res;}
this.getInsuranceData=function()
{var insuranceCompany=ana.getHistoryValue('C','InsuranceCompany').data;if(insuranceCompany.selected=='1')
return"sin seguro";var yearsInsured=ana.getHistoryValue('C','YearsInsured').data.selected;if(yearsInsured=='0')
return"sin antigüedad";var gender=getDriverGender();var insured=(gender&&gender.id=='2'?" asegurada...":" asegurado...");var years=(yearsInsured=='1'?" año":" años");return yearsInsured+years+insured;}
this.getHistoryValue=function(body,key)
{if(typeof body=='string'&&(body=='A'||body=='B'||body=='C'))
body=ana.summaries[body].body;var historyValue=body.left.getObjByParamVal('inputName',key);if(!historyValue)
historyValue=body.right.getObjByParamVal('inputName',key);return historyValue;}
var getHistoryValueByFormId=function(body,key)
{if(typeof body=='string'&&(body=='A'||body=='B'||body=='C'))
body=ana.summaries[body].body;var historyValue=body.left.getObjByParamVal('formId',key);if(!historyValue)
historyValue=body.right.getObjByParamVal('formId',key);return historyValue;}
this.storeHistory=function(formId)
{if(!ana.formData)return;var body=ana.summaries[formId.charAt(0)].body;var historyKey=ana.formData.inputName;var historyValue=ana.getHistoryValue(body,historyKey);if(!historyValue&&ana.formData.moreInfo!='multi')
{return;}
switch(ana.formData.inputType)
{case'grid':historyValue.data.list=ana.formData.inputs;historyValue.data.selected=ana.inputs[historyKey];break;case'select':if(ana.formData.moreInfo=='date')
{historyValue.data.month=ana.inputs[historyKey+'Month'];historyValue.data.year=ana.inputs[historyKey+'Year'];historyValue.data.list=ana.formData.inputs[1].options;}
else if(ana.formData.moreInfo=='datefull')
{historyValue.data.day=ana.inputs[historyKey+'Day'];historyValue.data.month=ana.inputs[historyKey+'Month'];historyValue.data.year=ana.inputs[historyKey+'Year'];historyValue.data.list=ana.formData.inputs[2].options;}
else if(ana.formData.moreInfo=='multi')
{ana.formData.inputs.each(function(input){historyKey=input.inputName;historyValue=ana.getHistoryValue(body,historyKey);if(historyValue)
{historyValue.data.list=input.options;historyValue.data.selected=ana.inputs[historyKey];historyValue.formId=formId;historyValue.visible=true;}});}
else
{historyValue.data.list=ana.formData.inputs[0].options;historyValue.data.selected=ana.inputs[historyKey];}
break;case'text':var text='';var vals=[];ana.formData.inputs.each(function(input){if(!input.disabled)
{text=text+ana.inputs[input.inputName];vals.push(ana.inputs[input.inputName]);}});historyValue.data.selected=text;historyValue.data.vals=vals;break;}
historyValue.formId=formId;historyValue.visible=true;}
this.readHistory=function(formId)
{return ana.history[formId];}
var toggleSummaryItems=function(arr,visible,section)
{if(arr)
{arr.each(function(inputName){var body=ana.summaries[section].body;var historyValue=ana.getHistoryValue(body,inputName);if(historyValue)
historyValue.visible=visible;});}}
this.skipForms=function(skip,noskip,section)
{toggleSummaryItems(skip,false,section);toggleSummaryItems(noskip,true,section);}
this.gotoSummary=function(which,newSection,putHistory)
{document.getElementById('gframe').style.display="none";ana.summary=ana.summaries[which];ana.section=which;ana.newSection=newSection;var callback=function()
{ajax.broadcast('clientRequest','redrawSummary');ajax.requestInvisiblePost('sessionFlow','summaryShown',{section:which});}
controller.switchView('summary',callback,null,true);}
this.validateRegNum=function(inputs)
{var r1=inputs[0].value;var r2=inputs[1].value;var r3=inputs[2].value;if((!r1&&r3&&r3.length!=3)||(r2&&r2.length!=4)||(r1&&(!r3||r3.length>2)))
return"Formato no válido";}
this.saveSummary=function(goBack)
{var showError=function(msg,element)
{alert(msg);if(element)element.focus();return true;}
var validateSelect=function(row,select)
{if(!row.flags.optional&&isNotSelected(select))
return showError('Por favor, seleccione un valor ['+row.title+']',select);}
var params={section:ana.section};var process=function(limb)
{return limb.each(function(row){if(!row.visible&&row.inputName!='Claims_2'&&row.inputName!='Claims_1'&&row.inputName!='Claims_3'&&row.inputName!='Claims_4'&&row.inputName!='Claims_5'){return;}
var namePrefix='_summary_item_input_';var name=row.inputName;var requestPrefix='summary_';var select;switch(row.type)
{case'datefull':select=$(namePrefix+name+'Day');if(validateSelect(row,select))return true;params[requestPrefix+name+'Day']=select.value;case'date':select=$(namePrefix+name+'Month');if(validateSelect(row,select))return true;params[requestPrefix+name+'Month']=select.value;select=$(namePrefix+name+'Year');if(validateSelect(row,select))return true;params[requestPrefix+name+'Year']=select.value;params[requestPrefix+name]=select.value;break;case'select':select=$(namePrefix+name);if(validateSelect(row,select))return true;case'text':var text=$(namePrefix+name);if(!row.flags.optional&&isBlank(text))
return showError('No puede estar vacía ['+row.title+']',text);if(row.flags.numeric&&!isInt(text.value))
return showError('Valor debe ser numérico ['+row.title+']',text);if(row.inputType=='reg')
{params[requestPrefix+'regType']=$(namePrefix+'regType').value;params[requestPrefix+'regNumbers']=$(namePrefix+'regNumbers').value;params[requestPrefix+'regLetters']=$(namePrefix+'regLetters').value;var arr=[];arr.push($(namePrefix+'regType'));arr.push($(namePrefix+'regNumbers'));arr.push($(namePrefix+'regLetters'));var error=ana.validateRegNum(arr);if(error!=null)
return showError('Valor debe ser numérico ['+row.title+']'+'\n'+error,$(namePrefix+'regType'));break;}
if(row.flags.areaCode)
{var isValid=ana.isValidateAreaCode(text);if(isValid==0||isValid==-1)
return showError(ana.errorMessages["_postalCode"],text);}
params[requestPrefix+name]=text.value;break;case'radio':var radios=document.getElementsByName(namePrefix+name);var found=false;if(radios)
for(var r=0;r<radios.length;r++)
{var radio=radios[r];if(radio.checked)
{params[requestPrefix+name]=radio.value;found=true;break;}}
if(!row.flags.optional&&!found)
return showError('Por favor, seleccione un valor para ['+row.title+']');break;}});}
if(process(ana.summary.body.left))return;if(process(ana.summary.body.right))return;if(goBack)params.goBack='back';ajax.requestPost('forms','saveSummary',params,submitCallback);}
this.submitSection=function(sectionName)
{var params={section:sectionName};var process=function(limb)
{return limb.each(function(row){if(!row.visible)return;var namePrefix='_summary_item_input_';var name=row.inputName;var requestPrefix='summary_';switch(row.type)
{case'datefull':params[requestPrefix+name+'Day']=row.data.day;params[requestPrefix+name+'Month']=row.data.month;params[requestPrefix+name+'Year']=row.data.year;params[requestPrefix+name]=row.data.year;break;case'radio':case'select':case'text':params[requestPrefix+name]=row.data.selected;break;}});}
if(process(ana.summaries[sectionName].body.left))return;if(process(ana.summaries[sectionName].body.right))return;ajax.requestSilentPost('forms','saveSummary',params,submitCallback);}
this.addSummaryHistoryLocation=function(oldSection,newSection)
{if(!info.isIE5_5)
{dhtmlHistory.add(controller.newLocationCounter(),{viewName:'summary',oldSection:oldSection,newSection:newSection},function(){controller.setDocumentTitle(ana.summaries[oldSection].header.title)});}}
this.isValidateAreaCode=function(element)
{var numcheck;numcheck=/\d/;code=element.value;if(code.length<=1||code.length!=5)
return 0;if(!isInteger(code)){return-1;}
var area=ana.areas["_"+(code.substr(0,2))];if(!area)
{return-1;}
return 1;}
this.addFormHistoryLocation=function()
{if(!info.isIE5_5)
{dhtmlHistory.add(controller.newLocationCounter(),{viewName:'forms',formId:controller.forms.inputs.formId,formTitle:controller.forms.formTitle,formTitle2:controller.forms.formTitle2,formData:controller.forms.formData,formTip:controller.forms.formTip,progress:controller.forms.progress,callback:function(){ajax.broadcast("clientRequest","redrawForm",null,{errorCode:'OK'});}},function(){controller.setDocumentTitle(controller.forms.formTitle);});}}
this.sendEmail=function(type,email,name,message)
{var userName=controller.user.accessCode;var password=controller.user.accessPwd;var params={recipientEmail:email,senderName:name,message:message,type:type,userName:userName,password:password};ajax.requestPost('forms','email',params,function(response,params){if(response.errorCode=='OK')
{if(type=='user')
{alert('Hemos enviado tu recomendación a '+email+'. Muchas gracias.');}else if(type=='amigo')
{alert('Te hemos enviado tu comparativa personalizada a '+email+'.');}}else if(response.errorCode=='notValidEmail')
{alert('please use a valid email');}else
alert('sth is wrong ');});}
this.saveReminder=function(day,month,userEmial)
{if(day*1>31)
{alert('not a valid date !');return;}
if(day.length==1)
{day='0'+$('reminder_day').value;}
date=day+":"+month;action="";module=""
params={date:date,userEmail:userEmial};ajax.requestPost('forms','reminder',params,function(response,params){if(response.errorCode=='OK')
{alert("reminder saved");$('result_email_quote').style.display="none";$('result_emailForm').style.display="none";$('result_reminder').style.display="none";$('tl_boxes').style.display="block";}else if(response.errorCode='notValidEmail')
{alert("not a valid email address !");}else
{alert("some thin is wrong");}});}
ana.errorMessages={"_licensceDate":"Fecha permiso conducir incorrecta","_postalCode":"Código postal incorrecto","_NIF":"NIF incorrecto","_EmptyField":"Has dejado un campo vacío","_incorrect":"Incorrecto","_drivingDate":"Fecha del permiso de conducir del conductor principal incorrecta","_NIF":"NIF incorrecto","_CIF":"CIF incorrecto","_CIForNIF":"CIF o NIF incorrecto","_NotAllSelected":"Por favor rellene los detalles necesarios"};ana.helps={"_01":"La","_02":"En","_03":"La","_04":"Si","_05":"Si","_06":"Si","_07":"Si"};ana.areas={"_01":"Álava","_02":"Albacete","_03":"Alicante\/Alacant","_04":"Almería","_05":"Ávila","_06":"Badajoz","_07":"Balears (Illes)","_08":"Barcelona","_09":"Burgos","_10":"Cáceres","_11":"Cádiz","_12":"Castellón\/Castelló","_13":"Ciudad Real","_14":"Córdoba","_15":"Coruña (A)","_16":"Cuenca","_17":"Girona","_18":"Granada","_19":"Guadalajara","_20":"Guipúzcoa","_21":"Huelva","_22":"Huesca","_23":"Jaén","_24":"León","_25":"Lleida","_26":"Rioja (La)","_27":"Lugo","_28":"Madrid","_29":"Málaga","_30":"Murcia","_31":"Navarra","_32":"Ourense","_33":"Asturias","_34":"Palencia","_35":"Palmas (Las)","_36":"Pontevedra","_37":"Salamanca","_38":"Santa Cruz de Tenerife","_39":"Cantabria","_40":"Segovia","_41":"Sevilla","_42":"Soria","_43":"Tarragona","_44":"Teruel","_45":"Toledo","_46":"Valencia\/València","_47":"Valladolid","_48":"Vizcaya","_49":"Zamora","_50":"Zaragoza","_51":"Ceuta","_52":"Melilla"};ana.Tips={"brand":"brandTip","model":"modelTip","doors":"doorsTip","engineType":"engineTypeTip","horsePower":"horsePowerTip","version":"versionTip","carStatus":"carStatusTip","vehicleAge":"vehicleAgeTip","parking":"parkingTip","carUsage":"carUsageTip","carKMYear":"carKMYearTip","carsInFamily":"carsInFamilyTip","birth":"birthTip","license":"licenseTip","DriverMaritalStat":"DriverMaritalStatTip","AreaCode":"AreaCodeTip","addDriAge":"addDriAgeTip","addLicenseAge":"addLicenseAgeTip","InsuranceCompany":"InsuranceCompanyTip","YearsInsured":"YearsInsuredTip","SwitchOption":"SwitchOptionTip","ClaimsBonus":"ClaimsBonusTip","NIF":"NIFTip","BestPrice":"BestPriceTip","Claims_1":"Claims_1Tip","Claims_2":"Claims_2Tip","Claims_3":"Claims_3Tip","Claims_4":"Claims_4Tip","Claims_5":"Claims_5Tip","Claims_1_1":"Claims_1_1Tip","Claims_1_2":"Claims_1_2Tip","Claims_1_3":"Claims_1_3Tip","Claims_2_1":"Claims_2_1Tip","Claims_2_2":"Claims_2_2Tip","Claims_2_3":"Claims_2_3Tip","Claims_3_1":"Claims_3_1Tip","Claims_3_2":"Claims_3_2Tip","Claims_3_3":"Claims_3_3Tip"};}
if(controller)controller.forms=new Forms();
