/*
 * $Id: miscTools2.js,v 1.1 2006/10/26 14:32:29 vdelhaye Exp $
 * $Revision: 1.1 $
 * $Date: 2006/10/26 14:32:29 $
 */
 
// *** COMMON CROSS-BROWSER COMPATIBILITY CODE ***

var isDOM=document.getElementById?1:0;
var isIE=document.all?1:0;
var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0;
var isIE4=isIE&&!isDOM?1:0;
var isOp=window.opera?1:0;
var isDyn=isDOM||isIE||isNS4;


// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);



/* --------------------------------------------------
	Population automatique des proprietes d'un objet
*/
function addProps(obj, data, names, addNull) {
	for (var i = 0; i < names.length; i++) if(i < data.length || addNull) obj[names[i]] = data[i];
}




/* --------------------------------------------------
	Recherche un objet DHTML d'ID donnee et le renvoit (ou null si inexistant)
*/
function getObj(id) {
	if (isDOM && document.getElementById(id)!=null) {
		return document.getElementById(id);
	}
	
	// on cherche dans document.layers (Netscape)
	if (document.layers && eval("document."+id)!=null) {
		return eval("document."+id);
	}
	
	// on cherche dans document.all
	if (isIE && eval("typeof(document.all[id])")!="undefined") {
		return document.all[id];
	}

	
	// sinon on cherche dans les formulaires
	for(var i=0; i<document.forms.length; i++) {
		if (eval("typeof(document.forms[i]."+id+")")!="undefined")
			return eval("document.forms[i]."+id);
	}

	// sinon on cherche dans les frames
	if (typeof(document.frames)!="undefined") {
		for(var i=0; i<document.frames.length; i++) {
			if (eval("typeof(document.frames[i]."+id+")")!="undefined")
				return eval("document.frames[i]."+id);
		}
	}

	// sinon on cherche dans les images
	for(var i=0; i<document.images.length; i++) {
		if (eval("typeof(document.images[i]."+id+")")!="undefined")
			return eval("document.images[i]."+id);
	}

	// pas trouve !!
	return null;
}



var displayWaitMessageOnURLChange = false;

/* --------------------------------------------------
	Simule un clic sur un lien
*/
function goToURL(u, targetName)
{
	if (typeof(u)=="undefined" || u==null || u=="")
		return true;

	if (u.indexOf("javascript:")==0)
	{
		var jscode = u.substring(11);
		if (eval(jscode))
			return true;
		else
			return false;
	}

	if (typeof(targetName)!="undefined" && targetName!=null && targetName!=""){
		var win = window.open(u, targetName);
		if (typeof(win)=="undefined" || win==null || win.closed) {
			alert("Impossible d'ouvrir correctement une nouvelle fenêtre.\nSi vous utilisez un bloqueur de popup, désactivez-le pour ce site et réessayez.");
			return null;
		}		
		win.focus();
  }
  else{
  		if (displayWaitMessageOnURLChange)
  			displayWaitMessage();

    	window.location.href=u;
   }
}



/* --------------------------------------------------
	Gestion des actions sur le onload du document
*/
var onLoadActions = new Array();

function addOnLoadAction(action)
{
	if (action!=null && action!="")
		onLoadActions[onLoadActions.length] = action;
}

function executeOnLoadActions()
{
	var i;
	for(i=0; i<onLoadActions.length; i++)
		eval(onLoadActions[i]);
}






/* --------------------------------------------------
	Ouvre une fenetre de taille donnee, centree sur l'ecran
*/
function openCenteredWindow(name, url, w, h, notResizable)
{
	var features = ",directories=no,location=no,status=no,toolbar=no,scrollbars=yes";
	if (notResizable)
		features += ",resizable=no";
	else
		features += ",resizable=yes";
	var win = window.open(url, name, getCenteringWinPos(w,h)+features, true);
	if (typeof(win)=="undefined" || win==null || win.closed) {
		alert("Impossible d'ouvrir correctement une nouvelle fenêtre.\nSi vous utilisez un bloqueur de popup, désactivez-le pour ce site et réessayez.");
		return null;
	}
	win.focus();
	return win;
}


function getCenteringWinPos(w,h){
    var sW = parseInt(screen.availWidth, 10);
    var sH = parseInt(screen.availHeight, 10);
    if (sW / sH > 2)    // si double ecran
        sW = Math.round(sW/2);

    var x = Math.round((sW - w)/2);
    var y = Math.round((sH - h)/2);

    return "width="+w+",height="+h+",top="+y+",left="+x;
}

function openPopup(url, name) {
	openCenteredWindow(name, url, 700, 550, false);
	return false;
}

