// Common Javascript Functions v1.0	

function CloseWindow()
{
	if(navigator.userAgent.indexOf("MSIE") == -1)
	{
		window.open('','_parent','');
		window.close();
	}
	else
	{
		window.close(opener=0);
	}
}
		
//---------------------------------------------------------------------------
// Name         : Popup
// Args			: popupUrl - url of the window to be opened
// Created Date : 10th May 2002 
// Created By   : Mark Foong
// Notes		: This is a quick and dirty function to call a pop up.
//				  Its NOT a finished Item.
//---------------------------------------------------------------------------
function Popup(popupUrl, winName, width, height, scrollbars) {
	var msgwindow = window.open(popupUrl, winName, "scrollbars=" + scrollbars + ",toolbars=0,width=" + width + ",height=" + height);
	msgwindow.focus();
	
	return msgwindow;
}

function RegPopup(popupUrl, winName, width, height, scrollbars) {
	var msgwindow = window.open(popupUrl, winName, "scrollbars=" + scrollbars + ",toolbars=0,width=" + width + ",height=" + height);
	msgwindow.focus();		
}

function popupVideo(url) 
{
	window.open(url, 'videowindow', 'dependent=yes,width=350,height=330,scrollbars=yes');
}

function SampleEmail(f)
{
	//Popup('/HouseValues/SampleEmail.aspx?sid=' + document.forms.f.hidsid.value,'winSample','664','600','yes');
	Popup('/SampleEmail.aspx','winSample','664','600','yes');
}
		
function ReqFieldsCheck(arrReqFields, arrReqFieldsName){

	//alert(arrReqFields.length)
	for (var i=0; i<arrReqFields.length; i++)
	{
	
		switch (document.forms[0].elements[arrReqFields[i]].type)
		{
			case "text":
				
				if (document.forms[0].elements[arrReqFields[i]].value == "")
				{
					alert("Data Missing! " + arrReqFieldsName[i] + " is a required field.");
					document.forms[0].elements[arrReqFields[i]].select();
					return false;
												
				}
				break;
			case "password":
				
				if (document.forms[0].elements[arrReqFields[i]].value == "")
				{
					alert("Data Missing! " + arrReqFieldsName[i] + " is a required field.");
					document.forms[0].elements[arrReqFields[i]].select();
					return false;
												
				}
				break;
			
			default:
				break;
		}
				
	}
	return true;
	
}

function EmailCheck(objEmail, bMulti)
{	
	if (!IsValidEmail(document.forms[0].elements[objEmail].value, bMulti))
	{
		alert("Invalid Data! This is an Invalid Email Address!");
		document.forms[0].elements[objEmail].select();
		return false;
	}
	return true;
}

function IsValidDomain( host )
{
	if ( host.length == 0 ) return false;
	else
	{
		var ndx = host.indexOf( "." )
		if ( ndx == -1 ) return true;
		else return IsValidDomain(host.substring(ndx+1));
	}
}
function IsValidAddress( addr )
{
	var rgExp = new RegExp("[^a-z0-9@._-]", "gi");
	var strEmail = addr.toLowerCase();
	if( rgExp.exec(strEmail) != null ) return false;

	var ndx = addr.indexOf( "@" );

	if (ndx < 1) return false;
	else
	{		
		var host = addr.substring(ndx+1);
		ndx = host.indexOf("@");
		if (ndx != -1) return false;
		else
		{
			ndx = host.indexOf(".");
			if ( ndx < 1 ) return false;
			else return IsValidDomain(host.substring(ndx+1,host.length));
		}
	}
}
function IsValidEmail( email, bMult )
{
	if ( bMult == true ) 
	{
		var ndx;
		while ((ndx=email.indexOf(';')) >= 0)
		{
			var addr = email.substring(0,ndx);
			if(addr.length > 0 && !IsValidAddress(addr))return false;
			email = email.substring(ndx+1);
		}
		return IsValidAddress(email);
	}
	else return IsValidAddress(email);
}

function ZipCheck(obj) {
	var location=0,newString="",output="",OrigString=document.forms[0].elements[obj].value; 

	location = OrigString.indexOf("-"); 
	if (location >= 0) { 
		newString = OrigString.slice(0,location) + OrigString.slice(location + 1); 
	} else { 
		newString = OrigString; 
	}
 
	if (newString.length == 5 && !isNaN(newString)) { 
		//output = newString + "-0000";
		output = newString
	}
 
	if (newString.length == 9 && !isNaN(newString)) { 
		output = newString.slice(0,5) + "-" + newString.slice(5); 
	}
	
	if (output.length > 0) { 
		document.forms[0].elements[obj].value = output; 
	} else { 
		alert ("Invalid Data. Please enter a valid ZIP code.");
		document.forms[0].elements[obj].select(); 
		return false;
	}
	return true;
}

function PhoneCheck(phoneid)
{
	if (document.forms[0].elements[phoneid].value != "")
	{
		var rg = /[(]?\d{3}[)]?[\s|\-]?\d{3}[\s|\-]?\d{4}$/;
		
		if( !rg.test(document.forms[0].elements[phoneid].value) )
		{
			alert ("Invalid Data. Please enter a valid Phone Number.");
			document.forms[0].elements[phoneid].select(); 
			return false;
		}
	}
	return true;
}

function NumCheck(numinputid)
{
	if (document.forms[0].elements[numinputid].value != "")
	{
		var rg = /^[\d\,\.]+$/;
		
		//alert(document.forms[0].elements[numinputid].value + "->" + rg.test(document.forms[0].elements[numinputid].value));
		
		if( !rg.test(document.forms[0].elements[numinputid].value) )
		{
			alert ("Invalid Data. Please enter a valid Number.");
			document.forms[0].elements[numinputid].select(); 
			return false;
		}
	}
	return true;
}

function StateCheck(stateid)
{
	if (document.forms[0].elements[stateid].value != "")
	{
		var arrStates = new Array("AL","ALABAMA",
							"AK","ALASKA",
							"AS","AMERICAN SAMOA",
							"AZ","ARIZONA",
							"AR","ARKANSAS",
							"CA","CALIFORNIA",
							"CO","COLORADO",
							"CT","CONNECTICUT",
							"DE","DELAWARE",
							"DC","DISTRICT OF COLUMBIA",
							"FM","FEDERATED STATES OF MICRONESIA",
							"FL","FLORIDA",
							"GA","GEORGIA",
							"GU","GUAM",
							"HI","HAWAII",
							"ID","IDAHO",
							"IL","ILLINOIS",
							"IN","INDIANA",
							"IA","IOWA",
							"KS","KANSAS",
							"KY","KENTUCKY",
							"LA","LOUISIANA",
							"ME","MAINE",
							"MH","MARSHALL ISLANDS",
							"MD","MARYLAND",
							"MA","MASSACHUSETTS",
							"MI","MICHIGAN",
							"MN","MINNESOTA",
							"MS","MISSISSIPPI",
							"MO","MISSOURI",
							"MT","MONTANA",
							"NE","NEBRASKA",
							"NV","NEVADA",
							"NH","NEW HAMPSHIRE",
							"NJ","NEW JERSEY",
							"NM","NEW MEXICO",
							"NY","NEW YORK",
							"NC","NORTH CAROLINA",
							"ND","NORTH DAKOTA",
							"MP","NORTHERN MARIANA ISLANDS",
							"OH","OHIO",
							"OK","OKLAHOMA",
							"OR","OREGON",
							"PW","PALAU",
							"PA","PENNSYLVANIA",
							"PR","PUERTO RICO",
							"RI","RHODE ISLAND",
							"SC","SOUTH CAROLINA",
							"SD","SOUTH DAKOTA",
							"TN","TENNESSEE",
							"TX","TEXAS",
							"UT","UTAH",
							"VT","VERMONT",
							"VI","VIRGIN ISLANDS",
							"VA","VIRGINIA",
							"WA","WASHINGTON",
							"WV","WEST VIRGINIA",
							"WI","WISCONSIN",
							"WY","WYOMING");
		for (var i=0; i<=arrStates.length -1; i++)
		{
			if (document.forms[0].elements[stateid].value.toLowerCase() == arrStates[i].toLowerCase())
			{
				return true;
			}
		}

		document.forms[0].elements[stateid].select();
		alert ("Invalid Data! Please enter a valid State.");
		return false;
	}
	
}

function CurrencyCheck(obj, objName)
{
	if (document.forms[0].elements[obj].value != "")
	{
		var rg = /^[\$]?[\d\,\.]+$/;
		
		if( !rg.test(document.forms[0].elements[obj].value) )
		{
			alert ("Invalid Data. Please enter a valid " + objName + ".");
			document.forms[0].elements[obj].select(); 
			return false;
		}
	}
	return true;
}

function DateCheck(obj)
{
	var strDateString = document.forms[0].elements[obj].value
	var firstLocation=0, secondLocation=0, FinalString=""; 
	var strDay="", strMonth="", strYear="", error=false, strlength=0; 
	var newYear = new Date(); 
	if (strDateString.indexOf("/") >= 0) 
	{ 
		firstLocation = strDateString.indexOf("/"); 
		strMonth = strDateString.slice(0,firstLocation); 
		strDateString = strDateString.slice(firstLocation + 1); 
		if (strDateString.indexOf("/") >= 0) 
		{ 
			secondLocation = strDateString.indexOf("/"); 
			strDay = strDateString.slice(0,secondLocation); 
			strYear = strDateString.slice(secondLocation + 1); 
		} 
		else 
		{ 
			error = true; 
		} 
	} 
	else 
	{ 
		if (!strYear && !strDay && ! strMonth) 
		{ 
			error = true; 
		} 
	} 
	if (strMonth > 12 || strMonth <= 0 || strDay > 31 || strDay <= 0 || strYear <= 0 || strYear.length != 4 || strYear < 1890 || strYear > 2999) 
	{ 
		error = true; 
	} 
	if (strMonth == 2  && strDay > 29 ) 
	{ //february can't have more than 29 days
		error = true; 
	} 
	if ((strMonth == 4 || strMonth == 6 || strMonth == 9 || strMonth == 11) && strDay > 30 ) 
	{ // april, june, sept, nov can't have more than 30 days
		error = true; 
	} 
	if (isNaN(strMonth) || isNaN(strDay) || isNaN(strYear)) 
	{ 
		error = true; 
	} 
	if (error) 	{ 
		
		document.forms[0].elements[obj].select();
		strValidationFailureMessage = "Invalid Data! Please enter a valid date in mm/dd/yyyy format."; 
		alert (strValidationFailureMessage);
		return false;
	}
	return true;

}

function Rcertify() 
{
popupWin = window.open('http://www.bbbonline.org/cks.asp?id=103072114515733930', 'Participant','location=yes,scrollbars=yes,width=450,height=300'); 
window.name = 'opener';
}

function LoadPopupHoldOn(PopupEnabled) 
{
	if (PopupEnabled) {
		Popup('HoldOn.aspx','winDontStop','343','365','yes');
	}
}
    
function popupWindow(url) 
{
    window.open(url, 'HouseValues', 'dependent=yes,width=400,height=600,scrollbars=yes,resizable=yes');
}
