/*******************************************************************************

	F O N C T I O N S   D E   V A L I D A T I O N   D E   F O R M U L A I R E

********************************************************************************/	

/**
* tab: must contain:
* 0 form element
* 1 name of element to print in message
* 2 function to apply
* 3 size or arg to pass in function param (optionnal)
* 4 message to show instead of default error message (optionnal)
* 
* !! Function to valid the elements take as param the form object, not its value !!
*/
var tab=new Array();

function postwizard(form,array_name)
{
    var text="";
	var focusObj=null;
	var type="";
	
	//form test
	if( ! form)
	{
		alert("Please give a form name in postwizard()");
		return;
	}	
	
	if(array_name)
	{
		eval("var myValidArray="+array_name);
	}else
	{
		var myValidArray=tab;
	}
	
    for(var i=0;i<myValidArray.length;i++)
    {		
		if(myValidArray[i][0]) 
		{
			eval("var obj=document."+form+".elements[myValidArray[i][0]]");
			var size = ( myValidArray[i][3] )? myValidArray[i][3]:'';

            if( ! eval(myValidArray[i][2])(obj,size))
    	    {
        	    if(myValidArray[i][4])
				{
            		var mess=myValidArray[i][4];
				}
    	        else
				{
					var mess="n'est pas valide";
				}
    	        text=text+"Le champ \""+myValidArray[i][1]+"\" "+mess+"\n";
				//Focus the first element not valid
				if( ! focusObj && (obj.type=="text" || obj.type=="textarea" || obj.type=="select"))
				{
					focusObj=obj;
				}
        	}
		}  	
    }
	
	//empty text => no error
    if(text == "")
    {
       	eval("document."+form+".submit()");
    }else
	//error
    {
        alert(text);
		if(focusObj)
		{
			focusObj.focus();
		}
    }		
}


function resetForm(wizard)
{
	var countTablo=document.wizard.elements.length;
	for(var i=0;i<countTablo;i++)
    {
    	document.wizard.elements[i].value="";
    }
    document.wizard.submit();
}

function popup(url, type, height, width,full){
	var nsNav = (document.layers) ? 1 : 0;
	var ieNav = (document.all) ? 1 : 0;
	var left = 0;
	var top = 0;
	
	// popup plein ecran
	if(full)
	{
		height = screen.availHeight - 30;
		width = screen.availWidth - 10;
	}
  
	//wintype="toolbar="+type+",menubar="+type+",location='no',scrollbars=yes,top=0,left=0";
	wintype="toolbar=no,menubar=no,location='no',scrollbars=1,top=0,left=0";
	wintype=wintype + ",height=" + height + ",width=" + width;
	var newwin = window.open(url,"popup"+type,wintype);
	newwin.focus();
}

function popupscroll(url, height, width,full,name){
	var nsNav = (document.layers) ? 1 : 0;
	var ieNav = (document.all) ? 1 : 0;
	var left = 0;
	var top = 0;
	
	// popup plein ecran
	if(full)
	{
		height = screen.availHeight - 30;
		width = screen.availWidth - 10;
	}
    if (name)
    {
        winname = name;
    }
    else
    {
        winname = "popupscroll";
    }
	wintype="toolbar=no,menubar=no,location='no',scrollbars=yes,top=0,left=0";
	wintype=wintype + ",height=" + height + ",width=" + width;
	var newwin = window.open(url,winname,wintype);
	newwin.focus();
}


function stringValid(obj,size)
{
	if(size=="")
	{
		size=3;
	}
    if( obj.value.length<size || obj.value=="")
    {
        return false;
    }
    else
    {
        return true;
    }
}

function passwdValid(obj,PassField)
{
	if(document.wizard.elements[PassField].value == obj.value)
	{
		return true;
	}else
	{
		return false;	
	}

}



function textareaValid(obj,size)
{
    if(obj.value.length>size)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function emailValid(obj)
{
	serie = obj.value.split('@');

	if ( serie.length == 2 )
	{
		virgule_deb = serie[0].indexOf(".");
		virgule_fin = serie[0].lastIndexOf(".");
		if ( virgule_deb != 0 && virgule_fin != serie[0].length-1 )
		{
			virgule_deb = serie[1].indexOf(".");
			virgule_fin = serie[1].lastIndexOf(".");
			lg = serie[1].length
			serie2 = serie[1].split('.')
			if ( virgule_deb != 0 && virgule_fin != lg-1 && serie2.length > 1 )
			{
				return 1;
			}
		}
	}
	return 0;
}


//check if the field is numeric
function numericValid(obj)
{
	var StrValidChars = "0123456789.-,";
	var StrString;
	var StrChar;
	var error;
	var Inti;
	var blnResult = true;
	error = 10;

	StrString = obj.value;

	if (StrString == ''){
		error = 0;
	}
	else{
			for (i = 0; i < StrString.length && blnResult == true; i++){
			      StrChar = StrString.charAt(i);
			      if (StrValidChars.indexOf(StrChar) == -1){
			               blnResult = false;
			               error = 1;
			      }
			}
	}

	switch(error)
	{
	case 0: return false;
			break;
	case 1: return false;
			break;
	default: return true;
	}
}

function radioValid(obj)
{		
	//Multi choice
	if(obj.length)
	{
		for(i=0; i<obj.length;i++)
   		{
    		if(obj[i].checked)
			{
	 			return true;
			}
   		}
		return false;
	}
	//One choice
	else	
	{
		return obj.checked;
	}
}

function checkboxValid(obj,multi)
{
   	var nb=0;
	for(i=0; i<obj.length;i++)
   	{
    	if(obj[i].checked)
		{
	 		nb++;
		}
   	}
	if(multi!="")
	{
		if(nb==multi)
		{
			return true;
		}else
		{
			return false;
		}	
	}else
	{
		if(nb >= 1)
		{
			return true;
		}else
		{
			return false;
		}
	}	
}


function selectValid(obj)
{
if(obj){
	if(obj.selectedIndex != -1)
	{
	   	if ((obj.options[obj.selectedIndex].value != "") && (obj.options[obj.selectedIndex].value !=-1))
   		{    	
			return true;
	   	}
		return false;
	}
	return false;
}
return true;
}


//check if the field is integer (the is optional)
function integerValidOpt(obj)
{
	var StrValidChars = "0123456789";
	var StrString;
	var StrChar;
	var error;
	var Inti;
	var blnResult = true;
	error = 0;

	StrString = obj.value;

	for (i = 0; i < StrString.length && blnResult == true; i++){
	      StrChar = StrString.charAt(i);
	      if (StrValidChars.indexOf(StrChar) == -1){
	               blnResult = false;
	               error = 1;
	      }
	}

	if (error == 1)
		return false;
	else
		return true;
}
