// AAPQ - Common JS Library

var infoaddr = "gro.qpaazzzofni";

function unscrumbleString(s) {
	return s.split("").reverse().join("").replace(/zzz/,"@");
}

function unscrumble(subject) {
	var ee = "=tcejbus?" + infoaddr + ":otliam";
	return unscrumbleString(ee) + subject;
}

function enterCMSMode() {
	var sep = (location.search!="")?"&admin":"?admin";
	location.href=location.href+sep;
}

String.prototype.trim = function () {
	var trimmedString = this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
	return trimmedString.replace(/\s+/g, " ");
};

function textFieldIsEmpty(txt) {
	if(txt.trim().search(/[a-z0-9]/i)==-1)
		return true;
	return false;
}

function trimAllFields(f) {
	for(var i=0; i<f.elements.length; i++) {
		f.elements[i].value = f.elements[i].value.trim();
	}
}

function cleanChars(s) {
	return s.replace(/\u0153/g,"oe").replace(/\u2019/g,"'").replace(/\u0152/g,"Oe");
}

function toggleVisibility(elt) {
	if(elt.nodeType != 1) elt = elt.nextSibling;
	elt.style.display=(elt.style.display=="block")?"none":"block";
}

function togglePlusMinus(img) {
	if(img.nodeType != 1) img = img.nextSibling;
	var imgSrc = img.src;
	img.src =(imgSrc.search(/_plus\./)>-1)?(imgSrc.replace(/_plus\./,"_minus.")):(imgSrc.replace(/_minus\./,"_plus."));
}

var lastVisibleElt = null;
function toggleVisibilityExclusive(elt) {
	elt.style.display=(elt.style.display=="block")?"none":"block";
	if(lastVisibleElt!=null && lastVisibleElt !=elt)
		lastVisibleElt.style.display = "none";
	lastVisibleElt = elt;
}

function registerClickEvents() {
	if (window.addEventListener)
		document.addEventListener("click", checkClickTarget, false);
	else if (window.attachEvent)
		document.attachEvent("onclick", checkClickTarget);
}

function unregisterClickEvents() {
	if (window.removeEventListener)
		document.removeEventListener("click", checkClickTarget, false);
	else if (window.detachEvent)
		document.detachEvent("onclick", checkClickTarget);
}

function showActionMessage(type,msgText) {
	var msgElt = document.getElementById("tempActionMsg_"+type);
	msgElt.innerHTML = msgText;
	msgElt.style.visibility = "visible";
	setTimeout("hideActionMessage('"+type+"');",5000);
}

function hideActionMessage(type) {
	if(document.getElementById("tempActionMsg_"+type)) {
		var msgElt = document.getElementById("tempActionMsg_"+type);
		msgElt.innerHTML = "";
		msgElt.style.visibility = "hidden";
	}
}

function toggleOnOff(img) {
	var imgSrc = img.src;
	img.src =(imgSrc.search(/_on\./)>-1)?(imgSrc.replace(/_on\./,"_off.")):(imgSrc.replace(/_off\./,"_on."));
}

function toggleDownUp(img) {
	var imgSrc = img.src;
	img.src =(imgSrc.search(/_((on)|(off))\./)>-1)?(imgSrc.replace(/_((on)|(off))\./,"_down.")):(imgSrc.replace(/_down\./,"_on."));
}

function showWaitAnimation() {
	var div = document.createElement("div");
	div.setAttribute("id","ajaxLoadingMsgDiv");
	div.className = "ajaxLoadingMsgDiv";
	var img = document.createElement("img");
	img.setAttribute("src","images/loading.gif");
	img.className = "ajaxLoadingMsgImage";
	div.appendChild(img);
	document.body.appendChild(div);
	div.style.top = (document.documentElement.clientHeight - div.offsetHeight)/2 + "px";
	div.style.left = (document.documentElement.clientWidth - div.offsetWidth)/2 + "px";
}

function hideWaitAnimation() {
	if(document.getElementById("ajaxLoadingMsgDiv")) {
		document.body.removeChild(document.getElementById("ajaxLoadingMsgDiv"));
	}
}

// Appel Ajax
var request;
var paramsObj;
var lastListAjaxCallURL;
function ajaxCall(method,url,postData,handler,params) {
	if(handler.toString().search(/function ((showMembers)|(showTitles))/i)!=-1)
		lastListAjaxCallURL = url;
	if (window.XMLHttpRequest)
		request = new XMLHttpRequest();
	else if (window.ActiveXObject)
		request = new ActiveXObject("Microsoft.XMLHTTP");
	if(!request) return false;
	request.onreadystatechange = handler;
	request.open(method, url, true);
	if(postData) 
		request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
	paramsObj = params;
	request.send(postData);
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}

// Does not work in IE
Object.prototype.addCompatibleEventListener = 	function(eventName,handler,bubble) {
													if(document.addEventListener)
														this.addEventListener(eventName,handler,false);
													else if(document.attachEvent)
														this.attachEvent('on'+eventName,handler);
												}
// Works in FF+IE+Chrome						
function addGlobalEventListener(obj,eventName,handler,bubble) {
	if(document.addEventListener)
		obj.addEventListener(eventName,handler,false);
	else if(document.attachEvent)
		obj.attachEvent('on'+eventName,handler);
}


var WindowObjectReference = null;

function openRequestedPopup(strUrl, strWindowName) {
	if(WindowObjectReference == null || WindowObjectReference.closed){
		WindowObjectReference = window.open(strUrl, strWindowName,"resizable=yes,scrollbars=yes,status=yes,width=850,height=800");
	}
	else {
		WindowObjectReference.location = strUrl;
		WindowObjectReference.focus();
	}
}