/**
* The method disables all the anchors, text boxes, text areas, radio buttons,
* check boxes, images, buttons, etc. in the passed document
*/
function disableDocument(documentObj)
{
	try
	{
		if(!documentObj || documentObj == null)
		{
			return;
		}
	
		//disable all the links
		//disableLinks(documentObj);
	
		//get all the forms and disable them
		var forms = documentObj.forms;
		var index;
		for(index = 0; index < forms.length; index++)
		{
			disableForm(documentObj.forms[index]);
		}
	
		//disable all the images
		disableImages(documentObj);
	}
	catch(exception)
	{
		//dont do anything
	}
}

/**
* The method disables various form elements of the passed form object.
*/
function disableForm(formObj)
{
	if(!formObj || formObj == null)
	{
		return;
	}
	
	var elements = formObj.elements;
	var index;
	for(index = 0; index < elements.length; index++)
	{
		try
		{
			if(elements[index].type != "hidden")
			{
				if(elements[index].type == "text")
				{
					elements[index].readonly = true;
				}
				else if(elements[index].type == "select-one")
				{
					elements[index].onchange = "window.event.returnvalue = false; return false;"
				}
				else if(elements[index].type != "radio" && elements[index].type != "checkbox")
				{
					elements[index].disabled = true;
				}
			}
		}
		catch(exception)
		{
			//dont do anything
		}
	}
}

/**
* The method disables all the images of the passed document.
*/
function disableImages(documentObj)
{
	if(!documentObj || documentObj == null)
	{
		return;
	}
	
	var images = documentObj.images;
	var index;
	for(index = 0; index < images.length; index++)
	{
		try
		{
			images[index].disabled = true;
			images[index].onclick="window.event.returnvalue = false; return false;"
			//PLEASE NOTE that onclick event has to be over-ridden otherwise
			//even though the element is disabled, onclick event still gets
			//fired
		}
		catch(exception)
		{
			//dont do anything
		}
	}
}

/**
* This method disables all links (A and AREA tags) in the passed document. 
*/
function disableLinks(documentObj)
{
	if(!documentObj || documentObj == null)
	{
		return;
	}
	
	var links = documentObj.links;
	var index;
	for(index = 0; index < links.length; index++)
	{
		try
		{
			links[index].disabled = true;
			links[index].onclick = "window.event.returnvalue = false; return false;"
			//PLEASE NOTE that onclick event has to be over-ridden otherwise
			//even though the element is disabled, onclick event still gets
			//fired
			links[index].href="#";
		}
		catch(exception)
		{
			//dont do anything
		}
	}
}

/*
To mask the integer keys on key press.
*/
function maskInteger()
{
	if((event.keyCode < 48 || event.keyCode > 57))
		return false;
	return true;
}

/*
To mask the integer keys before drop/paste
*/
function maskIntegerBeforePaste()
{
	var clipBoardData;
	if(event.dataTransfer != null)
	{
		clipBoardData = event.dataTransfer.getData("Text");
	}
	else
	{
		clipBoardData =  clipboardData.getData("Text");
	}

	clipBoardData = trim(clipBoardData);

	if(clipBoardData.length == 0)
		return false;

	if(isNaN(clipBoardData))	
		return false;
	
	if(clipBoardData.indexOf(".") != -1)
		return false;
	if(clipBoardData.indexOf("-") != -1)
		return false;
	if(clipBoardData.indexOf("+") != -1)
		return false
	return true;	
}

/*
To Trim the leading and trailing blanks in a string
*/
function trim(value)
{
	//the function trims the leading and trailing blanks
	while(value.charAt(value.length-1) == " "){value = value.substring(0,value.length-1);} 
	while(value.substring(0,1) ==" "){value = value.substring(1,value.length);}
	return value;
}
