/*************************************/
/* DHTML */
/*************************************/

var DHTML = (document.getElementById || document.all);

/* object */
function getObj(id) {
	try {
		if(document.getElementById)
		{
			this.style = document.getElementById(id).style;
			return document.getElementById(id);
		}
		else if(document.all)
		{
			this.style = document.all[id].style;
			return document.all[id];
		}
	}
	catch(e) {
		return false;
	}
}



/*************************************/
/* show & display */
/*************************************/

function showLayer(id,flag) {
	if(!DHTML) return;
	var obj = new getObj(id);
	obj.style.visibility = (flag) ? "visible" : "hidden";
}

function dispLayer(id,flag) {
	if(!DHTML) return;
	var obj = new getObj(id);
	obj.style.display = (flag) ? "block" : "none";
}

function ExpandCollaps(id) {
	if(!DHTML) return;
	var o = new getObj(id);
	var flag;
	switch(o.style.display) {
		case "block" :
			flag = 0;
			break;
		case "none" :
		default :
			flag = 1;
	}
	dispLayer(id,flag);
}


window.activeExpand = 0;
function ExpandCollapsAll(id,obj, evType, activate){
	if(!DHTML) return;
	var o = new getObj(id);
	var flag;
	switch(o.style.display) {
		case "block" :
			if(window.activeExpand) dispLayer(id,activate);
			window.activeExpand = 0;
			break;
		case "none" :
		default :
			ulteemUI.addEvent(obj, evType, function(){ ExpandCollapsAll(id, obj, evType, 0); }, false);
			if(activate) dispLayer(id,activate);
			if(activate || window.activeExpand == 0) window.activeExpand = 1;
	}
}

function swapLayer()
{
	if(!DHTML) return;
	var aArgs = swapLayer.arguments;
	var obj1 = new getObj(aArgs[0]);
	
	for(i = 0; i < aArgs.length; i++)
	{
		obj = new getObj(aArgs[i]);
		obj.style.display = "none";
	}
	
	obj1.style.display = "block";
}




/*************************************/
/* move */
/*************************************/

function moveLayer(id,x,y) {
	if(!DHTML) return;
	var obj = new getObj(id);
	if((document.all) && (navigator.appVersion.indexOf("Mac",0)<0)) {
		obj.style.left = document.body.scrollLeft + x + "px";
		obj.style.top = document.body.scrollTop  + y + "px";
	}
	else {
		obj.style.left = x + "px";
		obj.style.top  = y + "px";
	}
}



/*************************************/
/* findPosX & findPosY */
/*************************************/

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent) {
		while(obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent) {
		while(obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}



/*************************************/
/* Height / Width */
/*************************************/

function getWindowHeight() {
	var winH = 0;
	var docEl = (document.documentElement)? document.documentElement : (document.body)? document.body : 0;
	if(typeof(window.innerHeight)=="number") {winH = window.innerHeight;}
	else if(docEl && docEl.clientHeight) {winH = docEl.clientHeight;}
	return winH;
}

function getWindowWidth() {
	var winW = 0;
	var docEl = (document.documentElement)? document.documentElement : (document.body)? document.body : 0;
	if(typeof(window.innerWidth)=="number") {winW = window.innerWidth;}
	else if(docEl && docEl.clientWidth) {winW = docEl.clientWidth;}
	return winW;
}

function getScrollHeight() {
	if (window.innerHeight && window.scrollMaxY) { // Firefox
		scrollH = window.innerHeight + window.scrollMaxY;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
		scrollH = document.body.scrollHeight;
	}
	else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		scrollH = document.body.offsetHeight;
  	}
	return scrollH;
}


/*************************************/
/* addHandler */
/* Example :
addHandler("window.onload", function() {
	addHandler("Obj.onclick", func1);
	addHandler("Obj.onclick", func2);
});
*/
/*************************************/

function addHandler(eRef, func) {
	var eHandlers = eval(eRef);
	if(typeof eHandlers == "function") { // not first handler
		eval(eRef + " = function(e) {eHandlers(e); func(e);}");
	} else { // first handler
		eval(eRef + " = func;");
	}
}



/*************************************/
/* addEvent */
/* Example :
addEvent(obj, 'click', func);
*/
/* removeEvent */
/* Example :
removeEvent(obj, 'click', func);
*/
/*************************************/

var ulteemUI = {};

ulteemUI.addEvent = function(obj, evType, fn, useCapture){
	if(obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if(obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

ulteemUI.removeEvent = function(obj, evType, fn, useCapture){
	if(obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} else if(obj.detachEvent) {
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}



/* checkIt */
function checkIt(str) {
	place = detect.indexOf(str) + 1;
	thestring = str;
	return place;
}

/* Browser detect */
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,thestring;

/* browser */
if(checkIt('konqueror')) {
	browser = "Konqueror";
	OS = "Linux";
}
else if(checkIt('firefox')) browser = "Firefox";
else if(checkIt('camino')) browser = "Camino";
else if(checkIt('safari')) browser = "Safari";
else if(checkIt('omniweb')) browser = "OmniWeb";
else if(checkIt('opera')) browser = "Opera";
else if(checkIt('webtv')) browser = "WebTV";
else if(checkIt('icab')) browser = "iCab";
else if(checkIt('msie')) browser = "IE";
else if(!checkIt('compatible')) {
	browser = "Netscape Navigator";
	version = detect.charAt(8);
}
else browser = "unknown";

/* version */
if(!version) version = detect.charAt(place + thestring.length);

/* OS */
if(!OS) {
	if(checkIt('linux')) OS = "Linux";
	else if(checkIt('x11')) OS = "Unix";
	else if(checkIt('mac')) OS = "Mac";
	else if(checkIt('win')) OS = "Windows";
	else OS = "unknown";
}


/* button's activation on modification _ var button définie avant l'appel */
var fieldsUpdateCheck = function(myForm, myButtons, myStyle) {
	this.myForm    = myForm;
	this.myButtons = myButtons;
	this.myStyle   = myStyle;
}

fieldsUpdateCheck.prototype.initFieldsCheck = function() {
	var inputs = document.getElementById(this.myForm).getElementsByTagName('input');
	var selects = document.getElementById(this.myForm).getElementsByTagName('select');
	var ref = this;

	for(var i=0; i<inputs.length; i++) {
		ulteemUI.addEvent(inputs[i], 'change', function() {fieldsUpdateCheck.fieldsUpdate(ref.myButtons,ref.myStyle)} );
	}
	for(var i=0; i<selects.length; i++) {
		ulteemUI.addEvent(selects[i], 'change', function() {fieldsUpdateCheck.fieldsUpdate(ref.myButtons,ref.myStyle)} );
	}
}

fieldsUpdateCheck.fieldsUpdate = function(myButtons, myStyle) {
	var myReg = new RegExp(myStyle);
	for(var i=0; i<myButtons.length; i++) {
		if(document.getElementById(myButtons[i]).className.search(myReg)==-1) document.getElementById(myButtons[i]).className += ' '+myStyle;
	}
}

/* EOF */