/* <!--------------- Added in 2009 - START -------------------> */

/**
 * sitegraphjs.js
 * 
 * Contains javascript validation for the single site Graph tab and
 * compare 2 sites page
 **/
 
/**
 * Validates the single site graph form
 *fromTB toTB
 * @param form is the form object 
 * @return boolean TRUE is valid, FALSE error found
 */
function validateForm(form1)
{
   var size = -1;
   var i = 0;
   var select = 0;
   var findDataSet = form1.getElementsByTagName("SELECT"); 
   var findSiteTBs = form1.getElementsByTagName("INPUT"); 
   var ds = 0;
   var s1 = 0;
   var s2 = 0;
   
   // Regular Expression for the Site Code
   var siteRegExp = new RegExp("^[A-Za-z]{3,3}[0-9]{3,3}$","g");
   
   for (i = 0; i < findSiteTBs.length; i++)
   {
      if (findSiteTBs[i].name == "site1")
      {
         s1 = findSiteTBs[i];
      }
      else if (findSiteTBs[i].name == "site2")
      {
         s2 = findSiteTBs[i];
      }
   }
   
   if (s1 != 0 && s2 != 0)
   {
      if (s1.value == "")
      {
         alert("Please enter a site code in the textbox.");
         form1.site1.focus();

         return false;
      }
      
      if (s2.value == "")
      {
         alert("Please enter a site code in the textbox.");
         form1.site2.focus();

         return false;
      }
      
      if (!s1.value.match(siteRegExp))
      {
         alert("Please use a real site code.");
         form1.site1.focus();

         return false;
      }
      
      if (!s2.value.match(siteRegExp))
      {
         alert("Please use a real site code.");
         form1.site2.focus();

         return false;
      }
   }
   
   for (i = 0; i < findDataSet.length; i++)
   {
      if(findDataSet[i].name == "set[]")
      {
         size = findDataSet[i].length;
         
         ds = findDataSet[i];
      }
   }
   
   if (size == -1)
   {
      alert("Please select a data set.");

      return false;
   }
   
   for (i = 0; i < size; i++)
   {
      if (ds[i].selected)
         select = 1;
   }
   
   if (select == 0)
   {
      alert("Please select a data set.");

      return false;
   }
   
   select = 0;
   
   if (form1.fromTB.value != "")
   {
      if (form1.toTB.value != "")
      {
         select = 1;
      }
      else
      {
         alert("Please enter an ending date.");
         form1.toTB.focus();

         return false;
      }
   }
   else if (form1.toTB.value != "")
   {
      alert("Please enter a starting date.");
      form1.fromTB.focus();

      return false;
   }
   
   // Date regular expression  (dd/mm/yyyy) (From 01/01/0000 to 31/12/9999)
   var regExp = new RegExp("^(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/][0-9][0-9][0-9][0-9]$","g");
	  
   if (select == 1)
   { 
      if (!form1.fromTB.value.match(regExp))
      {   
         alert("Please correctly format the inital date (dd/mm/yyyy).");
         form1.fromTB.focus();

         return false; 
      }
      
      if (!form1.toTB.value.match(regExp))
      {
         alert("Please correctly format the final date (dd/mm/yyyy).");
         form1.toTB.focus();

         return false; 
      }
   }
   
   return true;
}

/* <!--------------- Added in 2009 - END -------------------> */
