﻿
function Browser() {

var ua, s, i;

this.isIE    = false;
this.isNS    = false;
this.version = null;

ua = navigator.userAgent;

s = "MSIE";
if ((i = ua.indexOf(s)) >= 0) {
	this.isIE = true;
	this.version = parseFloat(ua.substr(i + s.length));
	return;
}

s = "Netscape6/";
if ((i = ua.indexOf(s)) >= 0) {
	this.isNS = true;
	this.version = parseFloat(ua.substr(i + s.length));
	return;
}

// Treat any other "Gecko" browser as NS 6.1.

s = "Gecko";
if ((i = ua.indexOf(s)) >= 0) {
	this.isNS = true;
	this.version = 6.1;
	return;
}
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 9999;

function dragStart(event, id) {

var el;
var x, y;

// If an element id was given, find it. Otherwise use the element being
// clicked on.

if (id)
	dragObj.elNode = document.getElementById(id + '_dialogBox');
else {
	if (browser.isIE)
	dragObj.elNode = window.event.srcElement;
	if (browser.isNS)
	dragObj.elNode = event.target;

	// If this is a text node, use its parent element.

	if (dragObj.elNode.nodeType == 3)
	dragObj.elNode = dragObj.elNode.parentNode;
}

// Get cursor position with respect to the page.

if (browser.isIE) {
	x = window.event.clientX + document.documentElement.scrollLeft
	+ document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop
	+ document.body.scrollTop;
}
if (browser.isNS) {
	x = event.clientX + window.scrollX;
	y = event.clientY + window.scrollY;
}

// Save starting positions of cursor and element.

dragObj.cursorStartX = x;
dragObj.cursorStartY = y;
dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

// Update element's z-index.

dragObj.elNode.style.zIndex = ++dragObj.zIndex;

// Capture mousemove and mouseup events on the page.

if (browser.isIE) {
	document.attachEvent("onmousemove", dragGo);
	document.attachEvent("onmouseup",   dragStop);
	window.event.cancelBubble = true;
	window.event.returnValue = false;
}
if (browser.isNS) {
	document.addEventListener("mousemove", dragGo,   true);
	document.addEventListener("mouseup",   dragStop, true);
	event.preventDefault();
}
}

function dragGo(event) {

var x, y;

// Get cursor position with respect to the page.

if (browser.isIE) {
	x = window.event.clientX + document.documentElement.scrollLeft
	+ document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop
	+ document.body.scrollTop;
}
if (browser.isNS) {
	x = event.clientX + window.scrollX;
	y = event.clientY + window.scrollY;
}

// Move drag element by the same amount the cursor has moved.

dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

if (browser.isIE) {
	window.event.cancelBubble = true;
	window.event.returnValue = false;
}
if (browser.isNS)
	event.preventDefault();
}

function dragStop(event) {

// Stop capturing mousemove and mouseup events.

if (browser.isIE) {
	document.detachEvent("onmousemove", dragGo);
	document.detachEvent("onmouseup",   dragStop);
}
if (browser.isNS) {
	document.removeEventListener("mousemove", dragGo,   true);
	document.removeEventListener("mouseup",   dragStop, true);
}
}

var resizer = null;
function ResizeStart(event,resizeObjectID)
{		
    resizer = new Object();    
	resizer.resizeElement = document.getElementById(resizeObjectID + '_dialogBox');
	resizer.width = parseInt(document.getElementById(resizeObjectID + '_dialogBox').style.width);
	resizer.height = parseInt(document.getElementById(resizeObjectID + '_dialogBox').style.height);	
	
	if (browser.isIE) {resizer.dragger = event.srcElement;}
	if (browser.isNS) {resizer.dragger = event.target;}
    if (browser.isIE) {
	    document.attachEvent("onmousemove", resizeGO);
	    document.attachEvent("onmouseup",   resizeSTOP);	    
    }
    if (browser.isNS) {
	    document.addEventListener("mousemove", resizeGO,   true);
	    document.addEventListener("mouseup",   resizeSTOP, true);	    
    }				
	dragStart(event, null);
}

function resizeGO()
{							
	var w,h;	
	
	w = parseInt(resizer.width) + parseInt(resizer.dragger.style.left);
	h = parseInt(resizer.height) + parseInt(resizer.dragger.style.top);		
	if (w>0) resizer.resizeElement.style.width = w.toString() + "px";
	if (h>0) resizer.resizeElement.style.height = h.toString() + "px";
//	if (browser.isIE) 
//	{
//	    if (w>0) resizer.resizeElement.style.width = w;
//	    if (h>0) resizer.resizeElement.style.height = h;

//	} else {	    	    
//	    
//	    
//	}									
	
}
function resizeSTOP()
{    
	if (browser.isIE) {
	    document.detachEvent("onmousemove", resizeGO);
	    document.detachEvent("onmouseup",   resizeSTOP);
    }
    if (browser.isNS) {
	    document.removeEventListener("mousemove", resizeGO,   true);
	    document.removeEventListener("mouseup",   resizeSTOP, true);
    }	
	resizer.dragger.style.left = null;
	resizer.dragger.style.top = null;	
}

function HideDialogBox(DialogID,DialogUID,postBack) {
	document.getElementById(DialogID).style.visibility = "hidden";
	document.getElementById(DialogID + '_dimmer').style.visibility = "hidden";
	document.getElementById(DialogID + '_dialogBox').style.visibility = "hidden";
	if(postBack) __doPostBack(DialogUID,"closed");
}

function ShowDialogBox(DialogID,DialogMsg)
{		
    var dlg = document.getElementById(DialogID);
    var dimmer = document.getElementById(DialogID + "_dimmer");
    var dlgBox = document.getElementById(DialogID + "_dialogBox");
    var cellBody = document.getElementById(DialogID + "_bodyText");
    var par = dlg.parentNode;
    
    
    var pt = par.scrollTop; //getOffsetParentPosition(par.id, "Top");
    var pl = par.scrollLeft; //getOffsetParentPosition(par.id, "Left");
    var pw = par.offsetWidth;
    var ph = par.offsetHeight;
    
    var h = dlgBox.offsetHeight;		// Hauteur de l'�l�ment � positionner
	var w = dlgBox.offsetWidth;
    var posY = pt+20; // (ph / 2) - (h / 2) + pt;		// Calcul de la position en Y
	var posX = (pw / 2) - (w / 2) + pl;
    
    //if(posX<0) posX=pl;
    //if(posY<pt) posY=pt;
     
    dlg.style.width=dimmer.style.width=pw + "px";
    dlg.style.height=dimmer.style.height=ph + "px";
    dlg.style.left=dimmer.style.left= pl + "px"; //getAbsLeft(par);
    dlg.style.top=dimmer.style.top= pt + "px"; //getAbsTop(par);
    
    
    

    //dlgBox.style.width=(w-100) + "px";
    dlgBox.style.left=posX + "px";
    dlgBox.style.top=posY + "px";
    
    dlgBox.style.visibility=dimmer.style.visibility=dlg.style.visibility='visible';
//	var dlg = document.getElementById(DialogID);							 		
//	dlg.style.visibility = "visible";	

    if(DialogMsg)
        cellBody.innerHTML = DialogMsg;
        
	
}									



//donne la position par rapport � window
function getOffsetPosition(el_id, side){
	element = document.getElementById(el_id);
	newNode = document.createElement("div");
	newNode.innerHTML =  "<div style=\"height: 12px;\"></div>";
	element.insertBefore(newNode, element.firstChild);
	
	iVal = 0;
	oObj = element;
	var sType = "oObj.offset"+side;
	while (oObj && oObj.tagName != "html") {
		iVal += eval(sType);
		oObj = oObj.offsetParent;
	}
	element.removeChild(newNode);
	return iVal;
}
//donne la position par rapport au premier parent positionn�
function getOffsetParentPosition(el_id, side){
	el_parent = document.getElementById(el_id).parentNode;
	while (el_parent) {
		if(navigator.appName != "Microsoft Internet Explorer"){
			if(window.getComputedStyle(el_parent,null).position == "relative" || window.getComputedStyle(el_parent,null).position == "absolute"){
				break;
			}
			else {
				if(el_parent.tagName != "HTML"){
					el_parent = el_parent.parentNode;
				}
				else {
					el_parent = null;
				}
			}
		}
		else {
			if(el_parent.currentStyle.position == "relative" || el_parent.currentStyle.position == "absolute"){
				break;
			}
			else {
				if(el_parent.tagName != "HTML"){
					el_parent = el_parent.parentNode;
				}
				else {
					el_parent = null;
				}
			}
		}
	}
	
	if(el_parent){ parentOffset = getOffsetPosition(el_parent.id, side); }
	else { parentOffset = 0; }
	return getOffsetPosition(el_id, side) - parentOffset;
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();