

var xmlhttp;

// global heightObjs for computed heights
var heightObjs = new Array();

// find computed height and set all to zero
function setHeight(objName)
{
	var obj = xspElem(objName);
	var height = xspGetStyle(obj, 'height');
	height = obj.offsetHeight;
  heightObjs[objName] = height;


	obj.style.height="0";
}

// hide calculate height and hide catalog form on load
xspManageEvent(window, "load", function()
{
  setHeight('catalogform');

});

function expand(item)
{

	var incr = heightObjs[item] / 20;
	for(var i=0; i<20; i++)
	{
		var val = (i+1) * incr;
		var func = "adjustItem("+val+", '"+item+"')";
		setTimeout(func,(i+1)*30);
	}
	
}


function setFocus(item)
{
  xspElem(item).focus();
}

function collapse(item)
{
  var decr = heightObjs[item] / 20;
  for(var i=0; i<20; i++)
  {
  	var val = heightObjs[item]-(decr*(i+1));
  	var func = "adjustItem("+val+", '"+item+"')";
  	setTimeout(func, (i+1)*30);
  }

}

function adjustItem(val, newItem)
{
	xspElem(newItem).style.height=val + "px";
}

function showCatalogForm()
{
  //xspElem("catalogform").style.visibility='visible';
  xspElem("catdetails").innerHTML = "Please enter your information below:";
	//xspElem("reqcatlink").style.visibility='hidden';
	expand("catalogform");
	setTimeout("xspElem('name_r').focus()", 1000);
}

function cancelCat()
{
	xspElem("name_r").value="";
	restoreBox("name_r");
	xspElem("nameval").innerHTML = "";
	xspElem("practice_r").value="";
	restoreBox("practice_r");
	xspElem("practiceval").innerHTML = "";
	xspElem("address_r").value="";
	restoreBox("address_r");
	xspElem("addressval").innerHTML = "";
	xspElem("city_r").value="";
	restoreBox("city_r");
	xspElem("cityval").innerHTML = "";
	xspElem("state_r").value="";
	restoreBox("state_r");
	xspElem("zip_r").value="";
	restoreBox("zip_r");
	xspElem("statezipval").innerHTML = "";
	collapse("catalogform");
	setTimeout("xspElem('reqcatlink').style.visibility='visible'", 1000);
	xspElem("catdetails").innerHTML = "<a href='#' id='reqcatlink' onclick='showCatalogForm(); return false'>Click here to request a catalog</a>";
}


function submitRequest()
{
  //alert("submitRequest");
	if(!xmlhttp) xmlhttp = xspGetXmlHttpRequest();
	if(!xmlhttp) return;
	var dirtyname = xspElem("name_r").value;
	var name = dirtyname.split("'").join("\'");
	var dirtypractice = xspElem("practice_r").value;
	var practice = dirtypractice.split("'").join("\'");
	var dirtyaddress = xspElem("address_r").value;
	var address = dirtyaddress.split("'").join("\'");
	var dirtycity = xspElem("city_r").value;
	var city = dirtycity.split("'").join("\'");
	var dirtystate = xspElem("state_r").value;
	var state = dirtystate.split("'").join("\'");
	var dirtyzip = xspElem("zip_r").value;
	var zip = dirtyzip.split("'").join("\'");
	var params = "name=" + name + "&practice=" + practice + "&address=" + address + "&city=" + city + "&state=" + state + "&zip=" + zip;
	xmlhttp.open('POST', 'includes/mailcatrequest.php', true);
	xmlhttp.onreadystatechange = processRequest;
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(params);
	return false;
}
	
function processRequest()
{
	if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
	{
		eval("var requestStatus = " + xmlhttp.responseText);
		updatePage(requestStatus);
	}
}

function updatePage(dta)
{
	collapse("catalogform");
	xspElem("catdetails").innerHTML = "Thank you. You will receive your catalog shortly.";
}

function valFailBox(item)
{
  xspElem(item).style.borderColor = "#FFC1C1";
  xspElem(item).style.borderStyle = "dotted";
}



function restoreBox(item)
{
  xspElem(item).style.borderColor = "";
  xspElem(item).style.borderStyle = "";
}


function valForm()
{
  var name = xspElem("name_r");
  var address = xspElem("address_r");
  var city = xspElem("city_r");
  var state = xspElem("state_r");
  var zip = xspElem("zip_r");
  var zipRe = new RegExp(/^\d{5}([\-]\d{4})?$/);
  var selField="";
  var valOK='Y';
  
  if(name.value==null||name.value=="")
  {
  	xspElem("nameval").innerHTML = "<span>Please enter a Name.</span>";
  	valFailBox("name_r");
  	selField="name_r";
  	valOK="N";
  }
  else
  {
  	xspElem("nameval").innerHTML = "<span>&nbsp;</span>";
    restoreBox("name_r");
  }

  if(address.value==null||address.value=="")
  {
  	xspElem("addressval").innerHTML = "<span>Please enter an Address.</span>";
  	valFailBox("address_r");
  	if(selField=="")
  	  selField="address_r";
  	valOK="N";
  }
  else
  {
  	xspElem("addressval").innerHTML = "<span>&nbsp;</span>";
  	restoreBox("address_r");
  }
  
  if(city.value==null||city.value=="")
  {
  	xspElem("cityval").innerHTML = "<span>Please enter a City.</span>";
  	valFailBox("city_r");
  	if(selField=="")
  	  selField="city_r";
  	valOK="N";
  }
  else
  {
  	xspElem("cityval").innerHTML = "<span>&nbsp;</span>";
  	restoreBox("city_r");
  }
  
  if(state.value==null||state.value=="")
  {
  	xspElem("statezipval").innerHTML = "<span>Please enter a State.&nbsp;</span>";
  	valFailBox("state_r");
  	if(selField=="")
  	  selField="state_r";
  	valOK="N";
  }
  else

  {
  	xspElem("statezipval").innerHTML = "<span>&nbsp</span>";
  	restoreBox("state_r");
  }
  
  if(zip.value==null||zip.value=="")
  {
   
    xspElem("statezipval").innerHTML += "<span>Please enter a Zip Code.</span>";
    valFailBox("zip_r");
  	if(selField=="")
  	  selField="zip_r";
  	valOK="N";
  }
  
  else if(zipRe.test(zip.value)==false)
  {
    xspElem("statezipval").innerHTML += "<span>Zip Code must be in ##### or #####-#### format.</span>";
    valFailBox("zip_r");
  	if(selField=="")
  	  selField="zip_r";
  	valOK="N";
  }
  
  else

  {
  	//xspElem("statezipval").innerHTML = "<span>&nbsp;</span>";
  	restoreBox("zip_r");
  }
  
  if(valOK=="N")
    xspElem(selField).select();
  else if(valOK=="Y")
    submitRequest();

}


