// JavaScript functions used by Arun Events

var openImg = new Image();
var closedImg = new Image();

openImg.src = "http://www.arun.gov.uk/images/btnminus.gif";
closedImg.src = "http://www.arun.gov.uk/images/btnplus.gif";

function open_calendar(numberMonths, updateForm, updateField) {
         // ************************************************************************
         // This is our starting point - where the calendar is opened
         // Parameters are as follows:
         // numberMonths : The number of months that can be selected backwards
         //                and forwards from the current month.
         // updateForm :   This is the name of the form on the originating web page
         //                that will be updated by the calendar control.
         // updateField :  This is the name of the field on the originating web page
         //                that will be updated by the calendar control.
         // ************************************************************************
         calendarWin = window.open("http://www.arun.gov.uk/assets/calendar/calendar.htm?form=" + updateForm + "&field=" + updateField + "&months=" + numberMonths, "calendarWin", "left=20,top=20,width=230,height=210,toolbar=no,scrollbars=no,resizable=no");
}

function showBranch(branch) {
   var objBranch = document.getElementById(branch).style;
   if(objBranch.display=="block")
      objBranch.display="none";
   else
      objBranch.display="block";
}

function swapFolder(img) {
   objImg = document.getElementById(img);
   if(objImg.src.indexOf('http://www.arun.gov.uk/images/btnplus.gif')>-1)
      objImg.src = openImg.src;
   else
      objImg.src = closedImg.src;
}

function validate_date(checkDate) {
         // 1 = Invalid day
         // 2 = invalid month
         // 3 = invalid year
         // 4 = date entered < today's date
         // 5 = hyphens not used as separators
         errorCode = 0;
         days = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
         today = new Date();
         newToday = ""
         todayDay = today.getDate();
         todayMonth = today.getMonth() + 1;
         todayYear = today.getFullYear();
         startYear = todayYear;
         endYear = todayYear + 1;
         // Build newToday as today's date in yyyymmdd format
         newToday = todayYear;
         if (todayMonth < 10) {
            newToday = newToday + "0" + todayMonth;
         } else {
            newToday = newToday + "" + todayMonth;
         }
         if (todayDay < 10) {
            newToday = newToday + "0" + todayDay;
         } else {
            newToday = newToday + "" + todayDay;
         }
         newDate = checkDate.substring(6,10) + checkDate.substring(3,5) + checkDate.substring(0,2);
         newDay = parseInt(checkDate.substring(0,2),10);
         newMonth = parseInt(checkDate.substring(3,5),10);
         newYear = parseInt(checkDate.substring(6,10),10);
         hyphen1 = checkDate.substring(2,3)
         hyphen2 = checkDate.substring(5,6)
         // Check the month
         if ((newMonth < 1) || (newMonth > 12) || (isNaN(newMonth))) {
            errorCode = 2
         }
         // Check the year
         if ((newYear < startYear) || (newYear > endYear) || (isNaN(newYear))) {
            errorCode = 3
         }
         // Check the day
         if (errorCode == 0) {
            // Check for leap year
            febCheck1 = parseInt((newYear / 4),10);
       	 febCheck2 = febCheck1 * 4;
       	 if (febCheck2 == newYear) {
       	    days[1] = 29;
       	 }
            checkMonth = newMonth - 1;	
            if ((newDay < 1) || (newDay > days[checkMonth]) || (isNaN(newDay))) {
               errorCode = 1;
       	 }
         }
         // Make sure hyphens are used as separators
         if (errorCode == 0 && (hyphen1 != "-" || hyphen2 != "-")) {
            errorCode = 5;
         }
         // Set errorCode to 4 if the date entered is not greater than today's date
         if (errorCode == 0 && newDate < newToday) {
            errorCode = 4;
         }
         // Check the error code and display a suitable message if <> 0
         if (errorCode != 0) {
       	 if (errorCode == 4) {
       	    alert ("The date you enter MUST not be less than today's date");
       	 } else {
       	    alert ("Please enter a valid date in the format dd-mm-yyyy");
       	 }
            return false;
         } else {
            return true;
         }
}
function submit_search() {
         // *****************************************************
         // Validate the form and, if all okay, submit the search
         // *****************************************************
         if (document.forms["eventSearch"].elements["eventStartDate"].value == "" || document.forms["eventSearch"].elements["eventStartDate"].value.length != 10) {
            document.forms["eventSearch"].elements["eventStartDate"].focus();
         } else {
            if (!validate_date(document.forms["eventSearch"].elements["eventStartDate"].value)) {
               document.forms["eventSearch"].elements["eventStartDate"].focus();
            } else {
               if (document.forms["eventSearch"].elements["eventEndDate"].value != "" || document.forms["eventSearch"].elements["eventEndDate"].value.length != 0) {
                  if (!validate_date(document.forms["eventSearch"].elements["eventEndDate"].value)) {
                     document.forms["eventSearch"].elements["eventEndDate"].focus();
                  } else {
                     checkDate = document.forms["eventSearch"].elements["eventStartDate"].value;
                     newStartDate = checkDate.substring(6,10) + checkDate.substring(3,5) + checkDate.substring(0,2);
                     checkDate = document.forms["eventSearch"].elements["eventEndDate"].value;
                     newEndDate = checkDate.substring(6,10) + checkDate.substring(3,5) + checkDate.substring(0,2);
                     if (newStartDate > newEndDate) {
                        alert ("The end date, if entered, must be greater than the start date");
                        document.forms["eventSearch"].elements["eventStartDate"].focus();
                     } else {
                        document.forms["eventSearch"].submit();
                     }
                  }
               } else {
                  document.forms["eventSearch"].submit();
               }
            }
         }
}
function validate_time(checkTime) {
         timeHours = parseInt(checkTime.substring(0,2),10);
         timeMinutes = parseInt(checkTime.substring(3,5),10);
         timeSeparator = checkTime.substring(2,3);
         if (timeSeparator != ":") {
            alert ("Please enter a valid time in the format hh:mm");
            return false;
         } else {
            if ((timeHours < 0) || (timeHours > 23) || (isNaN(timeHours))) {
               alert ("Please enter a valid time in the format hh:mm");
               return false;
            } else {
               if ((timeMinutes < 0) || (timeMinutes > 59) || (isNaN(timeMinutes))) {
                  alert ("Please enter a valid time in the format hh:mm");
                  return false;
               } else {
                  return true;
               }
            }
         }
}
function validate_new_event() {
         var valid_form = "Y";
         // ************************
         // Validate the event title
         // ************************
         if (document.forms["newEventForm"].elements["title"].value == "") {
            valid_form = "N";
            alert("You must enter the event title");
            document.forms["newEventForm"].elements["title"].focus();
         }
         // *****************************
         // Validate the event start date
         // *****************************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["start_date"].value == "") {
               valid_form = "N";
               alert("You must enter a start date");
               document.forms["newEventForm"].elements["start_date"].focus();
            }
         }
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["start_date"].value.length != 10) {
               valid_form = "N";
               alert("You must enter a valid start date");
               document.forms["newEventForm"].elements["start_date"].focus();
               document.forms["newEventForm"].elements["start_date"].select();
            }
         }
         if (valid_form == "Y") {
            if (!validate_date(document.forms["newEventForm"].elements["start_date"].value)) {
               valid_form = "N";
               document.forms["newEventForm"].elements["start_date"].focus();
               document.forms["newEventForm"].elements["start_date"].select();
            }
         }
         // *****************************
         // Validate the event start time
         // *****************************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["start_time"].value != "") {
               if (document.forms["newEventForm"].elements["start_time"].value.length != 5) {
                  valid_form = "N";
                  alert("Leave blank, or enter a start time in the format hh:mm");
                  document.forms["newEventForm"].elements["start_time"].focus();
               }
            }
         }
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["start_time"].value != "") {
               if (document.forms["newEventForm"].elements["start_time"].value != "hh:mm") {
                  if (!validate_time(document.forms["newEventForm"].elements["start_time"].value)) {
                     valid_form = "N";
                     document.forms["newEventForm"].elements["start_time"].focus();
                     document.forms["newEventForm"].elements["start_time"].select();
                  }
               }
            }
         }
         // ***************************
         // Validate the event end date
         // ***************************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["end_date"].value == "") {
               valid_form = "N";
               alert("You must enter an end date");
               document.forms["newEventForm"].elements["end_date"].focus();
            }
         }
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["end_date"].value.length != 10) {
               valid_form = "N";
               alert("You must enter a valid end date");
               document.forms["newEventForm"].elements["end_date"].focus();
               document.forms["newEventForm"].elements["end_date"].select();
            }
         }
         if (valid_form == "Y") {
            if (!validate_date(document.forms["newEventForm"].elements["end_date"].value)) {
               valid_form = "N";
               document.forms["newEventForm"].elements["end_date"].focus();
               document.forms["newEventForm"].elements["end_date"].select();
            }
         }
         // ***************************
         // Validate the event end time
         // ***************************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["end_time"].value != "") {
               if (document.forms["newEventForm"].elements["end_time"].value.length != 5) {
                  valid_form = "N";
                  alert("Leave blank, or enter an end time in the format hh:mm");
                  document.forms["newEventForm"].elements["end_time"].focus();
               }
            }
         }
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["end_time"].value != "") {
               if (document.forms["newEventForm"].elements["end_time"].value != "hh:mm") {
                  if (!validate_time(document.forms["newEventForm"].elements["end_time"].value)) {
                     valid_form = "N";
                     document.forms["newEventForm"].elements["end_time"].focus();
                     document.forms["newEventForm"].elements["end_time"].select();
                  }
               }
            }
         }
         // **************************************************************
         // Validate the start date and time against the end date and time
         // **************************************************************
         if (valid_form == "Y") {
            eventStartDate = document.forms["newEventForm"].elements["start_date"].value.substring(6,10) + document.forms["newEventForm"].elements["start_date"].value.substring(3,5) + document.forms["newEventForm"].elements["start_date"].value.substring(0,2);
            eventEndDate = document.forms["newEventForm"].elements["end_date"].value.substring(6,10) + document.forms["newEventForm"].elements["end_date"].value.substring(3,5) + document.forms["newEventForm"].elements["end_date"].value.substring(0,2);
            if (eventStartDate > eventEndDate) {
               valid_form = "N";
               alert("The start date cannot be greater than the end date");
               document.forms["newEventForm"].elements["end_date"].focus();
               document.forms["newEventForm"].elements["end_date"].select();
            }
         }
         if (valid_form == "Y") {
            if ((document.forms["newEventForm"].elements["start_time"].value != "hh:mm") && (document.forms["newEventForm"].elements["start_time"].value != "")) {
               if ((document.forms["newEventForm"].elements["end_time"].value != "hh:mm") && (document.forms["newEventForm"].elements["end_time"].value != "")) {
                  if (document.forms["newEventForm"].elements["start_time"].value > document.forms["newEventForm"].elements["end_time"].value) {
                     valid_form = "N";
                     alert("The start time cannot be greater than the end time");
                     document.forms["newEventForm"].elements["end_time"].focus();
                     document.forms["newEventForm"].elements["end_time"].select();
                  }
               }
            }
         }
         // *********************
         // Validate the location
         // *********************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["location"].value == "") {
               valid_form = "N";
               alert("You must enter a location");
               document.forms["newEventForm"].elements["location"].focus();
            }
         }
         // *************************************************
         // Validate the contact details (telephone and email
         // *************************************************
         if (valid_form == "Y") {
            if ((document.forms["newEventForm"].elements["telephone"].value == "") && (document.forms["newEventForm"].elements["email"].value == "")) {
               valid_form = "N";
               alert("You must enter either a telephone number or an email address");
               document.forms["newEventForm"].elements["telephone"].focus();
            }
         }
         // **************************
         // Validate the event details
         // **************************
         if (valid_form == "Y") {
            if (document.forms["newEventForm"].elements["event_details"].value == "") {
               valid_form = "N";
               alert("You must enter the event details");
               document.forms["newEventForm"].elements["event_details"].focus();
            }
         }
         // ****************************
         // If all okay, submit the form
         // ****************************
         if (valid_form == "Y") {
            document.forms["newEventForm"].submit();
         }
}
