/* Projet : dlx-commerce v.2.1
*  Auteur : PL-Datalinx
*  Historique : 18/07/2008 - Version initiale
*
*  Objet : Librairie de fonctions Javascript
*/

// window.onresize = function() { replacePopups(); }

// Variables globales
var usableWidth = 0; // (largeur de la fenêtre)
var usableWeight = 0; // (hauteur de la fenêtre)
var liste_popups = new Array('popup-client-expanded', 'popup-panier-expanded', 'popup-infos-expanded');
var scroll = 0;
	
// Détermination du scroll
// =======================

if (document.layers) {
    document.captureEvents(Event.CLICK); // Netscape old versions
    document.onclick = getScroll;
} else if (document.all) {
	document.onclick = getScroll; // Internet Explorer
} else if (document.getElementById) {
	document.onclick = getScroll; // Netcsape 6 + Mozilla
}

function getScroll(e) {
	if (document.layers) { // Netscape old versions
		scroll = window.pageYOffset;
	} else if (document.all) { // Internet Explorer
		var IEscroll = 0;
		if(document.body.scrollTop > 0) {
    		IEscroll = document.body.scrollTop;
    	} else if(document.documentElement.scrollTop > 0) {
    		IEscroll = document.documentElement.scrollTop;
    	}
    	scroll = IEscroll;
    } else if (document.getElementById) { // Netscape 6, Mozilla
    	scroll = window.pageYOffset;
	}
}

// Fonctions pour les popups
// =========================

function displayPopup(action, objectID, objectIDcollapsed) {
	var object = document.getElementById(objectID);
	var objectCollapsed = document.getElementById(objectIDcollapsed);
	var selects = document.getElementsByTagName('select');
	// positionnement
	detectUsableDimensions();	
	var popupWidth = 0;
	var posY = 0;
	switch(objectID) {
		case "popup-client-expanded":
		case "popup-client-collapsed":
			popupWidth = 240;
			posY = 120;
		break;
		case "popup-panier-expanded":
		case "popup-panier-collapsed":
			popupWidth = 200;
			posY = 287;
		break;
		case "popup-infos-expanded":
		case "popup-infos-collapsed":
			popupWidth = 240;
			posY = 404;
		break;
	}
	var rootWith = getWidth('root'); // 960;
	var posX = eval(usableWidth - rootWith)/2 + rootWith - popupWidth;
	
	object.style.left = posX + 'px';
	object.style.top = posY + 'px';
	// affichage/masquage
	// nb: on masque aussi les selects qui restent au 1er plan sous IE
	if(action == 'display') {
		object.style.display = 'block';
		objectCollapsed.style.visibility = 'hidden';
		for(i=0; i<selects.length;  i++) { selects[i].style.visibility = 'hidden'; }
	} else if(action == 'hide') {
		object.style.display = 'none';
		objectCollapsed.style.visibility = 'visible';
		for(i=0; i<selects.length;  i++) { selects[i].style.visibility = 'visible'; }
	}
}

function replacePopups() {
	for(var i=0; i<liste_popups.length; i++) {
		var object = document.getElementById(liste_popups[i]);
		if(object.style.display == 'block') {
			detectUsableDimensions();
			var popupWidth = 0;
			var posY = 0;
			switch(liste_popups[i]) {
				case "popup-client-expanded":
					popupWidth = 240;
					posY = 120;
				break;
				case "popup-panier-expanded":
					popupWidth = 200;
					posY = 287;
				break;
				case "popup-infos-expanded":
					popupWidth = 240;
					posY = 404;
				break;
			}
			var rootWith = getWidth('root'); // 960;
			var posX = eval(usableWidth - rootWith)/2 + rootWith - popupWidth;
			object.style.left = posX + 'px';
			object.style.top = posY + 'px';
		}
	}
}

function getWidth(objectID) {
	// Renvoie la largeur d'un objet identifié par son ID
	return document.getElementById(objectID).offsetWidth;
}

function detectUsableDimensions() {
	// Permet de calculer la surface utile du navigateur
	if (navigator.appName == 'Microsoft Internet Explorer') {
		usableWidth = parseInt(document.documentElement.clientWidth);
		usableWeight = parseInt(document.documentElement.clientHeight);
	} else if (navigator.appName == 'Opera') {
		usableWidth = parseInt(window.innerWidth) - 16;
		usableWeight = parseInt(window.innerHeight);
	} else {
		usableWidth = document.getElementById('ecran').scrollWidth;
		usableWeight = document.getElementById('ecran').scrollHeight;
	}
}