
var pcfmt = /^[A-Z]\d[A-Z]\W*\d[A-Z]\d$/;
var zipfmt = /^\d\d\d\d\d$/;

function initCountry()
{
  var co = element("country");
  var idx = co.selectedIndex;
  selectedCountry = co.options[idx].value;
  
  updateCBs();
  updateStates();
}

function changeCountry()
{
  initCountry();
  resetCBs();
}

function getCountry()
{
  var co = element("country");
  var idx = co.selectedIndex;
  return co.options[idx].value;
}

function updateCBs()
{
	var selectedCountry = getCountry();
	
	element("cbhws").style.display = ((selectedCountry == "CA") ? "none" : "block");
	element("cbtst").style.display = ((selectedCountry != "CA") ? "none" : "block");
	element("cbbc").style.display = ((selectedCountry != "CA") ? "none" : "block");
	element("cbnatacc").style.display = ((selectedCountry == "CA") ? "none" : "block");
}


function resetCBs()
{
	element("atsCkb").checked = true;

	element("ssCkb").checked = false;
	element("isdCkb").checked = false;
	element("auraCkb").checked = false;
	element("benCkb").checked = false;
	element("naturaCkb").checked = false;
	element("hwsCkb").checked = false;
	element("tstCkb").checked = false;
	element("bcCkb").checked = false;
	element("nataccCkb").checked = false;
}

function updateStates()
{
	var selectedCountry = getCountry();
	var st = element("state");
	st.disabled = (selectedCountry == "PR");
	var vals = ((selectedCountry == "CA") ? ca.states : us.states);
	var prev = element("prevState").value;

	st.selectedIndex = 0;
	st.options.length = vals.length + 1;
	st.options[0].value = "";
	st.options[0].text = selectMsg;
	for (var idx = 0; idx < vals.length; idx++)
	{
		st.options[idx+1].value = vals[idx].code;
		st.options[idx+1].text = vals[idx].name;
		if (vals[idx].code == prev)
		{
			st.selectedIndex = idx + 1;
		}
	}
}


function trim(val)
{
	return val.replace(/^\s+|\s+$/, '');
}

function displayGlyphMsg(id, evt) 
{
  var pop = element(id);
  var osx = iecompattest().scrollLeft;
  var osy = iecompattest().scrollTop;
  var evx = evt.clientX;
  var evy = evt.clientY;
  var top = osy + evy + 10;

  pop.style.top = top + "px";
  pop.style.left = osx + evx + 5 + "px";
  pop.style.display = "block";
  
  return false;
}

function hideGlyphMsg(id) 
{
	element(id).style.display = "none";
}

function iecompattest()
{
  return (document.compatMode && document.compatMode.indexOf("CSS")!=-1) ?
  document.documentElement : document.body;
}


function allTypeChange() 
{
	if (element("atsCkb").checked)
	{
		resetCBs();	
	}
}


function serviceChange(serviceSelected) 
{
	if (serviceSelected)
	{
		element("atsCkb").checked = false;
	}
}

function setSearchType(type)
{
	element("searchType").value = type;
}

function submitSearch() 
{
	var type = element("searchType").value;
	var valid = submitCheck(type);
	
	if (valid)
	{
	  element("state").disabled = false;
	}
	return valid;
}

function anyChecked()
{
	return (element("ssCkb").checked ||
		element("isdCkb").checked ||
		element("auraCkb").checked ||
		element("benCkb").checked ||
		element("naturaCkb").checked ||
		element("nataccCkb").checked ||
		element("hwsCkb").checked ||
		element("tstCkb").checked ||
		element("bcCkb").checked);
}


function submitCheck(type)
{
	var valid = true;
	element("storetype_reqd").style.display = "none";	
	element("zip_reqd").style.display = "none";
	element("zip_invalid").style.display = "none";		
	element("addr_reqd").style.display = "none";
	element("no_store").style.display = "none";
	
	// at least one checked
	if(!element("atsCkb").checked && !anyChecked())
	{
		element("storetype_reqd").style.display = "list-item";
		valid = false;
	}

	// zip search
	if (type == "zip")
	{
		var zip = trim(element("zip").value).toUpperCase();
		if(zip == "")
		{
			element("zip_reqd").style.display = "list-item";
			element("zip").focus();
			valid = false;
		}
		else
		{
			// canada
			if (getCountry() == "CA" && !pcfmt.test(zip))
			{
				element("zip_invalid").style.display = "list-item";
				element("zip").focus();
				valid = false;
			}
	
			// usa
			if (getCountry() != "CA" && !zipfmt.test(zip))
			{
				element("zip_invalid").style.display = "list-item";
				element("zip").focus();
				valid = false;
			}
		}
	}
	// address
	else
	{
		if (getCountry() != "PR")
		{
			var state = trim(element("state").value);
			if(state == "")
			{
				element("addr_reqd").style.display = "list-item";
				element("state").focus();
				valid = false;
			}
		}

		var city = trim(element("city").value);
		if(city == "")
		{
			element("addr_reqd").style.display = "list-item";
			element("city").focus();
			valid = false;
		}
	}
	
	return valid;
}


// get element by id
function element(id)
{
	if (document.getElementById != null)
	{
		return document.getElementById(id);
	}
	if (document.all != null)
	{
		return document.all[id];
	}
	if (document.layers != null)
	{
		return document.layers[id];
	}
	return null;
}	
	