String.prototype.trim = function() 
{
	return this.replace(/^\s+|\s+$/g,"");
}
//		 ******************************************************
//		 ******************************************************
function MyForm(formname)
{
  	this.elementCount 	= "0"; // for initialization of elementcount.
	this.formname 		= formname;
	// maxlimit and minlimit are optional parameters just for "number" with "range" comparision
	this.addElement 	= function(element,msg,command,maxlimit,minlimit)
	{
		var elemcount = parseInt(this.elementCount);
		elemcount++;
		//----COMPULSORY PARAMETERS
		this["elem"+elemcount] = element;
		this["msg"+elemcount] = msg;
		this["command"+elemcount] = command;
		
		//---------ADDITIONAL PARAMETERS for range -----
		if(maxlimit != null)
			this["maxlimit"+elemcount] = maxlimit;
		if(minlimit != null)
			this["minlimit"+elemcount] = minlimit;
		//--------------------------
		this.elementCount = elemcount;
	}
}
function commonValidations(myobj)
{
	var result = true;
	if(myobj != null)
	{
		for(var i = 1 ; i <= myobj.elementCount ; i++)
		{
			var myForm 	  = myobj["formname"];
			var myElement = myobj["elem"+i];
			var myMessage = myobj["msg"+i];
			var myCommand = myobj["command"+i];
			myCommand = myCommand.toLowerCase().trim();
			//-----check for valid form name
			if(document[myForm] == null)
			{
				if(myForm == "")
					alert("Please provide form name \n"+getAllFormNames());
				else
				{
					var alertMsg = "Please provide correct form name : "+myForm+"\n";
					alertMsg += getAllFormNames();
					alert(alertMsg);
				}
				return false;
			}
			//--------
			switch(myCommand)
			{
				case "required"			:
				case "req" 				: result = Common_ValidateReq(myForm,myElement,myMessage);break;
				//---------------------------------------------------------------------------------------------
				case "email"			:
				case "matchemail" 		: result = Common_ValidateEmail(myForm,myElement,myMessage);break;
				//---------------------------------------------------------------------------------------------
				case "matchunamepwd"	: result = Common_ValidateUsernamePass(myForm,myElement,myMessage);break;
				//---------------------------------------------------------------------------------------------
				case "number"			:
				case "num"				: result = Common_ValidateNumerical(myForm,myElement,myMessage,myobj["maxlimit"+i],myobj["minlimit"+i]);break;
				//---------------------------------------------------------------------------------------------
				case "hyperlink"		:
				case "hyp"				: result = Common_ValidateHyperlink(myForm,myElement,myMessage);break;
				//---------------------------------------------------------------------------------------------
				default 				: alert("Unknown Command : ["+myCommand+"]");result = false;
				//---------------------------------------------------------------------------------------------
			}
			if(result == false)
				break;
		}
		return result;
	}
	else
	{
		alert("Not Found : "+myobj); return false;
	}
}
function getAllFormNames()
{
	var result = "Available Forms :-\n";
	try
	{
		var formCollection = document.getElementsByTagName("form");
		for(var i = 0; i < formCollection.length; i++)
		{
			result += (i+1) + ". " + formCollection[i]["name"] + "\n";
		}
	}
	catch(ex)
	{
		return result;
	}
	return result;
}
function Common_ValidateReq(formname,elementname,message)
{
	try
	{
		var elem = document[formname][elementname];
		if(elem.value == "" || elem.value == elem.defaultValue)
		{
			alert(message);
			elem.focus();
			return false;
		}
		return true;
	}
	catch(ex)
	{
		alert("["+elementname + "] " + ex.message); return false;
	}
}
function Common_ValidateEmail(formname,elementname,message)
{
	var emailPat = /^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/;	
	try
	{	
		var elem = document[formname][elementname];
		var matchArray = elem.value.match(emailPat);
		if(matchArray == null)
		{
			alert(message);elem.focus(); return false;
		}
		return true;
	}
	catch(ex)
	{
		alert("["+elementname + "] " + ex.message); return false;
	}
}

function Common_ValidateUsernamePass(formname,elementname,message)
{
	var unamePat = /^[A-Za-z0-9_\-]+([A-Za-z0-9_\-]+)*[A-Za-z0-9_\-]+([A-Za-z0-9_\-]+)+$/;	
	try
	{
		var elem = document[formname][elementname];
		var matchArray = elem.value.match(unamePat);
		if(matchArray == null)
		{
			alert(message);
			elem.focus();
			return false;
		}
		return true;
	}
	catch(ex)
	{
		alert("["+elementname + "] " + ex.message); return false;
	}
}
function Common_ValidateNumerical(formname,elementname,message,maxlimit,minlimit)
{
	try
	{
		elem = document[formname][elementname];
		elem.value = elem.value.trim();
		var intValue = parseInt(elem.value);
		if(isNaN(elem.value) || elem.value == "" || intValue != elem.value)
		{
			alert(message);
			elem.value = "";
			elem.focus();
			return false;
		}
		else
		{
			if(parseInt(maxlimit) < intValue || parseInt(minlimit) > intValue)
			{
				alert(message);
				elem.focus();
				return false;
			}
			else if (maxlimit == null)
			{
				elem.value = intValue;
				return true;
			}
		}
	}
	catch(ex)
	{
		alert("["+elementname + "] " + ex.message);return false;
	}
}
function Common_ValidateHyperlink(formname,elementname,message)
{
	try
	{
		var elem 		= document[formname][elementname];
		var protocol_ok = elem.value.indexOf("http://");
		var dot_ok 		= elem.value.indexOf(".");
		if((protocol_ok == -1 || dot_ok == -1) && elem.value != "#")
		{
			alert(message);
			elem.focus();
			return false;
		}
		return true;
	}
	catch(ex)
	{
		alert(ex.message); return false;
	}
}
//		 ******************************************************
//		 ******************************************************
function getXmlHttpObject()
	{
		try
		{    // Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();  
			return xmlHttp;  
		}
		catch (e)
		{    // Internet Explorer    
			try
			{      
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");  
				return xmlHttp;    
			}
			catch (e)
			{      
				try
				{
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
					return xmlHttp;
				}
				catch (e)
				{
					alert("Your browser does not support AJAX!"+e.message);
					return false;
				}
			}
		}
	}
function counttext(frmname,fieldname,fieldcount,size)
{
	try
	{
		if(document[frmname] == null)
		{
			alert("Please Provide form name for counttext(...) function");
			return false;
		}
		var textfield 	= document[frmname][fieldname];
		var countfield 	= document[frmname][fieldcount];
		var maxval 		= parseInt(size);
		if(parseInt(countfield.value) >= maxval)
			textfield.value = textfield.value.substring(0,maxval);
		countfield.value = textfield.value.length;
	}
	catch(ex)
	{alert(ex.message);}
}
function confirmdelete()
{
	return(confirm("Do you want to delete this record"));
}
function confirmdel()
{
	showmsg="N";
	for( var i = parseInt(document.getElementById('totrec').value); i >= 1 ; i--)
	{
		if(document.getElementById(eval("'chk"+i+"'")) != null)
		{
			if(document.getElementById(eval("'chk"+i+"'")).checked==true)
			{
				showmsg="Y";
			}
		}
	}
	if(showmsg == "Y")
	{
		return confirm("Do you want to delete this record.");
	}
	else
	{
		alert("Please select atleast one record."); return false;
	}		
}
function popUpWindow1(URLStr)
{ 
	var left,top,width,height;
	var popUpWin1 = 0;
	left=200;
	top=100;
	width=650;
	height=500;
	popUpWin1 = open(URLStr, 'spellcheck', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
	return(popUpWin1);
}
function spellchk(fldname,formname)
{
	spellform=popUpWindow1('');
	spellform.focus();
	document.spell.content.value=eval("document.service."+fldname+".value");
	document.spell.fldname.value=fldname;
	document.spell.formname.value=formname;
	self.document.spell.submit();
	spellform.focus();		
}