// JavaScript Document

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];}
}

function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=700,height=600');");
}

function validateZIP(field)
{
	var valid = "0123456789-";
	var hyphencount = 0;
	
	if (field.length!=5 && field.length!=10)
		return "Please enter your 5 digit or 5 digit+4 zip code";

	for (var i=0; i < field.length; i++)
	{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1")
			return "Invalid characters in your zip code";
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-"))
			return "The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'";
	}
	return true;
}

function CheckEmail(email)
{
	var filter=/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	if(!filter.test(email))
		return false;
	return true;
}

function setColor(el, bg)
{
  if (el.style) el.style.backgroundColor = bg;
}

function validPhoneHome(str)
{
 re1 = /^\d{3}\-\d{3}\-\d{4}$/;  // xxx-xxx-xxxx
 re2 = /^\d{10}$/;       // xxxxxxxxxx
 re3 = /^\(\d{3}\) \d{3} \d{4}$/;  // (xxx) xxx xxxx
 if(str == '')
  return 'Home Phone # is required';
 else if((str.length < 10) || (str.length > 14))
  return 'Home Phone # length must be between 10 and 14 characters';
 else if(re1.test(str) || re2.test(str) || re3.test(str))
  return true;
 else
  return 'Home Phone # must be in any of the format: xxx-xxx-xxxx / xxxxxxxxxx / (xxx) xxx xxxx';
}
 
function validPhoneCell(str)
{
 if(str.length > 0)
 {
  re1 = /^\d{3}\-\d{3}\-\d{4}$/;  // xxx-xxx-xxxx
  re2 = /^\d{10}$/;       // xxxxxxxxxx
  re3 = /^\(\d{3}\) \d{3} \d{4}$/;  // (xxx) xxx xxxx
  if(str.length < 10)
   return 'Cell Phone # length must be between 10 and 14 characters';
  else if(re1.test(str) || re2.test(str) || re3.test(str))
		return true;
  else
		return 'Cell Phone # must be in any of the format: xxx-xxx-xxxx / xxxxxxxxxx / (xxx) xxx xxxx';
 }
 else
 	return true;
}

function check_fields(form)
{
  var bgBad = "#f8ff84";
  var bgGood = "white";
  var valid = true;
	var empty = false;
  var message = '';
	
	if(form.first_name.value=="")
	{
    valid = false;
		empty = true;
    setColor(form.first_name,bgBad);
  }
 	else
    setColor(form.first_name,bgGood);

	if(form.last_name.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.last_name,bgBad);
  }
	else
    setColor(form.last_name,bgGood);

	var ok=CheckEmail(form.email.value);
	if(form.email.value=="" || (form.email.value!="" && ok!=true))
	{
		if(form.email.value!="" && ok!=true)
			message+='Please enter a valid email address\n';
		else
			empty = true;		
    valid = false;
    setColor(form.email,bgBad);
  }
	else
    setColor(form.email,bgGood);

	if(form.requested_amount.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.requested_amount,bgBad);
  }
	else
    setColor(form.requested_amount,bgGood);

	if(form.street_addr1.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.street_addr1,bgBad);
  }
 	else
    setColor(form.street_addr1,bgGood);
		
	if(form.city.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.city,bgBad);
  }
 	else
    setColor(form.city,bgGood);

	if(form.state.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.state,bgBad);
  }
 	else
    setColor(form.state,bgGood);

	var ok=validateZIP(form.zip.value);
	if(form.zip.value=="" || (form.zip.value!="" && ok!=true))
	{
		if(form.zip.value!="" && ok!=true)
			message+=ok+'\n';
		else
			empty = true;		
    valid = false;
    setColor(form.zip,bgBad);
  }
 	else
    setColor(form.zip,bgGood);

	var ok=validPhoneHome(form.home_phone.value);
	if(form.home_phone.value=="" || (form.home_phone.value!="" && ok!=true))
	{
		if(form.home_phone.value!="" && ok!=true)
			message+=ok+'\n';
		else
			empty = true;		
    valid = false;
    setColor(form.home_phone,bgBad);
  }
  else
    setColor(form.home_phone,bgGood);


	var ok=validPhoneCell(form.cell.value);
	if(ok!=true)
	{
		message+=ok+'\n';
    valid = false;
    setColor(form.cell,bgBad);
  }
  else
    setColor(form.cell,bgGood);

	if(form.bank_account_type.value=="")
	{
    valid = false;
		empty = true;		
    setColor(form.bank_account_type,bgBad);
  }
  else
    setColor(form.bank_account_type,bgGood);

	if(!valid)
	{
		if(empty)
			message='Please fill out required fields!\n'+message;		
		alert(message);
	}
	return valid;	
}

function SendForm()
{
	if(check_fields(document.form))
		document.form.submit();
}

// Spawn external sites in standard sized pop (800x600)
// ********************************************************
function pop_newsite(page_url, bookmark)
{
	if (bookmark)
	{
		page_url = page_url+"#"+bookmark;
	}
	window.open(page_url,"tss_win","width=800,height=600,resizable=yes,scrollbars=yes,location=yes,toolbar=yes,menubar=yes");
}

function pop_resizable(page_url, width, height)
{
	window.open(page_url,'pop_win',"width=" + width + ",height=" + height + ",resizable=no,scrollbars=yes,toolbar=no,menubar=no");
}



// Spawn local pops from menus
// ********************************************************
function pop_menu(page_req)
{
	switch (page_req)
	{
		// these change location:
		case "":
		case "?page=prequal":
			//document.location.href = "index.php"+page_req;
			document.location.href = "index.php";
			break;
		// this spawns the popup:
		default:
			page_url = page_req;
			window.open(page_url,"popwin","width=490,height=420,resizable=no,scrollbars=yes,toolbar=no,menubar=no");
			break;
	}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function isNumberKey(evt)
{
	 var charCode = (evt.which) ? evt.which : event.keyCode
	 if (charCode > 31 && (charCode < 48 || charCode > 57))
			return false;

	 return true;
}