var ie = false;
var ns = false;
document.all ? ie = true : (document.layers ? ns = true : ns = false);

var refIndex = "inicio.jsp";

/* Utils functions */
function go(url)
{
	location.href = url;
}

function swapImg(eleImg, img)
{
	document.images[eleImg].src = img;
}

function putFocus(nameForm, nameEle)
{
	eval("document.forms['" + nameForm + "'].elements['" + nameEle + "'].focus();");
}

function putStatus(cad)
{
	window.status = cad;
}

function doValSubmit(nameForm)
{
	if(validateForm(nameForm))
		doSubmit(nameForm);
}

function doSubmit(nameForm)
{
	setTimeout("document.forms['" + nameForm + "'].submit()", 500);
}

function doConfirmSubmit(msg, nameForm)
{
	if(confirm(msg))
		setTimeout("document.forms['" + nameForm + "'].submit()", 500);
	else
		return false;
}

function updateSelInHidden(form, origenSel, destinoEle)
{
	var indexSel = document.forms[form].elements[origenSel].selectedIndex;
	document.forms[form].elements[destinoEle].value = document.forms[form].elements[origenSel].options[indexSel].value;
}

function getIndexSelValue(form, eleSel, valueOption)
{
	for(var i=0;i<document.forms[form].elements[eleSel].options.length;i++)
	{
		if(document.forms[form].elements[eleSel].options[i].value == valueOption)
			return i;
	}
	
	return 0;
}

function startsWith(cadSource, cadComp)
{
	return cadSource.substring(0, cadComp.length) == cadComp;
}

function getValueSelected(form, eleSel)
{
	var indexSel = document.forms[form].elements[eleSel].selectedIndex;
	return document.forms[form].elements[eleSel].options[indexSel].value;
}

function setSelectValue(form, eleSel, valueToSel)
{
	var numOptions = document.forms[form].elements[eleSel].options.length;
	
	for(var i=0;i<numOptions;i++)
	{
		if(document.forms[form].elements[eleSel].options[i].value == valueToSel)
		{
			document.forms[form].elements[eleSel].options[i].selected = true;
			break;
		}
	}
}

function resetEle(nameForm, nameEle)
{
	eval("document.forms['" + nameForm + "'].elements['" + nameEle + "'].value = '';");
}

function showSessionControl(show)
{
	var url = "Tittle.jsp";
	
	if(show)
		url += "?session=show";
	
	eval("parent.EFrame.TFrame.document.location.href = '" + url + "';");
}

function setNumberFormat(form, ele)
{
	var regExp = new RegExp("\\$|\\,", "g");
	document.forms[form].elements[ele].value = document.forms[form].elements[ele].value.replace(regExp, "");
	// Validate for empty values
	if(isEmpty(document.forms[form].elements[ele].value))
		document.forms[form].elements[ele].value = "0.00";
	// Validate if is a number
	if(!isNumber(document.forms[form].elements[ele].value))
		document.forms[form].elements[ele].value = "0.00";
	// Validate for init zeros
	if(document.forms[form].elements[ele].value.indexOf("0") == 0)
		document.forms[form].elements[ele].value = replaceZerosInit(document.forms[form].elements[ele].value);
	// Da formato num?rico
	document.forms[form].elements[ele].value = CurrencyFormatted(document.forms[form].elements[ele].value);
}

function replaceZerosInEle(form, ele)
{
	document.forms[form].elements[ele].value = replaceZerosInit(document.forms[form].elements[ele].value);
}

function replaceZerosInit(cad)
{
	var i = 0;
		
	while(i < cad.length)
	{
		if(cad.charAt(i) != '0')
			break;
		i++;
	}
	
	if(parseFloat(cad) == 0)
		return "0.00";
	else if(i == cad.length || cad.length == 0)
		return "0.00";
	else
		return cad.substring(i, cad.length);
}

function CurrencyFormatted(amount)
{
	var regExp = new RegExp("\\$|\\,", "g");
	amount = amount.toString().replace(regExp, "");
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function getNumberWithFormat(num, symbolMoney)
{
	var regExp = new RegExp("\\$|\\,", "g");
	num = num.toString().replace(regExp, "");
	if(isNaN(num))
		num = "0";
	var sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	var cents = num % 100;
	num = Math.floor(num/100).toString();
	if(cents < 10)
		cents = "0" + cents;
	for(var i=0;i<Math.floor((num.length - (1 + i)) / 3);i++)
		num = num.substring(0, num.length - (4*i+3)) + ',' + num.substring(num.length - (4*i+3));
	
	if(parseFloat(num + '.' + cents) == parseFloat(0))
		sign = true;
	
	if(symbolMoney)
		return (((sign)?'':'-') + '$' + num + '.' + cents);
	else
		return (((sign)?'':'-') + num + '.' + cents);
}

function enabledElements(form)
{
	var numElem = document.forms[form].elements.length;
	
	for(var i=0;i<numElem;i++)
	{
		if(ie)
			document.forms[form].elements[i].disabled = false;
		else if(ns)
			document.forms[form].elements[i].onFocus = null;
	}
}

function disabledElements(form)
{
	var numElem = document.forms[form].elements.length;
	
	for(var i=0;i<numElem;i++)
	{
		if(document.forms[form].elements[i].type != "hidden")
		{
			if(ie)
				document.forms[form].elements[i].disabled = true;
			else if(ns)
				document.forms[form].elements[i].onFocus = document.forms[form].elements[i].onBlur();
		}
	}
}

function showDiv(show, idName)
{
	var visibility = show ? 'visible' : 'hidden';
	
	if(ie)
		eval("document.all." + idName + ".style.visibility = '" + visibility + "';");
	else if(ns)
		eval("document.layers['" + idName + "'].visibility = '" + visibility + "';");
}

function deleteOptions(form, element)
{
	var numOptions = document.forms[form].elements[element].options.length;
	
	for(var i=0;i<numOptions;i++)
		document.forms[form].elements[element].options[0] = null;
}

function addOptions(optionObj, form, element)
{
	for(var i=0;i<optionObj.length;i++)
		document.forms[form].elements[element].options[i] = new Option(optionObj[i].value, optionObj[i].text);
	
	if(optionObj.length > 0)
		document.forms[form].elements[element].options[0].selected = true;
}

function writeDiv(id, content)
{
	if(ie)
		eval("document.all." + id + ".innerHTML = content;");
	else if(ns)
	{
		document.layers[id].document.open();
		document.layers[id].document.write(content);
		document.layers[id].document.close();
	}
}

function rollsm(el)
{
	if(ie)
		el.className = "submenu"
	else if(ns)
		el.color = "#AEA49F";
}

function rollbacksm(el)
{
	if(ie)
		el.className = "menup"
	else
		el.color = "#006068";
}

/* Funci?n que calcula la edad */
function calcular_edad(fecha){ 

    //calculo la fecha de hoy 
    hoy=new Date() 
    //alert(hoy) 

    //calculo la fecha que recibo 
    //La descompongo en un array 
    var array_fecha = fecha.split("-") 
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length!=3) 
       return false 

    //compruebo que los ano, mes, dia son correctos 
    var ano 
    ano = parseInt(array_fecha[0]); 
    if (isNaN(ano)) 
       return false 

    var mes 
    mes = parseInt(array_fecha[1]);
    if (isNaN(mes)) 
       return false 

    var dia 
    dia = parseInt(array_fecha[2]); 
    if (isNaN(dia)) 
       return false 


    //si el a?o de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano<=99) 
       ano +=1900 

    //resto los a?os de las dos fechas 
    edad=hoy.getYear()- ano - 1; //-1 porque no se si ha cumplido a?os ya este a?o 

    //si resto los meses y me da menor que 0 entonces no ha cumplido a?os. Si da mayor si ha cumplido 
    if (hoy.getMonth() + 1 - mes < 0) //+ 1 porque los meses empiezan en 0 
       return edad 
    if (hoy.getMonth() + 1 - mes > 0) 
       return edad+1 

    //entonces es que eran iguales. miro los dias 
    //si resto los dias y me da menor que 0 entonces no ha cumplido a?os. Si da mayor o igual si ha cumplido 
    if (hoy.getUTCDate() - dia >= 0) 
       return edad + 1 

    return edad 
}


/*
* Deshabilita el submit en input tipo text cuando se presiona "enter"
* Para esto se debe de poner como propiedad en el input tipo text
* onKeyDown="cancelKeyEnter()"
*/
function cancelKeyEnter()
{
	if (window.event && window.event.keyCode == 13) {
 		window.event.cancelBubble = true;
 		window.event.returnValue = false;
 		return false;
	}
}
