﻿var _elementID;
var _xOffset = 0;
var _yOffset = 0;
var _xPos = -1;
var _yPos = -1;
var _PersonID = 0;
var _Dealer;
var _CallingElement = null;
var xmlRequest
var secs
var timerID = null
var timerRunning = false
var delay = 1000

function GetMouseX(event) {
    if (!event) {
        event = window.event;
    }

    if (event.pageX) {
        return event.pageX;
    }
    else if (event.clientX) {
        return event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    }
    else {
        return 0;
    }
}

function GetMouseY(event) {
    if (!event) {
        event = window.event;
    }

    if (event.pageY) {
        return event.pageY;
    }
    else if (event.clientY) {
        return event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    }
    else {
        return 0;
    }
}

function Follow(event) {
    if (document.getElementById) {
        var element = document.getElementById(_elementID);
        if (element != null) {
            var style = element.style;

            if (element != null && style.visibility != 'visible') {

                if (_xPos < 0) {
                    style.left = (parseInt(GetMouseX(event)) + _xOffset) + 'px';
                    //alert(style.left);
                }
                else {
                    style.left = _xPos + "px";
                }

                if (_yPos < 0) {

                    style.top = (parseInt(GetMouseY(event)) - _yOffset) + 'px';
                }
                else {
                    style.top = _yPos + "px";
                }
                style.visibility = 'visible';
            }
        }
    }
}

function Show(elementID, PersonID, Dealer, CallingElement, xPos, YPos) {
    if (document.getElementById) {
        StopTheClock();
        HideWindow(elementID);
        _PersonID = PersonID;
        _Dealer = Dealer;
        _elementID = elementID;
        _CallingElement = CallingElement
        _CallingElement.style.color = "Red";
        _xPos = xPos;
        _yPos = YPos;

        document.onmousemove = Follow;
    }
}

function ShowHover(elementID) {
    if (document.getElementById) {
        StopTheClock();
        _elementID = elementID;

        var element = document.getElementById(_elementID);
        var style = element.style;
        //_CallingElement.style.color = "Red";

        style.visibility = 'visible';
    }
}

function Hide(elementID) {
    if (!timerRunning) {

        InitializeTimer(elementID);
    }

}

function HideWindow(elementID) {
    if (document.getElementById) {
        var divPopup = document.getElementById(elementID);
        if (divPopup != null) {
            var divStyle = divPopup.style;
            divStyle.visibility = 'hidden';

            if (_CallingElement != null) {
                _CallingElement.style.color = "Blue";
            }
            document.onmousemove = '';
        }
    }
}


function InitializeTimer(elementID) {
    // Set the length of the timer, in seconds
    
    var TempelementID = elementID;
    secs = 1;
    StopTheClock();
    StartTheTimer(TempelementID);
}

function StopTheClock() {
    if (timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}

function StartTheTimer(elementID) {
    if (secs == 0) {
        StopTheClock();
        HideWindow(elementID);

    }
    else {
        self.status = secs;
        secs = secs - 1;
        timerRunning = true;
        timerID = self.setTimeout("StartTheTimer('" + elementID + "')", delay);
    }
}




function SendRequest(url, params) {
    var pageURL = '/LeadTracker/Includes/LeadInfo.aspx' + params;
    var e;
    try {
        xmlRequest = new XMLHttpRequest();
    }
    catch (e) {
        try {
            xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            alert("none");
        }
    }

    xmlRequest.onreadystatechange = state_Change;
    xmlRequest.open("GET", pageURL, true);
    xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlRequest.send(null);
    return xmlRequest;

}


function state_Change() {
    if (xmlRequest.readyState == 4) {// 4 = "loaded"
        if (xmlRequest.status == 200) {// 200 = "OK"
            document.getElementById('boxbody').innerHTML = xmlRequest.responseText;
        }
        else {
            alert("Problem retrieving data:" + xmlRequest.statusText);
        }
    }
    else {

    }
}

function ClipBoard(element) {
    var holdtext = document.getElementById('holdtext');
    holdtext.innerText = document.getElementById(element).innerText;
    Copied = holdtext.createTextRange();
    Copied.execCommand("Copy");
}

function copy_clip(element) {

    var meintext;

    var TextElement = document.getElementById(element);

    TextElement.style.color = "Red";

    meintext = TextElement.innerText

    if (window.clipboardData) {

        // the IE-manier
        window.clipboardData.setData("Text", meintext);

        // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
        // het is mij echter onbekend vanaf welke versie dit precies werkt:
    }
    else if (window.netscape) {

        // dit is belangrijk maar staat nergens duidelijk vermeld:
        // you have to sign the code to enable this, or see notes below 
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

        // maak een interface naar het clipboard
        var clip = Components.classes['@mozilla.org/widget/clipboard;1']
                 .createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;

        // maak een transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;1']
                  .createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;

        // specificeer wat voor soort data we op willen halen; text in dit geval
        trans.addDataFlavor('text/unicode');

        // om de data uit de transferable te halen hebben we 2 nieuwe objecten 
        // nodig om het in op te slaan
        var str = new Object();
        var len = new Object();

        var str = Components.classes["@mozilla.org/supports-string;1"]
                .createInstance(Components.interfaces.nsISupportsString);

        var copytext = meintext;

        str.data = copytext;

        trans.setTransferData("text/unicode", str, copytext.length * 2);

        var clipid = Components.interfaces.nsIClipboard;

        if (!clip) return false;

        clip.setData(trans, null, clipid.kGlobalClipboard);

    }
    //TextElement.style.color = "";
    //alert("Following info was copied to your clipboard:\n\n" + meintext);
    return false;
}




var DDSPEED = 10;
var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id, d) {
    var h = document.getElementById(id + '-ddheader');
    var c = document.getElementById(id + '-ddcontent');
    clearInterval(c.timer);
    if (d == 1) {
        clearTimeout(h.timer);
        if (c.maxh && c.maxh <= c.offsetHeight) { return }
        else if (!c.maxh) {
            c.style.display = 'block';
            c.style.height = 'auto';
            c.maxh = c.offsetHeight;
            c.style.height = '0px';
        }
        c.timer = setInterval(function() { ddSlide(c, 1) }, DDTIMER);
    } else {
        h.timer = setTimeout(function() { ddCollapse(c) }, 50);
    }
}

// collapse the menu //
function ddCollapse(c) {
    c.timer = setInterval(function() { ddSlide(c, -1) }, DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id) {
    var h = document.getElementById(id + '-ddheader');
    var c = document.getElementById(id + '-ddcontent');
    clearTimeout(h.timer);
    clearInterval(c.timer);
    if (c.offsetHeight < c.maxh) {
        c.timer = setInterval(function() { ddSlide(c, 1) }, DDTIMER);
    }
}

// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(c, d) {
    var currh = c.offsetHeight;
    var dist;
    if (d == 1) {
        dist = (Math.round((c.maxh - currh) / DDSPEED));
    } else {
        dist = (Math.round(currh / DDSPEED));
    }
    if (dist <= 1 && d == 1) {
        dist = 1;
    }
    c.style.height = currh + (dist * d) + 'px';
    c.style.opacity = currh / c.maxh;
    c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
    if ((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)) {
        clearInterval(c.timer);
    }
}