<!-- Function List -->

// getObj(id)
// setSidebarTop()
// buildHidden(theName, theValue)
// save_item(theItem)
// getformvalues(fobj, valfunc)	
// valid_contact_inputs (theValue, theName, theForm)
// same_address()
// submitform (theForm, serverPage, theDiv)
// resetform (formOne, formTwo)

<!-- flooble sidebar menu start -->

// Floating Sidebar Menu Script from Flooble.com
// For more information, visit 
//	http://www.flooble.com/scripts/sidebar.php
// Copyright 2003 Animus Pactum Consulting inc.
//---------------------------------------------------------

    var ie = false;
    var open = true;
    var oldwidth = -1;
    if (document.all) { ie = true; }

    function getObj(id) {
        if (ie) { return document.all[id]; }
        else {    return document.getElementById(id);    }
    }
    
    function setSidebarTop() {
        //alert('hoy');
       
        var sidec = getObj('content_form_selections');
        //alert("sidec = "+sidec+"; scrollTop = "+parseInt(document.documentElement.scrollTop));
        var pageScroll = parseInt (document.documentElement.scrollTop);
	//alert ("pageScroll = "+pageScroll);
	var window = parseInt(document.body.clientHeight);
        if (window == 0) {
            window = parseInt(document.getElementById('body').offsetHeight);
        }
        newVal_2 = newVal/window;
        if ((pageScroll > 15) && (pageScroll < 1100)  && (pageScroll*.75 < window)) {
	    
  	  var newVal = parseInt(document.documentElement.scrollTop);
        var window = parseInt(document.body.clientHeight);
        if (window == 0) {
            window = parseInt(document.getElementById('body').offsetHeight);
        }
        if (window < 2000) {
           newVal = newVal - 300;
      }
	//document.getElementById('messages').innerHTML = "newVal = "+newVal+"; Height = "+window;
	  //alert ("newVal = "+newVal);
	}  //else { var newVal = pageScroll; }
        sidec.style.top = newVal + 'px';
	//alert(newVal);
        setTimeout('setSidebarTop();', 2000);
    }
   
///////////////////////////

var itemsArray = new Array;
  itemsArray["Sesame Street Bounce"] = "001";
  itemsArray["Pirates Bounce"] = "002";


///////////////////////////
    function buildHidden(theName, theValue) {
        var str = '';
 
          str = '<input type = "hidden" name = "'+theName+'" value = "'+theValue+'" />';
        
        return str;
}

/////////////////////////////
aok = true;
    function save_item(theItem) {
         var theForm = '';
         var valfunc = '';
         switch (theItem) {
           case 'address':
             theForm = document.getElementById("item_address_form");
	     inputHidden = 'hidden';
             var str = getformvalues(theForm, valfunc, inputHidden, "item_address_form");
             if (aok == true) {
  	       document.getElementById('select_address_no').style.display = "none";
	       document.getElementById('select_address_selected').style.display = "block";
               document.getElementById('item_address_edit').style.display = "none";
               document.getElementById('item_address_saved').style.display = "block";
               document.getElementById('item_address_saved_details').innerHTML = str; 
               document.getElementById('select_address_selected').innerHTML = str;
             } 
                break;
           case 'event':
             theForm = document.getElementById("item_event_form");
             inputHidden = 'hidden';
             var str = getformvalues(theForm, valfunc, inputHidden, "item_event_form");
             if (aok == true) {
               document.getElementById('select_event_no').style.display = "none";
  	       document.getElementById('select_event_selected').style.display = "block";
	       document.getElementById('item_event_edit').style.display = "none";
               document.getElementById('item_event_saved').style.display = "block";
               document.getElementById('item_event_saved_details').innerHTML = str;           
               document.getElementById('select_event_selected').innerHTML = str;
             } 

             
           break;
           case 'items':
             theForm = document.getElementById("item_items_form");
             inputHidden = 'hidden';
             var str = getformvalues(theForm, valfunc, inputHidden, "item_items_form");
             if (aok == true) {
               document.getElementById('select_items_no').style.display = "none";
  	       document.getElementById('select_items_selected').style.display = "block";
               document.getElementById('item_items_edit').style.display = "none";
               document.getElementById('item_items_saved').style.display = "block";
               document.getElementById('item_items_saved_details').innerHTML = str; 
               document.getElementById('select_items_selected').innerHTML = str;
             } 
             
           break;
	}
	  if (document.getElementById('select_items_no').style.display == "none" && document.getElementById('select_event_no').style.display == "none" && document.getElementById('select_address_no').style.display == "none") {
		document.getElementById('final_submit').style.display = "block";
	
         }
}

////////////////////////////////
function getformvalues(fobj, valfunc, inputHidden, theForm)
	{
	var str = "";
	
	var val;	
	//alert ("valfunc: "+valfunc);
	//alert ("fobj: "+fobj);
	// run through a list of all objects contained within the form
	for (var i = 0; i < fobj.elements.length; i++)
		{
		if(valfunc != '') 
			{
			if (aok == true)
				{
				val = false;
				//alert ("valfunc: "+valfunc+" theValue: "+fobj.elements[i].value+"  theName: "+ fobj.elements[i].name);
				val = valid_contact_inputs (fobj.elements[i].value, fobj.elements[i].name, theForm);
				//alert ("valid = "+val);
				if (val == false)
					{
					aok = false;
					}
				} else if (val == true) { 
				   //alert ("valid = "+val);
				  	document.getElementById('error_message').innerHTML = "";}
			}
		if ((fobj.elements[i].type == "radio" || fobj.elements[i].type == "checkbox") )
			{
			if (fobj.elements[i].checked == true) {
                             str += buildHidden(fobj.elements[i].name, fobj.elements[i].value);
                             str += fobj.elements[i].value+ "<br &#47;>";
			//str += fobj.elements[i].name + "="+ escape(fobj.elements[i].value) + "&";
			//alert (fobj.elements[i].name + " is checked and has value: "+escape(fobj.elements[i].value));
			}}
		else {
			if (inputHidden != '') {
                          theSave = fobj.elements[i].name.split ('_');
                          if (theSave[1] != 'save') {
                             val = valid_contact_inputs (fobj.elements[i].value, fobj.elements[i].name, theForm);
				//alert ("valid = "+val);
				  if (val == true) { 
				   //alert ("valid = "+val);
                                        aok = true;
				  	
                                        str += buildHidden(fobj.elements[i].name, fobj.elements[i].value);
                                        str += fobj.elements[i].value+ "<br &#47;>";
                                } else { aok = false; return;}
                          }
			}
			else {// if inputHidden == ''
                             // if 
                          if (document.getElementById('select_address_selected').innerHTML == '' || document.getElementById('select_event_selected').innerHTML == '' || document.getElementById('select_items_selected').innerHTML == '') {
                             aok = false;
                             document.getElementById('messages').innerHTML = 'Please complete and save the information on the left before submitting.';
                             return;
                          } else {
			     str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                          }
			}
			//alert (str);
			}
		}
	// then return the string values.
	return str;
	}
///////////////////////
// validation functions
function valid_contact_inputs (theValue, theName, theForm) {
  var nowcont = true;
  theForm = theForm.split("_");
  theForm = theForm[1];
  //alert('theForm[1]: '+theForm[1]+'; theName: '+theName);
  if (theName == "item_"+theForm+"_name_first") {
	//alert("name valid = "+theName+"; the value = "+theValue);
    if (trim (theValue) == "") {
	document.getElementById('item_'+theForm+'_msg').innerHTML = "You must enter your first name.";
    	document.getElementById('item_'+theForm+'_name_first_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_name_first').focus();
	document.getElementById('item_'+theForm+'_name_first').select();
  	nowcont = false;
    } else { document.getElementById('item_'+theForm+'_name_first_label').style.color = 'black'; 
        document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	
	nowcont = true;
    }
   }
  //alert("nowcont = "+nowcont);
  if (nowcont == true) {
    if (theName == "item_"+theForm+"_name_last") {
        if (trim (theValue) == "") {
	document.getElementById('item_'+theForm+'_msg').innerHTML += "You must enter your last name.";
    	document.getElementById('item_'+theForm+'_name_last_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_name_last').focus();
	document.getElementById('item_'+theForm+'_name_last').select();
  	nowcont = false;
    } else { document.getElementById('item_'+theForm+'_name_last_label').style.color = 'black'; 
        document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	
	nowcont = true;
       }
    }
  }

  //alert("nowcont = "+nowcont);
  if (nowcont == true) {
    if (theName == "item_"+theForm+"_phone") {
      nowcont = validatePhone (trim (theValue));
       if (nowcont != true) {
	document.getElementById('item_'+theForm+'_msg').innerHTML = "Please enter your phone number.";
    	document.getElementById('item_'+theForm+'_phone_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_phone').focus();
	document.getElementById('item_'+theForm+'_phone').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_phone_label').style.color = 'black'; 
        nowcont = true;
        document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	
     }    
    }
   }
    if (nowcont == true) {
    if (theName == "item_"+theForm+"_email") {
      nowcont = validateEmail (trim (theValue));
       if (nowcont != true) {
	document.getElementById('item_'+theForm+'_msg').innerHTML += "Please enter your email address.";
    	document.getElementById('item_'+theForm+'_email_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_email').focus();
	document.getElementById('item_'+theForm+'_email').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_email_label').style.color = 'black'; 
            nowcont = true;
            document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	    
       }
    
    }
  }  
      if (nowcont == true) {
    if (theName == "item_"+theForm+"_street") {
      //nowcont = validateEmail (trim (theValue));
      //alert('theValue = '+theValue);
       if (theValue == '') {
        //alert('here');
	document.getElementById('item_'+theForm+'_msg').innerHTML += "Please enter your street.";
    	document.getElementById('item_'+theForm+'_street_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_street').focus();
	document.getElementById('item_'+theForm+'_street').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_street_label').style.color = 'black'; 
            nowcont = true;
            document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	    
       }
      //alert (nowcont);
    }
  }  
    if (nowcont == true) {
    if (theName == "item_"+theForm+"_city") {
      //nowcont = validateEmail (trim (theValue));
       if (theValue == '') {
	document.getElementById('item_'+theForm+'_msg').innerHTML += "Please enter your city.";
    	document.getElementById('item_'+theForm+'_city_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_city').focus();
	document.getElementById('item_'+theForm+'_city').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_city_label').style.color = 'black'; 
            nowcont = true;
            document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	    
       }
    
    }
  }  
    if (nowcont == true) {
    if (theName == "item_"+theForm+"_zip") {
      //nowcont = validateEmail (trim (theValue));
       if (theValue == '') {
	document.getElementById('item_'+theForm+'_msg').innerHTML += "Please enter your 5 digit ZIP code.";
    	document.getElementById('item_'+theForm+'_zip_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_zip').focus();
	document.getElementById('item_'+theForm+'_zip').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_zip_label').style.color = 'black'; 
            nowcont = true;
            document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	    
       }
    
    }
  }     if (nowcont == true) {
    if (theName == "item_"+theForm+"_date") {
      //nowcont = validateEmail (trim (theValue));
       if (theValue == '') {
	document.getElementById('item_'+theForm+'_msg').innerHTML += "Please enter the date of your event.";
    	document.getElementById('item_'+theForm+'_date_label').style.color = 'red';
	document.getElementById('item_'+theForm+'_date').focus();
	document.getElementById('item_'+theForm+'_date').select();
	nowcont = false;
       } else { document.getElementById('item_'+theForm+'_date_label').style.color = 'black'; 
            nowcont = true;
            document.getElementById('item_'+theForm+'_msg').innerHTML = "";
    	    
       }
    
    }
  } 
  return nowcont;
}


/////////////////////////
// validate phone number
function validatePhone(fld) {
    var error = true;
   
   if (fld == "") {
        error = "You didn't enter a phone number.\n";
       
    }
   else {
	 var stripped = fld.replace(/[\(\)\.\-\ ]/g, '');    

	 if (isNaN(parseInt(stripped))) {
        error = "The phone number contains illegal characters.\n";
       
    } else if (!(stripped.length == 10)) {
        error = "The phone number is the wrong length. Make sure you included an area code.\n";
       
    }
  }
    return error;
}

/////////////////////////
// validate email

function validateEmail(fld) {
    var error=true;
    var tfld = trim(fld);                        
// value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld == "") {
       
        error = "You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        
        error = "Please enter a valid email address.\n";
    } else if (fld.match(illegalChars)) {
        
        error = "The email address contains illegal characters.\n";
    } else {
        error = true
    }
    return error;
}
//////////////////////////
// trim input variables
function trim (inputString) {
  if (typeof inputString != "string") {return inputString; }
    var retValue = inputString;
    var ch = retValue.substring (0, 1);
    while (ch == " ") {
      retValue = retValue.substring (0, retValue.length);
      ch = retValue.substring (0, 1);
    }
    ch = retValue.substring (retValue.length-1, retValue.length);
    while (ch == " ") { 
      retValue = retValue.substring (0, retValue.length-1);
      ch = retValue.substring (retValue.length-1, retValue.length);
    }
    while (retValue.indexOf (" ") != -1) {
      retValue = retValue.substring (0, retValue.indexOf (" ")) + retValue.substring (retValue.indexOf (" ") + 1, retValue.length);
    }
  return retValue;
}
/////////////////////
 function edit_item (theItem) {
         switch (theItem) {
           case 'address':
	     document.getElementById('select_address_no').style.display = "block";
	     document.getElementById('select_address_selected').style.display = "none";
             document.getElementById('item_address_edit').style.display = "block";
             document.getElementById('item_address_saved').style.display = "none";
 
             document.getElementById('select_address_selected').innerHTML = '';
             
                break;
          case 'event':
             document.getElementById('select_event_no').style.display = "block";
             document.getElementById('select_event_selected').style.display = "block";
             document.getElementById('item_event_edit').style.display = "block";
             document.getElementById('item_event_saved').style.display = "none";
 
             document.getElementById('select_event_selected').innerHTML = '';
             break;
          case 'items':
             document.getElementById('select_items_no').style.display = "block";
	     document.getElementById('select_items_selected').style.display = "block";
             document.getElementById('item_items_edit').style.display = "block";
             document.getElementById('item_items_saved').style.display = "none";
             
             document.getElementById('select_items_selected').innerHTML = '';
 	     break;
	  }
  	}
/////////////////////
// if the user selects checkbox, make event info = address info
	function same_address() {
          var sameAddress = document.getElementById('item_event_same');
          //alert (sameAddress);
          if (sameAddress.checked == true) {
            document.getElementById('item_event_name').value = document.getElementById('item_address_name_first').value + " " + document.getElementById('item_address_name_last').value;
            document.getElementById('item_event_name').disabled = true;
            document.getElementById('item_event_phone').value = document.getElementById('item_address_phone').value;
            document.getElementById('item_event_phone').disabled = true;
            document.getElementById('item_event_street').value = document.getElementById('item_address_street').value;
            document.getElementById('item_event_street').disabled = true;
            document.getElementById('item_event_city').value = document.getElementById('item_address_city').value;
            document.getElementById('item_event_city').disabled = true;
            document.getElementById('item_event_zip').value = document.getElementById('item_address_zip').value;
            document.getElementById('item_event_zip').disabled = true;
          }
          else {
            document.getElementById('item_event_name').value = '';
            document.getElementById('item_event_name').disabled = false;
            document.getElementById('item_event_phone').value = '';
            document.getElementById('item_event_phone').disabled = false;
            document.getElementById('item_event_street').value = '';
            document.getElementById('item_event_street').disabled = false;
            document.getElementById('item_event_city').value = '';
            document.getElementById('item_event_city').disabled = false;
            document.getElementById('item_event_zip').value = '';
            document.getElementById('item_event_zip').disabled = false;
          }
} 


/////////////////////////////////////////////////////////////////////
// calendar functions
	//A variable used to distinguish whether to open or close the calendar.
	var showOrHide = true;
	
	function showHideCalendar() {
		//alert ('here');
		//The location we are loading the page into.
		var objID = "calendar";
		
		//Change the current image of the minus or plus.
		if (showOrHide == true){
			//Show the calendar.
			document.getElementById("opencloseimg").src = "images/mins.gif";
                        document.getElementById(objID).style.backgroundColor = "#ffffff";
			//The page we are loading.
			var serverPage = "calendar.php";
			//Set the open close tracker variable.
			showOrHide = false;
			var obj = objID;
			processajax (serverPage, obj, "get", "");
		} else {
			//Hide the calendar.
			document.getElementById(objID).innerHTML = "";
		        document.getElementById(objID).style.backgroundColor = "#778899";
			document.getElementById("opencloseimg").src = "images/plus.gif";
			showOrHide = true;
			//Reset the content.
			
		}
		
		
	}

	function changemonth (month, year) {
		// advance or reverse month on calendar
		//alert ('year: '+year+' month: '+month);
		var objID = "calendar";
		var serverPage = "calendar.php?year="+year+"&&month="+month;
		var obj = objID;
		processajax (serverPage, obj, "get", "");
		}
	


///////////////////////
//  set_date from calendar
  	function set_date (theDate) {
          document.getElementById('item_event_date').value = theDate;
          showHideCalendar();
 	}
// end calendar functions
///////////////////////////////////////////////////////////////////////////////
///////////////////////
// toggles row highlighting on the items form
function togglerow (theID1, theID2, on_off) { 
           if (on_off == 'on') {
	     onmouseover = theID1.style.backgroundColor = '#EBECE4';
	     document.getElementById(theID2).style.backgroundColor = '#EBECE4';
          } 
	  if (on_off == 'off') {
	    onmouseout = theID1.style.backgroundColor = '';
	    document.getElementById(theID2).style.backgroundColor = '';
 	  }
	}	
//////////////////////
// submitform
function submitform (theForm, serverPage, theDiv) {
        theform = document.getElementById(theForm);
	setStatus ("Loading...", "final");
	var str = getformvalues(theform, '', '', theForm);
	// if the validation is ok
	document.getElementById('final').style.display = 'block';
	if(aok == true)
		{
		//var obj = document.getElementById(objID);
		processajax(serverPage, theDiv, "post", str);
		}
	else {//alert (aok); 
	aok = true; return false;}
	} 	
////////////////////
// setStatus
function setStatus(theStatus, theObj)
	{
	obj = document.getElementById(theObj);
	if (obj)
		{
		obj.innerHTML = "<div id = \"status\" class = \"\"><img src = \"images/loading.gif\" alt = \""+theStatus+"\" width = \"16px\" height = \"16px\" />" + theStatus + "</div>";

		}
	}

////////////////////
// resetform
function resetform () {
  // first, clear the selection boxes
  document.getElementById('select_address_selected').innerHTML = '';
  document.getElementById('select_event_selected').innerHTML = '';
  document.getElementById('select_items_selected').innerHTML = '';
  // second, show select_no
  document.getElementById('select_address_no').style.display = 'block';
  document.getElementById('select_event_no').style.display = 'block';
  document.getElementById('select_items_no').style.display = 'block';
  // third, clear item_forms
  form = document.getElementById('item_address_form');
    form.reset();
    document.getElementById('item_address_edit').style.display = 'block';
     document.getElementById('item_address_saved').style.display = 'none';
  form = document.getElementById('item_event_form');
    form.reset();
    document.getElementById('item_event_edit').style.display = 'block';
    document.getElementById('item_event_saved').style.display = 'none';
  form = document.getElementById('item_items_form');
    form.reset();
    document.getElementById('item_items_edit').style.display = 'block';
     document.getElementById('item_items_saved').style.display = "none";
}
    
//-->

