function empty(field)
{
	field.value = trim(field.value);
	if ( field.value.length == 0 )
	{
		field.focus();
		return (true);
	}
	else
	{
		return (false);
	}
	return (true);
}

function valuesize(field,maxlength) {
	if (parseInt(field.value.length)<maxlength)
		return false;
	else
		return true;
}

function ltrim( value )
{
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

function rtrim( value )
{
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

function trim( value )
{
	return ltrim(rtrim(value));
}

function clear_spaces( value )
{
	return trim(value.replace(/\s*/g, ''));
}


function isInt(aValue)
{
	var i = aValue.value;

	var parsedVal = parseInt(i);
	return ( (parsedVal == i) && (!isNaN(parsedVal)) );
}

function isNumeral(aValue)
{
	var len = aValue.length-1;
	var i = len;

	while (i >= 0) {
		if ( (aValue.charAt(i) < "0") || (aValue.charAt(i) > "9") )
			return false;
		i--;
	}

	return true;
}


function checkPerc(aVal)
{
	var thisVal = aVal.replace(".", ",");
	var testInt = thisVal.replace(",", "");
    var len = thisVal.length-1;

    var i = thisVal.lastIndexOf(",");
	if (i == -1)
		return ( (thisVal.length <= 3) && (isNumeral(testInt)) );

	if ( ((len - i) == 2) || ((len - i) == 1) )
		if (i <= 3)
			return (isNumeral(testInt));

	return false;
}

function checkDecimal(aVal, scale, precision)
{
	if (aVal.length == 0)
		return true;

	var thisVal = aVal.replace(".", ",");
	var testInt = thisVal.replace(",", "");
    var len = thisVal.length-1;

    var i = thisVal.lastIndexOf(",");
	if (i == -1)
		return ( (thisVal.length <= scale) && (isNumeral(testInt)) );

	if ( ((len - i) <= precision) && ((len - i) != 0) )
		if (i <= scale)
			return (isNumeral(testInt));

	return false;
}


function isEmail(argvalue) {

	argvalue = trim(argvalue.value);
	
  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

  var arrayString = argvalue.split("@");
  //var retSize = customSplit(argvalue, "@", "arrayString");

  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }

  return true;

}
function isURL(argvalue) {

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("http://") == -1)
    return false;
  else if (argvalue == "http://")
    return false;
  else if (argvalue.indexOf("http://") > 0)
    return false;

  argvalue = argvalue.substring(7, argvalue.length);
  if (argvalue.indexOf(".") == -1)
    return false;
  else if (argvalue.indexOf(".") == 0)
    return false;
  else if (argvalue.charAt(argvalue.length - 1) == ".")
    return false;

  if (argvalue.indexOf("/") != -1) {
    argvalue = argvalue.substring(0, argvalue.indexOf("/"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }

  if (argvalue.indexOf(":") != -1) {
    if (argvalue.indexOf(":") == (argvalue.length - 1))
      return false;
    else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
      return false;
    argvalue = argvalue.substring(0, argvalue.indexOf(":"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }

  return true;

}

function customSplit(strvalue, separator, arrayName) {
  var n = 0;

  if (separator.length != 0) {
    while (strvalue.indexOf(separator) != -1) {
      eval("arr"+n+" = strvalue.substring(0, strvalue.indexOf(separator));");
      strvalue = strvalue.substring(strvalue.indexOf(separator)+separator.length,
          strvalue.length+1);
      n++;
    }
    eval("arr" + n + " = strvalue;");
    arraySize = n+1;
  }
  else {
    for (var x = 0; x < strvalue.length; x++) {
      eval("arr"+n+" = \"" + strvalue.substring(x, x+1) + "\";");
      n++;
    }
    arraySize = n;
  }

  eval(arrayName + " = new makeArray(arraySize);");

  for (var i = 0; i < arraySize; i++)
    eval(arrayName + "[" + i + "] = arr" + i + ";");

  return arraySize;
}

function Trim(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

function radioValue(radioButton) {
    var radioRef = radioButton 
    if (typeof radioRef.length != 'number') radioRef = Array(radioRef); 
	for (var i=0;i<radioRef.length;i++)
	{
		if (radioRef[i].checked)
			return radioRef[i].value;
	}
	return -1;
}

function checkDate (day,month,year)
{
  //alert( day + month+ year);
	if (empty(year) || year.value < 1920 || year.value > 2020)
	{
		return 'Jaar moet tussen 1920 en 2020 liggen';
	}

	if (empty(day))
	{
		return 'dag moet een waarde hebben';
	}

	if (!isInt(day))
	{
		return 'dag moet een gehele waarde hebben';
	}



  var maxday = 0;
	var monthName = "";

	switch (month.value) {
		case "1":
			monthName = "januari";
			break;
		case "2":
			monthName = "februari";
			break;
		case "3":
			monthName = "maart";
			break;
		case "4":
			monthName = "april";
			break;
		case "5":
			monthName = "mei";
			break;
		case "6":
			monthName = "juni";
			break;
		case "7":
			monthName = "juli";
			break;
		case "8":
			monthName = "augustus";
			break;
		case "9":
			monthName = "september";
			break;
		case "10":
			monthName = "oktober";
			break;
		case "11":
			monthName = "november";
			break;
		case "12":
			monthName = "december";
			break;
	}


	switch (month.value) {
		case "1":
		case "3":
		case "5":
		case "7":
		case "8":
		case "10":
		case "12":
			maxday = 31;
			break;
		case "2":
			if (LeapYear(year.value))
				maxday = 29
			else
				maxday = 28;
			break;
		case "4":
		case "6":
		case "9":
		case "11":
			maxday = 30;
			break;
	}

	if ((maxday < day.value) || (day.value < 1))
	{
		if (maxday < 30)
		{
		  return ("De maand " + monthName + " heeft maar " + maxday + " dagen in " + year.value + ".");
		}
		else
		  return ("De maand " + monthName + " heeft maar " + maxday + " dagen" + ".");
	}
	return "";
}

function checkDate_EN(day,month,year)
{
  //alert( day + month+ year);
	if (empty(year) || year.value < 1920 || year.value > 2020)
	{
		return 'Year must be between 1920 and 2020';
	}

	if (empty(day))
	{
		return 'Day must have a value.';
	}

	if (!isInt(day))
	{
		return 'Day must be an integer.';
	}


  var maxday = 0;
	var monthName = "";

	switch (month.value) {
		case "1":
			monthName = "January";
			break;
		case "2":
			monthName = "February";
			break;
		case "3":
			monthName = "March";
			break;
		case "4":
			monthName = "April";
			break;
		case "5":
			monthName = "May";
			break;
		case "6":
			monthName = "June";
			break;
		case "7":
			monthName = "July";
			break;
		case "8":
			monthName = "August";
			break;
		case "9":
			monthName = "September";
			break;
		case "10":
			monthName = "October";
			break;
		case "11":
			monthName = "November";
			break;
		case "12":
			monthName = "December";
			break;
	}


	switch (month.value) {
		case "1":
		case "3":
		case "5":
		case "7":
		case "8":
		case "10":
		case "12":
			maxday = 31;
			break;
		case "2":
			if (LeapYear(year.value))
				maxday = 29
			else
				maxday = 28;
			break;
		case "4":
		case "6":
		case "9":
		case "11":
			maxday = 30;
			break;
	}

	if ((maxday < day.value) || (day.value < 1))
	{
		if (maxday < 30)
		{
		  return ("Month \'" + monthName + "\' only has " + maxday + " days in " + year.value + ".");
		}
		else
		  return ("Month \'" + monthName + "\' only has " + maxday + " days" + ".");
	}
	return "";
}

function checkDate_ES(day,month,year)
{
  //alert( day + month+ year);
	if (empty(year) || year.value < 1920 || year.value > 2020)
	{
		return 'Año debe ser entre 1920 y 2020';
	}

	if (empty(day))
	{
		return 'Día debe tener un valor.';
	}

	if (!isInt(day))
	{
		return 'Día debe ser un entero.';
	}


  var maxday = 0;
	var monthName = "";

	switch (month.value) {
		case "1":
			monthName = "Enero";
			break;
		case "2":
			monthName = "Febrero";
			break;
		case "3":
			monthName = "Marzo";
			break;
		case "4":
			monthName = "Abril";
			break;
		case "5":
			monthName = "Mayo";
			break;
		case "6":
			monthName = "Junio";
			break;
		case "7":
			monthName = "Julio";
			break;
		case "8":
			monthName = "Agosto";
			break;
		case "9":
			monthName = "Septiembre";
			break;
		case "10":
			monthName = "Octubre";
			break;
		case "11":
			monthName = "Noviembre";
			break;
		case "12":
			monthName = "Diciembre";
			break;
	}


	switch (month.value) {
		case "1":
		case "3":
		case "5":
		case "7":
		case "8":
		case "10":
		case "12":
			maxday = 31;
			break;
		case "2":
			if (LeapYear(year.value))
				maxday = 29
			else
				maxday = 28;
			break;
		case "4":
		case "6":
		case "9":
		case "11":
			maxday = 30;
			break;
	}

	if ((maxday < day.value) || (day.value < 1))
	{
		if (maxday < 30)
		{
		  return ("Mes de \'" + monthName + "\' sólo tiene " + maxday + " días en " + year.value + ".");
		}
		else
		  return ("Mes de \'" + monthName + "\' sólo tiene " + maxday + " días" + ".");
	}
	return "";
}

function LeapYear(intYear)
{
	if (intYear % 100 == 0)
	{
		if (intYear % 400 == 0) { return true; }
	}
	else
	{
		if ((intYear % 4) == 0) { return true;	}
	}
	return false;
}

function getFirstElementByName(name)
{
	var ctrls = document.getElementsByName(name);
	if (ctrls != null && ctrls.length > 0)
	{
		return ctrls[0];
	}
	
	return null;
}


