/* Fichero de funciones comunes en Javascript desarrollado por Getzabel para Onice Sistemas */

function VenAdmin(vUrl, sH, sW)
{
	var winreswidth=window.screen.availWidth + 7;
	var winresheight=window.screen.availHeight + 7;
	var gwa=open(vUrl,"Administrador","left=0,top=0,width=" + sW + ",height=" + sH + ",toolbar=no,menubar=no,location=no,status=yes,scrollbars=yes,resizable=no;");

	gwa.moveTo("-5","-3");

	var resizespeed=5; 
	var widthspeed=winreswidth/resizespeed;
	var heightspeed=winresheight/resizespeed;
	var sizewidth=0;
	var sizeheight=0;
	for (size=0;size<resizespeed;size++)
	 {
	  gwa.resizeTo(sizewidth,sizeheight);
	  sizewidth+=widthspeed;
	  sizeheight+=heightspeed;
	 }

	gwa.resizeTo(winreswidth,winresheight);
	if (gwa.focus){gwa.focus();}			
}

function pulsada(e,tipo) 
{
	var estado=false;
	var codigoTecla, cadenaTecla;  

	if(tipo=="T")     
	{
		var correctos = new Array("a","b","c","d","e","á","é","í","ó","ú","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	}
	else if(tipo=="T2")
	{
		var correctos = new Array(" ","a","b","c","d","e","á","é","í","ó","ú","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	}
	else if(tipo=="T3")
	{
		var correctos = new Array("\\",">","<","~","@","}","{","-","+","_",")","(","*","&","^","%","$","£","!","?",".",",",";",":"," ","a","b","c","d","e","á","é","í","ó","ú","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	}
	else if(tipo=="Todo")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9","\\",">","<","~","@","}","{","-","+","_",")","(","*","&","^","%","$","£","!","?",".",",",";",":"," ","a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z","á","é","í","ó","ú");
	}
	else if(tipo=="Alf")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","á","é","í","ó","ú","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	}
	else if(tipo=="N")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9","-");
	}
	else if(tipo=="D")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9",",");
	}
	else if(tipo=="DN")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9",",","-");
	}
	else if(tipo=="D2")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9",".");
	}	
	else if(tipo=="F")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9","/");
	}
	else if(tipo=="E")
	{
		var correctos = new Array("@",".","_","-","0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	}
	else if(tipo=="H")
	{
		var correctos = new Array("0","1","2","3","4","5","6","7","8","9",":");
	}	

    if(document.all)
    {
        codigoTecla = event.keyCode
        cadenaTecla = (String.fromCharCode(event.keyCode));
    }
    else if(document.layers)
    {
        codigoTecla = e.which
        cadenaTecla = String.fromCharCode(e.which);
    }
    else if(document.getElementById)
    {
        codigoTecla = (window.Event) ? e.which : e.keyCode;
        cadenaTecla = (String.fromCharCode(codigoTecla));
    }

    for(i=0;i<correctos.length;i++)
    {
        if(cadenaTecla == correctos[i])
            estado = true;
    }

    if(estado == false)
    {
        if(document.all)
            event.returnValue = false;
        else
            return false;
    }
}

function AbrirVentana (URL){ 
	var x = screen.width - 8;
	var y = screen.height - 24;
	window.open(URL,"","fullscreen=2,height=" + y + ", width=" + x + ", top=0, left=0, resizable=no, toolbar=no, menubar=no, status=no, location=no");
} 

function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
  {
	//alert("La dirección de email " + valor + " es correcta.") 
    return (true)
  } 
  else
  {
	alert("La dirección de email es incorrecta.");
	return (false);
  }
}

function isMail(_email) {
     var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
     return emailReg.test(_email);
  }

function aEuros(valor)
{
	if (valor!='NaN')
	{
		return valor/166.386
	}
}

function aPts(valor)
{
	if (valor!='NaN')
	{
		return valor*166.386
	}
}

function DNI(n)
{
	var d =(n/23)
	d = Math.floor(d);
	var e=d*23
	var r=n-e
	if (r==0)  { return "T" } 
	if (r==1)  { return "R" } 
	if (r==2)  { return "W"  }
	if (r==3)  { return "A"  }
	if (r==4)  { return "G"  }
	if (r==5)  { return "M"  }
	if (r==6)  { return "Y"  }
	if (r==7)  { return "F"  }
	if (r==8)  { return "P"  }
	if (r==9)  { return "D"  }
	if (r==10) { return "X"  }
	if (r==11) { return "B"  }
	if (r==12) { return "N"  }
	if (r==13) { return "J"  }
	if (r==14) { return "Z"  }
	if (r==15) { return "S"  }
	if (r==16) { return "Q"  }
	if (r==17) { return "V"  }
	if (r==18) { return "H"  }
	if (r==19) { return "L"  }
	if (r==20) { return "C"  }
	if (r==21) { return "K"  }
	if (r==22) { return "E"  }
}

function IsNum( numstr ) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
	return false;
	var isValid = true;
	var decCount = 0;
	numstr += "";	
	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == ".")
			decCount++;
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
				(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "-" && i != 0) ||
				(numstr.charAt(i) == "." && numstr.length == 1) ||
			  (numstr.charAt(i) == "." && decCount > 1)) {
       	isValid = false;
       	break;
      }         	         	       
//if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9")) || 
   }
   	return isValid;
}


function IsAlphaNum( str ) {
	if (str+"" == "undefined" || str+"" == "null" || str+"" == "")	
		return false;

	var isValid = true;
	
   	str += "";	

   	for (i = 0; i < str.length; i++)
   	{
      	if (!(((str.charAt(i) >= "0") && (str.charAt(i) <= "9")) || 
      			((str.charAt(i) >= "a") && (str.charAt(i) <= "z")) ||
      			((str.charAt(i) >= "A") && (str.charAt(i) <= "Z"))))
			{
				isValid = false;
				break;
			}	
   	}
   
   	return isValid;
}


function IsInt( numstr, allowNegatives ) {
	// Return immediately if an invalid value was passed in
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;

	// Default allowNegatives to true when undefined or null
	if (allowNegatives+"" == "undefined" || allowNegatives+"" == "null")	
		allowNegatives = true;

	var isValid = true;

	// convert to a string for performing string comparisons.
	numstr += "";	

	// Loop through string and test each character. If any
	// character is not a number, return a false result.
 	// Include special case for negative numbers (first char == '-').   
	for (i = 0; i < numstr.length; i++) {
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || (numstr.charAt(i) == "-"))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "-" && i != 0) || 
				(numstr.charAt(i) == "-" && !allowNegatives)) {
       	isValid = false;
       	break;
      }
         	         	       
   } // END for   
   
   	return isValid;
}  // end IsInt

function isValidDate(dateStr) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (dateStr==""){return true}
	if (matchArray == null) {
		alert("El formato de la Fecha debe ser dd/mm/aaaa")
		return false;
	}
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[4];
	if (month < 1 || month > 12) {
		alert("El mes debe estar entre 1 y 12.");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Día debe estar entre 1 y 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Este mes no tiene 31 días!")
		return false
	}
	if (month == 2) {
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
		alert("Febrero " + year + " no tiene " + day + " dias!");
		return false;
	}
	}
	return true;
}

function Left(s, n){
	// Devuelve los n primeros caracteres de la cadena
	if(n>s.length)
		n=s.length;
		
	return s.substring(0, n);
}
function Right(s, n){
	// Devuelve los n últimos caracteres de la cadena
	var t=s.length;
	if(n>t)
		n=t;
		
	return s.substring(t-n, t);
}
function Mid(s, n, c){
	// Devuelve una cadena desde la posición n, con c caracteres
	// Si c = 0 devolver toda la cadena desde la posición n
	
	var numargs=Mid.arguments.length;
	
	// Si sólo se pasan los dos primeros argumentos
	if(numargs<3)
		c=s.length-n+1;
		
	if(c<1)
		c=s.length-n+1;
	if(n+c >s.length)
		c=s.length-n+1;
	if(n>s.length)
		return "";
		
	return s.substring(n-1,n+c-1);
}
function LTrim(s){
	// Devuelve una cadena sin los espacios del principio
	var i=0;
	var j=0;
	
	// Busca el primer caracter <> de un espacio
	for(i=0; i<=s.length-1; i++)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(j, s.length);
}
function RTrim(s){
	// Quita los espacios en blanco del final de la cadena
	var j=0;
	
	// Busca el último caracter <> de un espacio
	for(var i=s.length-1; i>-1; i--)
		if(s.substring(i,i+1) != ' '){
			j=i;
			break;
		}
	return s.substring(0, j+1);
}
function Trim(s){
	// Quita los espacios del principio y del final
	return LTrim(RTrim(s));
}
function InStr(n, s1, s2){
	// Devuelve la posición de la primera ocurrencia de s2 en s1
	// Si se especifica n, se empezará a comprobar desde esa posición
	// Sino se especifica, los dos parámetros serán las cadenas
	var numargs=InStr.arguments.length;
	
	if(numargs<3)
		return n.indexOf(s1)+1;
	else
		return s1.indexOf(s2, n)+1;
}
function RInStr(n, s1, s2){
	// Devuelve la posición de la última ocurrencia de s2 en s1
	// Si se especifica n, se empezará a comprobar desde esa posición
	// Sino se especifica, los dos parámetros serán las cadenas
	var numargs=RInStr.arguments.length;
	
	if(numargs<3)
		return n.lastIndexOf(s1)+1;
	else
		return s1.lastIndexOf(s2, n)+1;
}
function Space(n){
	// Devuelve una cadena con n espacios
	var t="";
	
	for(var i=1; i<=n; i++)
		t=t+" ";
	
	return t;
}
function jString(n, c){
	// Devuelve n veces el caracter c
	var t="";
	
	for(var i=1; i<=n; i++)
		t=t+c;
	return t;
}
function UCase(s){
	// Devuelve la cadena convertida a mayúsculas
	return s.toUpperCase();
}
function LCase(s){
	// Devuelve la cadena convertida en minúsculas
	return s.toLowerCase();
}
function Len(s){
	// Devuelve la longitud de la cadena s
	return s.length;
}
function StrReverse(s){
	// Invierte la cadena
	var i=s.length;
	var t="";
	
	while(i>-1){
		t=t+ s.substring(i,i+1);
		i--;
	}
	return t;
}

function PopUpCalendar()
{
	window.open("Calendario.html", "Calendario", "directories=no, menubar =no,status=no,toolbar=no,location=no,scrollbars=no,fullscreen=no,height=560,width=560,left=0,top=0");
}

function PopUp(pagina)
{
	window.open(pagina);
}

function PopUpPeque(pagina)
{
	window.open(pagina, "PopUp", "directories=no, menubar=no, status=no, toolbar=no, location=no, scrollbars=yes, fullscreen=no, height=650, width=750, left=0, top=0");
}

function isNumber(s)
{   var i;
    var dotAppeared;
    dotAppeared = false;
	
	// Si no es de relleno obligatorio suprimir las tres sentencias siguientes //	
    //if (isEmpty(s)) 
    //   if (isNumber.arguments.length == 1) return false;
    //   else return (isNumber.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c)) return false;
        } else { 
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}





