
function frmValidate(form,x)
{

	var regExpDate 	= /([1-9]|0[1-9]|[12][0-9]|3[01])[- /.]([1-9]|0[1-9]|1[012])[- /.]\d\d\d\d/;
	var regExpFloat = /(^-*\d+$)|(^-*\d+\.\d+$)/;
	var regExpEmail = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	var regExpInt 	= /(^-?\d\d*$)/;
	
	//var limitBool = true;
	var message = ""
	var more_message = ""
	var showmsg = "no"
	x = x - 1
	for (var i = 0; i <= x; i++)
	{
		var messenger = form.elements[i].name		
 		messenger = messenger.substring(0, 4)
		var fieldname = form.elements[i].name
		fieldname = fieldname.substring(4)
		
		if (messenger == "req_")
		{
			more_message = r_check(form,x,fieldname,i)
		}
		else if (messenger == "int_")
		{
			more_message = regExp_check(form,x,fieldname,i,regExpInt)
		}
		else if (messenger == "flt_")
		{
			more_message = regExp_check(form,x,fieldname,i,regExpFloat)
		}
		else if (messenger == "eml_")
		{
			more_message = regExp_check(form,x,fieldname,i,regExpEmail)
		}
		else if (messenger == "dat_")
		{
			more_message = regExp_check(form,x,fieldname,i,regExpDate)
		}
	 	if (more_message != "")
	      {
			if (message == "")
			{
				message = more_message
				more_message=""
			}
			else
			{
				message = message + "\n" + more_message
				more_message=""
			}
	      }
		if (message > "")
		{
			showmsg = "yes"
		}													
	}	
	if (showmsg == "yes")
	{
		alert("The following field(s) were incomplete or incorrect:\n\n" + message + "\n\nPlease complete the form and submit again.")
	}
	else
	{
			return true;
	}
}	

function r_check(form,x,fieldname,i)

{

	var msg_addition = ""

	new_fieldname = fieldname

	for (var y = 0; y <= x; y++)
	{
		if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == true)
		{
			msg_addition = ""
			break
		}
		else if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == false)
		{
			msg_addition = form.elements[i].value
		}
		else if (form.elements[y].type == "select-one")
		{
			var l = form.elements[y].selectedIndex
			if (form.elements[y].name == fieldname && form.elements[y].options[l].value != "")
			{
				msg_addition = ""
				break
			}
			else if (form.elements[y].name == fieldname && form.elements[y].options[l].value == "")
			{
				msg_addition = form.elements[i].value
			}
		}
	 	else if (form.elements[y].name == fieldname && form.elements[y].value == "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
		{
			msg_addition = form.elements[i].value
			break
		}
		else if (form.elements[y].name == fieldname && form.elements[y].value != "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
		{
			msg_addition = ""
		}	
	}
	return(msg_addition)
}	


function regExp_check(form,x,fieldname,i,regExp)
{
		
	for (var y = 0; y <= x; y++)
	{
		if (form.elements[y].name == fieldname)
			break
	}
	var msg_addition = ""
	var sTarget = form.elements[y].value
	if(sTarget == ""){
		//return msg_addition
	}
	else if(!regExp.test(sTarget)){
		msg_addition = form.elements[i].value
	}
	return(msg_addition)
}


function i_check(form,x,fieldname,i)
{
	for (var y = 0; y <= x; y++)
	{
		if (form.elements[y].name == fieldname)
			break
	}						

	var msg_addition = ""
	inputStr = form.elements[y].value.toString()
	if (inputStr == "")
	{
		// msg_addition = form.elements[i].value
	}
	else
	{
		for (var c = 0; c < inputStr.length; c++)
		{
			var oneChar = inputStr.charAt(c)
			if (c == 0 && oneChar == "-")
			{
				continue
			}
			if (oneChar < "0" || oneChar > "9")
			{
				msg_addition = form.elements[i].value
			}
		}
	}
	return(msg_addition)
}	

function isInteger(sDate)
{
	var new_msg = "true"
	inputStr = sDate.toString()
	for (var i = 0; i < inputStr.length; i++)
	{
		var oneChar = inputStr.charAt(i)			
		if ((oneChar < "0" || oneChar > "9") && oneChar != "/")
		{
			new_msg = "false"
		}
	}
	return (new_msg)
}

function asc(each_char)

{
	var n = 0
	var char_str = charSetStr()
	for (i = 0; i < char_str.length; i++)
	{
		if (each_char == char_str.substring(i, i+1))
		{
			break
		}
	}
	return i + 32
}
		

function charSetStr()
{
	var str
	str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
	return str
}

function chkDates(inDateFrom, inDateTo){
	if(!isValidDate(inDateFrom) || !isValidDate(inDateTo)){
		alert("Invalid dates entered.");
		return false;
	}
	
	if(dateDiff("s",inDateFrom,inDateTo) < 0){
		alert("Date To cannot earlier than Date From.");
		return false;
	}
	
	return true;
}

function chkDateRange(inShowBy, inDateFrom, inDateTo){
	var intDiff = dateDiff("m",inDateFrom,inDateTo);
	
	if(inShowBy == "W" && intDiff >= 3){
		alert("Only 3 months period allowed for showing weekly data.");
		return false;
	}
	if(inShowBy == "M" && intDiff >= 12){
		alert("Only 12 months period allowed for showing monthly data.");
		return false;
	}
	if(inShowBy == "Q" && intDiff >= 36){
		alert("Only 3 years period allowed for showing quarterly data.");
		return false;
	}
	
	return true;
}

	
