/* this is used with the multiple language option
 * where different languages are in a (.NET) DropDownList
 */
function go(ddlThis)
{
	if (ddlThis.selectedIndex > 0)
	{
		location = ddlThis.options[ddlThis.selectedIndex].value;
	}
}

function doSearch(inID)
{
	var inThis = document.getElementById(inID);
	var regEx = /^[A-Za-z0-9#$&*()_ \.,-]*$/;
	
	if (inThis.value != "" && inThis.value.match(regEx))
	{
		window.location = "/DFPLSurplus1.aspx?search="+inThis.value.replace(/ /g,"+");
	}
	else
	{
		if (!inThis.value.match(regEx))
		{
			alert("Only alpha-numeric characters are allowed in search. Please try again.");
		}
		else
		{
			alert("You didn't enter anything in the search box.");
		}
		
		inThis.focus();
		inThis.select();
	}
}

function doSearchRedirect(inID)
{
	var inThis = document.getElementById(inID);
	var regEx = /^[A-Za-z0-9#$&*()_ \.,-]*$/;
	
	if (inThis.value != "" && inThis.value.match(regEx))
	{
		window.location = "/DFPLSurplus1.aspx?search="+inThis.value.replace(/ /g,"+");//escape(inThis.value);
	}
	else
	{
		if (!inThis.value.match(regEx))
		{
			alert("Only alpha-numeric characters are allowed in search. Please try again.");
		}
		else
		{
			if (confirm("You didn't enter anything in the search box. Do you wish to go directly to the DFPL Surplus page?"))
			{
				window.location = "/DFPLSurplus1.aspx";
			}
		}
		
		inThis.focus();
		inThis.select();
	}
}

function formatPhone(strID)
{
	var txtThis = document.getElementById(strID);
	var regEx = /^[\(]?(\d{3})([\) \.-]?)+(\d{3})([ \.-]?)+(\d{4})$/
	
	if (txtThis.value.match(regEx))
		txtThis.value = txtThis.value.replace(regEx, "$1-$3-$5");
}

function openPopup(popupName)
{
	window.open("http://www.sbmac.com/popup_"+popupName+".aspx","popup_"+popupName,'width=580,height=500,resizable,scrollbars');
}

function preFormatPhone()
{
	var argv = arguments;
	var argc = argv.length;
	
	if (argc > 0)
		for (i = 0; i < argc; i++)
			formatPhone(argv[i]);
}

function processEvents(e, inID)
{
	var ns = window.Event? true : false;
	
	if (ns) // Navigator 4.0x
		var whichCode = e.which
	else // Internet Explorer 4.0x
		if (e.type == "keypress") // the user entered a character
			var whichCode = e.keyCode
		
	if (whichCode == "13")
		doSearchRedirect(inID);
}

function showUnwired()
{
	alert("This feature is not complete yet. Please come back later and try again.");
}

function togglePrivacyStatement()
{
	var spanThis = document.getElementById("showHide");
	var divThis = document.getElementById("privacyStatement");
	
	if (divThis.style.display == "none")
	{
		spanThis.innerHTML = "Hide Privacy Statement";
		divThis.style.display = "block";
	}
	else
	{
		spanThis.innerHTML = "Show Privacy Statement";
		divThis.style.display = "none";
	}
}

function trim(txtFieldValue)
{
	return txtFieldValue.replace(/^[ \r\n\t]*|[ \r\n\t]*$/g, "");
}

function validateCheckBoxCount(strID, intIndex, strHidden)
{
	var hidValidated = document.getElementById(strHidden);
	var cblThis = document.getElementById(strID);
	var cbAll = cblThis.getElementsByTagName("input");
	var i = 0;
	var j = 0;

	for (i = 0; i < cbAll.length - 1; i++)
		if (cbAll[i].checked)
			j++;
	
	if (j > 0)
		hidValidated.value = "1";
	else
		hidValidated.value = "";

	if (j > 10)
	{
		cbAll[intIndex].checked = false;
		alert("You may only select up to 10 equipment types.");
	}
}

function validateAddressSet()
{
	var argv = arguments;
	var intFilled = 0;
	var aryRequired = new Array(0, 1, 0, 1, 1, 1, 1);
	var aryTextFields = new Array(7);
	
	for (i = 0; i < argv.length; i++)
	{
		aryTextFields[i] = document.getElementById(argv[i]);	// assignment just saves a little typing
		aryTextFields[i].value = trim(aryTextFields[i].value);	// get rid of leading/trailing spaces
		
		if (i > 0)
		{
			// if aryTextFields[i] is required and it's not empty
			if (aryRequired[i] > 0 && aryTextFields[i].value != "")
				intFilled++;
			
			// if Address 2 is filled, but Address 1 isn't,
			// fill Address 1 first.
			if (i == 2 && aryTextFields[2].value != "" && aryTextFields[1].value == "")
			{
				aryTextFields[1].value = aryTextFields[2].value;
				aryTextFields[2].value = "";
				intFilled++;
			}
		}
	}
	
	// if no or all address fields are filled, then it's ok
	if (intFilled == 0 || intFilled == 5)
		aryTextFields[0].value = "1";
	// otherwise, it's not
	else
		aryTextFields[0].value = "";
}

function validateUrl(source, args)
{
	var strValue = args.Value.toLowerCase();
	var regEx = /^(http(s)?:\/\/)?(([w]{3}\.)?(\w[\w_-]+\.)+([A-Za-z]{2,4})|(\d{1,3}\.){3}\d{1,3})(\/?|(\/[\w\._~-]+)+([\?][^\?\&]+[=][^\?\&]+([\&][^\?\&]+[=][^\?\&]+)?)?\/?)?$/
	
	args.IsValid = strValue.match(regEx);
}

/* DART map-related functions */
var boolLocked = false;
var strCurrent = "";

/* The state of the page is unlocked by default.
 * - lockDiv() will toggle that state;
 * - appDiv() will change the map to reflect the proper highlighted region;
 * - disDiv() will restore the map to its original state;
 * - appKey() will change the map to reflect the proper highlighted region;
 * - disKey() will restore the map to its original state;
 *
 * If boolLocked == true, 
 * - the regional detail information will remain on the screen
 * - appDiv() and disDiv() will not change any states or images
 */
function lockDiv(id)
{
	var boolOldState = boolLocked;
	var divLock = document.getElementById("divLock");
	
	if (boolLocked) {
		boolLocked = false;
		appDiv(id);
	}
	
	boolLocked = !boolOldState;
	strCurrent = id;
	
	if (boolLocked)
	{
		divLock.innerHTML = "Click region to unlock info.";
		divLock.style.background = "url(/images/lock.gif) top left no-repeat";
	}
	else
	{
		divLock.innerHTML = "Click region to lock info.";
		divLock.style.background = "url(/images/unlock.gif) top left no-repeat";
	}
}

function appDiv(id)
{
	if (!boolLocked)
	{
		if (strCurrent != "" && id != strCurrent)
		{
			document.getElementById(strCurrent).style.display = "none";
		}
		
		document.getElementById("infoKey").style.display = "none";
		document.getElementById("overInfo").style.display = "block";
		document.getElementById("divLock").style.display = "block";
		document.getElementById(id).style.display = "block";
		document.getElementById("divMapArea").style.background = "url(/images/region_"+id+".jpg)";
		
		strCurrent = id;
	}
}

function disDiv(id)
{
	if (!boolLocked)
	{
		document.getElementById("overInfo").style.display = "none";
		document.getElementById("divLock").style.display = "none";
		document.getElementById(id).style.display = "none";
		document.getElementById("infoKey").style.display = "inline";
		document.getElementById("divMapArea").style.background = "url(/images/regional_map.jpg)";
	}
}

/* appKey() and disKey() may not be used any longer.*/
function appKey(id)
{
	document.getElementById("divMapArea").style.background = "url(/images/region_"+id+".jpg)";
}

function disKey(id)
{
	document.getElementById("divMapArea").style.background = "url(/images/regional_map.jpg)";
}

/* Macromedia image-swap functionality - Do not change this section */
function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr;
  
	for (i=0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
		x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document;
  
	if (d.images) {
		if (!d.MM_p)
			d.MM_p = new Array();
			
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		
		for (i = 0; i < a.length; i++)
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_findObj(n, d) { //v4.01
	var p, i, x;
  
	if (!d)
		d=document;
  	
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}

	if (!(x = d[n]) && d.all)
		x=d.all[n];
		
	for (i = 0;!x && i < d.forms.length; i++)
		x = d.forms[i][n];
	
	for (i = 0;!x && d.layers && i < d.layers.length;i++)
		x = MM_findObj(n,d.layers[i].document);
	
	if (!x && d.getElementById)
		x = d.getElementById(n);
	
	return x;
}

function MM_swapImage() { //v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
  
	document.MM_sr = new Array;
	
	for (i = 0; i < (a.length-2); i += 3)
		if ((x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			
			if (!x.oSrc)
				x.oSrc = x.src;
				
			x.src = a[i+2];
		}
}
/* End Macromedia section */