$(document).ready(function(){
    var pathCss = '_css/common/';
    if ($.browser.msie && $.browser.version < 7) {
        // IE < 7
        //addStyleSheet(pathCss + 'ie6.css');		   
    }
    else if ($.browser.msie && $.browser.version == 7) {
    	// IE > 6    	    
    }
    else if ($.browser.safari) {
    	// Safari    
    }
    else if ($.browser.opera) {
    	// Opera    
    }
    else if ($.browser.mozilla) {
	    // Mozilla / Firefox	                           
    }
    
    //indicateur de chargement
    $('#loadingIndicator').dialog({ 
    	autoOpen: false,
    	resizable: false,
    	modal: true,
    	draggable:false,
    	width:240, height:52,
    	minWidth:200,
    	minHeight:52,
    	dialogClass: 'loadingIndicator'
    });	
        
    // message box d'erreurs
    $('#messageBox').dialog({ 
    	autoOpen: false,
    	resizable: false,
    	modal: true,
    	draggable:false,
    	width:350,
    	minWidth:200,
    	minHeight:100,    	
    	buttons: {
    		"Ok": function() {
    			$(this).dialog("close");
    		}	
    	}
    });
    
    // clic boutons aide
	$('.help-icon').click(function() {		
		$(this).next('.tooltip-help').click(); 			
		return false;
	});
	
	$('.tooltip-help').click(function() {		
		elementToggle(this);		
		return false;
	});
    
    // clic sur bouton fermer des tooltips d'aide
	$('.tooltip-help-close').click(function() {		
		$(this).parents('.tooltip-help').fadeOut(200);
		return false;
	});
});

var ajaxErrorHandler = function (XMLHttpRequest, textStatus, errorThrown) {
	var jsonObj = {};	
	switch (textStatus) {
		case 'timeout':
			jsonObj.messages = 'Le serveur ne répond pas. Veuillez re-tenter l’opération.';
			break;							
		default:
			jsonObj.messages = 'Une erreur serveur est survenue. Veuillez re-tenter l’opération.';
			break;
	}
	setMessageBox('Erreur serveur', jsonObj, 'mbError');
	$('#loadingIndicator').dialog('close');
	$('#messageBox').dialog('open');
};

var setMessageBox = function(title, messages, className) {
	$('#messageBox').dialog('option', 'dialogClass', className);
	$('#messageBox').empty();
	$('#messageBox').dialog('option', 'title', title);
	
	$.each(messages, function(i, message) {
		$('#messageBox').append($('<p></p>').text(message));
	});		
};

var addStyleSheet = function(path){
    var el = document.createElement('link');
    
    var attr = {
        rel: 'stylesheet',
        type: 'text/css',
        media: 'screen',
        href: path
    };
    $(el).attr(attr);
    //$('head').append(el);
    document.getElementsByTagName("head")[0].appendChild(el);
};

function in_array(needle, haystack, argStrict) {
	var found = false, key, strict = !!argStrict;
    for (key in haystack) {
    	if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
    		found = true;
    		break;
    	}
    }
	 
	return found;
}

var elementToggle = function(el) {
	if ($(el).is(':visible')) {
		$(el).fadeOut(200);
	}
	else {
		$(el).fadeIn(200);
	}
};