
function IsNumber(Expression, decimales)
{
    Expression = Expression.toLowerCase().replace( ',', '.' );
    if ( ! decimales )
      decimales = 0
    RefString = "0123456789";
    if ( decimales > 0 )
      RefString = RefString + "."

		if (Expression.length < 1)
      return (false);

		for (var i = 0; i < Expression.length; i++)
		{
			var ch = Expression.substr(i, 1);
			var a = RefString.indexOf(ch, 0);
			if (a == -1) return (false);
		}
    if ( Expression.indexOf( "." ) != -1 )
       if ( Expression.substr( Expression.indexOf( "." ) + 1).length > decimales )
            return( false )

    return(true);
}

function IsEmail(Expression)
{
	if (Expression == null)
		return (false);

	var supported = 0;
	if (window.RegExp)
	{
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported)
		return (Expression.indexOf(".") > 2) && (Expression.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(Expression) && r2.test(Expression));
}

function EsFecha(dateStr)
{
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2})$/;

  	var matchArray = dateStr.match(datePat)
  	if (matchArray == null)
  		return false

    month = matchArray[3]
    day = matchArray[1]
  	year = matchArray[4]
    if (month < 1 || month > 12)
  		return false

  	if (day < 1 || day > 31)
  		return false

  	if ((month==4 || month==6 || month==9 || month==11) && day==31)
  		return false

  	if (month == 2)
  	{
  		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
  		if (day>29 || (day==29 && !isleap))
  			return false;
  	}
  	return true;
}

function EsHora(timeStr)
{
    var timePat = /^(\d{2})(\:)(\d{2})$/;

  	var matchArray = timeStr.match(timePat)
  	if (matchArray == null)
  		return false

	hour = matchArray[1]
    min = matchArray[3]
	if (hour>23)
		return false
	if (min>59)
		return false
  	return true;
}

function LTrim(String)
{
  var i = 0;
  var j = String.length - 1;

  if (String == null)
    return (false);

  for (i = 0; i < String.length; i++)
  {
    if (String.substr(i, 1) != ' ' &&
        String.substr(i, 1) != '\t')
      break;
  }

  if (i <= j)
    return (String.substr(i, (j+1)-i));
  else
    return ('');
}

function RTrim(String)
{
  var i = 0;
  var j = String.length - 1;

  if (String == null)
    return (false);

  for(j = String.length - 1; j >= 0; j--)
  {
    if (String.substr(j, 1) != ' ' &&
      String.substr(j, 1) != '\t')
    break;
  }

  if (i <= j)
    return (String.substr(i, (j+1)-i));
  else
    return ('');
}

function Trim(String)
{
  if (String == null)
    return (false);

  return RTrim(LTrim(String));
}

function validar( oinput, campo, tipo, decimales ){
    if ( tipo == "euros" ){
      tipo = "numero"
      decimales = 2
    }
    if ( ! decimales )
        decimales = 0
    switch( tipo ){
        case "numero":
		  if( Trim( document.all( oinput ).value ) == "" )
				document.all( oinput ).value = 0;
          if (  ! IsNumber( document.all( oinput ).value, decimales ) ){
              cadena = "Debe introducir un número en el campo \"" + campo.toUpperCase() + "\""
              if ( decimales > 0 )
                cadena += " con " + decimales + " decimales como máximo"
              alert( cadena )
              document.all( oinput ).focus();
              return ( false );
          }
            break;
        case "fecha" :
            if ( Trim( document.all( oinput ).value ) != "" && ! EsFecha( document.all( oinput ).value ) ){
              alert( "Debe introducir una fecha correcta en el campo \"" + campo.toUpperCase() + "\"" );
              document.all( oinput ).focus();
              return ( false );
            }
            break;
        case "hora" :
            if ( Trim( document.all( oinput ).value ) != "" && ! EsHora( document.all( oinput ).value ) ){
              alert( "Debe introducir una hora correcta en el campo \"" + campo.toUpperCase() + "\"" );
              document.all( oinput ).focus();
              return ( false );
            }
            break;
        case "mail" :
            if ( Trim( document.all( oinput ).value ) != "" && ! IsEmail( document.all( oinput ).value ) ){
              alert( "Debe introducir una dirección de e-mail correcta en el campo \"" + campo.toUpperCase() + "\"" );
              document.all( oinput ).focus();
              return ( false );
            }
            break;
        case "obligatorio" :
          if ( Trim( document.all( oinput ).value ).length < 1 ){
              alert( "El campo \"" + campo.toUpperCase() + "\" es obligatorio" );
              document.all( oinput ).focus();
              return ( false );
          }
    }
    return ( true );
}

function Replace(Expression, Find, Replace)
{
	var temp = Expression;
	var a = 0;
	for (var i = 0; i < Expression.length; i++)
	{
		a = temp.indexOf(Find);
		if (a == -1)
			break
		else
			temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
	}
	return temp;
}


function fileupload(destdir,formname, camponame, campovalor)
{
   window.open('../../../includes/upload.asp?FORM=SI&FORMNAME=' + formname + '&CAMPO=' + camponame + '&VALOR=' + campovalor,'imageuploader','width=400,height=180,top=' + ( screen.height - 180 )/ 2 + ',left=' + ( screen.width - 400 )/ 2 );
}
