//global variables that can be used by ALL the function son this page.
var inputs;
var imgClassFalse = 'imgCheckBoxNoCheck';
var imgClassTrue = 'imgCheckBoxChecked';

//this function runs when the page is loaded, put all your other onload stuff in here too.
function init() {

    // quit if this function has already been called
    if (arguments.callee.done) return;

    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;

    // kill the timer
    if (_timer) clearInterval(_timer);
    
    // do stuff
	replaceChecks();
}

function replaceChecks() {
	
	//get all the input fields on the page
	inputs = document.getElementsByTagName('input');

    var yesno = 0 ;
    
	//cycle trough the input fields
	for(var i=0; i < inputs.length; i++) {

		//check if the input is a checkbox
		if((inputs[i].getAttribute('type') == 'checkbox') || (inputs[i].getAttribute('type') == 'radio')){
			
			//create a new image
			var img = document.createElement('div');
			
			//check if the checkbox is checked
			if(inputs[i].checked)
			{
				img.className = imgClassTrue;
			}
			else
			{
				img.className = imgClassFalse;
			}

			//set image 
			//img.onclick = new Function('checkChange('+ i +')');
			
			if((inputs[i].getAttribute('type') == 'radio') && (inputs[i].getAttribute('GroupName') != null) && (inputs[i].getAttribute('GroupName') != ''))
			{
			    //set image ID and onclick action
			    img.id = 'checkImageAllYesNo' + inputs[i].getAttribute('GroupName') + i;
			    
			    if(inputs[i].getAttribute('GroupName') != 'rdsForfaitChoix')
		        {
			        img.onclick = new Function('checkChangeAllYesNoToCheck('+ i + ',' + yesno + ',' + inputs.length + ',\'' + inputs[i].getAttribute('GroupName') + '\')');
			    }
			    
			    yesno = (yesno == 0) ? 1 : 0;
			}
			else if(inputs[i].getAttribute('type') == 'radio')
			{
			    //set image ID and onclick action
			    img.id = 'checkImageYesNo' + i;
			    img.onclick = new Function('checkChangeYesNo('+ i +',' + yesno + ')');
			 
			    yesno = (yesno == 0) ? 1 : 0;
			}
			else if((inputs[i].getAttribute('type') == 'checkbox') && (inputs[i].getAttribute('GroupName') != null) && (inputs[i].getAttribute('GroupName') != ''))
			{
			    img.id = 'checkImageAllTo' + inputs[i].getAttribute('GroupName') + i;
			    img.onclick = new Function('checkChangeAllTo('+ i + ',' + inputs.length + ',\'' + inputs[i].getAttribute('GroupName') + '\')');
			}
			else
			{
                //set image ID and onclick action
			    img.id = 'checkImage'+i;
			    img.onclick = new Function('checkChange('+ i +')');
			}
				
            //place image in front of the checkbox
			inputs[i].parentNode.insertBefore(img, inputs[i]);
			
			//hide the checkbox
			inputs[i].style.display='none';
		}
	}

	//enleve le height au tag TBODY pour patch FIREFOX
	var tbodys = document.getElementsByTagName('tbody');
	
	for(var i=0; i < tbodys.length; i++)
	{
		tbodys[i].style.height = '';
	}
}

//change the checkbox status and the replacement image
function checkChange(i) {

	if(inputs[i].checked) {
		inputs[i].checked = '';

		document.getElementById('checkImage'+i).className = imgClassFalse;
	} else {
		inputs[i].checked = 'checked';

		document.getElementById('checkImage'+i).className = imgClassTrue
	}
}

function checkChangeCheck(nb, IsChecked) {

	if(IsChecked)
	{
		inputs[nb].checked = 'checked';
		document.getElementById('checkImage'+nb).className = imgClassTrue
	}
	else
	{
		inputs[nb].checked = '';
		document.getElementById('checkImage'+nb).className = imgClassFalse;
	}
}

function checkChangeYesNo(i,yesno) {

	if(inputs[i].checked) {
	
	    inputs[i].checked = '';
		
		var ii = (yesno == 0) ? i+1 : i-1;
		
		inputs[ii].checked = 'checked';		
	
		document.getElementById('checkImageYesNo'+ i).className = imgClassFalse;
		document.getElementById('checkImageYesNo'+ ii).className = imgClassTrue;

	} else {
		inputs[i].checked = 'checked';

		var ii = (yesno == 0) ? i+1 : i-1;
		
		inputs[ii].checked = '';
		
		document.getElementById('checkImageYesNo' + i ).className = imgClassTrue
		document.getElementById('checkImageYesNo' + ii).className = imgClassFalse;

	}
}

function checkChangeAllYesNoToCheck(i, yesno, limit, GroupName)
{
	if(inputs[i].checked) {
		
		for(var y = 0; y < limit; y++)
		{
	        try{
	            document.getElementById('checkImageAllYesNo' + GroupName + y).className = imgClassFalse;
	            inputs[y].checked = '';
	        }catch(err){}
		}	

	} else {
		inputs[i].checked = 'checked';
		
		for(var y = 0; y < limit; y++)
		{
		    if(y == i)
		    {
		        document.getElementById('checkImageAllYesNo' + GroupName + y).className = imgClassTrue;
		    }
		    else
		    {
		        try{
		            document.getElementById('checkImageAllYesNo' + GroupName + y).className = imgClassFalse;
		            inputs[y].checked = '';
		        }catch(err){}
		    }
		}	

	}
}

function checkChangeAllTo(i, limit, GroupName)
{
	if(inputs[i].checked) {
		
		for(var z = 0; z < limit; z++)
		{
	        try{
	            document.getElementById('checkImageAllTo' + GroupName + z).className = imgClassFalse;
	            inputs[z].checked = '';
	        }catch(err){}
	        
	        try{
	            document.getElementById(GroupName + z).style['display'] = 'none';	
	        }catch(err){}
		}
		
		//document.getElementById(GroupName + '1').style['display'] = 'none';	
        //document.getElementById(GroupName + '2').style['display'] = 'none';

	} else {
		inputs[i].checked = 'checked';
		//document.getElementById(GroupName + '1').style['display'] = 'block';
		//document.getElementById(GroupName + '2').style['display'] = 'block';
		
		for(var z = 0; z < limit; z++)
		{
		    if(z == i)
		    {
		        document.getElementById('checkImageAllTo' + GroupName + z).className = imgClassTrue;
		    }
		    else
		    {
		        try{
		            document.getElementById('checkImageAllTo' + GroupName + z).className = imgClassFalse;
		            inputs[z].checked = '';
		        }catch(err){}
		    }
		    
		     try{
	            document.getElementById(GroupName + z).style['display'] = 'block';	
	        }catch(err){}
		}
	}
}

function dynamicCheckChange(objX, IsChecked)
{
    try
    {
        var cn1 = objX.childNodes;
    	            
        for(var v = 0; v < cn1.length; v++)
        {
            if(cn1[v].nodeName.toUpperCase() == 'SPAN')
            {
                var cn2 = cn1[v].childNodes;
            
                for(var m = 0; m < cn2.length; m++)
                {
                    if(IsChecked)
                    {
                        if(cn2[m].className == imgClassFalse)
                        {
                            cn2[m].className = imgClassTrue;
                        }
                        
                        if(cn2[m].nodeName.toUpperCase() == 'INPUT')
                        {
                            cn2[m].checked = 'checked';
                        }
                    }
                    else
                    {
                        if(cn2[m].className == imgClassTrue)
                        {
                            cn2[m].className = imgClassFalse;
                        }
                        
                        if(cn2[m].nodeName.toUpperCase() == 'INPUT')
                        {
                            cn2[m].checked = '';
                        }
                    }
                }
            }
        }
    }
    catch(sdf){}
}


//window.onload = init;
/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
    var script = document.getElementById("__ie_onload");
    script.onreadystatechange = function() {
        if (this.readyState == "complete") {
            init(); // call the onload handler
        }
    };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            init(); // call the onload handler
        }
    }, 10);
}

/* for other browsers */
window.onload = init;


