function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
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_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_findObj(n, d) { //v3.0
  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); 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 AssembleEmailLink(contact, email) {
  var emailHost = "jccsf.org"
  return "<a href=" + "mail" + "to:" + email + "@" + emailHost+ ">" + contact + "</a>"
}

function AssembleEmail(email) {
	var emailHost = "jccsf.org"
	var emailHost = (email + "@" + emailHost)
	return emailHost
}

function openPrintable( page ) {
	window.open( page,'printable','toolbar=yes,location=no,status=yes,menubar=yes,resizable=yes,scrollbars=yes,copyhistory=no,width=720,height=550' );
}

function popUpThumb(url, title, iwidth, iheight) {

	var pwidth, pheight;
	var newwindow;
	var wheight = 0, wwidth = 0;

	// if(window.htmlname){
	// alert("yes")
    // }
	// if(!window.htmlname){
	// alert("no")
    // }



	if ( !newwindow || newwindow.closed ) {
		// alert("newing")
		pwidth=iwidth;
		pheight=iheight;
		newwindow=window.open('','htmlname','width=' + pwidth +',height=' +pheight + ',resizable=1,top=50,left=10');
		newwindow.resizeTo(pwidth, pheight);
		wheight=iheight;
		wwidth=iwidth;
	}
	// alert("wheight: " + wheight + "\n" +
    //       "iheight: " + iheight + "\n\n\n" +
    //       "wwidth: " + wwidth + "\n" +
    //       "iwidth: " + iwidth)

	if (wheight!=iheight || wwidth!=iwidth ) {
		// alert("resizing")
		pwidth=iwidth;
		pheight=iheight;
		newwindow.resizeTo(pwidth, pheight);
		wheight=iheight;
		wwidth=iwidth;
	}

	newwindow.document.clear();
	newwindow.focus();
	newwindow.document.writeln('<html>');
	newwindow.document.writeln('<head>');
	newwindow.document.writeln('<title>' + title + '<\/title>');
	newwindow.document.writeln('<link rel=\"stylesheet\" href=\"includes/jccsf_styles.css\" type=\"text/css\">');
	newwindow.document.writeln('<\/head>');
	newwindow.document.writeln('<body style=\"background:url(\'' + url + '\')\" >');
	newwindow.document.writeln('<center>');
	newwindow.document.writeln('<a href=\"#\" onClick=\"window.close()\" ><img src=\"..\/images\/spacer.gif\" style=\"height:100%;width:100%;border:0px;\">');
	// newwindow.document.writeln('<img src=' + url + '><p><input type=\"button\" value=\"Close Window\" name=\"close\" onClick=\"window.close()\" class=\"button\"></p>');
	newwindow.document.writeln('<\/center> <\/body> <\/html>');
	newwindow.document.close();
	newwindow.focus();


}

function alternate(id){
 if(document.getElementsByTagName){
   var table = document.getElementById(id);
   var rows = table.getElementsByTagName("tr");
   for(i = 0; i < rows.length; i++){
 //manipulate rows
     if(i % 2 == 0){
       rows[i].className = "even";
     }else{
       rows[i].className = "odd";
     }
   }
 }
}

function SearchSubmit(btn, event) {
	if (event.keyCode == 13) {
		event.returnValue=false;
		event.cancel = true;
		btn.click();
	}
}
function SearchSubmitContent(searchTerms, errorDiv) {
	if(searchTerms.value != "") {
		return true;
	} else {
		document.getElementById(errorDiv).innerHTML = "<font color='red'>Please enter your search terms</font>";
		return false;
	}
	return false;
}

function newxmlhttp() {
	
	var xml;
	xml = false;
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			xml = new XMLHttpRequest();
		} catch(e) {
			xml = false;
		}
	} else if (window.ActiveXObject) {
		try {
			xml = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xml = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xml = false;
			}
		}
	}
	return xml;
}
	

function quicksubscribe (form, groupId, errorDiv) {
	var verFire = verFF(errorDiv);
	var quicksxml = newxmlhttp();
	if(quicksxml && verFire) {
		quicksxml.open("GET", "/includes/_quicksubscribe.asp?email=" + form.email.value + "&groupId=" + groupId, false);
		quicksxml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		quicksxml.onreadystatechange = function() { 
			// only if xmlrequest is "loaded"
			document.getElementById(errorDiv).innerHTML = "Processing subscription...";
			
			if(quicksxml.readyState == 4) {
				// only if "OK"
				if(quicksxml.status == 200) {
					
					
					if(quicksxml.responseText == "1" || quicksxml.responseText == "2") {
						document.getElementById(errorDiv).innerHTML = "You've been subscribed to the list";
					}
					else
						document.getElementById(errorDiv).innerHTML = "There was an error processing your subscription";
				} else {
					alert("ERROR:\n" + quicksxml.statusText);
				}
		}};
		quicksxml.send(null);
	}
	//document.getElementById(errorDiv).style.display = "inline";
	if(quicksxml.responseText == "1" || quicksxml.responseText == "2")
		document.getElementById(errorDiv).innerHTML = "You've been subscribed to the list";
	else
		document.getElementById(errorDiv).innerHTML = "There was an error processing your subscription";
}

function verFF(errorDiv) {
	if(navigator.userAgent.indexOf("Firefox")!=-1){
		var versionindex=navigator.userAgent.indexOf("Firefox")+8
		if (parseFloat(navigator.userAgent.charAt(versionindex))<=1.4) {
			//document.getElementById("email_field").disabled = true;
			document.getElementById("customformsubmitsubscribe").disabled = true;
			document.getElementById("quicksubscribestatus").innerHTML = "<font color='red'>You are using a version of Firefox that does not support this subscription method.\nPlease download the latest version of Firefox from <a href='http://www.mozilla.com' target='_blank'>http://www.mozilla.com</a>.</font>";
			return false;
		}
	}
	return true;
}


function isSafari() {
	if(navigator.userAgent.indexOf("Safari") > -1 || navigator.userAgent.indexOf("Opera") > -1)
		document.write("<style>.ProgramBox {background: white url(/images/curves/roundtop-safari.gif) no-repeat top;border:0;}</style>");
	else
		document.write("<style>.ProgramBox {background: white url(/images/curves/roundtop.gif) no-repeat top;border:0;}</style>");
}
//========================== VALIDATION SCRIPTS ==========================//

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
  result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
  var result = true;

  if (formField.value == "")
  {
    alert('Please enter a value for the "' + fieldLabel +'" field.');
    formField.focus();
    result = false;
  }

  return result;
}

function validEmail(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

  if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
  {
    alert("Please enter a complete email address in the " + fieldLabel + " field: yourname@yourdomain.com");
    formField.focus();
    result = false;
  }

  return result;

}

function validQuickEmail(formField,errorDiv)
{
  var result = true;

  if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
  {
    document.getElementById(errorDiv).innerHTML = "<font color='red'>Please enter a valid email address</font>";
    formField.focus();
    result = false;
  }

  return result;

}

function validNum(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
     var num = parseInt(formField.value,10);
     if (isNaN(num))
     {
       alert('Please enter a number for the "' + fieldLabel +'" field.');
      formField.focus();
      result = false;
    }
  }

  return result;
}

function validDate(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
     var elems = formField.value.split("/");

     result = (elems.length == 3); // should be three components

     if (result)
     {
       var month = parseInt(elems[0],10);
        var day = parseInt(elems[1],10);
       var year = parseInt(elems[2],10);
      result = !isNaN(month) && (month > 0) && (month < 13) &&
            !isNaN(day) && (day > 0) && (day < 32) &&
            !isNaN(year) && (elems[2].length == 4);
     }

      if (!result)
     {
       alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
      formField.focus();
    }
  }

  return result;
}

function validPhone(formField) {
	var objRegExp  = /(^\d{3}\.\d{3}\.\d{4}$)|(^\d{3}\-\d{3}\-\d{4}$)|(^\d{10}$)/;
	var result = objRegExp.test(formField.value);
	if(!result) {
		alert("Please enter a complete Phone Number in the form: 555-555-5555 or 555.555.5555");
		formField.focus();
		return false;
	}
	else {
		return true;
	}
	return false;
}

function validState(formField) {
	var objRegExp  = /(^[a-zA-z]+$)/;
	var result = objRegExp.test(formField.value);
	if(!result) {
		alert("Please enter a complete State.");
		formField.focus();
		return false;
	}
	else {
		return true;
	}
	return false;
}

function validZip(formField)
{
  var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
  var result = objRegExp.test(formField.value);
  if(!result) {
	  alert("Please enter a valid Zip Code.");
	  formField.focus();
	  return false;
  }
  else {
	  return true;
  }
  return false;
}

function validCC(formField)
{
  var objRegExp  = /(^\d{15}$)|(^\d{16}$)/;
  var result = objRegExp.test(formField.value);
  if(!result) {
	  alert("Please enter a valid Credit Card Number (omit spaces).");
	  formField.focus();
	  return false;
  }
  else {
	  return true;
  }
  return false;
}

function validCCExp(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
     var elems = formField.value.split("/");

     result = (elems.length == 2); // should be three components

     if (result)
     {
       var month = parseInt(elems[0],10);
       var year = parseInt(elems[1],10);
      result = !isNaN(month) && (month > 0) && (month < 13) &&
           !isNaN(year) && (elems[1].length == 2);
     }

      if (!result)
     {
       alert('Please enter a valid expiration date in the format MM/YY for the "' + fieldLabel +'" field.');
      formField.focus();
    }
  }

  return result;
}
