/*
 * Yann Ducrocq (Yannø) - La Coopérative de Communication (coop-com.net) - 15/07/08
 */

var aClock 	= new Array();
var ltie7	= $.browser.msie && parseInt($.browser.version) < 7;


function multicheckbox(jqObj) {
	var sId 		 	= Math.floor(Math.random()*1000000);
	var sCheckboxName	= jqObj.find('input').attr('name');
	sCheckboxName 		= sCheckboxName.substring(0, sCheckboxName.length-2);//suppression des []
	
	/*
	 * pour des problèmes de z-index
	 */		
	jqObj.prepend('<input type="hidden" name="'+sCheckboxName+'" id="multicheckbox_hidden_'+sId+'" />');
	jqObj.prepend('<input type="text" class="text" name="osef_' + sId + '" id="multicheckbox_text_'+sId+'" />');
	
	jqObj.prepend('<div class="multicheckbox_layer hide" id="multicheckbox_'+sId+'"><div class="margin"></div></div>');
	
	jqObj.find('label').each(function(){ $(this).attr('style',''); $(this).appendTo(jqObj.find('.multicheckbox_layer .margin'));})	
	jqObj.prev('label').attr('rel',sId).css('cursor','pointer').click(function() {
		if (aClock[sId])
			clearTimeout(aClock[sId]);
		var aOffset			= jqObj.offset();
		$('#multicheckbox_'+sId).css({top:aOffset['top']+'px', left:aOffset['left']+'px'});	
		$('#multicheckbox_' + sId).toggleClass('hide');
	});
	
	$('#multicheckbox_'+sId).appendTo('body');
	
	//require jquery.bgiframe.js
	//ie6 select bug fix
	if (ltie7)
			$('#multicheckbox_' + sId).bgiframe();
	
	$('#multicheckbox_text_'+sId).keydown(function(){return false;})
	$('#multicheckbox_text_'+sId).mouseover(function() {			
		var aOffset			= jqObj.offset();
		$('#multicheckbox_'+sId).css({top:aOffset['top']+'px', left:aOffset['left']+'px'});		
		$('#multicheckbox_'+sId).toggleClass('hide');
	});
	
	multicheckbox_eachLabel(sId);	
	
	$('#multicheckbox_'+sId).find('label').click(function(){
			multicheckbox_eachLabel(sId);
		});
		
	$('#multicheckbox_'+sId).mouseout(function() {		
		aClock[sId] = setTimeout("$('#multicheckbox_"+sId+"').toggleClass('hide');",300);
	});	
	
	$('#multicheckbox_'+sId).mouseover(function() {		
		clearTimeout(aClock[sId]);
	});
		
	
}	

function multicheckbox_eachLabel(sId) {
	var sValues = ''; var sHiddenValues = '';
	
	$('#multicheckbox_'+sId).find('input:checked').each(function() {	
			sValues 		= 	sValues
								+ (	sValues != '' ? ', ' : '' ) 
								+ $(this).parent().text();
						
			sHiddenValues 	= 	sHiddenValues
								+ (	sHiddenValues != '' ? '|' : '' ) 
								+ $(this).val();		
	});
	
	$('#multicheckbox_text_'+sId).val(sValues);		
	$('#multicheckbox_hidden_'+sId).val(sHiddenValues);	
}
