function wOpen(link) {
    leftPos = (screen.width - 640)/2;
    topPos = (screen.height - 480)/2;

    var win = window.open(link, 'edit', 'directories = no, fullscreen = no, scrollbars=2, height = 505, menubar = no, resizable = 1, status = no, titlebar = no, toolbar = no, screenX=0, hotkeys=no, left = ' + leftPos + ', top = ' + topPos);
    win.focus();
}

function wOpenNoScroll(link) {
    leftPos = (screen.width - 640)/2;
    topPos = (screen.height - 480)/2;

    var win = window.open(link, 'edit', 'directories = no, fullscreen = no, scrollbars=0, height = 505, menubar = no, resizable = 1, status = no, titlebar = no, toolbar = no, screenX=0, hotkeys=no, left = ' + leftPos + ', top = ' + topPos);
    win.focus();
}

function simpleTrim (aValue) {
	while (aValue.search (" ") > -1)
	{
		aValue = aValue.replace(" ", "");
	}
	return (aValue);
}

function remLeadZero(aValue) {

	var s;
	s = simpleTrim(aValue);
	while ((s.charAt(0) == '0') && (s.value > 0)) {
		s = s.substr(1,s.length);
	}
	return s;
}

function isEmpty(field) {
	var s = "" + field;
	while (s.lastIndexOf(' ') > -1)
    		s = s.replace(' ', ''); 
	return (s == '');
}

function isZero(field) {
	var s = field;
  s = simpleTrim(s);
  s = parseFloat(s);
  if (s > 0)
			return false;
	else
			return true;
}


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 checkBank(aVal)
{
	var total = 0;
	var test;
	if ((aVal.charAt(0) == 'p') || (aVal.charAt(0) == 'P'))
	{
			test = aVal.substr(1, aVal.length -1)
		  if ( !isNumeral(test) || (aVal.length == 1)) 
		  	return false;        
			else
				return true;
	}				
	if ( !isNumeral(aVal) || (aVal.length !=9 ))
	{
      return false;        
  }
	for (i=0;i<10;i++)
	{
		total = total + ((9 - i) * aVal.charAt(i));
	}
	if (total % 11 != 0)
   	return false;  
  return true;
}

function checkSofi(aVal)
{
	var total = 0;
	var test;
	var rest;
	if ( !isNumeral(aVal) || (aVal.length !=9 ))
	{
      return false;        
    }
	for (i=0;i<8;i++)
	{
		total = total + ((9 - i) * aVal.charAt(i));
	}
	rest = (total % 11);
	if ( rest != aVal.charAt(8) )
   	return false;  
  return true;
}

function checkMoney(aVal)
{
	var thisVal = aVal.replace(".", ",");
	var testInt = thisVal.replace(",", "");
    var len = thisVal.length-1;

    var i = thisVal.lastIndexOf(",");
	
	if (i == -1)
		return isNumeral(testInt);
	
    if (i == 0)
    	return false;  

	if ( ((len-i) != 1) && ((len-i) != 2) ) 
		return false;
		
    return isNumeral(testInt); 
}


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 checkDecimalCommaSeperated(aVal, scale, precision)
{
	if (aVal.length == 0) 
		return true;

	var thisVal = aVal; 
	var testInt = thisVal.replace(",", "");
	var len = thisVal.length-1;


	var i = thisVal.lastIndexOf("-");
	if (i != -1)
	{
		if (i != 0)
			return false;
		else
		{
			thisVal = thisVal.replace("-", "");
			testInt = testInt.replace("-", "");
		}
	}



	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 isInt(aValue)
{
	var i = aValue;
	
	var parsedVal = parseInt(i);
	return ( (parsedVal == i) && (!isNaN(parsedVal)) );
}

function checkDate (day,month,year)
{
	if (isEmpty(year) || year < 1920 || year > 2020)
		return "Ongeldige datum.";
	if (!isNumeral(day) || !isNumeral(year))
		return "Ongeldige datum.";

	var monthName = "";
	switch (month) {
		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;
	}
	month = "" + month;

	switch (month) {
		case "1":
		case "3": 
		case "5":
		case "7": 
		case "8":
		case "10":
		case "12":
			maxday = 31;
			break;
		case "2":
			if (LeapYear(year))
				maxday = 29
			else
				maxday = 28;
			break;
		case "4":
		case "6":
		case "9":
		case "11":
			maxday = 30;
			break;
		default:
		{
			return "Ongeldige datum.";
		}					
	}
	if ((maxday < day) || (day < 1)) 
	{	
		if (maxday < 30)
		{
		  return ("De maand " + monthName + " heeft maar " + maxday + " dagen in " + year + ".");
		}
		else 
		  return ("De maand " + monthName + " heeft maar " + maxday + " dagen" + ".");		
	}
	return "";
}						
				
function LeapYear(intYear) 
{
	if (intYear % 100 == 0) 
	{
		if (intYear % 400 == 0) { return true; }
	}
	else 
	{
		if ((intYear % 4) == 0) { return true;	}
	}
	return false;
}
