//Floating DIV Code
//<!--
/* Script by: www.jtricks.com
* Version: 20071017
* Latest version:
* www.jtricks.com/javascript/navigation/floating.html
*/
var floatingWinId = 'floatDiv';
var floatingWin =
{
    targetX: -355,
    targetY: -380,

    hasInner: typeof (window.innerWidth) == 'number',
    hasElement: typeof (document.documentElement) == 'object'
        && typeof (document.documentElement.clientWidth) == 'number',

    menu:
        document.getElementById
        ? document.getElementById(floatingWinId)
        : document.all
          ? document.all[floatingWinId]
          : document.layers[floatingWinId]
};

floatingWin.move = function() {
    floatingWin.menu.style.left = floatingWin.nextX + 'px';
    floatingWin.menu.style.top = floatingWin.nextY + 'px';
}

floatingWin.computeShifts = function() {
    var de = document.documentElement;

    floatingWin.shiftX =
        floatingWin.hasInner
        ? pageXOffset
        : floatingWin.hasElement
          ? de.scrollLeft
          : document.body.scrollLeft;
    if (floatingWin.targetX < 0) {
        floatingWin.shiftX +=
            floatingWin.hasElement
            ? de.clientWidth
            : document.body.clientWidth;
    }

    floatingWin.shiftY =
        floatingWin.hasInner
        ? pageYOffset
        : floatingWin.hasElement
          ? de.scrollTop
          : document.body.scrollTop;
    if (floatingWin.targetY < 0) {
        if (floatingWin.hasElement && floatingWin.hasInner) {
            // Handle Opera 8 problems
            floatingWin.shiftY +=
                de.clientHeight > window.innerHeight
                ? window.innerHeight
                : de.clientHeight
        }
        else {
            floatingWin.shiftY +=
                floatingWin.hasElement
                ? de.clientHeight
                : document.body.clientHeight;
        }
    }
}

floatingWin.calculateCornerX = function() {
    if (floatingWin.targetX != 'center')
        return floatingWin.shiftX + floatingWin.targetX;

    var width = parseInt(floatingWin.menu.offsetWidth);

    var cornerX =
        floatingWin.hasElement
        ? (floatingWin.hasInner
           ? pageXOffset
           : document.documentElement.scrollLeft) +
          (document.documentElement.clientWidth - width) / 2
        : document.body.scrollLeft +
          (document.body.clientWidth - width) / 2;
    return cornerX;
};

floatingWin.calculateCornerY = function() {
    if (floatingWin.targetY != 'center')
        return floatingWin.shiftY + floatingWin.targetY;

    var height = parseInt(floatingWin.menu.offsetHeight);

    // Handle Opera 8 problems
    var clientHeight =
        floatingWin.hasElement && floatingWin.hasInner
        && document.documentElement.clientHeight
            > window.innerHeight
        ? window.innerHeight
        : document.documentElement.clientHeight

    var cornerY =
        floatingWin.hasElement
        ? (floatingWin.hasInner
           ? pageYOffset
           : document.documentElement.scrollTop) +
          (clientHeight - height) / 2
        : document.body.scrollTop +
          (document.body.clientHeight - height) / 2;
    return cornerY;
};

floatingWin.doFloat = function() {
    var stepX, stepY;

    floatingWin.computeShifts();

    var cornerX = floatingWin.calculateCornerX();

    var stepX = (cornerX - floatingWin.nextX) * .07;
    if (Math.abs(stepX) < .5) {
        stepX = cornerX - floatingWin.nextX;
    }

    var cornerY = floatingWin.calculateCornerY();

    var stepY = (cornerY - floatingWin.nextY) * .07;
    if (Math.abs(stepY) < .5) {
        stepY = cornerY - floatingWin.nextY;
    }

    if (Math.abs(stepX) > 0 ||
        Math.abs(stepY) > 0) {
        floatingWin.nextX += stepX;
        floatingWin.nextY += stepY;
        floatingWin.move();
    }

    setTimeout('floatingWin.doFloat()', 20);
};

// addEvent designed by Aaron Moore
floatingWin.addEvent = function(element, listener, handler) {
    if (typeof element[listener] != 'function' ||
       typeof element[listener + '_num'] == 'undefined') {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function') {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function(e) {
            var r = true;
            e = (e) ? e : window.event;
            for (var i = element[listener + '_num'] - 1; i >= 0; i--) {
                if (element[listener + i](e) == false)
                    r = false;
            }
            return r;
        }
    }

    //if handler is not already stored, assign it
    for (var i = 0; i < element[listener + '_num']; i++)
        if (element[listener + i] == handler)
        return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};

floatingWin.init = function() {
    floatingWin.initSecondary();
    floatingWin.doFloat();
};

// Some browsers init scrollbars only after
// full document load.
floatingWin.initSecondary = function() {
    floatingWin.computeShifts();
    floatingWin.nextX = floatingWin.calculateCornerX();
    floatingWin.nextY = floatingWin.calculateCornerY();
    floatingWin.move();
}

if (document.layers)
    floatingWin.addEvent(window, 'onload', floatingWin.init);
else {
    floatingWin.init();
    floatingWin.addEvent(window, 'onload',
        floatingWin.initSecondary);

}

//--> //End of Floating DIV Code


//Browser Detection----------------------------------------------------------

var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "An unknown version";
        this.OS = this.searchString(this.dataOS) || "An unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },

    dataBrowser: [
		{
		    string: navigator.userAgent,
		    subString: "Chrome",
		    identity: "Chrome"
		},
		{ string: navigator.userAgent,
		    subString: "OmniWeb",
		    versionSearch: "OmniWeb/",
		    identity: "OmniWeb"
		},
		{
		    string: navigator.vendor,
		    subString: "Apple",
		    identity: "Safari",
		    versionSearch: "Version"
		},
		{
		    prop: window.opera,
		    identity: "Opera"
		},
		{
		    string: navigator.vendor,
		    subString: "iCab",
		    identity: "iCab"
		},
		{
		    string: navigator.vendor,
		    subString: "KDE",
		    identity: "Konqueror"
		},
		{
		    string: navigator.userAgent,
		    subString: "Firefox",
		    identity: "Firefox"
		},
		{
		    string: navigator.vendor,
		    subString: "Camino",
		    identity: "Camino"
		},
		{		// for newer Netscapes (6+)
		    string: navigator.userAgent,
		    subString: "Netscape",
		    identity: "Netscape"
		},
		{
		    string: navigator.userAgent,
		    subString: "MSIE",
		    identity: "Explorer",
		    versionSearch: "MSIE"
		},
		{
		    string: navigator.userAgent,
		    subString: "Gecko",
		    identity: "Mozilla",
		    versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
		    string: navigator.userAgent,
		    subString: "Mozilla",
		    identity: "Netscape",
		    versionSearch: "Mozilla"
		}
	],

    dataOS: [
		{
		    string: navigator.platform,
		    subString: "Win",
		    identity: "Windows"
		},
		{
		    string: navigator.platform,
		    subString: "Mac",
		    identity: "Mac"
		},
		{
		    string: navigator.platform,
		    subString: "Linux",
		    identity: "Linux"
		}
	]
};
BrowserDetect.init();
// End of Browser Detection

/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetxpoint=-45 //Customize x offset of tooltip
var offsetypoint=15 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
 
function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
 
function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}
 
function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
 
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
 
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"
 
//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}
 
function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
 
document.onmousemove=positiontip
 
//ENd TOOL TIP