// Copyright 2004 Starkey Solutions LLC, all rights reserved.
//
//

var xmlHttp;
//var baseurl = "http://localhost/dev/";
var baseurl = "http://www.elevents.net/ems/";
var ajaxElementId;

function submitELEventForm(form, from, action) {
  var val = true;
  if (valForm(form, from)) {
     form.Next.value = action;
     form.From.value = from;
     form.submit();
  }
}
function submitELPOCReview(form, action) {
  xmlHttp=GetXmlHttpObjectEL();
  if (xmlHttp==null)
  {
    document.getElementById("txtConMsg").innerHTML= "<b><center>Can not record recommendation because your browser does not support Asyncronous HTTP Request, please upgrade your browser.</center></b>";
    return
  } 
  url=baseurl+"ajax/pocreview.php?CID="+document.sbdata.CID.value+"&eid="+document.sbdata.eid.value;
  url+="&vote="+action+"&notes="+encodeURI(document.sbdata.txtConMsg.value);
  ajaxElementId="el_resource_review";
  //alert(url);
  xmlHttp.onreadystatechange=stateChangedEL ;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
  ToggleDiv('el_review_buttons');
  ToggleDiv('el_close_button');
}
function tabELEventForm(form, from, next) {
  var val = true;
  form.Next.value = next;
  if (valForm(form, from)) {
     form.From.value = from;
     form.submit();
  }
}
function stateChangedEL(elementId) 
{ 
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  { 
    document.getElementById(ajaxElementId).innerHTML=xmlHttp.responseText 
  } 
} 
function GetXmlHttpObjectEL()
{ 
  var objXMLHttp=null
  if (window.XMLHttpRequest)
  {
    objXMLHttp=new XMLHttpRequest()
  }
  else if (window.ActiveXObject)
  {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  return objXMLHttp
}

function tabELSvcoForm(form) {
   var id = form.svcoAction.options[form.svcoAction.selectedIndex].value;
   tabELEventForm(form, 'v', id);
}

function valForm(form, from) {
  var val = true;

  switch(from) {
   case 'b':
     if (!valBase(form)) {
        val = false;
     }
     break;
  case 'c':
    if (!valRepeat(form)) {
       val = false;
    }
    break;
   case 'd':
     if (!valDates(form)) {
        val = false;
     }
     break;
   case 'h':
     if (!buildItemSearchSubmit(form)) {
        val = false;
     }
     break;
   case 'l':
     if (!valLoca(form)) {
        val = false;
     }
     else 
        if (!buildRoomSearchSubmit(form)) {
           val = false;
     }
     break;
   case 'i':
     buildItemSubmit(form);
     break;
   case 'r':
     buildRoomSubmit(form);
     if (!valRoom(form)) {
        val = false;
     }
     break;
   case 's':
     if (!valSetup(form)) {
        val = false;
     }
     break;
   case 'v':
     if (!valOrder(form)) {
        val = false;
     }
     break;
   case 'n':
     if (!valInvite(form)) {
        val = false;
     }
     break;
  }

  return(val);
}
function valInvite(form) {
   if (form.txtMsg.value.length > 0 && form.txtEmails.value.length == 0) {
      alert("You have entered a message but not an email address.  Please either clear the message field or add an email address.");
      return(false);
   }
   return(true);
}
function valOrder(form) {
   return(true);
}
function valSetup(form) {
  return(true);
}

function buildItemSubmit(form) {
 var sel = new String(form.AddItems.value);
 if (form.CEREDTL_GrpId.value == -3) {
    return;
 }
 if (form.items_requested.options.length > 0) {
    for (ii = 0; ii < form.items_requested.options.length; ii++) {
       sel = sel + form.items_requested.options[ii].value + "_P,";
    }
 } 
 form.AddItems.value = sel.substring(0, sel.length - 1);
}


function buildItemSearchSubmit(form) {
  var bFnd = 0;
  if (form.all_items == undefined) {
     return(true);
  }
  if (form.Next.value == 'i') {
     var sel = new String(form.SearchItems.value);
     if (form.all_items.options.length > 0) {
        for (ii = 0; ii < form.all_items.options.length; ii++) {
           if (form.all_items.options[ii].selected) {
             sel = sel + form.all_items.options[ii].value + ",";
             bFnd = 1;
           }
        }
     } 
     if (bFnd == 0) {
        alert("Please select at least one item you would like to book.");
        return(false);
     }
     form.SearchItems.value = sel.substring(0, sel.length - 1);
  }
  return(true);
}

function buildRoomSearchSubmit(form) {
  var bFnd = 0;
  if (form.bRmExists.value == "No") {
     return(true);
  }
  if (form.all_rooms == undefined) {
     return(true);
  }
  if (form.location[0].checked && form.Next.value == 'r') {
     var sel = new String(form.SearchRooms.value);
     if (form.all_rooms.options.length > 0) {
        for (ii = 0; ii < form.all_rooms.options.length; ii++) {
           if (form.all_rooms.options[ii].selected) {
             sel = sel + form.all_rooms.options[ii].value + ",";
             bFnd = 1;
           }
        }
     } 
     if (bFnd == 0) {
        alert("Please select at least one location you would like to book.");
        return(false);
     }
     form.SearchRooms.value = sel.substring(0, sel.length - 1);
  }
  return(true);
}

function buildRoomSubmit(form) {
 var sel = new String(form.AddRooms.value);
 var unsel = new String(form.AddUnRooms.value);
  if (form.rooms_requested.options.length > 0) {
     for (ii = 0; ii < form.rooms_requested.options.length; ii++) {
        sel = sel + form.rooms_requested.options[ii].value + "_P,";
     }
  } 
  if (form.unrooms_requested.options.length > 0) {
     for (ii = 0; ii < form.unrooms_requested.options.length; ii++) {
        unsel = unsel + form.unrooms_requested.options[ii].value + "_P,";
     }
  } 
  form.AddRooms.value = sel.substring(0, sel.length - 1);
  form.AddUnRooms.value = unsel.substring(0, unsel.length - 1);
}

function valRoom(form) {
  if ((form.AddRooms.value.length == 0) && 
      (form.AddUnRooms.value.length == 0) && 
      (form.Next.value != 'l')) {
      alert("Please select a location for this event or change the event to offsite or information only by clicking the 'Location' tab.");
      return(false);
  }
  return(true);
}
function valLoca(form) {
   var selected = "";

   if (form.Next.value == 'b' ||
       form.Next.value == 'd') {
      return(true);
   }
   if (form.Next.value == 'r') {
      form.location[0].checked = true;
      form.location[2].checked = false;
   }
   if (form.bRmExists.value == "No") {
      if (form.location[0].checked && form.CEREDTL_LocDesc.value.length == 0) {
         alert("Please enter a location for this event or select the 'No location or information only' option.");
         return(false);
      }
      else 
       if (form.location[1].checked) {
         form.CEREDTL_LocDesc.value = 'Information Only.';
         return(true);
      }
   }
   else {
      if (form.location[0].checked && form.Next.value != 'r') {
         alert("Please select a location for this event by clicking the 'Search Location(s)' button\nor choose the 'No location' option.");
         return(false);
      }
      if (form.location[1].checked && form.CEREDTL_LocDesc.value.length == 0) {
         alert("Please enter a location for this offsite event or deselect the 'Offsite' location option.");
         return(false);
      }
      if (!form.location[1].checked) {
         form.CEREDTL_LocDesc.value = '';
      }
      if (form.location[2].checked ||
          ((!form.location[0].checked) && (!form.location[1].checked))) {
         form.CEREDTL_LocDesc.value = 'Information Only.';
      }
   }
   return(true);
}

function valBase(form) {
   var str = "";
   var tmp = "";
   if (form.CEREDTL_GrpId != null) {
      if (form.CEREDTL_GrpId.value == "" || form.CEREDTL_GrpId2.value == "") {
         str += "\n -The City and Activity Type are required.";
      }
   }
   if (form.CEREDTL_Title.value.length == 0) {
      str += "\n -The event must have a title, please enter one.";
   }
   if (form.CEREDTL_RqstBy.value.length == 0) {
      str += "\n -We will need to know who is the Contact person or organization for this event.";
   }

   tmp = form.CEREDTL_RqstByPhone.value.replace(/[ \.,;!@%^~`\*\{\}&=+|\"<>#\$\/:\?'\(\)\[\]_\\abcdefghijklmnopqrstuvwxyz]/gi, '');
   if (tmp.length < 10) {
      str += "\n -Please provide a phone number with area code where we can reach the contact(s).";
   }
   if (form.etimehr.value == 0 && form.etimemin.value == 0) {
      str += "\n -The duration of the event must be greater than 0 minutes."
   }
   if (str != "") {
      alert("Please correct the below problem(s):" + str);
      return(false);
   }
   if ((form.repeat.value != 'No') && form.repeat[5].checked && form.Next.value != 'd' && form.SelectedDates.value == '') {
      alert('Please select which dates you would like to event to repeat on by clicking the Dates tab.');
      return(false);
   }
   if ((form.repeat.value != 'No') && (!form.repeat[5].checked && form.SelectedDates.value != '')) {
      form.SelectedDates.value = '';
   }
   return(true);
}
function valRepeat(form) {
   var str = "";
   if (form.repeat.value != 'No' && form.repeat[5].checked && form.SelectedDates.value == '' && form.Next.value != 'd') {
      str += "Please click on the 'Dates' tab to select when you'd like the event to repeat first.";
      alert(str);
      return(false)
   }
   return(true);
}
function valDates(form) {
  /*
   below is not HTML 4 compliant and does not work on Mozilla/Firefox so do not use.
   var str = "";
   var objDates = form.elements("dateSelected[]");  // 20050118
   var cnt = 0;                                     // 20050118
   var ii  = 0;                                     // 20050118
   /o 20050118 REPLACE - 'u' next value not needed
   if (form.repeat.value == 'Dates' && form.SelectedDates.value == '' && (form.Next.value != 'u' && form.Next.value != 'b')) {
   * WITH o/
   for (ii = 0; ii < objDates.length; ii++) {
      if (objDates[ii].checked) {
         cnt++;
      }
   }
   if ((cnt < 2) && (form.Next.value != 'b')) {
   /o REPLACE END o/
      str += "Please either:\n  a) Select more than one date for the event to occur on or\n";
      str += "  b) Click the 'Basic' tab and change the event to a non-repeating event.";
      alert(str);
      return(false);
   }
   */
   return(true);
}
function eventslinkConflict(form) {
  day = new Date();
  id = day.getTime();
  if (form.conflicts.options[form.conflicts.selectedIndex].value.length == 0) {
     return;
  }
  URL = "?CID=" + form.CID.value + "&v=c";
  URL += "&tre=" + form.CEBRPTE_EndTS.value;
  URL += "&trs=" + form.CEBRPTE_StartTS.value;
  URL += "&te=" + form.CEREDTL_EndTS.value;
  if (form.SelectedDates.value.length > 1) {
     URL += "&ts=" + form.SelectedDates.value;
  }
  else {
     URL += "&ts=" + form.CEREDTL_StartTS.value;
  }
  URL += "&i=" + form.conflicts.options[form.conflicts.selectedIndex].value;
  URL += "&c=" + form.c.value;
  URL += "&shr=" + form.sbtimehr.value + "&smn=" + form.sbtimemin.value + "&chr=" + form.cbtimehr.value;
  URL += "&cmn=" + form.cbtimemin.value;
  URL += "&oc=" + form.CEBRPTE_OnCode.value;
  URL += "&fc=" + form.CEBRPTE_FreqCode.value;
  URL += "&ds=" + form.CEBRPTE_Days.value;
  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=1,location=0,statusbar=1,menubar=1,resizable=1,width=700,height=500,left = 50,top = 50');");
}
function eventslinkRsrcDesc(form) {
  day = new Date();
  id = day.getTime();
  URL = "getDesc.php?CID=" + form.CID.value + "&f=" + form.From.value + "&t=desc&id=";
  if (form.rooms_available == undefined &&
      form.items_available == undefined) {
     if (form.all_rooms == undefined) {
        URL += form.all_items.options[form.all_items.selectedIndex].value;
     }
     else {
        URL += form.all_rooms.options[form.all_rooms.selectedIndex].value;
     }
  }
  else
    if (form.rooms_available == undefined) {
       URL += form.items_available.options[form.items_available.selectedIndex].value;
  }
  else {
     URL += form.rooms_available.options[form.rooms_available.selectedIndex].value;
  }
  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=290,height=200,left = 50,top = 50');");
}
function eventslinkBookDesc(form) {
  if (((form.items_requested == undefined) && (form.rooms_requested.selectedIndex > -1)) ||
      ((form.rooms_requested == undefined) && (form.items_requested.selectedIndex > -1))) {
     day = new Date();
     id = day.getTime();
     URL = "getDesc.php?CID=" + form.CID.value + "&s=" + form.StsId.value + "&f=" + form.From.value + "&t=book&id=";
     if (form.items_requested == undefined) {
        URL += form.rooms_requested.options[form.rooms_requested.selectedIndex].value;
     }
     else {
        URL += form.items_requested.options[form.items_requested.selectedIndex].value;
     }
     eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=290,height=260,left = 150,top = 150');");
  }
}
function toggleLocations(form, cbx) {
  tog = true;
  if (cbx == 'n') {
     if (form.location[2] != null) {
        if (form.location[2].checked) {
           tog = false;
        }
        form.location[1].checked = false;
     }
     form.location[0].checked = tog;
  }
  else {
     if (form.location[2] != null) {
        form.location[2].checked = false;
     }
     else {
        form.location[1].checked = false;
     }
     if (!form.location[0].checked &&
         !form.location[1].checked) {
        if (form.location[2] != null) {
           form.location[2].checked = true;
        }
  else {
           form.location[1].checked = true;
        }
     }
  }
}
function setLocaOffSite(form) {
     if (form.location[2] != null) {
     form.location[1].checked = true;
        form.location[2].checked = false;
     }
     else {
     form.location[0].checked = true;
        form.location[1].checked = false;
     }
  }

// 20060223 BEGIN ADD
function checkIndiv() {
   if (document.sbdata.repeat[6].checked) {
      ToggleDiv('indiv');
   }
}
function addDateRow(root_url)
{
  var tbl = document.getElementById('DATES_TABLE');
  var lastRow = tbl.rows.length - 1;

  var iteration = lastRow; // - 1;
  var row = tbl.insertRow(lastRow);
  var eli;
  var elm;
  var sel;
  
  var cellDate = row.insertCell(0);
  cellDate.className = 'd_table_cell'; 
  eli = document.createElement('input');
  eli.setAttribute('type', 'text');
  eli.setAttribute('name', 'date'+iteration);
  eli.setAttribute('value', 'mm/dd/yyyy');
  eli.setAttribute('id', 'date' + iteration);
  eli.setAttribute('size', '10');
  eli.setAttribute('maxlength', '10');
  cellDate.appendChild(eli);
  elm = document.createTextNode(' ');
  cellDate.appendChild(elm);
  elm = document.createElement('a');
  elm.setAttribute('href', 'javascript:showCalDiv(\'t\',\'' + iteration + '\');');
  elm.setAttribute('name', 'calspot'+iteration);
  elm.setAttribute('id', 'calspot'+iteration);
  eli=document.createElement('IMG');
  eli.setAttribute('valign', 'middle');
  eli.setAttribute('src', root_url + '/image files/calendar.gif');
  eli.setAttribute('width', '26');
  eli.setAttribute('height', '19');
  eli.setAttribute('border', '0');
  eli.setAttribute('alt', 'Date Chooser');
  eli.setAttribute('title', 'Click to choose event date.');
  elm.appendChild(eli);
  cellDate.appendChild(elm);
  
  var cellTime = row.insertCell(1);
  cellTime.className = 'd_table_cell'; 
  sel = document.createElement('select');
  sel.setAttribute('name', 'stimehr'+ iteration);
  sel.setAttribute('id', 'stimehr' + iteration);
  sel.options[0] = new Option('', '');
  sel.options[1] = new Option('All Day', '24');
  sel.options[2] = new Option('12am', '0');
  for (var ii = 1; ii < 24; ii++) {
     if (ii < 12) {
        sel.options[ii+2] = new Option(ii + ' am', ii);
     }
     else 
        if (ii == 12) {
           sel.options[ii+2] = new Option(ii + ' pm', ii);
           sel.options[ii+2].selected = true;
     }
     else {
        sel.options[ii+2] = new Option((ii-12) + ' pm', ii);
     }
  }
  cellTime.appendChild(sel);
  elm = document.createTextNode(':');
  cellTime.appendChild(elm);
  sel = document.createElement('select');
  sel.setAttribute('name', 'stimemin'+ iteration);
  sel.setAttribute('id', 'stimemin' + iteration);
  sel.options[0] = new Option('', '');
  for (var ii = 0; ii < 4; ii++) {
     if (ii == 0) {
        sel.options[ii+1] = new Option('00', '00');
     }
     else {
        sel.options[ii+1] = new Option(ii*15, ii*15);
     }
     if (ii == 0) {
        sel.options[ii+1].selected=true;
     }
  }
  cellTime.appendChild(sel);


  var cellDuration = row.insertCell(2);
  cellDuration.className = 'd_table_cell'; 
  sel = document.createElement('select');
  sel.setAttribute('name', 'etimehr'+ iteration);
  sel.setAttribute('id', 'etimehr' + iteration);
  sel.options[0] = new Option('All Day', '24');
  for (var ii = 0; ii < 13; ii++) {
     sel.options[ii+1] = new Option(ii + ' Hr', ii);
     if (ii == 0) {
        sel.options[ii+1].selected=true;
     }
  }
  cellDuration.appendChild(sel);
  elm = document.createTextNode(':');
  cellDuration.appendChild(elm);
  sel = document.createElement('select');
  sel.setAttribute('name', 'etimemin'+ iteration);
  sel.setAttribute('id', 'etimemin' + iteration);
  for (var ii = 0; ii < 12; ii++) {
     sel.options[ii] = new Option((ii*5) + ' Min', ii*5);
     if (ii == 0) {
        sel.options[ii].selected=true;
     }
  }
  cellDuration.appendChild(sel);

  var cellRemove = row.insertCell(3);
  cellRemove.className = 'd_table_cell'; 
  sel = document.createElement('select');
  sel.setAttribute('name', 'remove'+ iteration);
  sel.setAttribute('id', 'remove' + iteration);
  sel.options[0] = new Option('', '');
  sel.options[0].selected=true;
  sel.options[1] = new Option('Yes', 'Yes');
  cellRemove.appendChild(sel);
}
function trimString (str) {
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function toggleDisabled(objId) {
   var obj = document.getElementById(objId);
   obj.disabled = !obj.disabled;
}
// SCS ADD 1/31/06
// The below taken from http://www.csua.berkeley.edu/~jgwang/jsfunc02.htm
// and modified to fit needs
function checkDate(form) {
 
  var myDayStr = document.getElementById('dday').value;
  var myMonthStr = document.getElementById('dmon').value;
  var myYearStr = document.getElementById('dyear').value;
  var myDateStr = myDayStr + ' ' + myMonthStr + ' ' + myYearStr;

  /* Using form values, create a new date object
    which looks like "Wed Jan 1 00:00:00 EST 1975". */
  var myDate = new Date( myDateStr );

  // Convert the date to a string so we can parse it.
  var myDate_string = myDate.toGMTString();

  /* Split the string at every space and put the values into an array so,
    using the previous example, the first element in the array is "Wed", the
    second element is "Jan", the third element is "1", etc. */
  var myDate_array = myDate_string.split( ' ' );

  /* If we entered "Feb 31, 1975" in the form, the "new Date()" function
    converts the value to "Mar 3, 1975". Therefore, we compare the month
    in the array with the month we entered into the form. If they match,
    then the date is valid, otherwise, the date is NOT valid. */
  if ( myDate_array[2] != myMonthStr ) {
    //alert( 'I\'m sorry, but "' + myDateStr + '" is NOT a valid date.' );
    return('The date "' + myDateStr + '" is not a valid;  ' );
  } else {
    //alert( 'Congratulations! "' + myDateStr + '" IS a valid date.' );
	return('VALID');
  }
}
// 20060223 END
 