months = [
				[[31],["Jan"],["January"]],
				[[29],["Feb"],["Feburary"]],
				[[31],["Mar"],["March"]],
				[[30],["Apr"],["April"]],
				[[31],["May"],["May"]],
				[[30],["Jun"],["June"]],
				[[31],["Jul"],["July"]],
				[[31],["Aug"],["August"]],
				[[30],["Sep"],["September"]],
				[[31],["Oct"],["October"]],
				[[30],["Nov"],["Novenmber"]],
				[[31],["Dec"],["December"]],
			]
function validateEmail (str) {
	var tfld = str;
	var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/
	if (!email.test(tfld)) {
	    return false;
		}
	return true;
	}
	
	
function isRequired() {
	r = arguments[0].getAttribute("required");
	//alert(arguments[0].name + ":" + r)
	if (r && !arguments[0].disabled) {
		if (!r.length) {
			return false;
			}
		if (r.toLowerCase() == "yes") {
			return true;
			}
		else {
			return false
			}
		}
	else {
		return false;
		}		
	}
	
function getErrMessage() {
	var m = arguments[0].getAttribute("message");
	
	if (m) {
		if (!m.length) {
			err = "The field '" + arguments[0].name + "' is a required field.      ";
			}
		else {
			err = m + "      ";
			}
		}	
	else {
		err = "The field '" + arguments[0].name + "' is a required field.      ";
		}	
	return err;	
	}		

function isValidated() {
	
	var formObj 		= arguments[0].form;
	var elementName 	= arguments[0].name;
	var validationType 	= arguments[0].getAttribute("datatype");
	
	
	switch (arguments[0].type.toLowerCase()) {
		
		case "text" : {
			
			if (validationType != null && arguments[0].value.replace(/[ ]/g, "").length != 0) {
				
				switch(validationType) {
					case "email" : {
						return validateEmail(arguments[0].value);
						break;
						}
					case "numeric" : {
						return !isNaN(arguments[0].value);
						break;
						}
					}
				}
			
			return arguments[0].value.replace(/[ ]/g, "").length
			break;
			}
			
		case "checkbox" : {
			if (formObj[elementName].length) {
				for (var i = 0; i < formObj[elementName].length; ++i) {
					if (formObj[elementName][i].checked) {
						return true;
						}
					}
				}
			else {
				return formObj[elementName].checked;
				}
				
			return false;
			break;
			}
		
		case "radio" : {
			
			for (var i = 0; i < formObj[elementName].length; ++i) {
				if (formObj[elementName][i].checked) {
					return true;
					}
				}
				
			return false;
			break;
			}
		
		case "textarea" : {
			
			var validate 	= arguments[0].getAttribute("onkeydown");
			arguments[0].value = arguments[0].value.replace(/( ){1,}/g, '$1');
			if (validate) {
				if (typeof validate == "string") {
					return eval(validate);
					}
				else {
					return validate();
					}
				}
			return arguments[0].value.replace(/[ ]/g, "").length;
			break;
			}
		
		default : {
			return arguments[0].value.replace(/[ ]/g, "").length
			break;
			}
		}
	}

function validateForm() {
	var formObj = arguments[0];
	var err = "";
	for (var e = 0; e < formObj.elements.length; ++e) {
		if (isRequired(formObj[e])) {
			formObj[e].className = formObj[e].className.replace("field-error", "");
			if (!isValidated(formObj[e])) {
				err += "- " + getErrMessage(formObj[e]) + "\n"
				formObj[e].className = formObj[e].className + " field-error";
				//break;
				//alert(formObj[e].outerHTML);
				//return false;
				}
			}
		}
	if (err != "") {
		alert("Please correct the following error before submitting:-\n" + err + "\n\nThe effected fields have been highlighted for you.");
		return false;
		}
	return true;
	}	

function limitTextarea(textObj,counterObj,limit)	{
	var textarea 	= document.getElementById(textObj);
	var counter 	= document.getElementById(counterObj);
	var reg 		= /( ){1,}/g
	var wordLength 	= textarea.value.replace(reg, "$1").split(" ").length;
	var data 		= textarea.value.replace(reg, "$1").split(" ");
	var str 		= "";
	var rangeLimits	= limit.split(",");
	var upperLimit	= rangeLimits[rangeLimits.length-1];
	var lowerLimit	= rangeLimits.length == 1 ? 0 : rangeLimits[0];
	
	if (wordLength > upperLimit) {
		
		for (i=0; i < upperLimit; ++i) {
			str += (data[i] + " ");
			}
		textarea.value = str;
		}
	//textarea.value 	= textarea.value.replace(reg, "$1")
	//alert(textarea.value.replace(reg, "$1"))
	counter.value = "Word Count : " + Math.min(upperLimit, wordLength);
	
	if (wordLength < lowerLimit) {
		setRequired(textarea, textObj);
		}
	else {
		setNotRequired(textarea, textObj);
		}
	}
	
	
function submitForm(formObj) {
	if (validateForm(formObj)) {
		formObj.submit();
		}
	}
	

function setRequired() {
	var formObj = arguments[0].form;
	var list = arguments[1].split(",");
	var i;
	//alert(list)
	for (i = 0; i < list.length; ++i) {
		formObj[list[i]].setAttribute("required","yes");
		}
	}

function setNotRequired() {
	var formObj = arguments[0].form;
	var list = arguments[1].split(",");
	var i;
	
	for (i = 0; i < list.length; ++i) {
		formObj[list[i]].setAttribute("required","no");
		}
	}