function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function loadPage (url) {
	document.location.href = url;
}

function formSubmit (form, action, iOperacion) {
        document.forms[form].action = action;
        document.forms[form].iOperacion.value = iOperacion;
        document.forms[form].submit();
}

function formSubmit (form, action) {
	document.forms[form].action = action;
	document.forms[form].submit();
}

function validateMaxValue() {
	objSelect = document.forms['accesories'].accId;
	objAccVal = document.forms['accesories'].accValue;
	maxVal = objSelect.options[objSelect.selectedIndex].getAttribute('maxVal');
	if (Number(objAccVal.value) > Number(maxVal) && maxVal!=null) {
		alert ('El valor asegurado del accesorio no puede ser mayor que ' + maxVal);
		objAccVal.value = maxVal;
		return false;
	} 
	else {
		return true;
	}	
}

function validateAccPerc() {
	MaxPerc = document.forms['accesories'].param_MAX_PERC_ACC.value;
	CarValue = document.forms['online'].param_CLIN_VALORCOMERCIAL.value;
	if (CarValue == '') CarValue = 0;
	AccValue = document.forms['accesories'].totalValue.value;
	MaxAccVal = (Number(MaxPerc)/100)*Number(CarValue);
	if (MaxAccVal < Number(AccValue)) {		
		alert ('El valor total asegurado de los accesorios no puede ser mayor que el ' + MaxPerc + '% del valor comercial del automóvil ($' + CarValue + '). Modifique los valores asegurados de los accesorios o elimine algunos hasta que el valor total sea menor o igual a $' + MaxAccVal + '.');
		return false
	}
	else {
		return true;
	}

}

function hideObj(Obj) {
   document.getElementById(Obj).style.display = 'none';
}

function showObj(Obj) {
   document.getElementById(Obj).style.display = 'inline';
}

function validateOfficialValue() {
	OfficialVal = Number(document.forms['online'].CLIN_VALORCOMERCIAL.value);
	ActualVal = Number(document.forms['online'].param_CLIN_VALORCOMERCIAL.value);
	Perc = Number(document.forms['online'].porcDiff.value);
	maxVal = Math.round(OfficialVal*(1+Perc/100));
	minVal = Math.round(OfficialVal*(1-Perc/100));
	if (ActualVal != null && (ActualVal > maxVal || ActualVal < minVal)) {
		alert ('El valor comercial del vehículo que está asegurando es de $' + OfficialVal + '. Puede asegurar su vehículo por un valor entre $' + minVal + ' y $' + maxVal + '.');
		return false;
	} 
	else {
		return true;
	}	
}

function updateRC() {
	selectObj=document.getElementById("param_RC_VALOR");
	document.getElementById("rc1").innerHTML = formatCurrency(selectObj.options[selectObj.selectedIndex].value1*1000, '$');
	document.getElementById("rc2").innerHTML = formatCurrency(selectObj.options[selectObj.selectedIndex].value2*1000, '$');
	document.getElementById("rc3").innerHTML = formatCurrency(selectObj.options[selectObj.selectedIndex].value3*1000, '$');	
}

function updateRCC() {
	selectObj=document.getElementById("param_RCC");
	inputObj=document.getElementById("param_TOTAL_PRIMA_RCC");
	divObj=document.getElementById("TOTAL_PRIMA_RCC");	
	divObj.innerHTML = formatCurrency(selectObj.options[selectObj.selectedIndex].prima, '$');
	inputObj.value = selectObj.options[selectObj.selectedIndex].prima;
	i=0;
	while (eval(captionObj = document.getElementById("caption_"+i))) {
		captionObj.innerHTML = selectObj.options[selectObj.selectedIndex].texto;
		i++;
	}
}

function formatCurrency(strValue, currency)
{
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+'.'+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + currency + dblValue);
}

function applyAdjust(prima, update)
{	
	inputObj = document.getElementById('param_PRIMA_AMPARO_'+prima);
	if (update) totalPrima -= Number(inputObj.value);
	divObj = document.getElementById('PRIMA_AMPARO_'+prima);
	selectObj=document.getElementById("param_DEDUCIBLES_"+prima);	
	inputObj.value=selectObj.options[selectObj.selectedIndex].prima;
	divObj.innerHTML = formatCurrency(selectObj.options[selectObj.selectedIndex].prima, '');
	if (update) {
		totalPrima += Number(inputObj.value);
		updateTotals() 
	}
}

function updateTotals() 
{
	document.getElementById('TOTAL_PRIMA').innerHTML = formatCurrency(totalPrima, '$');
	document.getElementById('param_TOTAL_PRIMA').value = totalPrima;
	
	if (eval(document.getElementById('DESCUENTO_PRIMA'))) {
		desc = totalPrima*Number(document.getElementById('param_DESCUENTO_PRIMA').value)/100;
		document.getElementById('DESCUENTO_PRIMA').innerHTML = formatCurrency(desc, '$');
		document.getElementById('PRIMA_PAGAR').innerHTML = formatCurrency(totalPrima-desc, '$');
		document.getElementById('param_PRIMA_PAGAR').value = totalPrima-desc;
	}
}

function valorPagar(valor,iva){
	var layer=document.getElementById('totalPagar');
	var layer2=document.getElementById('totalPagar2');
	var layersaldo=document.getElementById('saldoPagar');
	var layerplanpago=document.getElementById('planpago');
	var field =document.forms[0].param_CLIN_PORC_PAGO;
	var perc;
	for(i=0;i<field.options.length;i++){
		if(i==field.selectedIndex){
		perc=field.options[i].value;
		}
	}
	layer.innerHTML=formatCurrency(valor* perc/100,'$');
	layer2.innerHTML=formatCurrency(valor* perc/100,'$');
	layersaldo.innerHTML=formatCurrency(valor* (100-perc)/100,'$');
	var nfNumber=Math.round(valor* perc/100);
	var taxNumber=Math.round(nfNumber*iva/100);
	document.forms[0].param_TotalAmount.value=nfNumber;
	document.forms[0].param_TaxAmount.value=taxNumber;
	document.forms[0].param_saldo.value=Math.round(valor* (100-perc)/100);
	if(perc<100){
		showObj('financiacion');
		calcularCuota(document.forms[0].param_CLIN_PLAZO_FINANC);
		}else{
		document.forms[0].param_CLIV_TIPO_FINAC[0].click();
		hideObj('financiacion');
		//hideLayer('financ2');
		}
}

function populateField(pign,num){
var field=document.forms[0]['param_CLIN_PLAZO_FINANC'];
field.innerHTML='';
	if(num==1){
		for(i=1;i<=2;i++){
		var option=document.createElement('option');
		option.setAttribute('value',i);
		if (i>1) {
			var text= document.createTextNode(i+' meses')
		}
		else{
			var text= document.createTextNode(i+' mes');
		}
		option.appendChild(text);
		field.appendChild(option);
		}
	}
	if(num==2){
		var to=9;
		if(pign=='S'){
			to=8;
			}
		for(i=3;i<=to;i++){
			var option=document.createElement('option');
		option.setAttribute('value',i);
		var text= document.createTextNode(i+' meses');
		option.appendChild(text);
		field.appendChild(option);
			}
		}
		calcularCuota(document.forms[0].param_CLIN_PLAZO_FINANC);
}

function validateMajor(bdayObj, todayObj) {
	fecha = bdayObj.value.split("/");	
	fechaHoy = todayObj.value.split("/");	
	
	today = new Date(fechaHoy[2], fechaHoy[1], fechaHoy[0]);
	birthDay = new Date(fecha[0], fecha[1]-1, fecha[2]);

	age = (((today - birthDay)/3600000)/24)/365;


	if (age<18) {
		alert ("Debe ser mayor de edad para cotizar");
		return false;
	}
	else {
		return  true;
	}
}


function validateFuture(dateObj, timeObj, todayObj, nowObj) {

	fecha = dateObj.value.split("/");
	eval(timeObj)?hora = timeObj.value:hora=0;
	
	hoy = todayObj.value.split("/");
	ahora = nowObj.value.split(":");
	
	today = new Date(hoy[2], hoy[1]-1, hoy[0], ahora[0]);
	valDate = new Date(fecha[0], fecha[1]-1, fecha[2], hora);	

	
	if (today-valDate>0) {
		alert ("Hora de inspección pasada, por favor escoja una fecha a futuro.");
		return false;
	}
	else {
		return  true;
	}	
}

/**
 * Abre o cierra la ayuda flotante.
 * 
 * @param boolean what 1 para mostrar o 0 para cerrar.
 * @return void.
 */
function showHelp(what){
var d=document;
var id='divStayTopLeft';
var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
var helpFrame=document.getElementById('helpFrame');
	if(what==0){
	el.style.visibility='hidden';
	}else{
	if(el.style.visibility=='hidden'){
	el.style.visibility='visible';
	//el.style.top=document.body.offsetTop+100;
	//el.style.left=document.body.clientWidth-250;
	}
	helpFrame.style.height='172';
	}
}

/**
 * Oculta una capa.
 * 
 * @param string layer_name Id de la capa.
 * @return void.
 */
function hideLayer(layer_name){
	var layer=document.getElementById(layer_name);
	if(layer){
		layer.style.visibility='hidden';
		layer.style.position='absolute';
		document.location.href='#final';
	}
}

/**
 * Muestra una capa.
 * 
 * @param string layer_name Id de la capa.
 * @return void.
 */
function showLayer(layer_name){
	
	var layer=document.getElementById(layer_name);
	if(layer){
		layer.style.position='relative';
		layer.style.visibility='visible';		
		document.location.href='#final';
	}
}

/**
 * Cambia el src del iframe de la ayuda flotante, con el fin de cambiar el texto que se muestra en él.
 * 
 * @param int id Identificador de la ayuda.
 * @return void.
 */
function jsHelp(id){
var layer=document.getElementById('helpFrame');
layer.src='help.php?id='+id;
showHelp(1);
}

/**
 * Cambia el src del iframe de la ayuda flotante, con el fin de cambiar el texto que se muestra en él.
 * 
 * @param int id Identificador de la ayuda.
 * @return void.
 */
function jsStepHelp(p){
var layer=document.getElementById('helpFrame');
layer.src='help.php?p='+p;
showHelp(1);
}

/**
 * Encuentra la posición Y (Top) de una capa.
 * 
 * @param string layerName nombre de la capa.
 * @return int posición Y (Top) de la capa.
 */
function findPosY(layerName)
{
var objeto=document.getElementById(layerName);
	var curtop = 0;
	if (objeto.offsetParent)
	{
		while (objeto.offsetParent)
		{
			curtop += objeto.offsetTop
			objeto = objeto.offsetParent;
		}
	}
	else if (objeto.y)
		curtop += objeto.y;
	return curtop;
}

/**
 * Encuentra la posición X (Left) de una capa.
 * 
 * @param string layerName nombre de la capa.
 * @return int posición X (Left) de la capa.
 */
function findPosX(layerName)
{
objeto=document.getElementById(layerName);
	var curleft = 0;
	if (objeto.offsetParent)
	{
		while (objeto.offsetParent)
		{
			curleft += objeto.offsetLeft
			objeto = objeto.offsetParent;
		}
	}
	else if (objeto.x)
		curleft += objeto.x;
	return curleft;
}
// Example:
// alert( readCookie("myCookie") );
function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}
// Example:
// writeCookie("myCookie", "my name", 24);
// Stores the string "my name" in the cookie "myCookie" which expires after 24 hours.
function writeCookie(name, value, hours)
{
  var expire = "";
  if(hours != null)
  {
    expire = new Date((new Date()).getTime() + hours * 3600000);
    expire = "; expires=" + expire.toGMTString();
  }
  document.cookie = name + "=" + escape(value) + expire;
}
