// JavaScript Document
function menu(childbox, flipimg)
{
	if (document.getElementById(childbox).style.display == 'none') 
	{
		document.getElementById(childbox).style.display = '';
		if (flipimg) document.getElementById(flipimg).src = img1;
	}
	else 
	{	
		document.getElementById(childbox).style.display = 'none';
		if (flipimg)document.getElementById(flipimg).src = img2;
	}
}

function chkvalidity(frm, validity)
{
	chk = true;
	for(j=0; j<validity.length; j++)
	{
		chk = fieldcheck(frm, validity[j]["field"], validity[j]["datatype"], validity[j]["fieldtype"], validity[j]["msg"], validity[j]["needle"], validity[j]["depend_cmd"], validity[j]["depend_check"])
		if (chk == false) return false;
	}
	return true;
}
function fieldcheck(frm, field, datatype, fieldtype, msg, needle, depend_field, depend_check)
{
	state = true;
	if ((fieldtype == "radio" || fieldtype == "checkbox") && datatype != "depend")
	{
		return chkradiocheckbox(frm, field, msg);
	}
	else
	{
		for(i = 0; i < document.forms[frm].length; i++)
		{
			if(document.forms[frm].elements[i].name == field)
			{
				if (datatype == "char")
				{
					if(trim(document.forms[frm].elements[i].value) == "") state = false;
				}
				else if (datatype == "curr")
				{
					if (parseFloat(document.forms[frm].elements[i].value) <= 0) state = false;
					if (checkcurr(document.forms[frm].elements[i].value) == false) state = false;
				}
				else if (datatype == "number")
				{
					if (parseFloat(document.forms[frm].elements[i].value) <= 0) state = false;
					if (checknumber(document.forms[frm].elements[i].value) == false) state = false;
				}				
				else if (datatype == "email")
				{
					if (emailCheck(document.forms[frm].elements[i].value) == false) state = false;
				}
				else if (datatype == "nospecial")
				{
					if (nonspecialchar(document.forms[frm].elements[i].value) == false) state = false;
				}
				else if (datatype == "compare")
				{
					if (strcompare(document.forms[frm].elements[i].value, needle) == false) state = false;
				}
				else if (datatype == "either")
				{
					if (streither(document.forms[frm].elements[i].value, needle) == false) state = false;
				}
				else if (datatype == "length")
				{
					if (chkstringlength(document.forms[frm].elements[i].value, needle) == false) state = false;
				}
				else if (datatype == "depend")
				{
					if (radiocheckvalue(frm, document.forms[frm].elements[i].name) != needle) return true;
					if (chkdependency(frm, document.forms[frm].elements[i], needle, depend_field, depend_check) == false) state = false;
				}
			}
			if (!state)
			{
				alert(msg);
				if (datatype != "depend") 
				{
					if (document.forms[frm].elements[i].disabled == false) document.forms[frm].elements[i].focus();
				}
				return state;
			}
		}
	}
}
function chkstringlength(string, strlength)
{
	if (string.length < strlength) return false;
}

function streither(str1, str2)
{
	if (trim(str1) == "" && trim(str2) == "") return false;
}

function strcompare(str1, str2)
{
	if (str1 != str2) return false;
}

function mannav(frm, objname, msg, mode)
{
	if (chkradiocheckbox(frm, objname, msg))
	{
		document.forms[frm].cmd_mode.value = mode;
		document.forms[frm].submit();
		return true;
	}
	else
	{
		return false;
	}
}

function radiocheckvalue(frm, objname)
{
	for(i = 0; i < document.forms[frm].length; i++)
	{
		if(document.forms[frm].elements[i].name == objname)
		{
			if(document.forms[frm].elements[i].checked == true)
			{
				return document.forms[frm].elements[i].value;
			}
		}
	}
	return false;
}

function togglecheckbox(frm, master)
{
	for(i = 0; i < document.forms[frm].length; i++)
	{
		if(document.forms[frm].elements[i].name == master)
		{
			if (document.forms[frm].elements[i].checked == true) ckeckit = true;
			else if (document.forms[frm].elements[i].checked == false) ckeckit = false;
		}
	}
	for(i = 0; i < document.forms[frm].length; i++)
	{
		if(document.forms[frm].elements[i].type == 'checkbox')
		{
			if (ckeckit == true) document.forms[frm].elements[i].checked = true;
			else if (ckeckit == false) document.forms[frm].elements[i].checked = false;
		}
	}
}

function selectvalue(frm, objname)
{
	for(i = 0; i < document.forms[frm].length; i++)
	{
		if(document.forms[frm].elements[i].name == objname)
		{
			if(document.forms[frm].elements[i].selected == true)
			{
				return document.forms[frm].elements[i].value;
			}
		}
	}
	return false;
}

function chkradiocheckbox(frm, objname, msg)
{
	for(i = 0; i < document.forms[frm].length; i++)
	{
		if(document.forms[frm].elements[i].name == objname)
		{
			if(document.forms[frm].elements[i].checked == true) return true;
		}
	}
	alert(msg);
	return false;
}

function submitform(frm, action)
{
	if (action)
	{
		document.forms[frm].action = action;
	}
	document.forms[frm].submit();
	return true;
}

function redirect(url)
{
	document.location.href = url;
	return true;
}

function nonspecialchar(varStr)
{
	var iChars = "`~!@#$%^&*()-=+\|,./?'\"[] {}";
	for (var i = 0; i < varStr.length; i++) 
	{
		if (iChars.indexOf(varStr.charAt(i)) != -1)
		{
            return false;
        }
	}
}

function emailCheck(emailStr, errormessage)
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) 
	{
		return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++) 
	{
		if (user.charCodeAt(i)>127) 
		{
			return false;
		}
	}
	for (i=0; i<domain.length; i++) 
	{
		if (domain.charCodeAt(i)>127) 
		{
			return false;
   		}
	}

	if (user.match(userPat)==null) 
	{
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++) 
		{
			if (IPArray[i]>255) 
			{
				return false;
   			}
		}
		return true;
	}

	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) 
	{
		if (domArr[i].search(atomPat)==-1) 
		{
			return false;
	   	}
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
	{
		return false;
	}

	if (len<2) 
	{
		return false;
	}

	return true;
}

function popUpscroll(URL, width, height) 
{
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,left=150,top=150,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height + "');");
}

function popUp(URL, width, height) 
{
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,left=150,top=150,location=0,statusbar=0,menubar=0,resizable=0,width=" + width + ",height=" + height + "');");
}

function checknumber(object)
{
	var x=object;
	var anum=/(^\d+$)|(^\d+\d+$)/;
	if (anum.test(x))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function checkcurr(object)
{
	var x=object;
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if (anum.test(x))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function trim (s)
{
	return rtrim(ltrim(s));
}

function ltrim (s)
{
	return s.replace( /^\s*/, "" );
}

function rtrim (s)
{
	return s.replace( /\s*$/, "" );
}
