/***************************************/
// vars for configuration

var background_color = "#C4D8AE";
var color = "#000000";
var border = " solid black 1px";
var fontfamily = "arial";
var fontsize = "12";
var hidetime = 3000; // time in millis before info fades
var padding = "15px 15px 15px 15px";

/***************************************/

var live = {};
var nofade = {};
var fastfade = false;
var moz_opacity = false;
var ie_opacity = false;
var nodes = {};

var tempX = 0;
var tempY = 0;

var ison = false;

var IE = document.all?true:false;
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);

// Set-up to use getMouseXY function onMouseMove
//document.onmousemove = getMouseXY;
var lastTooltipId;

function setOff(altid) {
    //alert(altid);
    var nodeInst = nodes[altid];
    nodeInst['on'] = false;
    ison = false;
}

//Added by Artem Vysotsky 

function executeOnloadChain()
{
    while(onloadChain.length > 0)
    {
        var eventHandler = onloadChain.pop();
        eventHandler();
    }
}


function tooltip_createDiv(content)
{
    var d = document.createElement("DIV");
    d.className = "toolTip";
    d.style.display = "none";
    d.innerHTML = "<div class='toolTipContainer'><table><tr><td class='lt'></td><td class='t'></td><td class='rt'></td></tr><tr><td class='l'></td><td class='c' id='tooltip_content'>"+content+"</td><td class='r'></td></tr><tr><td class='lb'></td><td class='b'></td><td class='rb'></td></tr></table><div class='dialog'></div></div>";
    return d;
}

function tooltip_parse(){
    var contentDiv = $('main2');
    if(contentDiv){
        var tipwords = $$('a.tw');
        $A(tipwords).each(function(tw) {
            tw.observe('mouseover', tooltip_onmouseover);
            tw.observe('mouseout', tooltip_onmouseout);
        });
    }
}

function tooltip_onmouseover(event){
    var el = Event.element(event);
    var tt = tooltip.getByContentEl(el);
    if(tt) tt.show(el);
}

function tooltip_onmouseout(event){
    var el = Event.element(event);
    var tt = tooltip.getByContentEl(el);
    if(tt) tt.hide();
}

function tooltip_getByContentEl(el){
    var id = el.id;
    tt = tooltip.collection[id];
    if(!tt){
        tt = new tooltip(id);
        tooltip.collection[id] = tt;
    }
    return tt;
}

function tooltip_getById(id){
    return tooltip.collection[id];
}

function tooltip_setup()
{
    this.setStyles();
    if(!this.pngFixed && IE) {
        this.fixPng();
        this.pngFixed = true;
    }
}

function tooltip_show(caller)
{
    //IE8 fix
    try{
        this.setPosition(caller);
    }
    catch(e){
        this.setPosition(caller);
    }
    this.el.show();
}

function tooltip_hide()
{
    this.el.hide();
}

function tooltip_setStyles()
{
    this.el.style.zIndex = 9999;
}

function tooltip_setPosition(caller)
{
    Position.clone(caller, this.el,
    {
        setWidth: false,
        setHeight: false,
        offsetTop: - this.el.getDimensions().height - 10,
        offsetLeft: + 10
    });

}

function tooltip_fixPng()
{
    if(window.urlRoot != undefined)
    {
        function _setStyles(stl, img)
        {
            stl.background = "none";
            stl.backgroundImage = "none";
            stl.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + window.urlRoot +"/images/common/tooltip/"+ img + "',sizingMethod='crop')";
        }
        var rows = this.el.getElementsByTagName("TABLE")[0].tBodies[0].rows;
        _setStyles(rows[0].cells[0].style, "leftTop.png");
        _setStyles(rows[0].cells[1].style, "top.png");
        _setStyles(rows[0].cells[2].style, "rightTop.png");
        _setStyles(rows[1].cells[0].style, "left.png");
        _setStyles(rows[1].cells[2].style, "right.png");
        _setStyles(rows[2].cells[0].style, "leftBottom.png");
        _setStyles(rows[2].cells[1].style, "bottom.png");
        _setStyles(rows[2].cells[2].style, "rightBottom.png");
        var div = this.el.getElementsByTagName("DIV")[1];
        _setStyles(div.style, "dialog.png");
    }
}

var tooltip = function(id) {
    this.id = id + 'tt';
    this.el = Element.extend(tooltip.createDiv(window.POKERTIPS_TIPWORDS[id]));
    document.body.appendChild(this.el);
    this.setup();
};

//static
tooltip.collection = new Array();
tooltip.getByContentEl = tooltip_getByContentEl;
tooltip.parse = tooltip_parse;
tooltip.createDiv = tooltip_createDiv;
//
tooltip.prototype.show = tooltip_show;
tooltip.prototype.hide = tooltip_hide;
tooltip.prototype.setStyles = tooltip_setStyles;
tooltip.prototype.setPosition = tooltip_setPosition;
tooltip.prototype.fixPng = tooltip_fixPng;
tooltip.prototype.setup = tooltip_setup;
tooltip.prototype.pngFixed = false;




function getMouseXY(e) {
    if (IE) { // grab the x-y pos.s if browser is IE
        tempX = event.clientX + document.body.scrollLeft;
        tempY = event.clientY + document.body.scrollTop;
    } else {  // grab the x-y pos.s if browser is NS
        tempX = e.pageX;
        tempY = e.pageY;
    }
}  

function f_clientWidth() {
    return f_filterResults (
        window.innerWidth ? window.innerWidth : 0,
        document.documentElement ? document.documentElement.clientWidth : 0,
        document.body ? document.body.clientWidth : 0
        );
}
function f_clientHeight() {
    return f_filterResults (
        window.innerHeight ? window.innerHeight : 0,
        document.documentElement ? document.documentElement.clientHeight : 0,
        document.body ? document.body.clientHeight : 0
        );
}
function f_scrollLeft() {
    return f_filterResults (
        window.pageXOffset ? window.pageXOffset : 0,
        document.documentElement ? document.documentElement.scrollLeft : 0,
        document.body ? document.body.scrollLeft : 0
        );
}
function f_scrollTop() {
    return f_filterResults (
        window.pageYOffset ? window.pageYOffset : 0,
        document.documentElement ? document.documentElement.scrollTop : 0,
        document.body ? document.body.scrollTop : 0
        );
}
function f_filterResults(n_win, n_docel, n_body) {
    var n_result = n_win ? n_win : 0;
    if (n_docel && (!n_result || (n_result > n_docel)))
        n_result = n_docel;
    return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

document.observe("dom:loaded", function() {
    tooltip.parse();
});


