function changeA()
{
document.getElementById('a').style.display="";
document.getElementById('b').style.display="none";
document.getElementById('c').style.display="none";
document.getElementById('d').style.display="none";
}
function changeB()
{
document.getElementById('a').style.display="none";
document.getElementById('b').style.display="";
document.getElementById('c').style.display="none";
document.getElementById('d').style.display="none";
}

function changeC()
{
document.getElementById('a').style.display="none";
document.getElementById('b').style.display="none";
document.getElementById('c').style.display="";
document.getElementById('d').style.display="none";
}
function changeD()
{
document.getElementById('a').style.display="none";
document.getElementById('b').style.display="none";
document.getElementById('c').style.display="none";
document.getElementById('d').style.display="";
}

function clickbutton(idno,name){
document.getElementById('a').style.display="none";
document.getElementById('b').style.display="none";
document.getElementById('c').style.display="none";
document.getElementById('d').style.display="none";

document.getElementById(idno).style.display="";

document.getElementById("button1").className = "on"
document.getElementById("button2").className = "on"
document.getElementById("button3").className = "on"
document.getElementById("button4").className = "on"
document.getElementById(name).className = "off"

}

function swapimg(idno,maxno) {
	var imgids =new Array();
	var idname="";
	for(i=1; i<=maxno; i++){imgids[i]="a" + i;}
	var maxlen=imgids.length-1;
	
	for(i=1; i<=maxlen; i++){
		var idname = imgids[i];
		if (idno==idname) document.getElementById(idno).style.display="";
		else document.getElementById(idname).style.display="none";	

	}
               
}

function swapimgb(idno,maxno,listno) {
	var imgids =new Array();
	maxno=maxno+1;
	var idname="";
	for(i=1; i<maxno; i++){imgids[i]="a" + listno + i;}

	var maxlen=imgids.length;
	for(i=1; i<maxlen; i++){
		 var idname = imgids[i];
		 if (idno==idname) document.getElementById(idno).style.display="";
		 else document.getElementById(idname).style.display="none";

	}

}

function swap(n, label)
{
	var vis1 = 'none';
	var vis2 = 'none';
	var vis3 = 'none';

	if(n == 1) vis1 = 'inline';
	if(n == 2) vis2 = 'inline';
	if(n == 3) vis3 = 'inline';

	document.getElementById('swap1').style.display = vis1;
	document.getElementById('swap2').style.display = vis2;
	document.getElementById('swap3').style.display = vis3;
	
	// put appropriate label
	document.getElementById('criteria_label').innerHTML = label;

}
function populateCriteria()
{
	var limit = 10;
	var limit_text = '<br/><span style="color:red">Limit of '+limit+'!</span><br/>';

	var cities = document.getElementById('cities');
	var schools = document.getElementById('schools');
	var counties = document.getElementById('counties');
	var metros = document.getElementById('metros');

	var cities_length = cities.options.length;
	var counties_length = counties.options.length;
	var schools_length = schools.options.length;
	var metros_length = metros.options.length;	

	var output1 = '';
	var output2 = '';
	var output3 = '';
	var output4 = '';
	var output1n = 0;
	var output2n = 0;
	var output3n = 0;
	var output4n = 0;	

	output1 += '<strong>Cities:</strong><br/><br/>';
	output2 += '<strong>Counties:</strong><br/><br/>';
	output3 += '<strong>Schools:</strong><br/><br/>';
	output4 += '<strong>Metros:</strong><br/><br/>';	

	for (i = 0; i < cities_length; i++)
	{
		if(cities.options[i].selected && output1n < limit)
		{
			output1 += cities.options[i].value+'<br/>';
			output1n++;
		}
	}
	for (i = 0; i < counties_length; i++)
	{
		if(counties.options[i].selected && output2n < limit)
		{
			output2 += counties.options[i].value+'<br/>';
			output2n++;
		}
	}
	for (i = 0; i < schools_length; i++)
	{
		if(schools.options[i].selected && output3n < limit)
		{
			output3 += schools.options[i].value+'<br/>';
			output3n++;
		}
	}
	for (i = 0; i < metros_length; i++)
	{
		if(metros.options[i].selected && output4n < limit)
		{
			output4 += metros.options[i].value+'<br/>';
			output4n++;
		}
	}	

	if(output1n >= limit) output1 += limit_text;
	if(output2n >= limit) output2 += limit_text;
	if(output3n >= limit) output3 += limit_text;
	if(output4n >= limit) output4 += limit_text;	

	if(output1n == 0) output1 += 'None selected<br/>';
	if(output2n == 0) output2 += 'None selected<br/>';
	if(output3n == 0) output3 += 'None selected<br/>';
	if(output4n == 0) output4 += 'None selected<br/>';
	
	document.getElementById('criteria1').innerHTML = output1;
	document.getElementById('criteria2').innerHTML = output2;
	document.getElementById('criteria3').innerHTML = output3;
	document.getElementById('criteria4').innerHTML = output4;	
}

function clickbutton(name){
	document.getElementById("button1").className = "on"
	document.getElementById("button2").className = "on"
	document.getElementById("button3").className = "on"
	document.getElementById("button4").className = "on"
	if(document.getElementById("button5")){
		document.getElementById("button5").className = "on"
	}
	document.getElementById(name).className = "off"
}

function checkAllowedFile(file){
	var badFiles = new Array("exe", "com", "vbs", "shtm", "shtml", "bat", "cmd", "hta", "htaccess", "bak", "log", "reg", "tmp", "inf", "ocx", "ax", "bin", "chm", "drv","msc", "nt", "scr", "sys", "sig", "vxd", "msi", "wsh", "wmf", "asf", "MPEG", "mpg", "avi", "wma", "cda", "wpl", "rar", "ra", "rm","eml", "dbx", "idx", "ndx", "pst", "ost", "nfo", "trc", "rnd", "vir","nav", "def", "ex_", "pif", "cab", "sh", "h", "cer", "pfx", "key", "cpp","c", "dbf", "vba", "pas", "bas", "tcl", "cob", "svc", "ade", "adp", "cpl","crt", "hlp", "ins", "isp", "jse", "lnk", "mde", "msp", "mst", "pcd","sct", "shs", "url", "vbe", "wsf","wsc");
	var ext = file.substring(file.lastIndexOf(".") + 1).toLowerCase();
	for(i=0; i < badFiles.length; i++){
		if(badFiles[i] == ext){
			alert("This file is not allowed to be uploaded on our servers - " + "\n FILE : " + file);
			return false;
		}
	}
	return true;
}


function checkJPGFile(file, message){
	var ext = file.substring(file.lastIndexOf(".") + 1).toLowerCase();
	if("jpg" == ext || "jpeg" == ext){
		return true;
	}
	else{
		alert(message + "\n FILE : " + file);
		return false;
	}	
}

function checkFile(file, message){
	var ext = file.substring(file.lastIndexOf(".") + 1).toLowerCase();
	if("jpg" == ext || "jpeg" == ext || "gif" == ext || "png" == ext){
		return true;
	}
	else{
		alert(message + "\n FILE : " + file);
		return false;
	}
}


/*
	SEARCH FUNCTIONS
*/

	
	// number allowed selected
	var maxItems = 10;
	
	var types = new Array('city', 'county', 'schoolDistrict', 'metro', 'featCity');
	
	function showTab(type)
	{
		var vis1 = 'none';
		var vis2 = 'none';
		var vis3 = 'none';
		var vis4 ='none';
		var vis5 ='none';
		
	
		if(type == 'city') vis1 = 'block';
		if(type == 'county') vis2 = 'block';
		if(type == 'schoolDistrict') vis3 = 'block';
		if(type == 'metro') vis4 = 'block';
		if(type == 'featCity') vis4 = 'block';

		document.getElementById('tabCity').style.display = vis1;
		document.getElementById('tabCounty').style.display = vis2;
		document.getElementById('tabSchoolDistrict').style.display = vis3;
		document.getElementById('tabmetro').style.display = vis4;		
		document.getElementById('tabFeatCity').style.display = vis5;		
		
		// empty the menus, only current vis menu can be used
		empty_menus();
	}
	
	
	function empty_menus()
	{
		var typesLen = types.length;
		var oSelectedMenu;
		
		// loop types
		for(i = 0; i < typesLen; i++)
		{
			oSelectedMenu = document.getElementById(types[i] + 'Selected');
			
			// loop and remove options
			while(oSelectedMenu.options.length > 0)
				oSelectedMenu.options[0] = null;
			add_none_selected(oSelectedMenu);
		}
	}
	
	/*
	
		add:
		using the selectedIndex (faster than looping all options), add selected's over to "selected" 
		menu if not already in there.
		check for limit all the while.
		
		remove:
		just remove selected.  gets tricky with changing menu.options length as we delete options.
		
		don't alert an error when they hit ten exactly, alert if they go past.
		
	*/
	function addItem(type)
	{
		var oMainMenu = document.getElementById(type + 'List');
		var oSelectedMenu = document.getElementById(type + 'Selected');
		

		if(tenItemsAreSelected(oSelectedMenu) )
			return false;
		
		// get rid of "none selected"?
		if(oSelectedMenu.options.length > 0 && oSelectedMenu.options[0].text == "None selected"){
			oSelectedMenu.options[0] = null;
		}
		//alert(oMainMenu.selectedIndex);
		oMainMenu.focus();
		
		//alert("Why the hell you're not working????");
		//alert(oMainMenu.options[oMainMenu.selectedIndex].text);
		var oCurrOption = oMainMenu.options[oMainMenu.selectedIndex];
		
		if(optionIsInMenu(oCurrOption, oSelectedMenu))
		{
			oMainMenu.options[oMainMenu.selectedIndex].selected = false;
			return false;
		}
		
		// add it
		oSelectedMenu.options[oSelectedMenu.length] = new Option(oCurrOption.text, oCurrOption.value, false, false);
		//if(oSelectedMenu.length > 0){
			//oSelectedMenu.options[oSelectedMenu.length-1] = true;
		//}
		putValues(type);
		return true;
	}
	
	
	function putValues(type){
		//alert("Here : " + type);
			
			//empty all those fields first 
		var cityField = document.getElementById('cityParam');
		cityField.value = "";
		var countyField = document.getElementById('countyParam');
		countyField.value = "";
		var schdistField = document.getElementById('schoolDistrictParam');
		schdistField.value = "";
		var metroField = document.getElementById('metroParam');
		metroField.value = "";
		var featCityField = document.getElementById('featCityParam');
		featCityField.value = "";
		
		var list_values = "";
		var oSelectedMenu = document.getElementById(type + 'Selected');
		
		for(i=0; i < oSelectedMenu.length; i++){
			if("-1" != oSelectedMenu.options[i].value){
				list_values = list_values + oSelectedMenu.options[i].value;
			}
			if(i + 1 < oSelectedMenu.length){
				list_values  = list_values + "," ;
			}
		}
		var theParam = document.getElementById(type + 'Param');
		theParam.value = list_values;
		//alert(type + " - " + list_values);
	}
	
	
	function removeItems(type)
	{
		var oSelectedMenu = document.getElementById(type + 'Selected');
		var len = oSelectedMenu.length;
		var oCurrOption;
		
		if(oSelectedMenu.selectedIndex == -1)
		{
			alert('You need to select something from the right menu to remove.');
			return false;
		}
		
		// check length every time because it may change
		while(oSelectedMenu.selectedIndex != -1)
			oSelectedMenu.options[oSelectedMenu.selectedIndex] = null;
		
		if(oSelectedMenu.length == 0)
			add_none_selected(oSelectedMenu);
		
		putValues(type)
		return true;
	}
	
	
	
	function add_none_selected(oMenu)
	{
		oMenu.options[0] = new Option('None selected', '-1')
	}
	
	
	
	function tenItemsAreSelected(oMenu)
	{

		if(oMenu.length >= maxItems)
		{
			limitAlert();
			return true;
		}
		return false;
	}
	
	
	function limitAlert()
	{
		alert('You can only select 10 locations.');
	}
	
	
	function optionIsInMenu(oOption, oMenu)
	{
		// loop through all and look for same value
		var len = oMenu.length;
		
		for(h = 0; h < len; h++)
		{
			if(oMenu.options[h].value == oOption.value)
				return true;
		}
		return false;
	}
	function delspace(feild){
	var thisval=feild.value;
	var re = / /g;
	thisval=thisval.replace(re,"");
	feild.value=thisval;
}

function isDigit(c)	{
	if ((c >= '0') && (c <= '9')) 
	return true;
	return false;
}

function isChar(c)	{
	if ((c >= 'a') && (c <= 'z'))
	return true;
	if ((c >= 'A') && (c <= 'Z'))
	return true;
	return false;
}

function isNumber(s)	{
	for (var i = 0; i < s.length; i++){
	var onechar=s.charAt(i);
		if (onechar < "0" || onechar > "9")
		return false		
	}
	return true;
}

function isEmpty(str) {
	return ((str == null) || (str == ""));
}



function selectitem(field){
		if (field.selectedIndex) return false;
		return true;

}

function validate(f){
    var err = "";
    var focus = "";

	   if (isEmpty(document.getElementById('title').value)){
        if (isEmpty(err))
            focus="#title";
        err += "You must provide your Title.\n";};
	
    if (isEmpty(document.getElementById('first').value)){
        if (isEmpty(err))
            focus="#first";
        err += "You must provide your First Name.\n";};

    if (isEmpty(document.getElementById('last').value)){
        if (isEmpty(err))
            focus="#last";
        err += "You must provide your Last Name.\n";};
		
   if (isEmpty(document.getElementById('address1').value)){
        if (isEmpty(err))
            focus="#address1";
        err += "You must provide your Address.\n";};
				
   if (isEmpty(document.getElementById('city').value)){
        if (isEmpty(err))
            focus="#city";
        err += "You must provide the name of your city.\n";};	
		
   if (isEmpty(document.getElementById('state').value)){
        if (isEmpty(err))
            focus="#state";
        err += "You must provide your State.\n";};	
				
   if (isNumber(document.getElementById('zip').value)){
        if (isEmpty(err))
            focus="#zip";
        err += "You must provide your zip.\n";};
		
   if (isNumber(document.getElementById('zipPlusFour').value)){
        if (isEmpty(err))
            focus="#zipplusfour";
        err += "You must provide your Zip+Four.\n";};					
	
	if (isEmpty(document.getElementById('email').value)){
        if (isEmpty(err))
            focus="#email";
        	err += "You must provide your email address.\n";
    }
    else {
	        tempstring = document.getElementById('email').value;
        	if ((tempstring.indexOf('@') == -1 ) || (tempstring.indexOf('.') == -1 )){
    	      err += "Ensure that your email address is valid.\n";
        	  focus="#email";
    	   	}
   	};		

		
	
    // check if any errors have been generated, if so display alert

    if (err != "") {
        var msg = "The form was not submitted.\n";
        msg += "Please fill in all required fields and resubmit. Thank you.\n\n" + err;
        alert(msg);
        return false;
    }
    // all checks validated, allow form to be submitted
    return true;
}

/**
to get parameter passed to HTML file from JS 

**/

function getParam(param)
{
	var paramValue = "";
	var queryString = self.location.search;
	param += "=";
	var arr = queryString.split(param);
	if(arr.length > 1)
	{
		var arr1 = arr[1].split("&");
		spaceRegEx = /\+/g;
		paramValue = unescape(arr1[0].replace(spaceRegEx, " "));
	}
	//alert(paramValue);
	return paramValue; //contains value of the parameter passed as "param"
}


// code for poping up small browser windows.

var msgwin = null;
var winwide = screen.availWidth;

function open_window(URL,wt,ht) {
	msgwin=window.open(URL,"NewWindow","toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width="+ wt +",height="+ ht +",top=200,left=250")
}
function shutIt() {
	if (msgwin != null && msgwin.open) msgwin.close();
}
	window.onfocus=shutIt;

function rollme(imgname,tagid) {
    var imgsrc = document.images[imgname].src;
    var base = imgsrc.substring(0, imgsrc.indexOf("_"));
                               
    if (imgsrc.indexOf("two") > 0) {
        base += "_one";
    } else {
        base += "_two";
    };
    base += ".gif";
    document.images[imgname].src = base;
    if( document.getElementById(tagid).style.display == "none" ) {
        document.getElementById(tagid).style.display = "";
    } else {
        document.getElementById(tagid).style.display = "none";
    }
}


//******************************** some common library functions using prototype etc. OO JavaScript

// array prototype function

Array.prototype.getElementIndex = function(element){
	for(var i = 0; i < this.length; i++){
		if(this[i] == element){
			return i;	
		}
	}
	return -1; //element not found

}

Array.prototype.contains = function(element){
	for(var i = 0; i < this.length; i++){
		if(this[i] == element){
			return true;	
		}
	}
	return false; //element not found

}
 
function getOptionIndex(objSelect, optionValue){
	for(var i = 0; i < objSelect.length; i++){
		if(objSelect.options[i].value == optionValue){
			return i;
		}
	}
	return -1; //option value not found
}

function selectOptionForValue(objSelect, optionValue){
	for(var i = 0; i < objSelect.length; i++){
		if(objSelect.options[i].value == optionValue){
			objSelect.selectedIndex = i;
			break;
		}
	}
}

/* 
 ****************** Some smart JS/DOM/DHTML work to avoid hitting "Submit" twice, based on google login foms ****************** 
*/

function submitClicked(theElement){
	theElement.style.display='none';

	var msg = document.createElement("div");
	msg.setAttribute("style", "background-color:#FFFFCC;padding:50px;border:1px dotted #666666");
	msg.appendChild(document.createTextNode("Processing..."));

	var parent = theElement.parentNode;
	parent.insertBefore(msg,theElement);
	
	return true;
}

/*
function selectOptionForValueMulti(objSelect, selectedValuesArray){
	for(var x = 0; x < objSelect.length; x++){
		if(selectedValuesArray.contains(objSelect.options[x].value)){
			objSelect.options[x].selected = true;
		}
	}
}
*/

function selectOptionForValueMulti(objSelect, selectedValuesArray){
	for(var k=0; k < selectedValuesArray.length;k++){
		for(var i = 0; i < objSelect.length; i++){
			if(objSelect.options[i].value == selectedValuesArray[k]){
				objSelect.options[i].selected = true;
				break;
			}
		}
	}
}


//************ IE doesn't support this

/**
HTMLSelectElement.prototype.selectOptionForValue = function(optionValue){
	for(var i = 0; i < this.length; i++){
		if(this.options[i].value == optionValue){
			this.selectedIndex = i;
			break;
		}
	}
}


HTMLSelectElement.prototype.getOptionIndex = function(optionValue){
	for(var i = 0; i < this.length; i++){
		if(this.options[i].value == optionValue){
			return i;
		}
	}
	return -1; //option value not found
}
*/

//*********************** this is for clearing the search form

function clearSearchForm(){
	var cityField = document.getElementById('cityParam');
	if(null != cityField.value && "" != cityField.value){
		cityField.value = "";
		emptyList('citySelected');	
	}
	var countyField = document.getElementById('countyParam');
	if(null != countyField.value && "" != countyField.value){
		countyField.value = "";
		emptyList('countySelected');	
	}
	var schdistField = document.getElementById('schoolDistrictParam');
	if(null != schdistField.value && "" != schdistField.value){
		schdistField.value = "";
		emptyList('schoolDistrictSelected');	
	}
	var metroField = document.getElementById('metroParam');
	if(null != metroField.value && "" != metroField.value){
		metroField.value = "";
		emptyList('metroSelected');	
	}	
	var featCityField = document.getElementById('featCityParam');
	if(null != featCityField.value && "" != featCityField.value){
		featCityField.value = "";
		emptyList('featCitySelected');	
	}
}

function emptyList(theElementId){
oSelectedMenu = document.getElementById(theElementId);

// loop and remove options
while(oSelectedMenu.options.length > 0)
	oSelectedMenu.options[0] = null;
add_none_selected(oSelectedMenu);
}


function isValidEmail(email){
	var emailPattern = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/;
	return emailPattern.test(email);
}

function isValidUSPhone(phone){
	//eg ==> 612-925-5900
	var phonePattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
	return phonePattern.test(phone);
}

function openWindowNoClose(URL,wt,ht) {
	window.open(URL,"PopUp","toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width="+ wt +",height="+ ht +",top=200,left=250")
}