function isWorkshopSelected() {
  for (i=0;i<document.myForm.workshopID.length;i++) {
    if (document.myForm.workshopID[i].checked) { return true; }
  }
  if(document.myForm.workshopID.checked)
      return true;
  return false;  
}
function step0()
{
	$("signup1").style.display="block";
	$("signup2").style.display="none";
	$("signup3").style.display="none";
}
function step1(city)
{  
  document.getElementById("selectedCity").value = city;
  myRand=parseInt(Math.random()*99999999); 
  param = 'city='+city;
  new Ajax.Request('getWorkshopInfo.asp',{method: 'get', parameters: param, onComplete: showWorkshops } ); 
  urchinTracker("3rc/signup2");
}
function step2(hotel, wsDate)
{
  if (isWorkshopSelected()) {
    $("selectedDate").innerHTML = wsDate;
    $("selectedLocation").innerHTML = hotel;
  	$("signup1").style.display="none";
  	$("signup2").style.display="none";
  	$("signup3").style.display="block";
  	$("firstname").focus();
  	urchinTracker("3rc/signup3");
  } else {
    alert("Please select a workshop."); 
  }
}

function showWorkshops(originalRequest) 
{  
  var infoArray;
  if (originalRequest.responseText == 0) {
    document.location = "ftk.asp";
  } else {
    infoArray = originalRequest.responseText.split("|");
    if (infoArray[0] == 1) {
      // only one workshop, so we will skip step 2
      workshopID = infoArray[1];
      hotel = infoArray[2];
      wsDate = infoArray[3];      
      $("signup2").innerHTML = "<input type='radio' name='workshopID' id='workshop0' value='"+workshopID+"' checked >";
      step2(hotel,wsDate);      
    } else {            

      $("signup2").innerHTML = originalRequest.responseText;
    	$("signup1").style.display="none";
    	$("signup2").style.display="block";
    	$("signup3").style.display="none";  	


    }
  }
}
function showBlurb(blurb)
{
	closeBlurb(); // Clear any existing blurb
	$("blurbsNav").style.display="none";
	$("blurbsBox"+blurb).style.display="block";
	for(i=1;i<=3;i++){
		if(i!=blurb) $("blurbsImg"+i).className="grayed";
	}
}
function closeBlurb(blurb)
{
	$("blurbsNav").style.display="block";
	$("blurbsBox1").style.display="none";
	$("blurbsBox2").style.display="none";
	$("blurbsBox3").style.display="none";
	$("blurbsImg1").className="";
	$("blurbsImg2").className="";
	$("blurbsImg3").className="";
}
//function $(id) { return document.getElementById(id) }


  
  function set_location(location, workshopID)
	{
		location = location.replace('&apos;', "'");
		location = location.replace('&apos;', "'");
		$('location').innerHTML = location;
    $('workshopID').value = workshopID;
    //new Effect.ScrollTo('location', {offset: -20});
  }
  function set_location2(location, workshopID)
	{
		location = location.replace('&apos;', "'");
		location = location.replace('&apos;', "'");
		//$('location').innerHTML = location;
    $('workshopID').value = workshopID;
    //new Effect.ScrollTo('location', {offset: -20});
  }
  
  function get_zip(zip)
  {
    //The purpose of myRand is to prevent browser caching of the update_form_ajax.asp by having 
    //the url passed to it be different everytime, therefore tricking the browser
    myRand=parseInt(Math.random()*99999999); 
    param = 'zip='+zip+'&random='+myRand;
    //The ajax object is created and calls the update_form_ajax.asp page 
    //and passes it the param variable using a get request
    //When the function completes it calls the show_response function passing it the output from the 
    //update_form_ajax.asp page
    new Ajax.Request('get_city_state_ajax.asp',{method: 'get', parameters: param, onComplete: show_response_city_state } )
  }
  
  function show_response_city_state(originalRequest)
	{
		//Splits the response text and updates the associated form elements
    parsed_string = originalRequest.responseText.split("|");
    
    if(parsed_string[0] == $('zip_show').value && parsed_string[0] != "")
    {
      $('zip').value = parsed_string[0];
      $('city').value = parsed_string[1];
      $('state').value = parsed_string[2];
      $('zip_show').value = parsed_string[0] + "("+parsed_string[1]+", "+parsed_string[2]+")";
    }
    else
    {
      $('zip').value = "";
      $('city').value = "";
      $('state').value = "";
      $('zip_show').value = "";
    }
  }
function isValidEmail(str) {  
  if (str != "" )
  {	  
	  var testValue=false;
	  // older browsers can't use this RegExp syntax
	  if (window.RegExp) {    
	    var filter=/^[a-zA-Z0-9._&-]+@([a-zA-Z0-9.&-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	    testValue = filter.test(str);
	  } else {
	    if(str.indexOf("@") >= 0) {
	      testValue=true;
	    } else {
	      testValue=false;
	    }     
	  }  
	  if (!testValue) {		  
		  return false;
    }
  }
  return testValue;
}


function validateRegisterForm(f) 
{
  firstname = f.firstname.value;
  lastname = f.lastname.value;
  address = f.address.value;
  city = f.city.value;
  state = f.state.value;
  email = f.email.value;
  phone = f.phone.value;
  zip = f.zip.value;
  source = f.source.value;
    
  if(firstname == ""){
    alert("Please enter your first name.");
    return false;
  }  
  else if(lastname == ""){
    alert("Please enter your last name.");
    return false;
  }
  else if(address == ""){
    alert("Please enter your street address.");
    return false;
  }
  else if(city == ""){
    alert("Please enter your city.");
    return false;
  }
  else if(state == ""){
    alert("Please enter your state.");
    return false;
  }
  else if(zip == ""){
    alert("Please enter your zip.");
    return false;
  }
  else if(!isValidEmail(email)){
    alert("Please enter a valid email.");
    return false;
  }  
  else if(phone == ""){
    alert("Please enter your phone number.");
    return false;
  }
  else if(source == ""){
    alert("Please select how you heard about this workshop.");
    return false;
  }
  else
  {
    return true;
  }
}

function lookupzip(z) {
  if (z == "" || z == "Enter Zip Code") {
    //alert("Please enter your zip code.");
    $('lookupmsg').innerHTML = "<span style=\"color: red;\">Please enter your zip code</span>";
  } else {
    myRand=parseInt(Math.random()*99999999); 
    param = 'zip='+z;
    new Ajax.Request('getWorkshopInfo.asp',{method: 'get', parameters: param, onComplete: showWorkshops } ) 
  	urchinTracker("3rc/signup2");    
  }
}

function checkEnter(e){ //e is event object passed from function invocation
var characterCode // literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e
characterCode = e.which //character code is contained in NN4's which property
}
else{
e = event
characterCode = e.keyCode //character code is contained in IE's keyCode property
}

if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
lookupzip($('ziplookup').value)
return false 
}
else{
return true 
}

}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function validateZipForm(zip) {

  if (trim(zip) == "" || trim(zip) == "Enter Zip Code") {
    document.getElementById("lookupmsg").innerHTML = "Please enter your zip code";
    return false;
  }
  return true;
}



function isValidEmail(str) {  
  if (str != "" )
  {	  
	  var testValue=false;
	  // older browsers can't use this RegExp syntax
	  if (window.RegExp) {
	    //var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;	    
	    var filter=/^[a-zA-Z0-9._&-]+@([a-zA-Z0-9.&-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	    testValue = filter.test(str);
	  } else {
	    if(str.indexOf("@") >= 0) {
	      testValue=true;
	    } else {
	      testValue=false;
	    }     
	  }  
	  if (!testValue) {		  
		  return false;
    }
  }
  return testValue;
}

function isValidPhone(str) {  
  if (str != "" )
  {	  
	  var testValue=false;
	  // older browsers can't use this RegExp syntax
	  if (window.RegExp) {
	    //var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;	    
	    var filter=/^[0-9\-\+\(\)\.\s]*$/;
	    testValue = filter.test(str);
    } else {
      testValue=true;
	  }  
	  if (!testValue) {		  
		  return false;
    }
  }
  return testValue;
}



function hasNonEnglishChar(str) {
  for (i=0; i < str.length; i++) {
    if (str.charCodeAt(i)>127) {
      return true;
    }
  }
  return false;
}


function validateRegisterForm_old(f) 
{
  
  var inputstr=f.firstname.value;
  var regex_and=/^\d*[a-z]*[A-Z]*\s+(([a][n][d])|([&]))\s+d*[a-z]*[A-Z]*$/i;


  if (regex_and.test(inputstr))
  {
    alert("You may only sign up 1 person at a time");
    return false;
  }
  
  workshopID = "";
  for(i=0; i<f.workshopID.length; i++ )
  {
  	if(f.workshopID[i].checked)
  	{
  		workshopID = f.workshopID[i].value;
  	}
  	
  }
  if(workshopID == "")
  {
  	alert("Please select a workshop from above.");
  	return false;
  }
  if(f.firstname.value == "" || f.lastname.value == "" || f.address.value == "" || f.city.value == "" || f.phone.value == "" || f.email.value == "")
  {
  	alert("Please complete all information on the form.");
  	return false;
  }
  if (f.state != null && f.state.value == "") 
  {
  	alert("Please complete all information on the form.");
  	return false;  
  }
  if (f.zip != null && f.zip.value == "")
  {
  	alert("Please complete all information on the form.");
  	return false;  
  }
  if (f.heard.selectedIndex == 0) {
  	alert("Please indicate how you heard about Optionetics.");
  	return false;    
  }
   
  if (!isValidEmail(f.email.value))
  {
		alert("Please provide a valid email address.");
		return false;
	}
	
  if (!isValidPhone(f.phone.value))
  {
		alert("Please provide a valid phone number.");
		return false;
	}
  
  return true;
}
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();


function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
            //alert(update[1]);
        }
        heighter1 = new fx.Height('foo', '');
    		heighter1.toggle();
    		document.registerForm.firstname.focus();
        
    		
    }
}

function set_location(location, workshopID) {
	location = location.replace('&apos;', "'");
	location = location.replace('&apos;', "'");
	$('location').innerHTML = location;
  //$('workshopID').value = workshopID;
  new Effect.ScrollTo('firstname', {offset: -20});
	document.registerForm.firstname.focus();
}


function urchinTracker() {
  
}


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];}
}

