var oficinas=new Array();oficinas[1]={"D":{"iniciom":9,"cierrem":14,"iniciot":17,"cierret":20},"S":{"iniciom":9,"cierrem":13.30}};oficinas[2]={"D":{"iniciom":8,"cierrem":13.30,"iniciot":16,"cierret":20},"S":{"iniciom":10,"cierrem":13}};oficinas[3]={"D":{"iniciom":9,"cierrem":14,"iniciot":17,"cierret":20},"S":{"iniciom":9,"cierrem":14}};var tiposVehiculos=new Array();tiposVehiculos[1]={"0":"Selecciona un tipo de vehículo","1":"Furgonetas","2":"Furgones carrozados","3":"Turismos y monovolúmenes"};tiposVehiculos[2]={"0":"Selecciona un tipo de máquina","1":"Carretillas elevadoras","2":"Plataformas de tijera","3":"Plataformas telescópicas y articuladas"};var duracionVehiculos=new Array();duracionVehiculos={"km_ilimitados":{"inicio":1,"fin":31},"tarifa_175kms":{"inicio":1,"fin":6},"cinco_horas":{"inicio":undefined,"fin":undefined,"otros":{"cinco_horas":"5 Horas"}},"fin_de_semana":{"inicio":undefined,"fin":undefined,"otros":{"fin_de_semana":"Fin de Semana"}},"maquinaria":{"inicio":1,"fin":31}}
var tipoSeleccionado;var diarecogida;var diaentrega;var flag_cambiando=false;$(function(){tipoSeleccionado=$("input[name='tipo']").val();$("input[name='tipo']").click(function(){tipoSeleccionado=$(this).val();$("#seleccion_vehiculos").removeOption(/./).addOption(tiposVehiculos[tipoSeleccionado]).selectOptions("0");if(tipoSeleccionado==2){$("#modalidad").selectOptions("km_ilimitados").attr("disabled","disabled");}else{$("#modalidad").selectOptions("km_ilimitados").attr("disabled","");}
$("#modalidad").change();});$("#fecha").click(function(){displayDatePicker('fecha');}).blur(function(){var sfecha=$("#fecha").val().split('/');fecharecogida=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diarecogida=fecharecogida.getDay();var oficina=$("#recogida").val();horarios(diarecogida,"horariorecogida",oficina);oficina=$("#devolucion").val();$("#duracion_vehiculos").change();});$("#modalidad").change(function(){var duracion;if(tipoSeleccionado==2){duracion=duracionVehiculos.maquinaria;}else{var modalidad=$("#modalidad option:selected").val();duracion=duracionVehiculos[modalidad];}
$("#duracion_vehiculos").removeOption(/./).addOption(0,"Selecciona");if(isset(duracion.otros)){$("#duracion_vehiculos").addOption(duracion.otros);}
var texto;for(i=duracion.inicio;i<=duracion.fin;i++){if(i==1){valor="1 día";texto="1 día";}else{valor=i+" días";texto=i+" días";}
$("#duracion_vehiculos").addOption(valor,texto);}
if($("#duracion_vehiculos").val()=='cinco_horas'||$("#duracion_vehiculos").val()=='fin_de_semana'){$("#duracion_vehiculos").removeOption("0");}
else{$("#duracion_vehiculos").selectOptions("cinco_horas").attr("disabled","");$("#duracion_vehiculos").selectOptions("fin_de_semana").attr("disabled","");}
$("#duracion_vehiculos").selectOptions("0");$("#duracion_vehiculos").change();$("#fecha").blur();});$("#duracion_vehiculos").change(function(){if($("#fecha").val()!='dia/mes/año'){var duracion=$(this).val();var sfecha=$("#fecha").val().split('/');if(duracion=='cinco_horas'&&($("#recogida option:selected").val()==$("#devolucion option:selected").val())){fechaentrega=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diaentrega=fecharecogida.getDay();horarios_ent(diaentrega,"horarioentrega",$("#devolucion").val());}else if(duracion=='fin_de_semana'&&($("#recogida option:selected").val()==$("#devolucion option:selected").val())){fecharecogida=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diarecogida=fecharecogida.getDay();if(diarecogida==5){var oficina=$("#recogida").val();horarios(5,"horariorecogida",$("#recogida").val());horarios_ent(1,"horarioentrega",$("#devolucion").val());}else{alert('Para que la duración sea de un fin de semana debe recoger el vehículo un viernes por la tarde y entregarlo un lunes por la mañana');$(this).selectOptions("0");}}else{if(($("#recogida option:selected").val()!=$("#devolucion option:selected").val())&&(duracion=='cinco_horas'||duracion=='fin_de_semana'||parseInt(duracion)<3)){alert('Cuando la recogida y la entrega es en dos oficinas diferentes el tiempo mínimo de duración del alquiler es de 3 días');$("#recogida").selectOptions("0");$("#devolucion").selectOptions("0");}else{fechaentrega=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));fechaentrega.setDate(fechaentrega.getDate()+parseInt(duracion));diaentrega=fechaentrega.getDay();horarios_ent(diaentrega,"horarioentrega",$("#devolucion").val());}}}});$("#recogida").change(function(){if($("#fecha").val()!='dia/mes/año'){var sfecha=$("#fecha").val().split('/');fecharecogida=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diarecogida=fecharecogida.getDay();horarios(diarecogida,"horariorecogida",$(this).val());horarios_ent(diaentrega,"horarioentrega",$("#devolucion").val());}});$("#horariorecogida").change(function(){if(flag_cambiando==false){$("#duracion_vehiculos").change();}});$("#devolucion").change(function(){if($("#fecha").val()!='dia/mes/año'){var sfecha=$("#fecha").val().split('/');var duracion=$("#duracion_vehiculos").val();fecharecogida=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diarecogida=fecharecogida.getDay();if(duracion=='cinco_horas'&&($("#recogida option:selected").val()==$("#devolucion option:selected").val())){fechaentrega=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diaentrega=fecharecogida.getDay();horarios_ent(diaentrega,"horarioentrega",$(this).val());}else if(duracion=='fin_de_semana'&&($("#recogida option:selected").val()==$("#devolucion option:selected").val())){diarecogida=fecharecogida.getDay();if(diarecogida==5){var oficina=$("#recogida").val();horarios(5,"horariorecogida",$("#recogida").val());horarios_ent(1,"horarioentrega",$(this).val());}else{alert('Para que la duración sea de un fin de semana debe recoger el vehículo un viernes por la tarde y entregarlo un lunes por la mañana');$("#duracion_vehiculos").selectOptions("0");}}else{if(($("#recogida option:selected").val()!=$("#devolucion option:selected").val())&&(duracion=='cinco_horas'||duracion=='fin_de_semana'||parseInt(duracion)<3)){alert('Cuando la recogida y la entrega es en dos oficinas diferentes el tiempo mínimo de duración del alquiler es de 3 días');$("#recogida").selectOptions("0");$("#devolucion").selectOptions("0");}else{fechaentrega=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));fechaentrega.setDate(fechaentrega.getDate()+parseInt(duracion));diaentrega=fechaentrega.getDay();horarios_ent(diaentrega,"horarioentrega",$("#devolucion").val());}}}});$("#enviarconsulta").click(function(){validar_formulario();});$("#recogida").change();$("#devolucion").change();});function horarios(diarecogida,select,oficina)
{flag_cambiando=true;if(diarecogida==0){$("#"+select).removeOption(/./).addOption({0:"Domingo Cerrado"});}else if(diarecogida>0&&diarecogida<6){$("#"+select).removeOption(/./);var primero='';var htext='';if(!($("#duracion_vehiculos").val()=='fin_de_semana'&&diarecogida==5)){var iniciomins=0;var finmins=0;if(strpos(oficinas[oficina].D.iniciom,'.')){iniciomins=30;}
if(strpos(oficinas[oficina].D.cierrem,'.')){finmins=30;}
var limite=sprintf('%02s',parseInt(oficinas[oficina].D.cierrem));limite=limite+':'+sprintf('%02s',(finmins+15));for(h=parseInt(oficinas[oficina].D.iniciom);h<=parseInt(oficinas[oficina].D.cierrem);h++){for(m=iniciomins;m<60;m=m+15){htext=sprintf('%02s',h)+':'+sprintf('%02s',m);if(htext==limite){m=60;continue;}else{$("#"+select).addOption(htext,htext);}
if(primero==''){primero=htext;}}}}
if(!($("#duracion_vehiculos").val()=='fin_de_semana'&&diarecogida==1)){var iniciomins=0;var finmins=0;if(strpos(oficinas[oficina].D.iniciot,'.')){iniciomins=30;}
if(strpos(oficinas[oficina].D.cierret,'.')){finmins=30;}
limite=sprintf('%02s',parseInt(oficinas[oficina].D.cierret));limite=limite+':'+sprintf('%02s',(finmins+15));for(h=parseInt(oficinas[oficina].D.iniciot);h<=parseInt(oficinas[oficina].D.cierret);h++){for(m=iniciomins;m<60;m=m+15){htext=sprintf('%02s',h)+':'+sprintf('%02s',m);if(htext==limite){m=60;continue;}else{$("#"+select).addOption(htext,htext);if(primero==''){primero=htext;}}}}}
$("#"+select).selectOptions(primero);}else{if(isset(oficinas[oficina].S.iniciom)){var iniciomins=0;var finmins=0;if(strpos(oficinas[oficina].S.iniciom,'.')){iniciomins=30;}
if(strpos(oficinas[oficina].S.cierrem,'.')){finmins=30;}
$("#"+select).removeOption(/./);var primero='';var htext='';var limite=sprintf('%02s',parseInt(oficinas[oficina].S.cierrem));limite=limite+':'+sprintf('%02s',(finmins+15));for(h=parseInt(oficinas[oficina].S.iniciom);h<=parseInt(oficinas[oficina].S.cierrem);h++){for(m=iniciomins;m<60;m=m+15){htext=sprintf('%02s',h)+':'+sprintf('%02s',m);if(htext==limite){m=60;continue;}else{$("#"+select).addOption(htext,htext);}
if(primero==''){primero=htext;}}}
$("#"+select).selectOptions(primero);}else{$("#"+select).removeOption(/./).addOption({0:"Sabado Cerrado"});}}
flag_cambiando=false;}
function horarios_ent(diarecogida,select,oficina)
{var pontexto=false;var texto_si='Por las devoluciones fuera de horarios de oficina, consultarnos.';var texto_no='&nbsp;';var shora,horaini,minuini,horalim,minulim,sumadia;var htext,iniciomins,finmins;flag_cambiando=true;sumadia=0;$("#"+select).removeOption(/./);if($("#horariorecogida").val()==0){pontexto=false;htext='Domingo Cerrado';$("#"+select).addOption(0,htext);}
else{if(diarecogida==0){pontexto=true;shora=$("#horariorecogida").val().split(':');horaini=parseInt(shora[0],10);minuini=parseInt(shora[1],10);horalim=horaini;minulim=minuini;htext=sprintf('%02s',horalim)+':'+sprintf('%02s',minulim);$("#"+select).addOption(htext,htext);}
else if(diarecogida>0&&diarecogida<6){htext='';iniciomins=0;finmins=0;if(strpos(oficinas[oficina].D.iniciom,'.')){iniciomins=30;}
if(strpos(oficinas[oficina].D.cierrem,'.')){finmins=30;}
if(($("#duracion_vehiculos").val()=='fin_de_semana')){h=parseInt(oficinas[oficina].D.iniciom);m=iniciomins;htext=sprintf('%02s',h)+':'+sprintf('%02s',m);$("#"+select).addOption(htext,htext);pontexto=false;}
else{shora=$("#horariorecogida").val().split(':');horaini=parseInt(shora[0],10);minuini=parseInt(shora[1],10);horalim=horaini;minulim=minuini;if(($("#duracion_vehiculos").val()=='cinco_horas')){horalim=horalim+5;if(horalim>=24){horalim=horalim-24;sumadia=1;}
else sumadia=0;}
htext=sprintf('%02s',horalim)+':'+sprintf('%02s',minulim);$("#"+select).addOption(htext,htext);if(((horalim>parseInt(oficinas[oficina].D.iniciom)||horalim==parseInt(oficinas[oficina].D.iniciom)&&minulim>=iniciomins)&&(horalim<parseInt(oficinas[oficina].D.cierrem)||horalim==parseInt(oficinas[oficina].D.cierrem)&&minulim<=finmins))||((horalim>parseInt(oficinas[oficina].D.iniciot)||horalim==parseInt(oficinas[oficina].D.iniciot)&&minulim>=iniciomins)&&(horalim<parseInt(oficinas[oficina].D.cierret)||horalim==parseInt(oficinas[oficina].D.cierret)&&minulim<=finmins))){pontexto=false;}
else{pontexto=true;}}}
else{if(isset(oficinas[oficina].S.iniciom)){var htext='';var iniciomins=0;var finmins=0;if(strpos(oficinas[oficina].S.iniciom,'.')){iniciomins=30;}
if(strpos(oficinas[oficina].S.cierrem,'.')){finmins=30;}
shora=$("#horariorecogida").val().split(':');horaini=parseInt(shora[0],10);minuini=parseInt(shora[1],10);horalim=horaini;minulim=minuini;if(($("#duracion_vehiculos").val()=='cinco_horas')){horalim=horalim+5;if(horalim>=24){horalim=horalim-24;sumadia=1;}
else sumadia=0;}
htext=sprintf('%02s',horalim)+':'+sprintf('%02s',minulim);$("#"+select).addOption(htext,htext);if((horalim>parseInt(oficinas[oficina].S.iniciom)||horalim==parseInt(oficinas[oficina].S.iniciom)&&minulim>=iniciomins)&&(horalim<parseInt(oficinas[oficina].S.cierrem)||horalim==parseInt(oficinas[oficina].S.cierrem)&&minulim<=finmins)){pontexto=false;}
else{pontexto=true;}}
else{pontexto=true;}}
if(pontexto==true){document.getElementById("horarioentrega").style.color='red';document.getElementById("texto_fuera_horario").innerHTML=texto_si;}
else{document.getElementById("horarioentrega").style.color='black';document.getElementById("texto_fuera_horario").innerHTML=texto_no;}}
document.getElementById("diasextra").value=sumadia;flag_cambiando=false;}
function validar_formulario(){var mensaje="Algunos datos faltan o son incorrectos:\n\n";var OK=1;var sfecha,duracion,diarecogida,fecharecogida;var dia,mes,ano,sumadia,dfecha;if($("#seleccion_vehiculos option:selected").val()==0){if(tipoSeleccionado==1){mensaje+="* Tipo de vehiculo\n";}else{mensaje+="* Tipo de maquina\n";}
OK=0;}
if($("#fecha").val()=="dia/mes/año"){mensaje+="* Fecha\n";OK=0;}
if($("#duracion_vehiculos option:selected").val()==""||$("#duracion_vehiculos option:selected").val()==0){mensaje+="* Duración de la reserva\n";OK=0;}
if($("#horariorecogida option:selected").val()==0){mensaje+="* Horario de recogida\n";OK=0;}
if($("#horarioentrega option:selected").val()==0){mensaje+="* Horario de entrega\n";OK=0;}
if(OK==0){alert(mensaje);return false;}
else{sfecha=$("#fecha").val().split('/');duracion=$("#duracion_vehiculos").val();dfecha=new Date();dia=dfecha.getDate()+2;mes=dfecha.getMonth()+1;ano=dfecha.getFullYear();if(dia>31){sumadia=dia-31;}
else if(dia>30&&(mes==4||mes==6||mes==9||mes==11)){sumadia=dia-30;}
else if(dia>29&&mes==2&&(ano%4)==0){sumadia=dia-29;}
else if(dia>28&&mes==2&&(ano%4)!=0){sumadia=dia-28;}
else{sumadia=0;}
if(sumadia>0){dia=sumadia;mes=mes+1;}
if(mes>12){mes=1;ano=ano+1;}
dia='00'+dia;dia=dia.slice(dia.length-2,dia.length);mes='00'+mes;mes=mes.slice(mes.length-2,mes.length);dfecha=ano+'-'+mes+'-'+dia;fecharecogida=sfecha[2]+'-'+sfecha[1]+'-'+sfecha[0];if(fecharecogida<dfecha){alert('La fecha debe ser al menos 2 días después de la actual');$("#fecha").select();return false;}
if(($("#recogida option:selected").val()!=$("#devolucion option:selected").val())&&(duracion=='cinco_horas'||duracion=='fin_de_semana'||parseInt(duracion)<3)){alert('Cuando la recogida y la entrega es en dos oficinas diferentes el tiempo mínimo de duración del alquiler es de 3 días');$("#recogida").select();return false;}
if(duracion=='fin_de_semana'&&($("#recogida option:selected").val()==$("#devolucion option:selected").val())){fecharecogida=new Date(eval('"'+sfecha[1]+'/'+sfecha[0]+'/'+sfecha[2]+'"'));diarecogida=fecharecogida.getDay();if(diarecogida!=5){alert('Para que la duración sea de un fin de semana debe recoger el vehículo un viernes por la tarde y entregarlo un lunes por la mañana');$("#fecha").select();return false;}
if($("#horariorecogida option:selected").val()<"15:00"){alert('Para que la duración sea de un fin de semana debe recoger el vehículo el viernes por la tarde');$("#horariorecogida").select();return false;}
if($("#horarioentrega option:selected").val()>"15:00"){alert('Para que la duración sea de un fin de semana debe entregar el vehículo el lunes por la mañana');$("#horarioentrega").select();return false;}}
if($("#horarioentrega option:selected").val()>$("#horariorecogida option:selected").val()&&duracion!='cinco_horas'){alert("La hora de entrega debe ser menor o igual que la hora de recogida.");$("#horarioentrega").focus();return false;}
$("#freserva").submit();}}
function strpos(haystack,needle,offset){var i=(haystack+'').indexOf(needle,offset);return i===-1?false:i;}
function sprintf(){var regex=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegEG])/g;var a=arguments,i=0,format=a[i++];var pad=function(str,len,chr,leftJustify){if(!chr)chr=' ';var padding=(str.length>=len)?'':Array(1+len-str.length>>>0).join(chr);return leftJustify?str+padding:padding+str;};var justify=function(value,prefix,leftJustify,minWidth,zeroPad,customPadChar){var diff=minWidth-value.length;if(diff>0){if(leftJustify||!zeroPad){value=pad(value,minWidth,customPadChar,leftJustify);}else{value=value.slice(0,prefix.length)+pad('',diff,'0',true)+value.slice(prefix.length);}}
return value;};var formatBaseX=function(value,base,prefix,leftJustify,minWidth,precision,zeroPad){var number=value>>>0;prefix=prefix&&number&&{'2':'0b','8':'0','16':'0x'}[base]||'';value=prefix+pad(number.toString(base),precision||0,'0',false);return justify(value,prefix,leftJustify,minWidth,zeroPad);};var formatString=function(value,leftJustify,minWidth,precision,zeroPad,customPadChar){if(precision!=null){value=value.slice(0,precision);}
return justify(value,'',leftJustify,minWidth,zeroPad,customPadChar);};var doFormat=function(substring,valueIndex,flags,minWidth,_,precision,type){if(substring=='%%')return'%';var leftJustify=false,positivePrefix='',zeroPad=false,prefixBaseX=false,customPadChar=' ';var flagsl=flags.length;for(var j=0;flags&&j<flagsl;j++)switch(flags.charAt(j)){case' ':positivePrefix=' ';break;case'+':positivePrefix='+';break;case'-':leftJustify=true;break;case"'":customPadChar=flags.charAt(j+1);break;case'0':zeroPad=true;break;case'#':prefixBaseX=true;break;}
if(!minWidth){minWidth=0;}else if(minWidth=='*'){minWidth=+a[i++];}else if(minWidth.charAt(0)=='*'){minWidth=+a[minWidth.slice(1,-1)];}else{minWidth=+minWidth;}
if(minWidth<0){minWidth=-minWidth;leftJustify=true;}
if(!isFinite(minWidth)){throw new Error('sprintf: (minimum-)width must be finite');}
if(!precision){precision='fFeE'.indexOf(type)>-1?6:(type=='d')?0:void(0);}else if(precision=='*'){precision=+a[i++];}else if(precision.charAt(0)=='*'){precision=+a[precision.slice(1,-1)];}else{precision=+precision;}
var value=valueIndex?a[valueIndex.slice(0,-1)]:a[i++];switch(type){case's':return formatString(String(value),leftJustify,minWidth,precision,zeroPad,customPadChar);case'c':return formatString(String.fromCharCode(+value),leftJustify,minWidth,precision,zeroPad);case'b':return formatBaseX(value,2,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case'o':return formatBaseX(value,8,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case'x':return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case'X':return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad).toUpperCase();case'u':return formatBaseX(value,10,prefixBaseX,leftJustify,minWidth,precision,zeroPad);case'i':case'd':{var number=parseInt(+value);var prefix=number<0?'-':positivePrefix;value=prefix+pad(String(Math.abs(number)),precision,'0',false);return justify(value,prefix,leftJustify,minWidth,zeroPad);}
case'e':case'E':case'f':case'F':case'g':case'G':{var number=+value;var prefix=number<0?'-':positivePrefix;var method=['toExponential','toFixed','toPrecision']['efg'.indexOf(type.toLowerCase())];var textTransform=['toString','toUpperCase']['eEfFgG'.indexOf(type)%2];value=prefix+Math.abs(number)[method](precision);return justify(value,prefix,leftJustify,minWidth,zeroPad)[textTransform]();}
default:return substring;}};return format.replace(regex,doFormat);}
function isset(){var a=arguments;var l=a.length;var i=0;if(l==0){throw new Error('Empty isset');}
while(i!=l){if(typeof(a[i])=='undefined'||a[i]===null){return false;}else{i++;}}
return true;}
