
	// CREATIONAL
	
	// COPYRIGHT  : 2006 : CREATIONAL : WWW.CREATIONAL.NL : ALL RIGHTS RESERVED

	// JAVASCRIPT : Form scripts


	// VARIABLES
	
	var alertIntro = null;
	var alertExtro = null;
	var alertGeneral = null;


	// CHECK FORM FOR REQUIRED FIELDS

	function CL_CheckForm(oForm, alertType) {
		
		var alertMessage = "";
		
		var badinputClassName = "badinput";
		var crLabelAdd = "_label";	// Addition to id of radiobuttons label e.g.: payment_label
		
		var oLabels = document.getElementsByTagName("label"); var label, j = 0;
		var oInputs = document.getElementsByTagName("input"); var input, x = 0;
		var oSelects = document.getElementsByTagName("select"); var selecto, y = 0;
		var oTextareas = document.getElementsByTagName("textarea"); var textarea, z = 0;

		// remove 'badinput' class from all labels, inputs, selects and textareas
		while (label = oLabels[j++]){ var labelClassName = label.className; var labelClassNameNew = labelClassName.replace(badinputClassName, ""); label.className = labelClassNameNew; }		
		while (input = oInputs[x++]){ var inputClassName = input.className; var inputClassNameNew = inputClassName.replace(badinputClassName, ""); input.className = inputClassNameNew; }		
		while (selecto = oSelects[y++]){ var selectoClassName = selecto.className; var selectoClassNameNew = selectoClassName.replace(badinputClassName, ""); selecto.className = selectoClassNameNew; }		
		while (textarea = oTextareas[z++]){ var textareaClassName = textarea.className; var textareaClassNameNew = textareaClassName.replace(badinputClassName, ""); textarea.className = textareaClassNameNew; }		
		

		for(i in checkFields) {
			
			var element =  document.getElementById(i);
			if (!element) element = document.getElementsByName(i).item(0);
			if (!element) continue; 
			
			var badinput = false;
			
			// selectbox
			if (element.selectedIndex) { if (element.selectedIndex == 0) { badinput = true; } }
			
			// radio button
			else if (element.type == "radio") { 

				var checked = false;
				var elementname = document.getElementsByName(i);
		
				// reset radiobutton label class
				if (document.getElementById(element.name + crLabelAdd)) {
						var radioClassName = document.getElementById(element.name + crLabelAdd).className;
						var radioClassNameNew = radioClassName.replace(badinputClassName, "");
						document.getElementById(element.name + crLabelAdd).className = radioClassNameNew;
				}

				for (i=0;i < elementname.length; i++) { if (elementname[i].checked) { checked = true; } }
	
				if (!checked) { badinput = true; }
			}
			
			// checkbox
			else if (element.type == 'checkbox' && !element.checked) { badinput = true; }
	
			// text field
			else if (element.value == '') { badinput = true; }
			
			
			// when badinput write message and change class of label/input elements
			if (badinput) {

				var labelText = "";
				var elementMsgText = "";
				var labelName = "";

				if (element.type == 'radio') {
					elementMsgText = checkFields[element.name]; labelName = element.name;
					if (document.getElementById(element.name + crLabelAdd)) { document.getElementById(element.name + crLabelAdd).className += " " + badinputClassName; }
				} else {
					elementMsgText = checkFields[element.id];
					labelName = element.id
				}

				// input
				if (element.type != 'radio' && element.type != 'checkbox' && element.className.indexOf(badinputClassName) == -1) {
					element.className += " " + badinputClassName;
					if (!focusElement) { element.focus(); var focusElement = true; }
				}

				// label
				j = 0;
				while (label = oLabels[j++]) {
					if (element.type == 'radio' && label.htmlFor.indexOf(labelName) != -1) { label.htmlFor == labelName; if (label.className.indexOf(badinputClassName) == -1) label.className += " " + badinputClassName; }
					if (label.htmlFor == labelName) { if (label.className.indexOf(badinputClassName) == -1) label.className += " " + badinputClassName; labelText = label.innerHTML; }
				}
				
				// message
				alertMessage += "- ";
				if (elementMsgText != "") { alertMessage += elementMsgText; } 		
				else if (labelText != "") { 
					var less = labelText.indexOf('<');
					var greater = labelText.indexOf('>');
					if (less < greater && less != -1) { 
						labelText = labelText.substr(greater+1); 
						if (labelText.indexOf(' ') == 0) labelText = labelText.substr(1);
					} 
					else if (less != -1) { labelText = labelText.substring(0,less-1) 
					}
					alertMessage += labelText.replace(':',''); 
				}
				else { 
					labelName = labelName.substring(0,1).toUpperCase() + labelName.substr(1);
					alertMessage += labelName; 
				}
				alertMessage += "\n";

			}
			
		}
						
		if (alertMessage != "") {
			
			switch(alertType) {
				case '0':
					// show no message
					break;
				case '1':
					// show missing fields
					if (alertIntro == null) { alertIntro = "You have forgotten to enter the following information:"; }
					if (alertExtro == null) { alertExtro = "Enter the required information."; }
					alert(alertIntro + '          \n\n' + alertMessage + '        \n' + alertExtro);
					break;
				default:
					// show general message
					if (alertGeneral == null) { alertGeneral = "You have forgotten to enter some information\n\nEnter the required information."; }
					alert(alertGeneral);
					break;
			}
			return false;
        }

		return true;

		oForm.submit.disabled = true;
	
	}
