/****************************************************************
* Copyright S�astien BOURRET - http://bdportal.chez.tiscali.fr *
* L'ensemble de ce script est libre d'utilisation et de         *
* modification sous reserve de conserver cet en-t�e.           *
****************************************************************/


/************************************ JSTool **********************************************/
JSTool = {toString : new function(){return "TazLC Javascript Tool";}}

//JSTool constants
JSTool.eventType =
{
	Click		: "click",
	DblClick	: "dblclick",
	MouseOut	: "mouseout",
	MouseOver	: "mouveover",
	MouseDown	: "mousedown",
	MouseUp		: "mouseup",
	MouseMove	: "mousemove",
	Scroll		: "scroll"
}

JSTool.coor =
{
	X	: 0,
	Y 	: 1,
	Width	: 0,
	Height	: 1
}

/******************************* Coordinate method ***************************************/

JSTool.getOffsetCoor		= function(elm){
	var parent = elm;
	var l = 0;
	var t = 0;

	while(parent)
	{
			if(parent.offsetLeft)l += parent.offsetLeft;
			if(parent.offsetTop) t += parent.offsetTop;

		parent = parent.offsetParent;
	}
	return [l,t];
}

/***************************** Generic function & constants **************************/
//global js API constants
var g_activeEl;
var g_ID_COUNT = 0;

//automatic id generation
function getAutoId()
{
	g_ID_COUNT++;
	return "JSID_"+g_ID_COUNT;
}

/**
* Affichage des propriétés d'un objet
* @param aObj objet à scanner
*/
function showObject(aObj)
{
	var str="";
	var maxCount=10;
	var count = 0;

	for(var i in aObj)
	{
		try
		{
			str+=i + " = " + eval("aObj."+i) + "\n";
		}
		catch(e)
		{
			str+=i + " = ?\n";
		}
		if(++count>maxCount)
		{
			alert(str);
			str="";
			count=0;
		}
	}
	if(str.length>0) alert(str);
}

//define if coordinate is inside a shape
function inShape(x,y,X,Y,W,H){return (x>=X && y>=Y && x<=X+W && y<=Y+H);}

/***
* Ouvre une fen�re centr� en popup
* @url addresse de la page
* @name nom de la fen�re
* @w largeur de la fen�re
* @h hauteur de la fen�re
*/
function openWndCenter(url,name,w,h)
{
 var sw = screen.width;
 var sh = screen.height;
 var x = parseInt((sw-w)/2);
 var y = parseInt((sh-h)/2);
 var wnd =window.open(url,name,"menubar=no,status=no,toolbar=no,top="+y+",left="+x+",width="+w+",height="+h);
 wnd.opener = window;
 wnd.focus();
}

/***
* Ouvre une popup sizable et scrollable centrée
* @url addresse de la page
* @name nom de la fen�re
* @w largeur de la fen�re
* @h hauteur de la fen�re
*/
function openPopupCenter(url,name,w,h)
{
 var sw = screen.width;
 var sh = screen.height;
 var x = parseInt((sw-w)/2);
 var y = parseInt((sh-h)/2);
 var wnd =window.open(url,name,"menubar=no,status=no,toolbar=no,top="+y+",left="+x+",width="+w+",height="+h+",resizable=yes");
 wnd.opener = window;
 wnd.focus();
}

/***
* Ouvre une fenêre centrée en popup
* @param url addresse de la page
* @param name nom de la pop-up
*/
var DELTA = 100;
function openFrameset(url, name)
{
	var sw = screen.width;
	var sh = screen.height;
	var w = sw-DELTA;
	var h = sh-DELTA;
 	var x = parseInt((sw-w)/2);
 	var y = parseInt((sh-h)/2);
 	var wnd = window.open(url,name,"menubar=no,status=no,toolbar=no,top="+y+",left="+x+",width="+w+",height="+h+",resizable=yes");
 	wnd.opener = window;
 	wnd.focus();
	return false;
}

/***
* Ouvre l'aide
* @param language langue de l'aide
* @param chapter chapitre de l'aide
*/
var ROOT_HELP_URL = "/corpus/portail/";
var HELP_WINDOW = "lb_help";
var HELP_WINDOW_WIDTH = 640;
var HELP_WINDOW_HEIGHT = 480;

function openHelp(language, chapter)
{
	var url = ROOT_HELP_URL + language + ".html#" + chapter;
	var sw = screen.width;
	var sh = screen.height;
	var x = parseInt((sw-HELP_WINDOW_WIDTH)/2);
	var y = parseInt((sh-HELP_WINDOW_HEIGHT)/2);
	var wnd =window.open(url,HELP_WINDOW,"menubar=no,status=no,toolbar=no,top="+y+",left="+x+",width="+HELP_WINDOW_WIDTH+",height="+HELP_WINDOW_HEIGHT+",scrollbars=yes");
	wnd.opener = window;
	wnd.focus();
	return false;
}

/**
* Redimmesionnement d'une image à partir d'un autre
* @param img image à redimensionner
* @param url url de l'image servant au redimesionnement
*/
function checkBgSize(img,url)
{
	var bgImg = new Image();
	bgImg.linkImg = img;
	bgImg.src= url;
	resizeMenuLeft(bgImg);
}

/**
* Fonction de redimessionnement d'un image à partir d'un autre
* appelée par checkBgSize
*/
function resizeMenuLeft(bgImg)
{
	bgImg.linkImg.height = bgImg.height;
}
