var tabXmlHttp=new Array();

function initAjax()
{
var xmlHttp=null;

	try
	{
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	  // Internet Explorer
	  try
	  {
	   	 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	  catch (e)
	  {
	  	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	}
return xmlHttp;
}

function callAjax(url,data,method,divName,onSuccessCallbackMethod,hideLoading)
{

    //init call
	tabXmlHttp[divName]=initAjax();
	//eval("function "+divName+"_stateChangedAjax() { var divName='"+divName+"'; if(tabXmlHttp[divName]!=null && tabXmlHttp[divName].readyState==4) {getWaiting(divName).stop(); document.getElementById(divName).innerHTML=tabXmlHttp[divName].responseText; if(onSuccessCallbackMethod && typeof onSuccessCallbackMethod == 'function') {onSuccessCallbackMethod();}} else {printLoading(divName);} }");
	//tabXmlHttp[divName].onreadystatechange=eval(divName+'_stateChangedAjax');
	
	if (!hideLoading)
	    printLoading(divName);
	tabXmlHttp[divName].onreadystatechange=function() {

	    if(tabXmlHttp[divName]!=null && tabXmlHttp[divName].readyState==4) 
	    {
	        //getWaiting(divName).stop(); 
            document.getElementById(divName).innerHTML=tabXmlHttp[divName].responseText;
            if(onSuccessCallbackMethod && typeof onSuccessCallbackMethod == 'function') {
                onSuccessCallbackMethod();
            }
	    }
	};
    
    if(data==null)
        data='';        
    data='IsCallAjax=true&'+data;
            

    if(method == "GET" && data != null) 
    {   
        url+="?"+data;   
        data=null;   
    }   

	tabXmlHttp[divName].open(method,url,true);
	
	if(method == "POST")   
        tabXmlHttp[divName].setRequestHeader("Content-type", "application/x-www-form-urlencoded");   

    //alert(data);
	tabXmlHttp[divName].send(data);	
}

function printLoading(divName)
{
	document.getElementById(divName).innerHTML='<img alt="" src="http://www.belambra.fr/belambra/BelambraResources/img/picto/ajax-loader.gif" id="ajaxLoader" />';
	//alert(document.getElementById(divName).innerHTML);
	//getWaiting(divName).start();
}

function getFieldText(tab,prefixName,prefixValue)
{
    var param=new String();
    for(var i=0;i<tab.length;i++)
    {
        //if(document.forms[0].elements[prefixValue+tab[i]].length) 
        //    param+=prefixName+tab[i]+'='+document.forms[0].elements[prefixValue+tab[i]][0].value+'&';
        //else 
        //    param+=prefixName+tab[i]+'='+document.forms[0].elements[prefixValue+tab[i]].value+'&';
        //alert("getFieldText " + prefixName+tab[i]);
        param+=prefixName+tab[i]+'='+document.forms[0].elements[prefixValue+tab[i]].value+'&';
    }
    return(param);
}

function getFieldSelect(tab,prefixName,prefixValue)
{
    var param=new String();
    for(var i=0;i<tab.length;i++)
    {
       var position=document.forms[0].elements[tab[i]].selectedIndex;
        param+=prefixName+tab[i]+'='+document.forms[0].elements[prefixValue+tab[i]].options[position].value+'&';
    }    
    return(param);    
}

function getFieldCheckbox(tab,prefixName,prefixValue)
{
    var param=new String();
    for(var i=0;i<tab.length;i++)
    {
        param+=prefixName+tab[i]+'='+document.forms[0].elements[prefixValue+tab[i]].checked+'&';
    }    
    return(param);    
}

function getFieldRadio(tab,prefixName,prefixValue)
{
    var param=new String();
    for(var j=0;j<tab.length;j++)
    {
       var isChecked=false;
        for (var i=0; i<document.forms[0].elements[prefixValue+tab[j]].length;i++) 
        {
         if (document.forms[0].elements[prefixValue+tab[j]][i].checked) 
         {
            isChecked=true
            param+=prefixName+tab[j]+'='+document.forms[0].elements[prefixValue+tab[j]][i].value+'&';
         }         
        }
    }    
    return(param);    
}

function isRadioChecked(nameRadio)
{
    var isChecked=false;
    for (var i=0; i<document.forms[0].elements[nameRadio].length;i++) 
    {
        if (document.forms[0].elements[nameRadio][i].checked) 
            isChecked=true
    }
    return(isChecked);
}

function isSelectSelected(nameSelect)
{
    if(document.forms[0].elements[nameSelect].selectedIndex==0)
        return(false);
    else
        return(true);
}

function isTextFull(nameText)
{
    if(document.forms[0].elements[nameText].value=='')
        return(false);
    else
        return(true);    
}

var tabWaitingInstance=new Array();

Waiting = function(divName){
	this.id = divName;
	this.container = document.getElementById(this.id);
	this.timer = new Array();
	this.text = ""+this.container.innerText;
}

Waiting.prototype.start = function() {
	this.timer[this.timer.length] = setInterval("getWaiting('"+this.id+"').load()", 25);
	this.container.innerText = this.text;
}

Waiting.prototype.load = function() {
	if(this.container.innerText.length<20)
		this.container.innerText += ".";
	else
		this.container.innerText = this.text;		
}

Waiting.prototype.stop = function(){
	for(var count=0;count<this.timer.length;count++)
		clearInterval(this.timer[count]);
}

function getWaiting(divName) 
{
	if(tabWaitingInstance[divName]==null)
		tabWaitingInstance[divName] = new Waiting(divName);
	return tabWaitingInstance[divName];
}

