var msj_estandar="Please complete all mandatory fields";
//fraccion a mostrarse
var ancho=50;

//rutina de mensaje deslizante
function desliza()
{
	return;
	var aux;
	aux=mensaje.substring(0,1);
	document.getElementById("noticias").value=mensaje.substring(0,ancho);
	mensaje=mensaje.substring(1,mensaje.length) + aux;
	setTimeout("desliza()",100);	
}

/* esto lo deberia implementar en casa archivo php que use formularios */
//para que este metodo generico funcione, cada objeto html tiene que tener definido como class=obligatorio
function validar_entrada()
{
	var formu=document.formu;	
	for (var i=0; i < formu.elements.length; i++)
	{
		//bugfix: no se porque mierda en IE el atributo class lo llaman className, en FF anda con cualquiera
		if (formu.elements[i].className=="obligatorio")
		{				
			switch (formu.elements[i].type)
			{
				case "text":
				case "textarea":
					if (formu.elements[i].value=="")
					{
						alert (msj_estandar);	
						formu.elements[i].focus();
						return false;
					}
					break;
					
				case "select-one":
					if (formu.elements[i].selectedIndex <= 0)
					{
						alert (msj_estandar);	
						formu.elements[i].focus();
						return false;
					}
					break;
				
				case "select-multiple":
					/*
					var opciones=formu.elements[i].options;
					var ok=false;				
					for (var i=0; i < opciones.length; i++)
					{
						ok=ok||opciones[i].selected;					
					}

					if (!ok);
					{
						alert (msj_estandar);	
						formu.elements[i].focus();
						return false;
					}
					*/
					break;
			}
		}	
	}
	return true;	
}


function limpiar()
{
	var formu=document.formu;
	var obj=formu.elements;
	
	for (var i=0; i < obj.length; i++)
	{		
		switch (obj[i].type)
		{
			case "text":
			case "hidden":
			case "textarea":
			case "password":
				obj[i].value="";
				break;
			case "select-one":
				obj[i].selectedIndex=-1;
				break;				
		}
	}	
}

function cambiar_bandera(id)
{
	var formu=document.formu;	
	if (id)
	{		
		var id_pais=document.getElementById(id);
		var bandera=document.getElementById("bandera_"+id)
	} else {
		var id_pais=formu.id_pais;
		var bandera=document.getElementById("bandera");
	}

	if (id_pais.selectedIndex>0)
	{
		if (id_pais.options[id_pais.selectedIndex].value=="fk")
		{
			bandera.src="img/flags/ar.gif";
			bandera.title="Islas Malvinas Argentinas";
		} else {
			bandera.src="img/flags/"+id_pais.options[id_pais.selectedIndex].value+".gif";
			bandera.title=id_pais.options[id_pais.selectedIndex].text;
		}
	}
}

function recuperar_clave()
{
	var formu=document.formu;
	var email=formu.email;
	if (email.value=="")
	{
		alert ("<?=INGRESE_EMAIL?>");		
	} else {
		var w=window.open("recuperar_clave.php?e=" + email.value,"recuperar","status=no,location=no,scrollbars=no,resizable=no,width=200px,height=150px");
		if (!w.top)
			alert ("<?=POP_UP_BLOQUEADO?>");
	}	
}

//oculta o muestra un objeto
function ocultar(id,tipo)
{
	var obj=document.getElementById(id);
	if (obj)
	{	
		if (tipo=="display")
		{
			if (obj.style.display=="none")
				obj.style.display="block";
			else
				obj.style.display="none";
		} else {
			if (obj.style.visibility=="visible")
				obj.style.visibility="hidden";
			else
				obj.style.visibility="visible";
		}
	}	
	
	//para evitar el pantallazo
	if (id=="contenedor")
		obj.innerHTML="cargando...";
}

function vista_previa()
{
	var formu=document.formu_respuesta;	
	var vista_previa=document.getElementById("vista_previa_txt");
	vista_previa.value=formu.respuesta.value;		
}

function randomnumber(num1, num2)
{
	num1 = parseInt(num1);
	num2 = parseInt(num2);
	if(num1 >= num2)
	{
		alert("Number 2 should be greater than Number 1");
	}
	else
	{
		var generator = Math.random()*(num2-num1);
		generator = Math.round(num1+generator);
		return generator;
	}
}

function ajax_load(url,pars,id_contenedor)
{
	if (pars != "")
		pars+="&";
	pars+="hash=" + randomnumber(0,999999);
	
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: new Function("originalRequest","{$('" + id_contenedor + "').innerHTML=originalRequest.responseText;}")
		});
}

//dado un id_formulario, un id_target (objeto donde posicionar el resultado) y una url, toma todos los parametros del formulario y llama a ajax_load
function ajax_load_handler(id_form,id_target,url)
{
	var contenedor=document.getElementById("contenedor");
	var formu=document.getElementById(id_form);
	var target=document.getElementById(id_target);
	var params="";	
	
	for (var i=0; i < formu.elements.length; i++)
	{		
		if (formu.elements[i].name)
		{
			params+=formu.elements[i].name+"=";
			switch (formu.elements[i].type)
			{
				case "hidden":
				case "text":
				case "textarea":
					params+=formu.elements[i].value;
					break;
					
				case "select-one":
					params+=formu.elements[i].options[formu.elements[i].selectedIndex].value;
					break;
			}
			params+="&";
		}
	}		
	ajax_load(url,params,"contenedor");		
	contenedor.style.display="block";		
	var pos=getPosition(target);		
	contenedor.style.left=pos.x;
	contenedor.style.top=pos.y-5;	
}

function generar_excel()
{
	ajax_load('exportar_excel.php','','span_excel');
	checkear_excel();
}

function checkear_excel()
{
	var obj=document.getElementById("descargar");
	
	if (!obj)
		setTimeout("checkear_excel()",1000);
	else {
			var enlace=document.getElementById("reporte_excel");
			var src=enlace.href;						
			var w=window.open(src,"excel");
			
			if (!w)
			{
				enlace.innerHTML="popups bloqueados";
				alert ("Su navegador esta bloqueando ventanas emergentes (pop ups). Por favor revise la configuracion del mismo e intente nuevamente.");
			}
	}
}

//ignorar_validacion=true | false si es false no ejecuta validar_entrada
//sbmt=valor numerico, '0' lo uso para evitar redireccion en el paso anterior y siguiente
//id=lo uso en el paso de las fotos para eliminar una foto
//url lo uso para cambiar la direccion del action del formulario
function continuar(ignorar_validacion,sbmt,id,url)
{
	var formu=document.formu;
	if (sbmt)
		formu.sbmt.value=sbmt;
	if (id)
		formu.id.value=id;
	if (url)
		formu.action=url;
	if (ignorar_validacion || validar_entrada())
		formu.submit();	
}

function mostrar_opcion(id,enlace)
{
	var obj=document.getElementById(id);
	
	if (obj.style.display=="none")
	{
		obj.style.display="block";
			enlace.innerHTML="<img src='<?=URL?>/img/collapseall.png' border='0' title='ocultar' alt='ocultar'>";
	} else { 
		obj.style.display="none";
		enlace.innerHTML="<img src='<?=URL?>/img/expandall.png' border='0' title='ocultar' alt='ocultar'>";
	}
}

function resaltar(id)
{	
	var etiquetas=document.getElementsByTagName("span");
	var obj=document.getElementById(id);
	
	if (obj.innerHTML=="eliminar resaltado")
		obj.innerHTML="resaltar";
	else
		obj.innerHTML="eliminar resaltado";
		
	for (var i=0; i < etiquetas.length; i++)
	{
		if (etiquetas[i].className=="resaltar")		
			etiquetas[i].className="no_resaltar";
		else {
			if (etiquetas[i].className=="no_resaltar")
				etiquetas[i].className="resaltar";
		}
	}
}


var dtCh= "/";
var minYear=2007;
var maxYear=2050;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1)
	{
		//alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
	{
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
	{
		//alert("Please enter a valid date")
		return false
	}
return true
}

function ValidateForm(){
	var dt=document.frmSample.txtDate
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
    return true
}
