function Search(url){
	if($('query').value!= ''){
		url += '/query/'+$('query').value;
	}
	
	window.location = url;
}
function link(href){
	if((document.getElementById("vpanel") != null) && $("vpanel").value != "" && (!href.match("estado")))
	 window.location = href + "/estado/" +$("vpanel").value;
	else{
	if((document.getElementById("vpanel") != null) && $("vpanel").value != "")
		window.location = href.replace(/\/estado\/[0-9]*/im, "/estado/" + $("vpanel").value);
	else
	 	window.location = href;
	}
}
function trim(sString)
{
		while (sString.substring(0,1) == ' ')
		{
    	sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
    	sString = sString.substring(0,sString.length-1);
		}
		return sString;

}	
		
function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
    return (true)
  } else {
    return (false);
  }
}


function validar(msg){
  if(confirm(msg))
      "";
  else
      return false;
}

function encode(str) {
  var result = "";
	var i = 0;
	var sextet = 0;
	var leftovers = 0;
	var octet = 0;

        if((str != '')&&(str != undefined)){

          for (i=0; i < str.length; i++) {
  		octet = str.charCodeAt(i);
  		switch( i % 3 )
  		{
  			case 0:
  			{
  				sextet = ( octet & 0xFC ) >> 2 ;
  				leftovers = octet & 0x03 ;
  
  				// sextet contains first character in quadruple
  				break;
  			}
  
  			case 1:
  			{
  				sextet = ( leftovers << 4 ) | ( ( octet & 0xF0 ) >> 4 );
  				leftovers = octet & 0x0F ;
  
  				// sextet contains 2nd character in quadruple
  				break;
  			}
  
  			case 2:
  			{
  				sextet = ( leftovers << 2 ) | ( ( octet & 0xC0 ) >> 6 ) ;
  				leftovers = ( octet & 0x3F ) ;
  
  				// sextet contains third character in quadruple
  				// leftovers contains fourth character in quadruple
  				break;
  			}
  		}
  
  		result = result + base64ToAscii(sextet);
  
  		// don't forget about the fourth character if it is there
  		if( (i % 3) == 2 )
  		{
  			result = result + base64ToAscii(leftovers);
  		}
  
  	}
  
  	// figure out what to do with leftovers and padding
  	switch( str.length % 3 )
  	{
  		case 0:
  		{
  			// an even multiple of 3, nothing left to do
  			break ;
  		}
  		case 1:
  		{
  			// one 6-bit chars plus 2 leftover bits
  			leftovers =  leftovers << 4 ;
  			result = result + base64ToAscii(leftovers);
  			result = result + "==";
  			break ;
  		}
  		case 2:
  		{
  			// two 6-bit chars plus 4 leftover bits
  			leftovers = leftovers << 2 ;
  			result = result + base64ToAscii(leftovers);
  			result = result + "=";
  			break ;
  		}
  	}
  
  	return result;
	
        }
}

function base64ToAscii(c)
{
	var theChar = 0;
	
	if (0 <= c && c <= 25)
	{
		theChar = String.fromCharCode(c + 65);
	}
	else if (26 <= c && c <= 51)
	{
		theChar = String.fromCharCode(c - 26 + 97);
	}
	else if (52 <= c && c <= 61)
	{
		theChar = String.fromCharCode(c - 52 + 48);
	}
	else if (c == 62)
	{
		theChar = '+';
	}
	else if( c == 63 )
	{
		theChar = '/';
	}
	else
	{
		theChar = String.fromCharCode(0xFF);
	}

	return theChar;
}

function decode(str) {
	var result = "";
	var i = 0;
	var x;
	var shiftreg = 0;
	var count = -1;

	
	for (i=0; i < str.length; i++) {
		c = str.charAt(i);
		if ('A' <= c && c <= 'Z')
			x = str.charCodeAt(i) - 65;
		else if ('a' <= c && c <= 'z')
			x = str.charCodeAt(i) - 97 + 26;
		else if ('0' <= c && c <= '9')
			x = str.charCodeAt(i) - 48 + 52;
		else if (c == '+')
			x = 62;
		else if (c == '/')
			x = 63;
		else
			continue;

		count++;

		switch (count % 4)
		{
		case 0:
			shiftreg = x;
			continue;
		case 1:
			v = (shiftreg<<2) | (x >> 4);
			shiftreg = x & 0x0F;
			break;
		case 2:
			v = (shiftreg<<4) | (x >> 2);
			shiftreg = x & 0x03;
			break;
		case 3:
			v = (shiftreg<<6) | (x >> 0);
			shiftreg = x & 0x00;
			break;
		}

		if (!is_binary && (v < 32 || v > 126) && (v != 0x0d) && (v != 0x0a)) 
		{
			result = result + "<";
			result = result + "0123456789ABCDEF".charAt((v/16)&0x0F);
			result = result + "0123456789ABCDEF".charAt((v/1)&0x0F);
			result = result + ">";
		}
		else
			result = result + String.fromCharCode(v);

	}
	return result.toString();
}

function getFormatSeg(segundos)
{

	minutos=segundos/60;

	horas= Math.floor(minutos/60);

	minutos2=minutos%60;

	segundos_2=segundos%60%60%60;

	if(minutos2<10)	minutos2='0'+minutos2;

	if(segundos_2<10)	segundos_2='0'+segundos_2;
	
	if(segundos<60)
 		     { /* segundos */
 		     	resultado= Math.round(segundos)+' Segundos';
		     } 
		     else if(segundos>60 && segundos<3600)
		     {/* minutos */
		     	resultado= minutos2+':'+segundos_2+' Minutos';
		     }
		     	else{/* horas */
		     		resultado= horas+':'+minutos2+':'+segundos_2+' Horas';
 				}
	return resultado;
}

function EnviarForm(formu,e){
	
	var key = window.event ? e.keyCode : e.which;	
	if(key == 13){
		formu.submit();
	}	
	
}


function enteros(e) {
	var key = window.event ? e.keyCode : e.which;

   if ((key < 48 || key  > 57) && key != 8 && key != 0)
       return false;
}

function decimales(e) {
	var key = window.event ? e.keyCode : e.which;
		
   if ((key < 48 || key  > 57) && key != 8 && key != 46 && key != 0)
       return false;
}

function quitarEspacios(){
  var key = window.event ? event.keyCode : event.which;
	if (key == 32)
       return false;
}

function validarazAZ09(e){
	var key = window.event ? e.keyCode : e.which;
	return (key.match(/[a-zA-Z0-9]*/im));
}


function mayusculas(campo){

      campo.value = trim(campo.value.toUpperCase());
}


function Confirmar(msg,url){
	
		texto = '<div id="alerta-todo"><div id="cuadro-todo"><div id="cuadro-borde-suiz"><div id="cuadro-borde-sude"><div id="cuadro-bor-su"><div id="cuadro-borde-su-blanco"></div></div></div></div><div id="popup-contenido"><div id="popup-contenido-der"><div id="popup-contenido-centro">';
		texto += '<div id="contenido-alerta-sup"><img src="/images/admin/help2.gif" border="0"><span class="textoVentana">' + msg + '?</span></div><div id="contenido-alerta-inf"><div class="boton-ok-cancel-ce">';
		texto += '<input type="button" class="boton" value="Aceptar" onclick="window.location = \'' + url + '\'">	<input type="button" class="boton" value="Cancelar" onClick="Effect.SwitchOff(\'alertas\')"></div></div></div></div></div><div id="popup-contenido-inferior"><div id="popup-borde-inde"><div id="cuadro-borde-in"></div></div></div></div></div>';
	   	
	$('alertas').update(texto);
	Effect.Center('alertas');
	Effect.Appear('alertas');
 
}
function ConfirmarJS(msg, script){
	
		texto = '<div id="alerta-todo"><div id="cuadro-todo"><div id="cuadro-borde-suiz"><div id="cuadro-borde-sude"><div id="cuadro-bor-su"><div id="cuadro-borde-su-blanco"></div></div></div></div><div id="popup-contenido"><div id="popup-contenido-der"><div id="popup-contenido-centro">';
		texto += '<div id="contenido-alerta-sup"><img src="/images/admin/help2.gif" border="0"><span class="textoVentana">' + msg + '?</span></div><div id="contenido-alerta-inf"><div class="boton-ok-cancel-ce">';
		texto += '<input type="button" class="boton" value="Aceptar" onclick="' + script + '">	<input type="button" class="boton" value="Cancelar" onClick="Effect.SwitchOff(\'alertas\')"></div></div></div></div></div><div id="popup-contenido-inferior"><div id="popup-borde-inde"><div id="cuadro-borde-in"></div></div></div></div></div>';
	   	
	$('alertas').update(texto);
	Effect.Center('alertas');
	Effect.Appear('alertas');
 
}

function alerta(msg)
{
	
	
	  texto = '<div id="alerta-todo5">';
		texto += '<div id="cuadro-todo5">';
			texto += '<div id="cuadro-borde-suiz5">';			
				texto += '<div id="cuadro-borde-sude5">';
					texto += '<div id="cuadro-bor-su5">';
						texto += '<div id="cuadro-borde-su-blanco5"></div>';
					texto += '</div>';			
				texto += '</div>';
			texto += '</div>';		
			texto += '<div id="popup-contenido5">';		
				texto += '<div id="popup-contenido-der5">';
					texto += '<div id="popup-contenido-centro5">';
										 
				         texto += '<div id="contenido-alerta-sup5">';
				         	texto += '<div id="imgAlerta"></div>';				          	
				         	texto += '<div class="textoVentana5" id="textoAlerta">'+msg+'</div>';						  
						 texto += '</div>';	
						 texto += '<div id="contenido-alerta-inf5">';
							texto += '<div class="boton-ok-ce5">';
								texto += '';					
								texto += '<a href="javascript: void(0);" onClick="Effect.SwitchOff(\'alertas\');hideDisable()" class="txt-ok5">Aceptar</a>'; 
								texto += '';
							texto += '</div>';
						 texto += '</div>';
									 
					texto += '</div>';			
				texto += '</div>';				
			texto += '</div>';		
			texto += '<div id="popup-contenido-inferior5">';
				texto += '<div id="popup-borde-inde5">';
					texto += '<div id="cuadro-borde-in5"></div>';
				texto += '</div>';			
			texto += '</div>';
		texto += '</div>';
	texto += '</div>';  	
    
    showDisable();
    $('alertas').scrollTo();
	$('alertas').update(texto);	
	Effect.Center('alertas');
	Effect.Appear('alertas');
	new Draggable('alertas',{ handle: $('cuadro-borde-suiz5') });
}

/* dice si cadena es url (http://... ) o no                                     */
function ValidarURL(cadena)
{                   
										// DECLARACION DE CONSTANTES
	var http = "http://";              	// protocolo HTTP
								   		// DECLARACION DE VARIABLES
	var es_url;                        	// cadena es url o no
	if(cadena.length <= 7)             	// INICIO
		es_url = false;                 // no cabe "http://*"
	else
		es_url = http.indexOf(cadena.substring(0, 7)) != - 1; // lee "http://*"
	return(es_url);
}//end function url

/**
*COMIENZA FUNCION VALIDAR FECHA EN JAVASCRIPT
*/
	function esDigito(sChr)
	{
		var sCod = sChr.charCodeAt(0);
		return ((sCod > 47) && (sCod < 58));
	}

	function valSep(oTxt){
		var bOk = false;
		bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
		bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
		return bOk;
	}

	function finMes(oTxt){
		var nMes = parseInt(oTxt.value.substr(3, 2), 10);
		var nRes = 0;
		switch (nMes){
			case 1: nRes = 31; break;
			case 2: nRes = 29; break;
			case 3: nRes = 31; break;
			case 4: nRes = 30; break;
			case 5: nRes = 31; break;
			case 6: nRes = 30; break;
			case 7: nRes = 31; break;
			case 8: nRes = 31; break;
			case 9: nRes = 30; break;
			case 10: nRes = 31; break;
			case 11: nRes = 30; break;
			case 12: nRes = 31; break;
		}
		return nRes;
	}

	function valDia(oTxt){
		var bOk = false;
		var nDia = parseInt(oTxt.value.substr(0, 2), 10);
		bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
		return bOk;
	}

	function valMes(oTxt){
		var bOk = false;
		var nMes = parseInt(oTxt.value.substr(3, 2), 10);
		bOk = bOk || ((nMes >= 1) && (nMes <= 12));
		return bOk;
	}

	function valAno(oTxt){
		var bOk = true;
		var nAno = oTxt.value.substr(6);
		bOk = bOk && ((nAno.length == 4));
		if (bOk){
			for (var i = 0; i < nAno.length; i++){
				bOk = bOk && esDigito(nAno.charAt(i));
			}
		}
		return bOk;
	}

	function valFecha(oTxt){
		var bOk = true;
		if (oTxt.value != ""){
			bOk = bOk && (valAno(oTxt));
			bOk = bOk && (valMes(oTxt));
			bOk = bOk && (valDia(oTxt));
			bOk = bOk && (valSep(oTxt));
			if (!bOk){
				alert("La fecha es invalida. Respete el formato dd/mm/aaaa");				
				oTxt.focus();
			}
		}
	}
/**
*FIN VALIDACION FECHA EN JAVASCRIPT
*/


function showDisable(){	
	$('disabletor').style.height = getPageSize()[1] + "px";	
	new Effect.Opacity('disabletor', {duration:0.1, from:0, to:0.5});
	$('disabletor').style.display = 'block';
}

function hideDisable(){
	
	//Effect.Opacity('disabletor',{from:0.5,to:0});
	new Effect.Opacity('disabletor', {duration:0.1, from:0.5, to:0});
	$('disabletor').hide();
}

//Aparte de cerrar el box, saco el contenido que hay adentro para que no haya problemas de ids repetidos
var idBox;
function closeBox(efecto,id){
	eval("Effect."+efecto+"(id)");
	hideDisable();
	idBox = id;
	//setTimeout(resetDiv,1000)
}

function deleteFile(url,elementID){
	new Ajax.Request(url,{
		onComplete: function(res){
			if(res.responseText == 'OK'){
				$(elementID).hide();
			}else{
				Alerta('Hubo un error al borrar el archivo');
			}
		}
	});
}

function resetDiv(){	
	$(idBox).update('');		
}

function getPageSize() {	
	var xScroll, yScroll, windowWidth, windowHeight;	
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.scrollWidth;
		yScroll = (this.isFrame ? parent.innerHeight : self.innerHeight) + (this.isFrame ? parent.scrollMaxY : self.scrollMaxY);
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.getElementsByTagName("html").item(0).offsetWidth;
		yScroll = document.getElementsByTagName("html").item(0).offsetHeight;
		xScroll = (xScroll < document.body.offsetWidth) ? document.body.offsetWidth : xScroll;
		yScroll = (yScroll < document.body.offsetHeight) ? document.body.offsetHeight : yScroll;
	}	
	if (self.innerHeight) {
		windowWidth = (this.isFrame) ? parent.innerWidth : self.innerWidth;
		windowHeight = (this.isFrame) ? parent.innerHeight : self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.getElementsByTagName("html").item(0).clientWidth;
		windowHeight = document.getElementsByTagName("html").item(0).clientHeight;
		windowWidth = (windowWidth == 0) ? document.body.clientWidth : windowWidth;
		windowHeight = (windowHeight == 0) ? document.body.clientHeight : windowHeight;
	}
	var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll;
	var pageWidth = (xScroll < windowWidth) ? windowWidth : xScroll;	
	return new Array(pageWidth, pageHeight, windowWidth, windowHeight);
};