/*****************************************************************
                              ,-._.-._.-._.-._.-.
                              `-.             ,-'
 .----------------------.       |             |
|     FORM validation    |      |             |
| by : steven & kristof  |      |             |
| (c) : SPORT.be         |      |             |
|                        |     ,';".________.-.
|                        |     ;';_'         )]
|                        |    ;             `-|
|                        `.    `T-            |
 `----------------------._ \    |             |
                          `-;   |             |
                                |..________..-|
                               /\/ |________..|
                          ,'`./  >,(           |
                          \_.-|_/,-/   ii  |   |
                           `."' `-/  .-"""||    |
                            /`^"-;   |    ||____|
                           /     /   `.__/  | ||
                                /           | ||
                                            | ||
											
											
****************************************************************/

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if field is not filled in
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkEmpty(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors ="";
	if (formField.value == "")
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else 
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";
		}
		formField.className = cssElement;
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if email is valid
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkEmail(formField,spanName,errorMessage,cssErrorElement,cssElement)
{	
	var strErrors = "";
	if (formField.value == "")
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "none";
		}
	} else 
	{
		var filter  = /^([a-zA-Z0-9_\.\-\'])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
		if (!filter.test(formField.value)) 
		{
			strErrors += errorMessage;
			formField.className = cssErrorElement;
		} else 
		{
			if (spanName != "")
			{
				eval(spanName).style.display = "none";	
			}
			formField.className = cssElement;
		}
	}		
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks whether checkbox is checked
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkCheckbox(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if (!formField.checked)
	{
		strErrors +=errorMessage;
		if (spanName != "")
		{
				eval(spanName).style.display = "";	
		}
	} else {
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
	}		
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	check whether first element was not selected 
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkSelect(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	var isChecked = false ;
	
	if(formField.selectedIndex == 0)
	{
		// eerste element = dummy geselecteed
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else
	{
		// iets annes geselecteerd
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if one element was selected in the radiogroup
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkRadio(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	var isChecked = false ;
	for (i=0; i<formField.length; i++) 
	{
		if (formField[i].checked) 
		{
			isChecked = true ;
			break;
		}
	}
	if (!isChecked)
	{
		strErrors += errorMessage;
		
		for (i=0; i<formField.length; i++) 
		{
			formField[i].className = cssErrorElement;
		}
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		for (i=0; i<formField.length; i++) 
		{
			formField[i].className = cssElement;
		}
		//formField.className = cssElement;
	}
	/*formField.className = cssErrorElement;
	formField.style.background="red";*/
	return strErrors;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks whether the length of the value entered in the field is between boundaries
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkLength(formField,minimumLength,maximumLength,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if((formField.value.length > maximumLength)||(formField.value.length < minimumLength))
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors ;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field is alphanumeric
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkAlphanumeric(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	var charpos = formField.value.search("[^A-Za-z0-9]"); 
    if(formField.value.length > 0 && charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field is numeric
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
/*
function checkNumeric(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	 var charpos = formField.value.search("[^0-9]"); 
    if(formField.value.length > 0 && charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}*/

function checkNumeric(formField,spanName,errorMessage,cssErrorElement,cssElement)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.,";
   var strChar;
   var blnResult = true;
   var strErrors = "" ;
   if (formField.value.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < formField.value.length && blnResult == true; i++)
    {
      strChar = formField.value.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
       }
    }
	
	if (blnResult)
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}else
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	}
  	return strErrors;
   }

  // -->


// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered is between (or equal) numberMin and numberMax
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkBetweenNumbers(formField,numberMin,numberMax,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	var charpos = formField.value.search("[^0-9]"); 
    if(charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (formField.value >= numberMin && formField.value <= numberMax) 
		{
			if (spanName != "")
			{
				eval(spanName).style.display = "none";	
			}
			formField.className = cssElement;
		} else {
			strErrors += errorMessage;
			formField.className = cssErrorElement;
			if (spanName != "")
			{
				eval(spanName).style.display = "";
			}
		}
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered is at least (or equal to) numberMin
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkMinimumNumber(formField,numberMin,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	var charpos = formField.value.search("[^0-9]"); 
    if(charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (formField.value >= numberMin) 
		{
			if (spanName != "")
			{
				eval(spanName).style.display = "none";	
			}
			formField.className = cssElement;
		} else {
			strErrors += errorMessage;
			formField.className = cssErrorElement;
			if (spanName != "")
			{
				eval(spanName).style.display = "";
			}
		}
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field is alphabetic
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkAlphabetic(formField,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	var charpos = formField.value.search("[^A-Za-z]"); 
    if(formField.value.length > 0 && charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field matches a regular expression
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkRegExp(formField,regExp,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "" ;
	var charpos = formField.value.search(regExp); 
    if(formField.value.length > 0 && charpos >= 0) 
    { 
        strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
    }else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field is not equal to the_value
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkNotEqualTo(formField,the_value,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if (formField.value == the_value)
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if value entered in field is  equal to the_value
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkEqualTo(formField,the_value,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if (formField.value == the_value)
	{
		
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	} else
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	}
	return strErrors;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if substring of formfield equals a string
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkSubstringNotEqualTo(formField,beginPosition,endPosition,the_value,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if (formField.value.substring(beginPosition,endPosition) == the_value)
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}
	} else
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	}
	return strErrors;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks if substring of formfield equals a string
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkSubstringEqualTo(formField,beginPosition,endPosition,the_value,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	if (formField.value.substring(beginPosition,endPosition) == the_value)
	{
		if (spanName != "")
		{
			eval(spanName).style.display = "none";	
		}
		formField.className = cssElement;
	} else
	{
		strErrors += errorMessage;
		formField.className = cssErrorElement;
		if (spanName != "")
		{
			eval(spanName).style.display = "";
		}	
	}
	return strErrors;
}


// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks whether three fields combined match the format of a belgian bank account number
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkBelgianAccount(formField1,formField2,formField3,spanName,errorMessage,cssErrorElement,cssElement)
{
		var strErrors = "";
		if ( (formField1.value == "")||(formField2.value == "")||(formField3.value == "") )
		{
			strErrors += errorMessage;
			//alert(spanName);
			if (spanName != "")
			{
				eval(spanName).style.display = "";	
			}
			formField1.className = cssErrorElement;
			formField2.className = cssErrorElement;
			formField3.className = cssErrorElement;
		} else {
			var base ;
			var modulus ;
			base = (formField1.value *10000000) + (formField2.value * 1 ) ;
			modulus =  base % 97 ;

			if (modulus == 0)
			{
				modulus = 97 ;
			}
			
			if (formField3.value * 1 != modulus)
			{
				strErrors += errorMessage;
				if (spanName != "")
				{
					eval(spanName).style.display = "";	
				}
				formField1.className = cssErrorElement;
				formField2.className = cssErrorElement;
				formField3.className = cssErrorElement;
			} else {
				if (spanName != "")
				{
					eval(spanName).style.display = "none";	
				}
				formField1.className = "text";
				formField2.className = "text";
				formField3.className = "text";
			}
		}
		return strErrors ;
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	helper for checkDate function
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function isDate (year, month, day) {
	// month argument must be in the range 1 - 12
	month = month - 1; // javascript month range : 0- 11
	var tempDate = new Date(year,month,day);
	
	if ( (year == tempDate.getFullYear()) &&
		(month == tempDate.getMonth()) &&
		(day == tempDate.getDate()) )
		return true;
	else
		return false
}
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks whether date is in current format
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function checkDate(formField1,spanName,errorMessage,cssErrorElement,cssElement) {
	var strErrors = "";
	if ( formField1.value != "" ) {
		var myDate = formField1.value;
		
		var myDate=formField1.value.split("/");
		day = myDate[0];
		month = myDate[1];
		year = myDate[2];
	
		if (isDate(year, month, day)) {
			if (spanName != "")
			{
				eval(spanName).style.display = "none";	
			}
			formField1.className = "text";
		}
		else {
			strErrors += errorMessage;
			//alert(spanName);
			if (spanName != "")
			{
				eval(spanName).style.display = "";	
			}
			formField1.className = cssErrorElement;
		}	
	}
	else {
		strErrors += errorMessage;
		if (spanName != "")
		{
			eval(spanName).style.display = "";	
		}
		formField1.className = cssErrorElement;
	}	
	return strErrors ;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	checks age
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

function checkDateValues(dateValue,minimumDateValue,spanName,errorMessage,cssErrorElement,cssElement)
{
	var strErrors = "";
	/* create date object from datevalue*/
	var dateValueSplit = dateValue.split("-");
	var dateValueYear = dateValueSplit[2];
	var dateValueMonth =dateValueSplit[1] - 1;
	var dateValueDay = dateValueSplit[0];
	var dateValueDate = new Date(dateValueYear, dateValueMonth, dateValueDay);
	//alert(dateValueDate);
	/* create date object from minimumDateValue*/
	var minimumDateValueSplit = minimumDateValue.split("-");
	var minimumDateValueYear = minimumDateValueSplit[2];
	var minimumDateValueMonth =minimumDateValueSplit[1] - 1;
	var minimumDateValueDay = minimumDateValueSplit[0];
	var minimumDateValueDate = new Date(minimumDateValueYear, minimumDateValueMonth, minimumDateValueDay);

	//alert((dateValueDate - minimumDateValueDate));


	if ( dateValueDate > minimumDateValueDate) {
		// datevalue is smaller than minimum
		strErrors += errorMessage;
		if (spanName != "")
		{
				eval(spanName).style.display = "";	
		}
	}
	else {
			if (spanName != "")
			{
				eval(spanName).style.display = "none";	
			}
	}
	
	return strErrors ;
}

// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
//	fills in form with testdata
// ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
function fillForm(f) 
{ 
	for (var i=0;i<f.elements.length;i++)
	{
		current = f.elements[i];
		if (current.type == "text") 
		{ 
			// fill in name as value
			current.value = current.name;
			if (current.name == "txtFirstName")
			{
					current.value = "Dietrich";
			}
			if (current.name == "txtLastName")
			{
					current.value = "Vandenrijt";
			}
			if ( (current.name == "txtEmail") || (current.name == "txtEmail1") || (current.name == "txtEmail2") || (current.name == "txtEmail3") || (current.name == "txtEmail4") || (current.name == "txtEmail5") || (current.name == "txtEmail6") )
			{
					current.value = "dietrich.vandenrijt@golazo.com";
			}
			if (current.name == "txtBirthDate" || current.name == "txtDate")
			{
				current.value = "04/04/1980";
			}
			if ((current.name == "txtBirthDateDay")|| (current.name == "txtBirthDateDay1") || (current.name == "txtBirthDateDay2") || (current.name == "txtBirthDateDay3") || (current.name == "txtBirthDateDay4") || (current.name == "txtBirthDateDay5") || (current.name == "txtBirthDateDay6") )
			{
				current.value = "04";
			}
			if ((current.name == "txtBirthDateMonth")|| (current.name == "txtBirthDateMonth1") || (current.name == "txtBirthDateMonth2") || (current.name == "txtBirthDateMonth3") || (current.name == "txtBirthDateMonth4") || (current.name == "txtBirthDateMonth5") || (current.name == "txtBirthDateMonth6") )
			{
				current.value = "04";
			}
			if ((current.name == "txtBirthDateYear")|| (current.name == "txtBirthDateYear1") || (current.name == "txtBirthDateYear2") || (current.name == "txtBirthDateYear3") || (current.name == "txtBirthDateYear4") || (current.name == "txtBirthDateYear5") || (current.name == "txtBirthDateYear6") )
			{
				current.value = "1980";
			}
			if (current.name == "txtStreet")
			{
				current.value = "Schoebroekstraat";
			}
			if (current.name == "txtStreetNumber")
			{
				current.value = "8";
			}
			if (current.name == "txtBoxNumber")
			{
				current.value = "";
			}
			if (current.name == "txtPostalCode")
			{
				current.value = "3583";
			}
			if (current.name == "txtCity")
			{
				current.value = "Paal";
			}
			if (current.name == "txtTelephone")
			{
				current.value = "011450363";
			}
			if (current.name == "txtFax")
			{
				current.value = "011459910";
			}
			if (current.name == "txtMobile")
			{
				current.value = "0477777777";
			}
			
			if (current.name == "txtIngTransferAccount1")
			{
				current.value = "330";
			}
			if (current.name == "txtIngTransferAccount2")
			{
					current.value = "0675280";
			}
			if (current.name == "txtIngTransferAccount3")
			{
				current.value = "20";
			}
			if (current.name == "txtChampionChipNumber")
			{
				current.value = "CG56002";
			}
			if (current.name == "txtPartenaNumber")
			{
				current.value = "123 1234567 12";
			}
			if (current.name == "txtTransferAccountNumber1")
			{
				current.value = "330";
			}
			if (current.name == "txtTransferAccountNumber2")
			{
				current.value = "0675280";
			}
			if (current.name == "txtTransferAccountNumber3")
			{
				current.value = "20";
			}
			if (current.name == "txtForeignTransferAccountNumber")
			{
				current.value = "PSTB0001234567";
			}
		} 
		else if (current.type == "checkbox") 
		{ 
			// check tha box
			current.checked = true ;
		} 
		else if (current.type == "radio") 
		{ 
			// check, last will be selected
			current.checked = true ;
		} 
		else if (current.type == "select-one") 
		{ 
			// second element will be selected
			current.selectedIndex = 0 ;
		
		} 
	}
} 

