﻿    function is_int(in_string)
    //========================
    {
      for(i=0; i < in_string.length; i++)
      {
        c = in_string.charAt(i);
        if (c!="0" && c!="1" && c!="2" &&
            c!="3" && c!="4" && c!="5" &&
            c!="6" && c!="7" && c!="8" &&
            c!="9")
        return false;
      }
      return true;
    } /* is_int */

    function is_float(in_string)
    //==========================
    {
      for(i=0; i < in_string.length; i++)
      {
        c = in_string.charAt(i);
        if (c!="0" && c!="1" && c!="2" &&
            c!="3" && c!="4" && c!="5" &&
            c!="6" && c!="7" && c!="8" &&
            c!="9" && c!="," && c!=".")
        return false;
      }
      return true;
    } /* is_float*/

   /* returns a float from a string */
   function getFloat(in_string)
   //==========================
   {
	   if (in_string.indexOf(",")>0)
		in_string=in_string.split(",")[0]+"."+in_string.split(",")[1];
	   if (in_string.indexOf(".")==0)
		in_string="0"+in_string;

	   return parseFloat(in_string)	
   } /* getFloat */


	/* returns a date from a string */
    /* ---------------------------- */
	function getDate (in_string)
	//==========================
    {
    	/*
    	//This does not work
    	//JavaScript format is month, day, year
    	return new Date(in_string.substring(5,6),
    			 in_string.substring(8,9),
    			 in_string.substring(0,3));
    	*/
    	
          i = in_string.indexOf("/");
          if (i<1) 
          {
            i = in_string.indexOf("-");
          	if (i<1) return false;
		  }
		   
		  //=== year
          aa = in_string.substring(0,i);
          if ( (aa=="") || (!is_int(aa)) ) return false;
          aa = parseInt(aa, 10);

          if (aa<1000)             
            aa=aa+2000
          else if (aa<100)
            aa=aa+1900;
      
          //=== month
          in_string=in_string.substring(i+1);
          i = in_string.indexOf("/");
          if (i<1) 
          {
            i = in_string.indexOf("-");
          	if (i<1) return false;
		  }
          
          mm = in_string.substring(0,i);
          if (!is_int(mm))               return false;
          var mmInt = parseInt(mm); 
          if ((mmInt<1) || (mmInt>12))   return false;

		  //=== day
		  jj = in_string.substring(i+1);
          if (!is_int(jj))               return false;
          jj = parseInt(jj, 10); 
          if ((jj<1) || (jj>31))         return false;
          
          if (    ( (mm==2) && (jj>29) )
              ||  ( (mm<8)  && ((mm & 1)==0) && (jj>30) )
              ||  ( (mm>7)  && ((mm & 1)==1) && (jj>30) )
             )							return false;
          
          date=new Date(0);
          date.setYear(aa);
          date.setMonth(mm-1);
          date.setDate(jj);

          return date;
    }

	/* tests if it is a date (english format) */
    /* -------------------------------------- */
	function isEnglishDate (in_string)
	//================================
    {
    	/*
    	//This does not work
    	//JavaScript format is month, day, year
    	return new Date(in_string.substring(5,6),
    			 in_string.substring(8,9),
    			 in_string.substring(0,3));
    	*/
    	
          i = in_string.indexOf("/");
          if (i<1) 
          {
            i = in_string.indexOf("-");
          	if (i<1) return false;
		  }
		   
		  //=== year
          aa = in_string.substring(0,i);
          if ( (aa=="") || (!is_int(aa)) ) return false;
          
          /*	Not necessary when we only test date
          aa = parseInt(aa, 10);
          if (aa<1000)             
            aa=aa+2000
          else if (aa<100)
            aa=aa+1900;
          */
          
          //=== month
          in_string=in_string.substring(i+1);
          i = in_string.indexOf("/");
          if (i<1) 
          {
            i = in_string.indexOf("-");
          	if (i<1) return false;
		  }
          
          mm = in_string.substring(0,i);
          if (!is_int(mm))               return false;
          if ((mm<1) || (mm>12))   return false;

		  //=== day
		  jj = in_string.substring(i+1);
          if (!is_int(jj))               return false;
          jj = parseInt(jj, 10); 
          if ((jj<1) || (jj>31))         return false;
          
          if (    ( (mm==2) && (jj>29) )
              ||  ( (mm<8)  && ((mm & 1)==0) && (jj>30) )
              ||  ( (mm>7)  && ((mm & 1)==1) && (jj>30) )
             )							return false;
          
          return true;
    }
    
    function isTime(time_string)
	//==========================
    {
          i = time_string.indexOf(":");
          if (i<1) 
          {
            i = time_string.indexOf("h");
          	if (i<1) return false;
		  }
		   
		  //=== hour
          hh = time_string.substring(0,i);
          if ( (hh=="") || (!is_int(hh)) ) return false;
          
          hh = parseInt(hh, 10);
          if ( (hh<0) || (hh>23) )
          	return false;
          	             
          //=== minutes
          mn = time_string.substring(i+1);
          if ( (mn=="") || (!is_int(mn)) ) return false;
          
          mn = parseInt(mn, 10);
          if ( (mn<0) || (mn>59) )
          	return false;
          	
          return true;
    }
    
    function is_date(in_string)
    //=========================
    {
    	//return getFrenchDate(in_string)!=false;
		//return getDate(in_string)!=false;
		return isEnglishDate(in_string);
	}

	function is_date_time(in_string)
	//==============================
    {
    	var pos = in_string.indexOf(" ");
    	if( pos > 0)
    	{
    		time_string = in_string.substring(pos+1);
     		if( !isTime(time_string) )
    			return false;
    	
 			in_string = in_string.substring(0, pos);
 		}
  		return isEnglishDate(in_string);
 	}

  function getRadioValue(radio) {
    for (var i = 0; i < radio.length; i++) {
       if (radio[i].checked) {
          return radio[i].value;
       }
    }
  }