<!--

function getElementObject(formobj,name){
	//var propertyform = document.forms['wconfig'];	
	for (var i = 0; i <  formobj.elements.length; i++) {
	        formElement = formobj.elements[i];	
			if(formElement.name == name){
				//alert(formElement.name);
				return formElement;	
			}	
	}	
}




function validateElement(formObj,elementToCheck,type,validation,errorMsg,mandatory,maxlength){
	//alert("validate " + elementToCheck + " of type ("+type+")");
	formElement = getElementObject(formObj,elementToCheck);
	if(formElement.name == elementToCheck){		
		richtext = false;
		// Textarea
		if(type=="textarea" || type=="content" ){		
			if (maxlength == ''){
				if(eval("window." + elementToCheck + "MaxLength")){
					maxlength = eval(elementToCheck + "MaxLength");
				} else {
					maxlength = '10000';
				}
			}

			// Make sure there is at least one alphanumeric character.
			var checkOK = "-()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890%";
			var checkStr = formElement.value;
			var validText = false;

			// This checks for any richText editor objects and ensures that if it exists and is mandatory, then it must have alphanumeric characters in it.
			for(i=0;i<HtmlAreaRegister.length;i++){
				if(HtmlAreaRegister[i].taName==elementToCheck){
					var editorObj = HtmlAreaRegister[i];
					richtext = true;
					checkStr = editorObj.getHTML();
				}	
			}		
			for (b = 0;  b < checkStr.length;  b++){
				if(!validText){
					ch = checkStr.charAt(b);
					for (j = 0;  j < checkOK.length;  j++){
						if (ch == checkOK.charAt(j)){validText = true; break;}
					}	
				}	
			}		
			if(!validText){formElement.value = "";}
			if(!richtext){
				if (formElement.value.length > maxlength) {
					allValid = false;
					msg += errorMsg + " is too large."
				}
			}
			if (mandatory == 'yes' && escape(formElement.value).length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			}
			return;
		}

		// Select
		//else if(type=="select"){	
		//		if(formElement.name == elementToCheck) {
					// get the selected value
		//				var selectedValue = formElement[formElement.selectedIndex].value;
		//				if (mandatory == 'yes' && escape(selectedValue).length < 1) {
		//					allValid = false;
		//					msg += errorMsg + "\n";
		//				}
	    //                    return;
		//		}
		//}		
		
		// Checkbox
		else if(type=="checkbox"){
      checkBoxCollection = document.getElementsByName(elementToCheck);
      noneChecked = true;
			if (mandatory == 'yes') {
				for(cbc=0;cbc<checkBoxCollection.length;cbc++){
					if(checkBoxCollection[cbc].checked){noneChecked = false;}
				}
				if(noneChecked) {
 					allValid = false;
					msg += errorMsg + "\n";
				}
                                 
			}
	  	return;
		}

		// Multi Checkbox
		else if(type=="multicheckbox"){
			checkBoxCollection = document.getElementsByName(elementToCheck);
			noneChecked = true;
			if (mandatory == 'yes') {
				for(cbc=0;cbc<checkBoxCollection.length;cbc++){
					if(checkBoxCollection[cbc].checked){noneChecked = false;}
				}
				if(noneChecked) {
					allValid = false;
					msg += errorMsg + "\n";
				}			
			}
	  	return;
		}		
	
		// Number validation (is this being used anywhere?)
		else if(validation=="number"){
			var checkOK_number = "1234567890";
			var checkStr = escape(formElement.value); 

			if (mandatory == 'yes' && checkStr.length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			} else {
				for (b = 0;  b < checkStr.length;  b++){
					ch = checkStr.charAt(b);
					for (j = 0;  j < checkOK_number.length;  j++)
						if (ch == checkOK_number.charAt(j))
						break;
					if (j == checkOK_number.length){
						allValid = false;
						msg += errorMsg + "\n";
						break;
					}
				}
			}
			return;
		}
	
		// Time validation (Is there an example of this)?
		else if(validation=="time"){
			var checkOK_time = "1234567890&#58;";
			var checkStr = formElement.value; 

			if (mandatory == 'yes' && checkStr.length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			}
			else {
				for (b = 0;  b < checkStr.length;  b++){
					ch = checkStr.charAt(b);
					for (j = 0;  j < checkOK_time.length;  j++)
						if (ch == checkOK_time.charAt(j))
						break;
					if (j == checkOK_time.length){
						allValid = false;
						msg += errorMsg + "\n";
						break;
					}
				}
			}
			return;
		}
		
	
		// Not really validation but method need to concatenate date on submit. - Copy yyyy-mm-dd from select to hidden field : No real need to validate since there will always be a value present 
		else if(validation=="time"){
			var day   = eval("form." + elementToCheck + "day[form." + elementToCheck + "day.selectedIndex].value");
			var month = eval("form." + elementToCheck + "month[form." + elementToCheck + "month.selectedIndex].value");
			var year  = eval("form." + elementToCheck + "year[form." + elementToCheck + "year.selectedIndex].value");
			
			formElement.value = year+'-'+month+'-'+day;
			return;
		}

		// Not really validation but method needs to modify url appropriately.
		else if(validation=="url"){
			var checkStr = formElement.value; 
			if (mandatory == 'yes' && checkStr.length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			}
			else {
				/* check there is no http:// */
				if(checkStr.indexOf("http://")!=-1 || checkStr.indexOf(" ")!=-1){
					allValid = false;
					msg += errorMsg + "\n";
				}
				
			}	
			return;
		}		
				
	
		// Word validation
		else if(validation=="word"){
			var checkOK = "%20-()ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
			var checkStr = escape(formElement.value); 

			if (mandatory == 'yes' && checkStr.length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			}
			else {
				for (b = 0;  b < checkStr.length;  b++){
					ch = checkStr.charAt(b);
					for (j = 0;  j < checkOK.length;  j++)
						if (ch == checkOK.charAt(j))
						break;
					if (j == checkOK.length){
						allValid = false;
						msg += errorMsg + "\n";
						break;
					}
				}
			}
			return;
		}
		
		
		// Password validation
		else if(validation=="password"){
			pwdok = true;
			if (mandatory == 'yes' && escape(formElement.value).length < 8) {
				allValid = false;
				pwdok = false;
				msg += errorMsg+"\n";
			}
			else if (pwdok)	// check for whitespace
			{
				whitespace = ' \t\n\r';
				for (c = 0; c < escape(formElement.value).length; c++)
				{
					ch = formElement.value.charAt(c);
					if (whitespace.indexOf(ch) != -1)
					{
						pwdok = false;
						allValid = false;
						msg += errorMsg + "\n";
						break;
					}
				}
			}
	  	return;
		}
		
	
		// e-mail validation
		else if(validation=="e-mail"){
			if (mandatory == 'yes' && escape(formElement.value).length < 1) {
				allValid = false;
				msg += errorMsg + "\n";
			}
			else {
				// Returns true if val vaguely resembles an email address and is not empty, false otherwise
				if ((escape(formElement.value).length > 0) && (formElement.value.indexOf("@") == -1 || formElement.value.indexOf(".") == -1)) {
					allValid = false;
					msg += errorMsg + "\n";
				}
			}
      return;
		}
		
		
		// Filename validation
		else if(validation=="filename"){
			var checkOK_number = "1234567890"; 
			var checkStr = escape(formElement.value); 
			var loadedFile =  document.getElementById(formElement.name + '_original') ;
			if (mandatory == 'yes' && checkStr.length < 1 && (loadedFile == null || loadedFile.value.length  < 1 ) ) 
			{
				allValid = false;
				msg += errorMsg + "\n";
			}
			else {
				var pos, ch;
		 		var val = formElement.value;
        			var platform, separator, version;
        			if(val == null) return(false);
       				platform = navigator.platform;

       			if (platform.indexOf("Win") == 0) {
        				separator = "\\";
        			} 
        
        			else if (platform.indexOf("Mac") == 0) {
			 		var IE4 = (document.all && !document.getElementById) ? true : false;
					var NS4 = (document.layers) ? true : false;
					var IE5 = (document.all && document.getElementById) ? true : false;
					var N6 = (document.getElementById && !document.all) ? true : false;

			            	if (IE4) 		{ separator = "%2F"; }
			             else if (IE5) 	{ separator = "/"; }
			        	else if (N6)  	{ separator = ":"; }
			        	else if (NS4) { separator = "/"; }
			       	else 		{ separator = "/"; }

        			} 
        			else { 		        
        				separator = "/";				 
        			}
        
			       var seppos = val.lastIndexOf(separator);
			       seppos++;
			      	for(pos = seppos; pos < val.length; pos++) {
	                		ch = val.charAt(pos);
			            if(! 
			            		(
			            			((ch >= 'A') && (ch <= 'Z')) ||
			            			((ch >= 'a') && (ch <= 'z')) ||
			                   		((ch >= '0') && (ch <= '9')) ||
			                    	((ch == '_') || (ch == '.') || (ch == '-') || (ch == '/') || (ch == '/')) 
			             		)
			             	) {						                  
			                 	allValid = false;
						msg += errorMsg + "\n";
						break;
			                } 
			        }

	       		lcval=val.toLowerCase();

	      		if(lcval.length<=4) {}
      			else if(lcval.lastIndexOf(".zip") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".pdf") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".csv") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".txt") == lcval.length-4) { }
				else if(lcval.lastIndexOf(".htm") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".doc") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".rtf") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".wav") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".mov") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".mpg") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".mp3") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".mer") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".ppt") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".xls") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".exe") == lcval.length-4) {}
				else if(lcval.lastIndexOf(".html") == lcval.length-5) {}
				else if(lcval.lastIndexOf(".jsp") == lcval.length-4) {}

				else {						        
//						        			allValid = false;
//										msg += errorMsg+ "\n";
				}
			}
			return;	
	} else {
			var elemCount = 0;
			elemCount = elementCount(document.wconfig,elementToCheck)
			if(mandatory == 'yes' && elemCount > 1){
				if(checkMultiParamRegister(elementToCheck) ){
				} else {
					if(escape(formElement.value).length < 1){
					multiParams[multiParams.length] = elementToCheck + ',false';
					allValid = false;
					msg += errorMsg+"\n";
					} else {
						multiParams[multiParams.length] = elementToCheck + ',true';
					}
				}
			}
			if (mandatory == 'yes' && escape(formElement.value).length < 1) {
				if(elemCount > 1){
				} else {
					allValid = false;
					msg += errorMsg + "\n";
				}
			}
		  return;
	  }
	}	   	
}	
//-->
