// JavaScript Document for CFS Marketing Site
// Dave Lull, 6/2008

// IMPORTANT!!! 
// Functions for the nav depend highly on image naming convention:
//     images/btn_nav_<pagename>_norm.gif
//                               current.gif
//                               hover.gif
// Each page must have the current_page variable set to the page name, which is the words
// of the actual name without spaces or special characters all squeezed into one word
// Also, the image must be the child of the link which is the child of the layer (div)
// This allows for easier construction and maintenance of pages; the nav can be copied as is

var current_page = ""; // has name of page without spaces, corresponds to part of button image file name; set in pages on page load
var navcount = 10; // total number of nav items; note that nav ids have numbers starting at 1

var procpart1var = '';
var procpart2var = '';
var procpart3var = '';
var procpart4var = '';
var praiseboxbigvar = '';
var closervar = ''; // variable for closer div

//Put ids into vars and make sure all these layers are off on page load, otherwise may show one initially
//Once on, the fader takes care of visibility.
function init() {
procpart1var = document.getElementById('procpart1');
procpart2var = document.getElementById('procpart2');
procpart3var = document.getElementById('procpart3');
procpart4var = document.getElementById('procpart4');
praiseboxbigvar = document.getElementById('praisboxbig');
//Close all
HideElement(procpart1var);
HideElement(procpart2var);
HideElement(procpart3var);
HideElement(procpart4var);
HideElement(praiseboxbigvar);
}

// Function for onmouseover and onmouseout, for nav lights
// Note that the image is within the link which is within the layer
// Used getElementsByTagName for browser compatibility
function omover(btnlayer,pagename) {
if(pagename != current_page)
{btnlayer.getElementsByTagName('a')[0].getElementsByTagName('img')[0].src = 'images/btn_nav_'+pagename+'_hover.gif';}
else
// Current page: ignore hover, kill click, force normal cursor
{btnlayer.getElementsByTagName('a')[0].onclick = null; btnlayer.getElementsByTagName('a')[0].getElementsByTagName('img')[0].style.cursor='default';}
}
function omout(btnlayer,pagename) {
if(pagename != current_page)
{btnlayer.getElementsByTagName('a')[0].getElementsByTagName('img')[0].src = 'images/btn_nav_'+pagename+'_norm.gif';}
}

// Sets nav buttons to 'norm', except for corresponding current button image
// to 'current' at page load, based on current_page var
function setnav() {
	// Loop thru nav items and set to norm unless it's the one for the current page
	for (i=1; i<=navcount; i++)
		{
		// Get page name out of image name
		var iname = document.getElementById('nav'+i).src;
		var startpos = iname.indexOf('images');
		iname = iname.substr(startpos);
		var sparr = new Array();
		sparr = iname.split('_');
		//alert('sparr:'+sparr[0]+'|'+sparr[1]+'|'+sparr[2]);
		var pagename = sparr[2];
		document.getElementById('nav'+i).src = 'images/btn_nav_'+pagename+'_norm.gif';
		if (pagename == current_page)
		document.getElementById('nav'+i).src = 'images/btn_nav_'+pagename+'_current.gif';
		}
}

function browser() {
  // return 1 for Internet Explorer
  if (navigator.appName == "Microsoft Internet Explorer")
    return 1;
  // return 2 for Navigator
  if (navigator.appName == "Netscape")
    return 2;
  // return 0 for other browsers
  return 0;
}

function bVer() {
  //return version number (e.g., 4.03)
  return parseFloat(navigator.appVersion)
}

//Functions to display and hide elements (cross-browser)
function ShowElement(objvar){
  if(objvar){
    objvar.style.visibility = 'visible';
    objvar.style.display = 'block';
  } 
}

function HideElement(objvar){
  if(objvar){
    objvar.style.visibility = 'hidden';
    objvar.style.display = 'none';
  } 
}


//Some of the following are here just to keep in case something changes later
// These are functions that accommodate a nav made of text rather than images

//var qtybtns = 5;
//var qtybtns2 = 4;
//var leftmgn = 2;
//var leftmgn2 = 0;

//Place the buttons in topnav according to first one's (same as any) width
//function settopnavbtns() {
//Get width of button
//if (browser()==1) {var bwdt = document.getElementById('tnbtn1').currentStyle.width} else {var bwdt = document.getElementById('tnbtn1').style.width}
//bwdt = bwdt.replace(/px/,'') * 1;
//for (i=1; i<=qtybtns; i++)
//  {
//  var t = 'tnbtn' + i + '';
//  document.getElementById(t).style.left = leftmgn + ((i-1)*bwdt);
//  }
//}

//function setnav2btns() {
//Get width of button
//if (browser()==1) {var bwdt = document.getElementById('tn2btn1').currentStyle.width} else {var bwdt = document.getElementById('tnb2tn1').style.width}
//bwdt = bwdt.replace(/px/,'') * 1;
//for (i=1; i<=qtybtns2; i++)
//  {
//  var t = 'tn2btn' + i + '';
//  document.getElementById(t).style.left = leftmgn2 + ((i-1)*bwdt);
//  }
//}

//function setnav2btns() {
//Get width of button
//if (browser()==1) {var bwdt = document.getElementById('tn2btn1').currentStyle.width} else {var bwdt = //document.getElementById('tnb2tn1').style.width}
//bwdt = bwdt.replace(/px/,'') * 1;
//for (i=1; i<=qtybtns2; i++)
//  {
//  var t = 'tn2btn' + i + '';
//  document.getElementById(t).style.left = leftmgn2 + ((i-1)*bwdt);
//  }
//}

//function buttonon(imgid) {
//obj.className="topnavbtn topnavbtn-on";
//document.getElementById(imgid).src = "images/btn_nav_"+current_page+"_hover.gif";
//}
//function buttonoff(imgid) {
//obj.className="topnavbtn";
//document.getElementById(imgid).src = "images/btn_nav_"+current_page+"_current.gif";
//}
//function button2on(obj) {
//obj.className="nav2btn nav2btn-on";
//}
//function button2off(obj) {
//obj.className="nav2btn";
//}

//Browser detection
//var bName = navigator.appName;
//var bVer = parseFloat(navigator.appVersion);
//if (bName == "Netscape")
//  var browser = "Netscape Navigator"
//else
//  var browser = bName;
//document.write("You are currently using ", browser, " ", bVer, ".");

// Function to create sized and positioned window
function makenewwin(page, wide, high, posx, posy, scrol) {
  str = "width=" + wide + "px, height=" + high + "px, scrollbars=" + scrol + ", resizable=yes, left=" + posx + "px, top=" + posy + "px, toolbar=no, menubar=no";
  newwin = window.open(page, "", str);
  newwin.focus();
  return newwin;
}

//Note to developers: these are made for info and errors to reside in new browser sessions.
//A better way is to use layers for these dialogs, to avoid popup issues.
//Function for error dialog
function makeerrwin(msg) {
  str = "width=420, height=180, scrollbars=no, resizable=yes, left=300, top=400, toolbar=no, menubar=no";
  newwin = window.open("error_template.htm", "", str);
  newwin.document.getElementById('errmsg').innerHTML = msg;
  newwin.focus();
  return newwin;
}
//Function for info dialog
function makeinfowin(msg) {
  str = "width=420, height=180, scrollbars=no, resizable=yes, left=300, top=400, toolbar=no, menubar=no";
  newwin = window.open("info_template.htm", "", str);
  newwin.document.getElementById('infomsg').innerHTML = msg;
  newwin.focus();
  return newwin;
}

//Functions for error and info boxes when used as layers in the parent page
function ShowDialog(layervar,msgid,msg) {
	ShowElement(layervar);
	document.getElementById(msgid).innerHTML = msg;
}
function HideDialog(layervar,msgid,msg) {
	HideElement(layervar);
	document.getElementById(msgid).innerHTML = "";
}

//Function for form input validation
function validateform() {
	var errs = new Array();
	var linecnt = 0;
if (document.getElementById('firstname').value == '')
{errs[linecnt++]="Please enter your first name<br>"}
if (document.getElementById('lastname').value == '')
{errs[linecnt++]="Please enter your last name<br>"}
if (document.getElementById('address').value == '')
{errs[linecnt++]="Please enter your address<br>"}
if (document.getElementById('city').value == '')
{errs[linecnt++]="Please enter your city<br>"}
if (document.getElementById('state').selectedIndex == 0)
{errs[linecnt++]="Please select a state<br>"}
if (document.getElementById('zip').value == '')
{errs[linecnt++]="Please enter your zip code<br>"}
if (document.getElementById('organization').value == '')
{errs[linecnt++]="Please enter your organization<br>"}
if (document.getElementById('phone').value == '')
{errs[linecnt++]="Please enter your phone number<br>"}
if (document.getElementById('email').value == '')
{errs[linecnt++]="Please enter your email address<br>"}
var i=0;
var cbchk = 0;
for (i=1; i<=6; i++)
{
if (document.getElementById('cb'+i).checked) (cbchk = 1);
}
if (cbchk == 0)
{errs[linecnt++]="Please select a session<br>"}
if (document.getElementById('email').value != '' && !document.getElementById('email').value.match('@'))
{errs[linecnt++]="Please enter a valid email address<br>"}

// Build error window
if (linecnt == 0) {alert('linecnt=0'); return true}
else {
errwin = makenewwin('errwin.htm',400,300,600,60,'yes');
errwin.document.write ("<link href='css/master.css' rel='stylesheet' type='text/css'>");
errwin.document.write ("<body style='background-color:lightyellow'>");
errwin.document.write ("<div class='content'>");
errwin.document.write ("<h1>Please fix the following errors and resubmit</h1>");
for (i=0; i<linecnt; i++)
{
if (errs[i])
    {
	errwin.document.write (errs[i]);
    }
}
errwin.document.write ("<br><input name='Submit' type='submit' class='button60' value='Close' onClick='window.close()'>");
errwin.document.write ("</div>");
return false;
}
}