var offsetX, offsetY;

function toggleMenuDiv (divID, key, session_id) 
{
    var menuDiv    = document.getElementById('menu' + divID);
    var expandLink = document.getElementById('expand' + divID); 
    if (menuDiv)
    {
        if (menuDiv.style.display == 'none') 
        {
            if (key!='')
            {
                expandLink.innerHTML = '<a href="#" onClick="javascript:toggleMenuDiv(\'' + divID + '\',\'' + key + '\');'
                                     + 'javascript:getPage(\'./getPage.php5?' + key + '&session_id=' + session_id + '&menu_id=' + divID + '\');">'
                                     + '<img src="./img/collapse.gif" /></a>'; 
            }
            else
            {
                expandLink.innerHTML = '<a href="#" onClick="javascript:toggleMenuDiv(\'' + divID + '\',\'\');">'
                                     + '<img src="./img/collapse.gif" /></a>'; 
            }
            
            menuDiv.style.display = 'block';
        }
        else if (menuDiv.style.display == 'block') 
        {
            if (key!='')
            {
                expandLink.innerHTML = '<a href="#" onClick="javascript:toggleMenuDiv(\'' + divID + '\',\'' + key + '\');'
                                     + 'javascript:getPage(\'./getPage.php5?' + key + '&session_id=' + session_id + '&menu_id=' + divID + '\');">'
                                     + '<img src="./img/expand.gif" /></a>'; 
            }
            else
            {
                expandLink.innerHTML = '<a href="#" onClick="javascript:toggleMenuDiv(\'' + divID + '\',\'\');">'
                                     + '<img src="./img/expand.gif" /></a>'; 
            }
            menuDiv.style.display = 'none';
        }
    }
}

function getDate(lang)
{
    if (lang=='FR')
    {
        TJour = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
        TMois = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
    }
    else
    {
        TJour = new Array('Sunday', 'Monday', 'Tuesday', 'Wedesnay', 'Thursday', 'Friday', 'Saturday');
        TMois = new Array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'); 
    }
    
    var dt = new Date();
    DateJour = TJour[dt.getDay()] + ' ' + dt.getDate() + ' ' + TMois[dt.getMonth()] + ' '+ dt.getFullYear();
    
    return DateJour;
}

function getXMLHttpRequestObject()
{
    var xmlobj;
    
    // Check for existing objects
    if (xmlobj!=null && xmlobj.readyState!=0 && xmlobj.readyState!=4)
    {
        xmlobj.abort();
    }
    
    try
    {
        // Instantiate object for Mozilla, Netscape, ... 
        xmlobj = new XMLHttpRequest();
    }
    
    catch(e)
    {
        try
        {
            // Instantiate object for IE
            xmlobj = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e)
        {
            // Ajax is not supported by the browser
            xmlobj = null;
            return false;
        }
    }
    
    return xmlobj;
}

function getObject(type, name)
{
    var obj = null;
    if (type=='id')
    {
        obj = document.getElementById(name);
    }
    else
    {
        obj = document.getElementsByTagName(name);
    }
    
    return obj;
}

function getFormValues(obj)
{
    var str='';
    for (var i=0; i<obj.elements.length; i++)
    {
        if ((obj.elements[i].type=='checkbox' && obj.elements[i].checked) || obj.elements[i].type!='checkbox')
        {
            str += obj.elements[i].name + '=' + escape(obj.elements[i].value) + '&';
        }
    }
    return str.substr(0,(str.length-1));
}

function sendPostRequest(theXMLObj, type, name, targetURL, targetDiv)
{
    var obj = getObject(type,name);
    var str = getFormValues(obj);
    
    if (theXMLObj && obj)
    {
        var target = document.getElementById(targetDiv); 
                     
        theXMLObj.onreadystatechange = function()
        {
            if (theXMLObj.readyState==4)
            {
                if (theXMLObj.status==200)
                {
                    target.innerHTML = theXMLObj.responseText;       
                }
            }
        }
        
        // Open socket connection
        theXMLObj.open('POST',targetURL,true);
        
        // Set form http header
        theXMLObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        
        // Get form values and send http request
        theXMLObj.send(str);     
    }
}
                                     
function sendGetRequest(theXMLObj, type, targetURL, targetDiv, sourceWindow)
{
    var target = null;
    
    // Open socket connection
    theXMLObj.open('GET',targetURL,true);
    
    // Get form values and send http request
    theXMLObj.send(null);
    
    if (type=='id')
    {
        target = sourceWindow.document.getElementById(targetDiv); 
    }
    else
    {
        target = sourceWindow.document.getElementsByTagName(targetDiv);
    }
    
    if (target==null)
    {
        return;
    }
    
    theXMLObj.onreadystatechange = function()
    {
        if (theXMLObj.readyState==4)
        {
            if (theXMLObj.status==200)
            {
                response = theXMLObj.responseText;
                if (response.indexOf('Contains no data.')<=0)
                {
                    target.innerHTML = response;
                }      
            }
        }
        else if (targetURL.indexOf('TYPE')>0)
        {
            target.innerHTML = '<p align="center"><img src="./img/working.gif"></p>';
        }
    }
}

function getFormPage(targetURL,formId)
{
    var obj = getObject('id',formId);
    if (obj)
    {
        getPage(targetURL + '?' + getFormValues(obj));
    }
}

function getPage(targetURL)
{
  //alert(targetURL);
    if (targetURL!='')
    {
        var theXMLObj = getXMLHttpRequestObject();
        sendGetRequest(theXMLObj, 'id', targetURL, 'content', self);
    }
}

function getPageParent(targetURL)
{
    if (targetURL!='')
    {
        var theXMLObj = getXMLHttpRequestObject();
        
        // Open socket connection
        theXMLObj.open('GET',targetURL,true);
    
        // Get form values and send http request
        theXMLObj.send(null);
    
        target = window.opener.document.getElementById('content'); 
    
        if (target==null)
        {
            return;
        }
    
        theXMLObj.onreadystatechange = function()
        {
            if (theXMLObj.readyState==4)
            {
                if (theXMLObj.status==200)
                {
                    response = theXMLObj.responseText;
                    if (response.indexOf('Contains no data.')<=0)
                    {
                        target.innerHTML = response;
                    }      
                }
            }
            else if (targetURL.indexOf('TYPE')>0)
            {
                target.innerHTML = '<p align="center"><img src="./img/working.gif"></p>';
            }
        }
    }
} 

function closeAfterDelay(timeout)
{
    setTimeout("window.close()",timeout);
}

function refreshPhoneBook(timeout)
{
    if (window.opener)
    {
        setTimeout("getPageParent('./getPage.php5?PAGE=PHONE_BOOK&TYPE=LIST')",timeout);
    }
}

function getContact(targetURL)
{
    if (targetURL!='')
    {
        var theXMLObj = getXMLHttpRequestObject();
        sendGetRequest(theXMLObj, 'id', targetURL, 'contact', self);
    }
}

function displayDate(day, mon, yr, session)
{
    var theXMLObj = getXMLHttpRequestObject();
    var targetURL = './getPage.php5?PAGE=CALENDAR&TYPE=DATE&DAY=' + day + '&MON=' + mon + '&YR=' + yr + '&SAVE=NO&PHPSESSID=' + session;
    sendGetRequest(theXMLObj, 'id', targetURL, 'calendar', self);
}

function showEvent(date, session)
{
    var theXMLObj = getXMLHttpRequestObject();
    var targetURL = './getPage.php5?PAGE=CALENDAR&TYPE=EVENT&DATE=' + date + '&SAVE=NO&PHPSESSID=' + session;
    sendGetRequest(theXMLObj, 'id', targetURL, 'eventContent', self); 
    document.getElementById('eventDiv').style.visibility='';  
}

function postPage(formSource)
{
    var theXMLObj = getXMLHttpRequestObject();
    if (theXMLObj)
    {
        sendPostRequest(theXMLObj,'id',formSource,'./postPage.php5','content');
    }
}

function postContact(formSource, targetDiv)
{
    var theXMLObj = getXMLHttpRequestObject();
    if (theXMLObj)
    {
        sendPostRequest(theXMLObj,'id',formSource,'./postPage.php5',targetDiv);
    }
}

function modifyContact(formSource, target)
{
    var theXMLObj = getXMLHttpRequestObject();
    if (theXMLObj)
    {
        sendPostRequest(theXMLObj,'id',formSource,'./postPage.php5',target);
    }
}

function openPopUp(MyFile,MyWindow,MyWidth,MyHeight,MyTitle,MyText)
{    
    var ns4 = (document.layers)? true:false;            // NS 4 
    var ie4 = (document.all)? true:false;               // IE 4 
    var dom = (document.getElementById)? true:false;    // DOM 
    var xMax, yMax, xOffset, yOffset;;    

    if (ie4 || dom)
    {
        xMax = screen.width;
        yMax = screen.height;
    }
    else if (ns4)
    {
        xMax = window.outerWidth;
        yMax = window.outerHeight;
    }
    else
    {
        xMax = 800;
        yMax = 600;
    }
    xOffset = (xMax - MyWidth)/2;
    yOffset = (yMax - MyHeight)/2;
    popup = window.open(MyFile,MyWindow,'width=' + MyWidth
                                                 + ',height='   + MyHeight
                                                 + ',screenX='  + xOffset
                                                 + ',screenY='  + yOffset
                                                 + ',top='      + yOffset
                                                 + ',left='     + xOffset
                                                 + ',directories=no,location=no,menubar=no,resizable=no,status=no,toolbar=no,scrollbars=yes');
   
    var sHTML = '<html><head><title>' + MyTitle + '</title></head>';
    sHTML += '<body bgcolor="#ffffff" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">';
    sHTML += '<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">';
    sHTML += '<tr><td align="center"><h1>' + MyTitle + '</h1></td></tr>';
    sHTML += '<tr><td align="center"><div id=' + MyTitle + '>' + MyText + '</div></td></tr>';
    sHTML += '</table></body></html>';
    popup.document.write(sHTML);
    
    if (popup.window.focus)
    {
        popup.window.focus();
    }                                                 
}

function confirmGetPage(targetURL,msgConfirm)
{
    if (confirm(msgConfirm))
    {
        getPage(targetURL);
    }
}

function changeBgColor(obj, bgColor)
{
    obj.style.backgroundColor = bgColor;
}

function changeLang(session_id, lang)
{
    document.location.href('index.php5?PHPSESSID=' + session_id + '&lang=' + lang);
}

function loadMenus(session_id)
{
    // Reload menu
    var theXMLObjMenus = getXMLHttpRequestObject();
    sendGetRequest(theXMLObjMenus, 'id', './getPage.php5?PAGE=RELOAD&TYPE=MENU&PHPSESSID=' + session_id, 'menu_left', self); 
    window.location.reload();
}

function logUser(session_id)
{
    theXMLObj = getXMLHttpRequestObject();
    if (theXMLObj)
    {
        var obj = getObject('id','form_login');
        var str = getFormValues(obj);
    
        if (theXMLObj && obj)
        {
            var target = document.getElementById('login'); 
                     
            theXMLObj.onreadystatechange = function()
            {
                if (theXMLObj.readyState==4)
                {
                    if (theXMLObj.status==200)
                    {
                        target.innerHTML = theXMLObj.responseText;
                        loadMenus(session_id);       
                    }
                }
            }
        
            // Open socket connection
            theXMLObj.open('POST','./postPage.php5',true);
        
            // Set form http header
            theXMLObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        
            // Get form values and send http request
            theXMLObj.send(str);     
        }
    }
}

function sendPass(targetURL)
{
    var formLogin = document.getElementById('form_login');
    if (formLogin)
    {
        if (formLogin.login.value!='')
        {
            theXMLObj = getXMLHttpRequestObject();
            theXMLObj.open('GET',targetURL + '&LOGIN=' + formLogin.login.value,true);
        
            // Get form values and send http request
            theXMLObj.send(null);
            theXMLObj.onreadystatechange = function()
            {
                if (theXMLObj.readyState==4 && theXMLObj.status==200)
                {
                    alert(theXMLObj.responseText);      
                }
            }
        }
        else
        {
            alert('Entrez d\'abord votre login !');
        }
    }
}

function MouseEvent(e)
{
    if (e)
    {
        this.e = e;
    }
    else
    {
        this.e = window.event;
    }
    
    if (e.pageX)
    {
        this.x = e.pageX;
    }
    else
    {
        this.x = e.clientX;
    }
    
    if (e.pageY)
    {
        this.y = e.pageY;
    }
    else
    {
        this.y = e.clientY;
    }
    
    if (e.target)
    {
        this.target = e.target;
    }
    else
    {
        this.target = e.srcElement;
    }
}

function handleDown(obj, e)
{
    var e = new MouseEvent(e);
    addListener("mousemove", handleMove);
    addListener("mouseup", handleUp);
    offsetX = e.x - parseInt(obj.style.left);
    offsetY = e.y - parseInt(obj.style.top);
}

function handleMove(e)
{
    var e = new MouseEvent(e);
    var x = e.x - offsetX;
    e.target.style.left = x + "px";
    var y = e.y - offsetY;
    e.target.style.top = y + "px";
}

function handleUp(e)
{
    var e = new MouseEvent(e);
    removeListener("mousemove", handleMove);
    removeListener("mouseup", handleUp);
}

function addListener(type, callback)
{
    if (document.addEventListener)
    {
        document.addEventListener(type, callback, false);
    }
    else if (document.attachEvent)
    {
        document.attachEvent("on" + type, callback, false);
    }
}

function removeListener(type, callback)
{
    if (document.removeEventListener)
    {
        document.removeEventListener(type, callback, false);
    }
    else if (document.detachEvent)
    {
        document.detachEvent("on" + type, callback, false);
    }
}



