// JavaScript Document
//Highlight form element- © Dynamic Drive (www.dynamicdrive.com)
//For full source code, 100's more DHTML scripts, and TOS,
//visit http://www.dynamicdrive.com
var highlightcolor="yellow"
var ns6=document.getElementById&&!document.all
var previous=''
var eventobj
//Regular expression to highlight only form elements
var intended=/INPUT|TEXTAREA|SELECT|OPTION/
//Function to check whether element clicked is form element
function checkel(which){
if (which.style&&intended.test(which.tagName)){
if (ns6&&eventobj.nodeType==3)
eventobj=eventobj.parentNode.parentNode
return true
}
else
return false
}

//Function to highlight form element
function highlight(e){
eventobj=ns6? e.target : event.srcElement
if (previous!=''){
if (checkel(previous))
previous.style.backgroundColor=''
previous=eventobj
if (checkel(eventobj))
eventobj.style.backgroundColor=highlightcolor
}
else{
if (checkel(eventobj))
eventobj.style.backgroundColor=highlightcolor
previous=eventobj
}
}
/////////////////
function isEmail(str)
{
	if(str=="")
	{
	alert("Please Enter your Email Address");
	}
	else
	{
	var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
	return regex.test(str);
	}
}

function isValidNumber(ph)
{
	var phlen=ph.length;
	var phchar=ph.charAt(0);
	if (ph == "")
	{
		alert("Please Enter your Phone Number so that the concerned person can contact you");
		//document.getElementById("phone").focus();
		return false; 
	}
	else if (isNaN(ph))
	{
		alert("Phone number should be numeric");
		//document.getElementById("phone").focus();
		return false;
	}
	else if(phlen<10)
	{
		alert("Please enter correct number in 10 digits. If you are going to enter Landline No. then please add STD Code before no.(like : 731)");
		//document.getElementById("phone").focus();
		return false;
	} 
	else if(phchar=='0')
	{ 
		alert("Please do not add 0 before Number"); 
		//document.getElementById("phone").focus();
		return false;
	} 
	else
	{
	 	return true;
	}
}

function isValidLength(item, len, greaterorless)
  {
  	if (greaterorless = 1) 
	{
    	return (item.length >= len);
	}
	if (greaterorless = 2)
	{
		return (item.length <= len);
	}
	if (greaterorless = 3)
	{
		return (item.length == len);
	}
  }	
  
// Removes leading whitespaces
function LTrim( value ) 
{
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");	
	
}

// Removes ending whitespaces
function RTrim( value )
{
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) 
{
	//alert(value);
	return LTrim(RTrim(value));
	
}

function setListField(fieldId, fieldValue)
{
	//alert("test1 ");
	//alert(fieldId+"::"+fieldValue+"::"); 
	//alert(document.getElementById(fieldId).options);
	try
	{	
		if (fieldValue == "")
		{
			document.getElementById(fieldId).value = "";
		}
		for (i = 0; i < document.getElementById(fieldId).options.length;i++)
		{
			if (document.getElementById(fieldId).options[i].value == fieldValue)
			{
				document.getElementById(fieldId).options[i].selected = true;	
			}
		}
	}
	catch(exception)
	{
		alert(exception);
	}
}
function setMultipleList(fieldId, fieldValue)
{
	//alert(fieldId+"::"+fieldValue+"::");
	//alert(document.getElementById(fieldId).options);
	try
	{	
		if (fieldValue == "")
		{
			document.getElementById(fieldId).value = "";
		}
		//alert("Field Value: "+fieldValue);
		var values = fieldValue.split(",");
		//alert("VALUES: "+values+"::"+values.length);
		for (i = 0; i < values.length;i++)
		{
			var presentValue = values[i];
			//alert(i + "::" + presentValue);
			for (j = 0; j < document.getElementById(fieldId).options.length;j++)
			{
				if (document.getElementById(fieldId).options[j].value == presentValue)
				{
					document.getElementById(fieldId).options[j].selected = true;	
				}
			}
		}
	}
	catch(exception)
	{
		alert("error: "+exception);
	}
}


function validatetextarea(frm,field,cntfield,maxlimit) 
{
	//alert("cntfield==" + cntfield);
	//alert("field==" + field);
	//alert("maxlimit" + maxlimit);

	/////alert("Length" + field.value.length);
	if (field.value.length > maxlimit)
	{// if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	}
	// otherwise, update 'characters left' counter
	else if(cntfield!=null)
	{
		cntfield.value = maxlimit - field.value.length;
	}
	
}

function changeWindowStatus(text)
{
	window.status = text;
}


// JavaScript Document
function trimString(str)
{
	//alert(str);
	if (str.length < 1) return "";

	while(str.charAt(0) == " ")
	{
		str = str.substr(1,str.length);
	}

	if (str.length < 1) return str;
	
	while(str.charAt(str.length - 1) == " ")
	{
		str = str.substr(0,str.length - 1);
	}
	return str;
}

function FormatDate(DateToFormat,FormatAs)
{
	if(DateToFormat==""){return"";}
	if(!FormatAs){FormatAs="mm/dd/yyyy";}
	//alert(DateToFormat);
	var strReturnDate;
	FormatAs = FormatAs.toLowerCase();
	DateToFormat = DateToFormat.toLowerCase();
	var arrDate
	var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var strMONTH;
	var Separator;
	
	while(DateToFormat.indexOf("st")>-1)
	{
		DateToFormat = DateToFormat.replace("st","");
	}
	
	while(DateToFormat.indexOf("nd")>-1)
	{
		DateToFormat = DateToFormat.replace("nd","");
	}
	
	while(DateToFormat.indexOf("rd")>-1)
	{
		DateToFormat = DateToFormat.replace("rd","");
	}
	
	while(DateToFormat.indexOf("th")>-1)
	{
		DateToFormat = DateToFormat.replace("th","");
	}
	
	if(DateToFormat.indexOf(".")>-1)
	{
		Separator = ".";
	}
	
	if(DateToFormat.indexOf("-")>-1)
	{
		Separator = "-";
	}
	
	
	if(DateToFormat.indexOf("/")>-1)
	{
	Separator = "/";
	}
	
	if(DateToFormat.indexOf(" ")>-1)
	{
		Separator = " ";
	}
	
	arrDate = DateToFormat.split(Separator);
	DateToFormat = "";
		for(var iSD = 0;iSD < arrDate.length;iSD++)
		{
			if(arrDate[iSD]!="")
			{
				DateToFormat += arrDate[iSD] + Separator;
			}
		}
	DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
	arrDate = DateToFormat.split(Separator);
	
	if(arrDate.length < 3)
	{
		return "";
	}
	
	var DAY = arrDate[1];
	var MONTH = arrDate[0];
	var YEAR = arrDate[2];
	
	
	
	
	if(parseFloat(arrDate[0]) > 12)
	{
		DAY = arrDate[0];
		MONTH = arrDate[1];
	}
	
	if(parseFloat(DAY) && DAY.toString().length==4)
	{
		YEAR = arrDate[0];
		DAY = arrDate[2];
		MONTH = arrDate[1];
	}
	
	
	for(var iSD = 0;iSD < arrMonths.length;iSD++)
	{
	var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
	var MonthPosition = DateToFormat.indexOf(ShortMonth);
		if(MonthPosition > -1)
		{
			MONTH = iSD + 1;
			if(MonthPosition == 0)
			{
				DAY = arrDate[1];
				YEAR = arrDate[2];
			}
			break;
		}
	}
	
	var strTemp = YEAR.toString();
	if(strTemp.length==2)
	{
		if(parseFloat(YEAR)>40)
		{
			YEAR = "19" + YEAR;
		}
		else
		{
			YEAR = "20" + YEAR;
		}
	
	}
		if(parseInt(MONTH)< 10 && MONTH.toString().length < 2)
		{
			MONTH = "0" + MONTH;
		}
		if(parseInt(DAY)< 10 && DAY.toString().length < 2)
		{
			DAY = "0" + DAY;
		}
		switch (FormatAs)
		{
			case "dd/mm/yyyy":
			return DAY + "/" + MONTH + "/" + YEAR;
			case "mm/dd/yyyy":
			return MONTH + "/" + DAY + "/" + YEAR;
			case "dd/mmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
			case "mmm/dd/yyyy":
			return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
			case "dd/mmmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
			case "mmmm/dd/yyyy":
			return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
			case "yyyymmdd":
			return ""+YEAR + MONTH + DAY ;
			case "yyyy-mm-dd":
			return ""+YEAR + "-"+MONTH+"-"+DAY;
		}
		
		return DAY + "/" + strMONTH + "/" + YEAR;;

} //End Function

function setField(fieldId, fieldValue)
{
	//alert(fieldId+"::"+fieldValue);
		document.getElementById(fieldId).value = fieldValue;

}
function setListField(fieldId, fieldValue)
{
	//alert(fieldId+"::"+fieldValue);
	//alert(document.getElementById(fieldId).options);
	try
	{	
		for (i = 0; i < document.getElementById(fieldId).options.length;i++)
		{
			if (document.getElementById(fieldId).options[i].value == fieldValue)
			{
				document.getElementById(fieldId).options[i].selected = true;	
			}
		}
	}
	catch(exception)
	{
	}
}
function validateFormData()
{
	if(checkEmpty())
		return false;
	if(checkQuote())
		return false;
	if(checkNumber())
		return false;
	if(checkEMail())
		return false;		
}

function checkEmpty()
{
	for(var iter = 0;iter < arr.length; iter++)
	{
		var currVal = trim(document.getElementById("input" + arr[iter]).value);
		document.getElementById("input" + arr[iter]).value = currVal;
		if(currVal == "")
		{
			document.getElementById("input" + arr[iter]).focus();
			alert("Field can not be left Empty.\nPlease enter value for the field");
			return true;
		}
	}
	return false;
}

function checkQuote()
{
	for(var iter = 0;iter < arrQ.length; iter++)
	{
		var currVal = document.getElementById("input" + arrQ[iter]).value;
		if(currVal.indexOf('"') != -1)
		{
			document.getElementById("input" + arrQ[iter]).focus();
			alert("Please avoid use of Double Quotes.");
			return true;
		}
	}
	return false;
}

function checkNumber()
{
	for(var iter = 0;iter < arrN.length; iter++)
	{
		var currVal = document.getElementById("input" + arrN[iter]).value;
		if(isNaN(currVal) || currVal.indexOf('.') != -1)
		{
			document.getElementById("input" + arrN[iter]).focus();
			alert("Please insert numerical value.");
			return true;
		}
	}
	return false;
}


function checkEMail()
{
	for(var iter = 0;iter < arrE.length; iter++)
	{
		var currVal = document.getElementById("input" + arrE[iter]).value;
		if(currVal != "")
		{
			var curIndex = currVal.indexOf("@");
			if (!(curIndex > 0 && 
				currVal.lastIndexOf(".") > curIndex + 1 && 
				currVal.substr(currVal.lastIndexOf("."), currVal.length).length > 1 &&
				curIndex == currVal.lastIndexOf("@") && 
				currVal.indexOf(" ")
				))
			{	
				document.getElementById("input" + arrE[iter]).focus();
				alert("Please insert valid email address.");
				return true;
			}
		}	
	}
	return false;
}
function trim(str)
{
	if (str.length < 1) return "";

	while(str.charAt(0) == " ")
	{
		str = str.substr(1,str.length);
	}

	if (str.length < 1) return str;
	
	while(str.charAt(str.length - 1) == " ")
	{
		str = str.substr(0,str.length - 1);
	}
	return str;
}
