//Fuctions to mimmick LTrim,  RTrim, and Trim...
function lTrim(str)
/*
        PURPOSE: Remove leading blanks from our string.
        IN: str - the string we want to LTrim
*/
{
        var whitespace = new String(" \t\n\r");

        var s = new String(str);

        if (whitespace.indexOf(s.charAt(0)) != -1) {
            // We have a string with leading blank(s)...

            var j=0, i = s.length;

            // Iterate from the far left of string until we
            // don't have any more whitespace...
            while (j <i && whitespace.indexOf(s.charAt(j)) != -1)
                j++;


            // Get the substring from the first non-whitespace
            // character to the end of the string...
            s = s.substring(j, i);
        }

        return s;
}

function rTrim(str)
/*
        PURPOSE: Remove trailing blanks from our string.
        IN: str - the string we want to RTrim

*/
{
        // We don't want to trip JUST spaces, but also tabs,
        // line feeds, etc.  Add anything else you want to
        // "trim" here in Whitespace
        var whitespace = new String(" \t\n\r");

        var s = new String(str);

        if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
            // We have a string with trailing blank(s)...

            var i = s.length - 1;       // Get length of string

            // Iterate from the far right of string until we
            // don't have any more whitespace...
            while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
                i--;


            // Get the substring from the front of the string to
            // where the last non-whitespace character is...
            s = s.substring(0, i+1);
        }

        return s;
}


function trim(str)
/*
        PURPOSE: Remove trailing and leading blanks from our string.
        IN: str - the string we want to Trim

        RETVAL: A Trimmed string!
*/
{
        return rTrim(lTrim(str));
}

function checkrequired(which) { }

function isEmpty(attr) {

  return (trim(attr.value) == "");
}

function isNotSelected(radio) {

  for (var i=0; i<radio.length; i++)
	if (radio[i].checked)
	  return false;
  return true;
}

  
function checkText(attr, name, checkLow, Low, checkHigh, High) {

  if (checkLow) { 
    if (attr.value.length <Low) {
	alert(name + ': antwoord (' + attr.value.length + ' karakters) moet minimaal ' + Low + ' karakters lang zijn!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }
	
  if (checkHigh) { 
    if (attr.value.length > High) {
	alert(name + ': antwoord (' + attr.value.length + ' karakters) mag maximaal ' + High + ' karakters lang zijn!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }

  return true;
}
	
      
function checkNumber(attr, name, checkLow, Low, checkHigh, High) {
//  alert('checkNumber called#'+attr.value+'#');
  if (isEmpty(attr))
    return true;

  var regExp = /^[-+]?((\d{1,3})(\.\d{3})*|(\d+))$/;

  if (!regExp.test(trim(attr.value)) || (trim(attr.value) == '-') || (trim(attr.value) == '+')) {
//    alert('wrong: #' + attr.value+'#');
    alert(name + ': antwoord moet een getal zijn!'); 
    attr.focus();
    attr.select();
    return false;
  }
  if (checkLow) { 
    if (parseInt(attr.value.replace(/\./g, '')) <parseInt(Low)) {
	alert(name + ': antwoord mag niet kleiner zijn dan ' + Low + '!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }
	
  if (checkHigh) { 
    if (parseInt(attr.value.replace(/\./g, '')) > parseInt(High)) {
	alert(name + ' antwoord mag niet groter zijn dan ' + High + '!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }

  return true;
}
	
      
function checkDecimal(attr, name, checkLow, Low, checkHigh, High) {
  if (isEmpty(attr))
    return true;

  var number = /^[-+]?((\d{1,3})(\.\d{3})*|(\d+))?(\,(\d+))?$/;    

  if (!number.test(trim(attr.value)) || (trim(attr.value) == '-') || (trim(attr.value) == '+')) {
    alert(name + ': antwoord moet een decimaal zijn (gebruik komma)!'); 
    attr.focus();
    attr.select();
    return false;
  }

  var engVal = attr.value.replace(/\./g, '');
  engVal = engVal.replace(/\,/, '.');

  if (checkLow) { 
    if (parseFloat(engVal) <parseFloat(Low)) {
	alert(name + ': antwoord mag niet kleiner zijn dan ' + Low + '!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }
	
  if (checkHigh) {
    if (parseFloat(engVal) > parseFloat(High)) {
	alert(name + ': antwoord mag niet groter zijn dan ' + High + '!'); 
      attr.focus();
      attr.select();
      return false;
    }
  }

  return true;
}
	
function getRadioValue(fieldName) {
	var elements = getElements();
	for (var i=0;i<elements.length;i++)
		if ((elements[i].name == fieldName) && elements[i].checked)
			return elements[i].value;
	return "";
}


/******************************************************************
   convert_date()
   
   Function to convert supplied dates to format - dd/mm/yyyy.
        Valid input dates = 
                ddmmyy, ddmmmyy, ddmmyyyy, ddmmmyyyy,
                d/m/yy, dd/m/yy, d/mm/yy, dd/mm/yy, d/mmm/yy, dd/mmm/yy,
                d/m/yyyy, dd/m/yyyy, d/mm/yyyy, dd/mm/yyyy, d/mmm/yyyy, dd/mmm/yyyy
        Valid date seperators =
                '-','.','/',' ',':','_',','
                
        Calls convert_month()
                        invalid_date()
                        validate_date()
                        validate_year()
     
   Author: Simon Kneafsey 
   Email: simonkneafsey@hotmail.com
   WebSite: www.simonkneafsey.co.uk
   Date Created: 4/9/00
   
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function checkDate(field1)
{
var fLength = field1.value.length; // Length of supplied field in characters.
var divider_values = new Array ('-','.','/',' ',':','_',','); // Array to hold permitted date seperators.  Add in '\' value
var array_elements = 7; // Number of elements in the array - divider_values.
var day1 = new String(null); // day value holder
var month1 = new String(null); // month value holder
var year1 = new String(null); // year value holder
var divider1 = null; // divider holder
var outdate1 = null; // formatted date to send back to calling field holder
var counter1 = 0; // counter for divider looping 
var divider_holder = new Array ('0','0','0'); // array to hold positions of dividers in dates
var s = String(field1.value); // supplied date value variable

//If field is empty do nothing
if ( fLength == 0 ) {
   return true;
}

// Deal with today or now
if ( field1.value.toUpperCase() == 'NOW' || field1.value.toUpperCase() == 'TODAY' ) {
   
        var newDate1 = new Date();
        
                if (navigator.appName == "Netscape") {
                var myYear1 = newDate1.getYear() + 1900;
                }
                else {
                        var myYear1 =newDate1.getYear();
                }
  
        var myMonth1 = newDate1.getMonth()+1;  
        var myDay1 = newDate1.getDate();
        field1.value = myDay1 + "/" + myMonth1 + "/" + myYear1;
        fLength = field1.value.length;//re-evaluate string length.
        s = String(field1.value)//re-evaluate the string value.
}

//Check the date is the required length
if ( fLength != 0 && (fLength <6 || fLength > 11) ) {
        invalid_date(field1);
        return false;   
        }

// Find position and type of divider in the date
for ( var i=0; i<3; i++ ) {
        for ( var x=0; x<array_elements; x++ ) {
                if ( s.indexOf(divider_values[x], counter1) != -1 ) {
                        divider1 = divider_values[x];
                        divider_holder[i] = s.indexOf(divider_values[x], counter1);
                   //alert(i + " divider1 = " + divider_holder[i]);
                        counter1 = divider_holder[i] + 1;
                        //alert(i + " counter1 = " + counter1);
                        break;
                }
        }
 }

// if element 2 is not 0 then more than 2 dividers have been found so date is invalid.
if ( divider_holder[2] != 0 ) {
   invalid_date(field1);
        return false;   
}

// See if no dividers are present in the date string.
if ( divider_holder[0] == 0 && divider_holder[1] == 0 ) { 
   
                //continue processing
                if ( fLength == 6 ) {//ddmmyy
                day1 = field1.value.substring(0,2);
                month1 = field1.value.substring(2,4);
                        year1 = field1.value.substring(4,6);
                        if ( (year1 = validate_year(year1)) == false ) {
                        invalid_date(field1);
                                return false; 
                                }
                        }
                        
                else if ( fLength == 7 ) {//ddmmmy
                day1 = field1.value.substring(0,2);
                        month1 = field1.value.substring(2,5);
                        year1 = field1.value.substring(5,7);
                        if ( (month1 = convert_month(month1)) == false ) {
                        invalid_date(field1);
                                return false; 
                                }
                        if ( (year1 = validate_year(year1)) == false ) {
                        invalid_date(field1);
                                return false; 
                                }
                        }
                else if ( fLength == 8 ) {//ddmmyyyy
                day1 = field1.value.substring(0,2);
                        month1 = field1.value.substring(2,4);
                        year1 = field1.value.substring(4,8);
                        }
                else if ( fLength == 9 ) {//ddmmmyyyy
                day1 = field1.value.substring(0,2);
                        month1 = field1.value.substring(2,5);
                        year1 = field1.value.substring(5,9);
                        if ( (month1 = convert_month(month1)) == false ) {
                        invalid_date(field1);
                                return false; 
                                }
                        }
                
                if ( (outdate1 = validate_date(day1,month1,year1)) == false ) {
                alert("De opgegeven waarde " + field1.value + " is geen geldige datum.\n\r" +  
                        "Voer een geldige datum in van het formaat dd-mm-jjjj");
//                        field1.focus();
//                        field1.select();
                        return false;
                        }


                field1.value = outdate1;
                return true;// All OK
                }
                
// 2 dividers are present so continue to process        
if ( divider_holder[0] != 0 && divider_holder[1] != 0 ) {       
        day1 = field1.value.substring(0, divider_holder[0]);
        month1 = field1.value.substring(divider_holder[0] + 1, divider_holder[1]);
        //alert(month1);
        year1 = field1.value.substring(divider_holder[1] + 1, field1.value.length);
        }

if ( isNaN(day1) && isNaN(year1) ) { // Check day and year are numeric
        invalid_date(field1);
        return false;  
   }

if ( day1.length == 1 ) { //Make d day dd
   day1 = '0' + day1;  
}

if ( month1.length == 1 ) {//Make m month mm
        month1 = '0' + month1;   
}

if ( year1.length == 2 ) {//Make yy year yyyy
   if ( (year1 = validate_year(year1)) == false ) {
        invalid_date(field1);
                return false;  
                }
}

if ( month1.length == 3 || month1.length == 4 ) {//Make mmm month mm
   if ( (month1 = convert_month(month1)) == false) {
        alert("month1" + month1);
        invalid_date(field1);
        return false;  
   }
}

// Date components are OK
if ( (day1.length == 2 || month1.length == 2 || year1.length == 4) == false) {
   invalid_date(field1);
   return false;
}

//Validate the date
if ( (outdate1 = validate_date(day1, month1, year1)) == false ) {
   alert(field1.value + " is geen geldige datum.\n\r" +  
        "Voer een geldige datum in van het formaat dd-mm-jjjj.");
//        field1.focus();
//        field1.select();
        return false;
}

// Redisplay the date in dd/mm/yyyy format
field1.value = outdate1;
return true;//All is well

}
/******************************************************************
   convert_month()
   
   Function to convert mmm month to mm month 
   
   Called by convert_date()    
   
   Author: Simon Kneafsey 
   Date Created: 4/9/00
   Email: simonkneafsey@hotmail.com
   WebSite: www.simonkneafsey.co.uk
   
   Notes:P lease feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function convert_month(monthIn) {

var month_values = new Array ("JAN","FEB","MAR","APR","MEI","JUN","JUL","AUG","SEP","OKT","NOV","DEC");

monthIn = monthIn.toUpperCase(); 

if ( monthIn.length == 3 ) {
        for ( var i=0; i<12; i++ ) 
                {
        if ( monthIn == month_values[i] ) 
                {
                        monthIn = i + 1;
                        if ( i != 10 && i != 11 && i != 12 ) 
                                {
                        monthIn = '0' + monthIn;
                                }
                        return monthIn;
                        }
                }
        }

else if ( monthIn.length == 4 && monthIn == 'SEPT') {
   monthIn = '09';
   return monthIn;
        }
        
else {
        return false;
        } 
}
/******************************************************************
   invalid_date()
   
   If an entered date is deemed to be invalid, invali
   d_date() is called to display a warning message to
   the user.  Also returns focus to the date  in que
   stion and selects the date for edit.
        
   Called by convert_date()
   
   Author: Simon Kneafsey
   Date Created: 4/9/00
   Email: simonkneafsey@hotmail.com
   WebSite: www.simonkneafsey.co.uk
   
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function invalid_date(inField) 
{
alert(inField.value + " is geen geldige datum.\n\r" + 
        "Voer een datum in (dd-mm-jjjj).");
//inField.focus();
//inField.select();
return true   
}
/******************************************************************
   validate_date()
   
   Validates date output from convert_date().  Checks
   day is valid for month, leap years, month !> 12,.
   
   Author: Simon Kneafsey
   Date Created: 4/9/00
   Email: simonkneafsey@hotmail.com
   WebSite: www.simonkneafsey.co.uk
   
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function validate_date(day2, month2, year2)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
   	var DayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	var MonthArray = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
	var inpDate = day2 + month2 + year2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

	//Check ddmmyyyy date supplied
	if (! filter.test(inpDate)) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
  		return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

	/* Check Valid Month */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	filter=/01|02|03|04|05|06|07|08|09|10|11|12/ ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	if (! filter.test(month2)) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
  		return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

	/* Check For Leap Year */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	var N = Number(year2);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
	if ( ( N%4==0 && N%100 !=0 ) || ( N%400==0 ) ) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
   		DayArray[1]=29;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
      }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	
	/* Check for valid days for month */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	for(var ctr=0; ctr<=11; ctr++) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
   		if (MonthArray[ctr]==month2) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
      		if (day2<= DayArray[ctr] && day2 >0 ) {
        			inpDate = day2 + '-' + month2 + '-' + year2;       
        			return inpDate;
        		}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
      		else  {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
        			return false;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
        		}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
      	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
	}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
}
/******************************************************************
   validate_year()
   
   converts yy years to yyyy
   Uses a hinge date of 10
        <10 = 20yy 
        => 10 = 19yy.
         
   Called by convert_date() before validate_date().
      
   Author: Simon Kneafsey 
   Date Created: 4/9/00
   Email: simonkneafsey@hotmail.com
   WebSite: www.simonkneafsey.co.uk
   
   Notes: Please feel free to use/edit this script.  If you do please keep my comments and details 
   intact and notify me via a quick Email to the address above.  Enjoy!
*******************************************************************/
function validate_year(inYear) 
{
if ( inYear <10 ) 
        {
   inYear = "20" + inYear;
   return inYear;
        }
else if ( inYear >= 10 )
        {
   inYear = "19" + inYear;
   return inYear;
        }
else 
        {
        return false;
        }   
}