   //if date 2 is bigger, positive diff in milisec will be returned (date must be in mysql date format)
   function compDate(date1,date2)
   {
      var dateJava1;
      var dateJava2;



      arDate1=date1.split("/");

      arDate2=date2.split("/");

      if(arDate1.length==1)
         arDate1=arDate1.split("-");

      if(arDate2.length==1)
         arDate2=arDate2.split("-");



      dateJava1=new Date(arDate1[0],arDate1[1],arDate1[2]);
      dateJava2=new Date(arDate2[0],arDate2[1],arDate2[2]);

      secDiff=dateJava2.getTime()-dateJava1.getTime();

      return secDiff;
   }

   function checkDates(pDay,pMonth,pYear,allowEmpty)
   {
      var listDay= new Array(31,28,31,30,31,30,31,31,30,31,30,31);

      if (allowEmpty && (pDay == 0 || pMonth == 0 || pYear == 0))
         return true;

      if (pDay <= 0 || pMonth <= 0 || pYear <= 0 || pMonth > 12)
         return false;

      //if true than cabisat
      if(((pYear%4==0)&&(pYear%100!=0))||(pYear%400==0))
         listDay[1]=29;


      if(pDay>listDay[pMonth-1])
         return false;
      else
         return true;
   }

   function trim(str)
   {
      var filter= /^\s/;
      while(filter.test(str))
         str = str.substr(1);
      filter= /\s$/;
      while(filter.test(str))
         str = str.substr(0, str.length-1);

      return str;
   }

   function checkEmail(str)
   {
      var filter= /^[\w\S]+@[\w\S]+$/i;
      if (filter.test(trim(str)))
         testresults=true;
      else
      {
         alert("Please input a valid email address!");
         testresults=false;
      }
      return (testresults);
   }

   function checkTelephone(str)
   {
      var filter= /^\d+$/i;
      if (filter.test(trim(str)))
         testresults=true;
      else
      {
         alert("Please input a valid Telephone No!");
         testresults=false;
      }
      return (testresults)
   }

   function checkNumber(str)

   {

      var filter= /^\d+$/i;

      if (filter.test(trim(str)))

         result = true;

      else 
	{
	  result = false;
	}

         return(result)
   }

   function validatedNumberTextField(form)
   {
      var temp = parseInt(form.value);
      if (temp)
         form.value = temp;
      else
         form.value = "0";
   }

   function validatedDecimalTextField(form)
   {
      var temp = parseFloat(form.value);
      if (temp)
         form.value = temp;
      else
         form.value = "0";
   }

   function onSelectedOption(source, target)
   {
      var chosen = "";
      for(x=0;x<source.length;x++)
      {
         if(source.options[x].selected)
         {
            if (chosen.length <= 0)
               chosen=source.options[x].value;
            else
               chosen+="|"+source.options[x].value;
         }
      }
      target.value = chosen;
   }

   function onSelectedOptionWithLayer(source, target, openerVal, theLayer)
   {
      var chosen = "";
      for(x=0;x<source.length;x++)
      {
         if(source.options[x].selected)
         {
            if (chosen.length <= 0)
               chosen=source.options[x].value;
            else
               chosen+="|"+source.options[x].value;
         }
      }
      if (chosen == openerVal)
      {
         target.value = '';
         showVisibility(theLayer);
      }
      else
      {
         target.value = chosen;
         hideVisibility(theLayer);
      }
   }

   function onSelectedOptionWithLayerReverse(source, target, closeVal, theLayer)
   {
      var chosen = "";
      for(x=0;x<source.length;x++)
      {
         if(source.options[x].selected)
         {
            if (chosen.length <= 0)
               chosen=source.options[x].value;
            else
               chosen+="|"+source.options[x].value;
         }
      }
      if (chosen == closeVal)
      {
         target.value = '';
         hideVisibility(theLayer);
      }
      else
      {
         target.value = chosen;
         showVisibility(theLayer);
      }
   }

   function onSelectedOptionAndSubmit(source, target, rootForm)
   {
      onSelectedOption(source, target);
      rootForm.submit();
   }

   function showVisibility(layer)
   {
      if (document.all)
         document.all[layer].style.visibility = "visible";
      else if (document.layers)
         document.layers[layer].visibility = "visible";
      else if (document.getElementById)
         document.getElementById(layer).style.visibility = "visible";
   }

   function hideVisibility(layer)
   {
      if (document.all)
         document.all[layer].style.visibility = "hidden";
      else if (document.layers)
         document.layers[layer].visibility = "hidden";
      else if (document.getElementById)
         document.getElementById(layer).style.visibility = "hidden";
   }

