var agt = navigator.userAgent.toLowerCase();
var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf("msie")==-1));
var is_ie = (agt.indexOf("msie")!=-1);

function insertAfter(newElement, targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	}
	else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

function isFilled(field) {
	if (field.value.length < 1 || field.value == field.defaultValue) {
		return false;
	}
	else {
		return true;
	}
}

function isEmail(field) {
	if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
		return false;
	}
	else {
		return true;
	}
}

function resetFields(whichform){
	for (var i=0; i<whichform.elements.length; i++) {
		var element = whichform.elements[i];
		if (element.type == "submit") continue;
		if (!element.defaultValue) continue;
		element.onfocus = function() {
			if (this.value == this.defaultValue) {
				this.value = "";
			}
		}
		element.onblur = function() {
			if (this.value == "" || this.value =="required" ) {
				this.value = this.defaultValue;
			}
		}
	}
}

function validateForm(whichform) {
	
	var flag = true;
	for (var i=0; i<whichform.elements.length; i++) {
		var element = whichform.elements[i];
		if (element.className == "required") {
			if (!isFilled(element)) {
				var message = document.createTextNode(" required");
				var newspan = document.createElement("span");
				newspan.style.color="red";
				newspan.style.fontWeight="bold";
				newspan.style.fontStyle="italic";
				newspan.appendChild(message);
		//		alert("at required");
		//		alert((element.nextSibling).nextSibling.nodeName);
				if ((element.nextSibling).nextSibling.nodeName!="SPAN"){
					insertAfter(newspan,element.nextSibling);
				}
				flag = false;
			}
		}
		if (element.className == "email_required") {
			if (!isEmail(element)) {
				var message = document.createTextNode(" required");
				var newspan = document.createElement("span");
				newspan.style.color="red";
				newspan.style.fontWeight="bold";
				newspan.style.fontStyle="italic";
				newspan.appendChild(message);
				
				if ((element.nextSibling).nextSibling.nodeName!="SPAN"){
					insertAfter(newspan,element.nextSibling);
				}
				flag = false;
			}
		}
		if (element.className == "message_required") {
			if (!isFilled(element)) {
				var message = document.createTextNode(" required");
				var filler = document.createTextNode(" ");
				var newspan = document.createElement("span");
				var place = document.getElementById("require_note");
				newspan.style.color="red";
				newspan.style.fontWeight="bold";
				newspan.style.fontStyle="italic";
				newspan.appendChild(message);
		//		for (var j=0; j < place.childNodes.length; j++){
		//			alert("in loop");
		//			var tempnode = place.childNodes[j];
		//			alert(tempnode.nodeName);
		//		}
				if ((place.childNodes.length == 3 && is_nav) || (place.childNodes.length == 2 && is_ie)){
					place.appendChild(newspan);
				}
		//			if (element.firstChild.nodeType == 3 ){
		//				message.nodeValue="required";
		//				element.value="required"; 
		//				var temp=element.firstChild;
		//				(element.firstChild).nodeValue = message.nodeValue;
		//				element.appendChild(filler);
		//				element.replaceChild(message,element.firstChild);
		//				element.firstChild.nodeValue="required";
		//			}
		//		}
				flag = false;
			}
		}
		
	}
	return flag;
}

function prepareForms() {
	for (var i=0; i<document.forms.length; i++) {
		var thisform = document.forms[i];
		
		if (thisform.id=="form2") {
			resetFields(thisform);
			thisform.onsubmit = function() {
				return validateForm(this);
			}
		}
	}
}

addLoadEvent(prepareForms);
