var defaultEmptyOK = false;
var whitespace = " \t\n\r";
var old_style = new Array();

function isWhiteSpace (s)
{
	var i;
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++)
	{   
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	}
	return true;
}

function isEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function checkCheckbox (theField)
{
	if( !theField.checked ) 
		return false;
		
	return true;
}

function checkRadio(theField)
{
	for (var i = 0; i < theField.length ; i++)
	{  
        if (theField[i].checked)
            return true;  
        
    }
    return false;
}


function checkSelect(theField)
{
	if( !theField.options[theField.selectedIndex].value || theField.options[theField.selectedIndex].value == 0 )
		return false;
		
	return true;
}

function checkDateFormat(theField) 
{
    var mois, jour, annee;
    var maDate = theField.value;
    
    //var re = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
    var re = /\b\d{2}[\/-]\d{2}[\/-]\d{4}\b/;
    
    if (re.test(maDate)) 
    {
        var delimChar = (maDate.indexOf("/") != -1) ? "/" : "-";
        var delim1 = maDate.indexOf(delimChar);
        var delim2 = maDate.lastIndexOf(delimChar);
        jour = parseInt(maDate.substring(0, delim1), 10);
        mois = parseInt(maDate.substring(delim1+1, delim2), 10);
        annee = parseInt(maDate.substring(delim2+1), 10);
        var testDate = new Date(annee, mois-1, jour);
       
        if (testDate.getDate( ) == jour) 
            if (testDate.getMonth( ) + 1 == mois) 
                if (testDate.getFullYear( ) == annee) 
                    return true;        
    } 
    return false;
}

function checkSepDateFormat(theDay, theMonth, theYear)
{
	var mois, jour, annee;	
	annee = theYear.value;
	mois = theMonth.value;
	jour = theDay.value;
	var maDate = jour+'/'+mois+'/'+annee;
	
	//var re = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
	var re = /\b\d{2}[\/-]\d{2}[\/-]\d{4}\b/;
    
    if (re.test(maDate)) 
    {
		var testDate = new Date(annee, mois-1, jour);
       
        if (testDate.getDate( ) == jour) 
            if (testDate.getMonth( ) + 1 == mois) 
                if (testDate.getFullYear( ) == annee) 
                    return true;
	}
	
	return false;
}

/*A utiliser après avoir checké la validité des deux dates avec la fonction checkDateFormat par exemple*/
function checkDateBefore(theFieldDate1, theFieldDate2) 
{
    var maDateDeb = theFieldDate1.value;
    var maDateFin = theFieldDate2.value;
        
	return checkDateStringBefore(maDateDeb, maDateFin,false);
}

function checkDateStringBefore(theStringDate1, theStringDate2, exclus) 
{
    var mois, jour, annee;
    var maDateDeb = theStringDate1;
    var maDateFin = theStringDate2;
    
    var delimCharDeb = (maDateDeb.indexOf("/") != -1) ? "/" : "-";
    var delimDeb1 = maDateDeb.indexOf(delimCharDeb);
    var delimDeb2 = maDateDeb.lastIndexOf(delimCharDeb);
    
    var delimCharFin = (maDateFin.indexOf("/") != -1) ? "/" : "-";
    var delimFin1 = maDateFin.indexOf(delimCharFin);
    var delimFin2 = maDateFin.lastIndexOf(delimCharFin);
            
    jour = parseInt(maDateDeb.substring(0, delimDeb1), 10);
    mois = parseInt(maDateDeb.substring(delimDeb1+1, delimDeb2), 10);
    annee = parseInt(maDateDeb.substring(delimDeb2+1), 10);
    var dateDeb = new Date(annee, mois-1, jour);
   	
   	jour = parseInt(maDateFin.substring(0, delimFin1), 10);
    mois = parseInt(maDateFin.substring(delimFin1+1, delimFin2), 10);
    annee = parseInt(maDateFin.substring(delimFin2+1), 10);
    var dateFin = new Date(annee, mois-1, jour);
   
    var d = Math.floor( (dateFin.getTime() - dateDeb.getTime()) / 86400000 );
	return (exclus? d > 0 : d >= 0);
}

function checkDateTimeBefore(theDate1, theDate2, exclus) 
{
    var d =  Math.floor(( theDate1.getTime() - theDate2.getTime() ) / 1000);
	return (exclus? d > 0 : d >= 0);
	
}


function set_checkboxes(f,val1,val2)
{
	for(var i=1;i<=30;i++)
	{
		var cb = eval('f.ac'+(i<10?'0':'')+i);
		if(val1.indexOf('c'+(i<10?'0':'')+i)!=-1) cb.checked = true;
		var cb = eval('f.bc'+(i<10?'0':'')+i);
		if(val2.indexOf('c'+(i<10?'0':'')+i)!=-1) cb.checked = true;
	}
}

function check_size(theField, maxsize, message)
{
	if(theField.value.length <= maxsize) return true;
	alert(message);
	theField.value = theField.value.substring(0,maxsize);
	return false;
}

function checkNotExist(theArray,theId,theField)
{
	for( var i=0; i <= theArray.length-1; i++ )
	{
		if( theArray[i][1].toLowerCase( ) == theField.value.toLowerCase( ) )
		{
			if( !theId || theArray[i][0] != theId.value )
				return false;
		}
	}
	
	return true;	
}

function isEmail(s)
{	
	var i = 1;	
	var sLength = s.length;
	
	while( (i < sLength) && (s.charAt(i) != "@") ) 
		i++;
		
	if( (i >= sLength) || (s.charAt(i) != "@") )
		return false;
	else
		i += 2;
		
	while( (i < sLength) && (s.charAt(i) != ".") )
		i++;
		
	if ( (i >= sLength - 1) || (s.charAt(i) != ".") )
		return false;
	else
		return true;
}

function setListReload(destField,myListOfOptions)
{	
	var cSelect;

	// compatibilité layer Netscape
	if ((document.all) || (!document.form1))
		cSelect = eval("document."+destField);
	else
		cSelect = eval("document.form1.document."+destField);

	var j=0,k=0;

	// On efface éventuellement la liste d'avant
	while(0<cSelect.options.length)
		   cSelect.options.length--;

	arrayOfStrings = myListOfOptions.split(";");

	while(j<arrayOfStrings.length)
	{
	   cSelect.options[k]= new Option(arrayOfStrings[j+1],arrayOfStrings[j]);

	   //Selected ?
	   if (arrayOfStrings[j+2]=="1")
	      cSelect.options[k].selected=true;

	   k++;
	   j=j+3;
	}
}