//---------------------------
// Notification functions
//---------------------------
function notifier(el, txt, doSelect)
{
	alert(txt);
	el.focus();
	if (doSelect) el.select();
	return false;
}


//---------------------------
// Navigation functions
//---------------------------
function autotab(current, to){
	if (current.getAttribute && current.value.length == current.getAttribute("maxlength"))
	{
		to.focus();
	}
}


//---------------------------
// String functions
//---------------------------
function isStringEmpty(str)
{
	if (str.length == 0) return true;
	return false;
}

function isStringMin6(str)
{
	if (str.length > 5) return true;
	return false;
}

function isString3(str)
{
	if (str.length == 3) return true;
	return false;
}

function isString6(str)
{
	if (str.length == 6) return true;
	return false;
}

function isString8(str)
{
	if (str.length == 8) return true;
	return false;
}

function isString9(str)
{
	if (str.length == 9) return true;
	return false;
}

function isString10(str)
{
	if (str.length == 10) return true;
	return false;
}

function isEmail(val)
{
  if (val.length==0) return true;
	return validateRegEx(val, /^(.+)@(.+)$/);
}

//---------------------------
// Number functions
//---------------------------
function isNumber(number)
{
	for (var i = 0; i < number.length; i++)
	{
		var c = number.charAt(i);
		if (!(parseFloat(c) >= 0) || !(parseFloat(c) <= 9))
		return false;
	}
	return true;
}

function isCurrency(val)
{
	return validateRegEx(val, /^((\d)|(\d\d)|(\d\d\d)|(\d\d\d\d))((,\d\d)|(,\d)|())$/);
}

function isPolisNummer(val)
{
	return validateRegEx(val, /^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/);
}

function IsElfProef(waarde)
{	
  if (!isNumber(waarde))
	{
		return true;
	}

	//valideert een banknummer (gironummers moeten voorafgegaan worden door een p of P)

	a = 0;
	
	re = /[\.]/g; //verwijder de punten
	str = waarde;
	newStr=str.replace(re,"");

	if(newStr.length==9||newStr.length==10)
	{
		for(l=0;l<newStr.length;l++)
		{
				a += newStr.charAt(l) * (newStr.length-l);
		}
	}
	else
	{
		a=0; //om false te genereren bij modulus 11
	}		
	// alert(a);
	//deelbaar door 11 of geen waarde (leeg veld) geven true terug
	if(a%11==0||newStr.length==0||newStr.indexOf("p")==0||newStr.indexOf("P")==0){
		return false;
	}else{
		return true;
	}
}

//---------------------------
// Date functions
//---------------------------
function isMonth(val)
{
	if (!isNumber(val)) return false;	
	if (parseFloat(val) < 1 || parseFloat(val) > 12) return false;
	return true;
}

function isDay(val)
{
	if (!isNumber(val)) return false;	
	if (parseFloat(val) < 1 || parseFloat(val) > 31) return false;
	return true;
}

function isYear(val)
{
	if (!isNumber(val)) return false;	
	if (parseFloat(val) < 1900 || parseFloat(val) > 9999) return false;
	return true;
}

function isDate(val, format) {
	//skip implementing format for now. just use euro date format dd-MM-yyyy
	var arrDate = val.split('-');
	if (arrDate.length != 3) return false;			//no day, month and year found
	if (!isDay(arrDate[0])) return false;				//check day
	if (!isMonth(arrDate[1])) return false;			//check month
	if (!isYear(arrDate[2])) return false;			//check year
	
	var d = parseFloat(arrDate[0]);
	var m = parseFloat(arrDate[1]);
	var y = parseFloat(arrDate[2]);

	if ((m == 4 || m == 6 || m == 9 || m == 11) && d > 30) return false;
	if (m == 2 && d > ( (((y) % 4 == 0) && ( (!((y) % 100 == 0)) || ((y) % 400 == 0) ) ) ? 29 : 28 )) return false;
	
	return true;
}

function isTime(val)
{
	return validateRegEx(val, /^((0\d)|(1\d)|(2[0-3])):[0-5]\d$/);
}

//---------------------------
// form functions
//---------------------------
function toProperCase(s)
{
  return s.toLowerCase().replace(/^(.)|\s(.)/g, 
          function($1) { return $1.toUpperCase(); });
}

//---------------------------
// Regular expression shell
//---------------------------
function validateRegEx(val, r)
{
	var retVal = false;
	var re = new RegExp(r);
	if (val.match(re)) { retVal = true; }
	return retVal;	
}

function toProperCase(s)
{
  return s.toLowerCase().replace(/^(.)|\s(.)/g, 
          function($1) { return $1.toUpperCase(); });
}

//---------------------------
// Includes
//---------------------------

