/*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   File:	                Common.js
'
'   Description:            Commonly used utility functions
'
'   Written by:             Iftikhar Mumtaz
'
'	Language(s) Used:		JavaScript
'
'   Date Written:           January 06, 2001
'
'   Platform:               Microsoft Internet Explorer
'
'   Copyright:              © 2001 Cybergen Technolgies.
'                           All rights reserved
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
*/

function LTrim(theString)
{
	var x;
	var TrimmedString;
	
	for (x=0; x<theString.length; x++)
	  {
		if (!(theString.substring(x, x+1) == " ")) 
		{
		 break;
		}
	  }
	  
	TrimmedString = theString.substring(x);
	
	return TrimmedString;
}

function IsEmpty(theElement, theLabel)
{
	//alert(theElement.value +":"+ theLabel);
	if(LTrim(theElement.value) != "")
	{
		SetHighlight(theElement, false);
		return false;
	}
	else
	{
		if (theLabel)
		{
			alert("Please provide " + theLabel);
			SetHighlight(theElement, true);
		}
		return true;
	}	
}

function ResetForm(theForm)
{
	document.forms[theForm].reset();
}

function SetHighlight(theElement, Highlight)
{
	if(Highlight)
	{
		theElement.focus();
		if(IsExplorer())
		{
			theElement.style.borderStyle = "double";
			theElement.style.borderWidth = 3;
			theElement.style.borderColor = "red";
		}
	}
	else
	{
		if(IsExplorer())
		{
			theElement.style.borderStyle = "inset";
			theElement.style.borderWidth = 1;
			theElement.style.borderColor = "silver";
		}
	}
}

function IsExplorer()
{
	var userAgent = navigator.userAgent;
	
	if(userAgent.indexOf("MSIE") >= 0)
		return true;
	else
		return false;
}

function IsEmailValid(sEmailAddress)
{	
	if(sEmailAddress.value.indexOf("@")!=0)
		if(sEmailAddress.value.indexOf(".")!=0)
			if(sEmailAddress.value.lastIndexOf("@")!=(sEmailAddress.length-1))
				if(sEmailAddress.value.lastIndexOf(".")!=(sEmailAddress.length-1))
					if(sEmailAddress.value.lastIndexOf(".")!=-1)
						if(sEmailAddress.value.lastIndexOf("@")!=-1)
							if(sEmailAddress.value.indexOf(" ")<0)
								return true;

	alert("Invalid E-mail Address: " + sEmailAddress.value);
	SetHighlight(sEmailAddress, true);
	return false;
}

function IsAlphabet(sFieldValue, sFieldName)
{	
	var charpos;
	if (!IsEmpty(sFieldValue, sFieldName))
	{		
		charpos = sFieldValue.value.search("[^a-z|A-Z]");
		if (charpos != -1)
		{
			alert("Please Enter Alphabetic value for " + sFieldName);
			SetHighlight(sFieldValue, true);
			return false;
		}
		return true;
	}
	else
		return false;
}

function IsInteger(oField, sFieldLabel)
{
	var charpos;
	charpos = oField.value.search("[^0-9]");
	if (charpos != -1)
	{
		alert("Please Enter Numeric value for " + sFieldLabel);
		SetHighlight(oField, true);
		oField.value="";
		return false;
	}
	return true;
}

function IsFloat(oField, sFieldLabel)
{
	var charpos;
	charpos = oField.value.search("[^0-9|^.]");
	if (charpos != -1)
	{
		alert("Please Enter Numeric/Float value for " + sFieldLabel);		
		SetHighlight(oField, true);
		oField.value="";		
		return false;
	}
	return true;
}

function IsAlphaNumeric(oField, sFieldLabel)
{
	var charpos;
	var fchar;
	fchar = oField.value.substring(0,1);
	if (fchar >= 0 && fchar <= 9)
	{
		alert("First character of " + sFieldLabel + " should be an Alphabet");
		SetHighlight(oField, true);
		return false;		
	}
	else
	{
		charpos = oField.value.search("[^0-9|^_|^a-z|A-Z]");
		if (charpos != -1)
		{
			alert("Only character, numbers and underscores are allowed for " + sFieldLabel);		
			SetHighlight(oField, true);
			return false;
		}
		return true;
	}
}

function IsPhoneValid(oField, sFieldLabel)
{
	var i;
	var bValid;
	bValid = true;	

    for (i = 0; i < oField.value.length; i++)
	{
		if (!((oField.value.substring(i, i+1) >= 0 && oField.value.substring(i, i+1) <= 9) || oField.value.substring(i, i+1) == " " || oField.value.substring(i, i+1) == "-" || oField.value.substring(i, i+1) == "(" || oField.value.substring(i, i+1) == ")"))
		{
			bValid = false;
			alert("Please Enter Numeric value for " + sFieldLabel);
			SetHighlight(oField, true);
			break;
		}
	}
	return bValid;
}
function IsTimeValid(oField, sFieldLabel)
{
	var i;
	var bValid;
	bValid = true;	

    for (i = 0; i < oField.value.length; i++)
	{
		if (!((oField.value.substring(i, i+1) >= 0 && oField.value.substring(i, i+1) <= 9) || oField.value.substring(i, i+1) == ":") || oField.value.substring(i, i+1) == " ")
		{
			bValid = false;
			alert("Please Enter Only Digits or ':' in " + sFieldLabel);
			SetHighlight(oField, true);
			break;
		}
	}
	return bValid;
}
function OpenWindow (sURL, iWidth, iHeight, sResize, sToolbar, sMenuBar, sStatus, sScroll)
{
	var winProperties;
	var winResults;
	
	var winTop = (screen.height - iHeight) / 2;
	var winLeft = (screen.width - iWidth) / 2;
	
	winProperties = "width=" + iWidth;
	winProperties = winProperties + ",height=" + iHeight
	winProperties = winProperties + ",left=" + winLeft
	winProperties = winProperties + ",top=" + winTop
	winProperties = winProperties + ",resizable=" + sResize
	winProperties = winProperties + ",toolbar=" + sToolbar
	winProperties = winProperties + ",menubar=" + sMenuBar
	winProperties = winProperties + ",status=" + sStatus
	winProperties = winProperties + ",scrollbars=" + sScroll

	winResults = window.open(sURL, "PopupWindow", winProperties);
	winResults.focus();
}

function FindLink(sLinkName)
{
	var i = 0;
	
	for(i = 0; i<document.links.length; i++)
	{
		if (document.links[i].name == sLinkName)
		 return document.links[i];
	}
}

function HandleMouseOver(oButton)
{
	if (oButton.disabled == false)
		oButton.style.backgroundColor="gold";
}

function HandleMouseOut(oButton)
{
	oButton.style.backgroundColor = "silver";
}

function IsDate(sFieldValue)
{
    var re;        

	re = /^(0[1-9]|1[012])\/(3[01]|0[1-9]|[12]\d)\/\d{4}/;
        
	if (!re.test(sFieldValue.value) == true)
	{
        alert('Please enter date in following Format: "mm/dd/yyyy"');        
		SetHighlight(sFieldValue, true);        
        return false;
	}
	return true;	
}
