// JavaScript Document
//on submit button of form just add -> onclick="return validate(this.form)"
function validateForm(theForm)
{
	var i;		
	var errorString="";
	
	var crLf = "\n";
	var prefix = "";
	

	for(i=0; i<theForm.elements.length; i++)
	{
		if (theForm.elements[i].getAttribute("required"))
		{
			if (theForm.elements[i].value=="")
				errorString+= prefix+theForm.elements[i].getAttribute("required")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("reg_exp"))
		{
			if (theForm.elements[i].value!="" && !match2RegExp(theForm.elements[i].value,theForm.elements[i].getAttribute("pattern")))
				errorString+= prefix+theForm.elements[i].getAttribute("reg_exp")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("numeric"))
		{
			if (theForm.elements[i].value!="" && /*isNaN(theForm.elements[i].value)*/ !isFloat(theForm.elements[i].value))
				errorString+= prefix+theForm.elements[i].getAttribute("numeric")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("date"))
		{
			if (theForm.elements[i].value!="" && !isDate(theForm.elements[i].value))
				errorString+= prefix+theForm.elements[i].getAttribute("date")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("email"))
		{
			if (theForm.elements[i].value!="" && !isEmail(theForm.elements[i].value))
				errorString+= prefix+theForm.elements[i].getAttribute("email")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("s_required"))
		{
			if (theForm.elements[i].options.length > 0)
			{
				var myindex = theForm.elements[i].selectedIndex;
				
				if (theForm.elements[i].options[myindex].value==0)
					errorString+= prefix+theForm.elements[i].getAttribute("s_required")+crLf;
			}
			else
				errorString+= prefix+theForm.elements[i].getAttribute("s_required")+crLf;
		}
		
		if (theForm.elements[i].getAttribute("ch_required"))
		{
			if (theForm.elements[i].checked==false)
				errorString+= prefix+theForm.elements[i].getAttribute("ch_required")+crLf;
		}
		
		
		if (theForm.elements[i].getAttribute("rd_required"))
		{
				
				if (errorString.indexOf(theForm.elements[i].getAttribute("rd_required")) == -1)
				{
					var radiobtn = eval('theForm.'+(theForm.elements[i].getAttribute('name')).toString());
					var k;
					var checked=false;
								
					//for(k=radiobtn.length-1; k > -1; k--)
					for(k=0; k<radiobtn.length; k++)
					{
						if (radiobtn[k].checked==true)
						{
							checked=true;
							break;
						}
					}
				
					if (checked==false)
					errorString+= prefix+theForm.elements[i].getAttribute("rd_required")+crLf;
				}
		}
		
		if(theForm.elements[i].getAttribute("grch_required"))
		{
			if (errorString.indexOf(theForm.elements[i].getAttribute("grch_required")) == -1)
			{
				var grpCHBname = theForm.elements[i].name
				var checkboxes = document.getElementsByName(grpCHBname);
				var checked2=false;
				var y;
			
				for(y=0; y<checkboxes.length; y++)
				{
					if (checkboxes[y].checked==true)
					{
						checked2=true;
						break;
					}
				}
			
				if (checked2==false)
				errorString+= prefix+theForm.elements[i].getAttribute("grch_required")+crLf;
			}	
		}
		
	}//end main for
		
	if (errorString!="")
	{
		alert(errorString);
		
		//messageBox(errorString);
		
		//document.getElementById('frmResult').innerHTML = errorString;
		
		return false;
	}
	else
	return true;
}
//****************************************************************************************************
function messageBox(errorString)
{
	if (document.getElementById("error_div"))
	{
		document.body.removeChild(document.getElementById("error_div"));
	}

	var div_box = document.createElement("div");
	div_box.id = "error_div";
	div_box.style.position = "absolute";
	div_box.style.left = "70px";
	div_box.style.top = "200px";
	div_box.style.zIndex  = 99;
	div_box.style.border = "1px orange solid";

	div_box.onBlur = function()
	{
		document.body.removeChild(document.getElementById("error_div"));
	}
	
	var tableO = document.createElement("table");
	tableO.bgColor = "#052e62";

	if (document.all)
	div_box.style.filter = 'alpha(opacity=85)';
	else
	{
		div_box.style.opacity = 0.85;
		div_box.style.MozBorderRadius = "8px";
		tableO.style.MozBorderRadius = "8px";
	}
	
	
	var tbodyO = document.createElement("tbody");
	

	var tr_header = document.createElement("tr");
	var td_header = document.createElement("td");
	td_header.style.padding = 6+"px";
	td_header.style.fontFamily = "Verdana,Tahoma";
	td_header.style.fontSize = 13;
	td_header.innerHTML = "<b>[.:: A l e r t ::.]</b>";
	td_header.align = "center";
	td_header.style.color="orange";
	td_header.style.borderBottom = "1px orange solid";
	
	tr_header.appendChild(td_header);
	tbodyO.appendChild(tr_header);


	var tr_msg = document.createElement("tr");
	var td_msg = document.createElement("td");
	td_msg.style.padding = 6+"px";
	td_msg.style.color = "#B2D0F9";
	td_msg.style.fontFamily = "Verdana,Tahoma";
	td_msg.style.fontSize = "11";
	td_msg.innerHTML = "<b>"+errorString+"</b>";
	tr_msg.appendChild(td_msg);
	tbodyO.appendChild(tr_msg);
	
	
	var tr_btn = document.createElement("tr");
	var td_btn = document.createElement("td");
	td_btn.align="center";
	var btnOK = document.createElement("input");
	btnOK.type = "button";
	btnOK.style.paddingLeft = 9+"px";
	btnOK.style.paddingRight = 9+"px";
	btnOK.style.backgroundColor = "#669CCB";
	btnOK.style.border = "1px orange solid";
	btnOK.style.color="#FFFFFF";
	btnOK.value = "OK";
	
	btnOK.onclick = function()
	{
		document.body.removeChild(document.getElementById("error_div"));
	}
	
	td_btn.appendChild(btnOK);
	tr_btn.appendChild(td_btn);
	tbodyO.appendChild(tr_btn);
	
	
	
	tableO.appendChild(tbodyO);
	div_box.appendChild(tableO);
	
		
	document.body.appendChild(div_box);
	
	if (document.all)
	{
		var x = (document.body.clientWidth - div_box.offsetWidth)/2;
		var y = (document.body.clientHeight - div_box.offsetHeight)/2;
	}
	else
	{
		var x = (window.innerWidth - div_box.offsetWidth)/2;
		var y = (window.innerHeight - div_box.offsetHeight)/2;
	}
	
		
	div_box.style.left = (x-270)+"px";
	div_box.style.top =  y+"px";
}




function isDate(strValue)
{
	//date format => 2006-02-12
	var regExp = /^\d{4}\-\d{2}\-\d{2}$/;
	if (regExp.test(strValue))
	return true;

	return false;
}

function isEmail(strValue)
{
	var regExp = /^([\w-_]+)(.[\w-_]+)*@([\w-_]+)(.[\w]{2,3})$/;

	if (regExp.test(strValue))
	return true;

	return false;
}

function isFloat(strValue)
{
	var regExp = /^([\d]+)(.[\d]+)?$/;
	
	if (regExp.test(strValue))
	return true;

	return false;
}

function match2RegExp(strValue,pattern)
{
	var regExp = pattern;
	
	if (eval(regExp).test(strValue))
	return true;

	return false;
}

