/////// form validation code ////////////////////////////
function checkrequired(which) {
	
	var pass = true;
	var num_chars = 9;
	
	if (document.images) {
	
		for (i = 0; i < which.length; i ++) {
		var tempobj = which.elements[i];
			
			
			if (tempobj.name.substring(0,num_chars) == "required_") {
				//generic check
				if (((tempobj.type == "text" || tempobj.type == "textarea"|| tempobj.type == "password") &&
					tempobj.value == '') || (tempobj.type.toString().charAt(0) == "s" &&
					tempobj.selectedIndex == 0)) {
					pass=false;
					break;
	      		}
	      		// email validation check
	      		if(tempobj.name == "required_email"){
			    	if(!is_email_valid(tempobj.value)){
			    		alert("Invalid Email Address '" + tempobj.value + "'\n\nEmail should be in the format yourname@domain.com");
			    		return false;
			    	}
	    		}
			    	
	    	}//end requred check
	  }//end for loop
	}//object check
	
	if (!pass) {
		shortFieldName = tempobj.name.substring(num_chars,30).toUpperCase();
		alert("Please enter a value in the " + shortFieldName + " field.");
		return false;
	}
	else
		return true;
}

function is_email_valid(strEmail){
	arr = strEmail.split("@");
			
	if( arr.length != 2 ){
		return false;
	}else if( !valid_domain( arr[1] )){
		return false;
	}else if( !valid_email_name(arr[0]) ){
		return false;
	}
		
	return true;
}

function valid_domain(strDomain){
	// These the only valid characters allowed in a domain name...
	// besides periods...
	var i = 0;
	strDomain = strDomaun.toLowerCase();
	var arr = strDomain.split(".");
	
	if( arr.length < 2 ){
		return false;
	}
	
	for( i = 0; i < arr.length; i++ ) {
		if( !valid_domain_field( arr[i] ) ) {
			return false;
		}	
	}

	return true;
}

function valid_domain_field(strField){
	var valid = "abcdefghijklmnopqrstuvwxyz0124567890-";
	var i = 0, m = 0;
	var isValid = false;
	
	strField = strField.toLowerCase();
	
	if( strField == "" )
		return false; // if period get are together to at end or beginning, there will be blanks
		
	for( i = 0; i < strField.length; i++ ){
		isValid = false;
		for( m = 0; m < valid.length; m++ ){
			if( strField.charAt(i) == valid.charAt(m) ){
				isValid = true;
				break;
			}
		}
		if( !isValid )
			return false;
	}
	
	return true;
}

function valid_email_name(strName){
	var valid = "abcdefghijklmnopqrstuvwxyz0123456789-_.";
	var isValid = false;
	var i = 0;
	var m = 0;
	var c;
	
	strName = strName.toLowerCase();
	
	if( strName == "" )
		return false; // Bad @ placement...
	
	for( i = 0; i < strName.length; i++ ){
		
		c = strName.charAt(i);
		isValid = false
		for( m = 0; m < valid.length; m++ ){
			if( c == valid.charAt(m) ){
				isValid = true;
				break;
			}
		}
	
		if( !isValid )
			return false;
		
	}
	return true;
}

////// end form validation code /////////////////////////

