var gMouseX = 0;
var gMouseY = 0;
var gLastMouseMove = null;
var gRightSideAdsTop = 210;  // figure this out dynamically?


document.onmousemove = CaptureMousePosition;
//window.onscroll = KeepAdsInView;

function CaptureMousePosition(e) {
    if (document.layers) {
        gMouseX = e.pageX;
        gMouseY = e.pageY;

    } else if (document.all) {
        gMouseX = window.event.x+document.body.scrollLeft;
        gMouseY = window.event.y+document.body.scrollTop;

    } else if (document.getElementById) {
        gMouseX = e.pageX;
        gMouseY = e.pageY;
    }
}

function GetIDRoot(sID)
{
    return sID.substring(0, sID.lastIndexOf("_") + 1);
}

// TOOL TIPS

function GetElement(sID)
{
    return document.getElementById(sID);
}

function HideTooltip(sDivId)
{   
    var ele = document.getElementById(sDivId);
    ShowHideEle(ele, false);
    document.onmousemove = gLastMouseMove;
    document.oncontextmenu = null;
}

function MoveTooltip(sDivId)
{
    var ele = document.getElementById(sDivId);
    if (ele.style.visibility == "hidden") return;
    ele.style.top = gMouseY;
    ele.style.left = gMouseX;
}


function ShowTooltip(sDivId, sMsg)
{
    gLastMouseMove = document.onmousemove;
    gLastMouseDown = document.onmousedown;
    
    document.onmousemove = CaptureMousePosition;
    document.oncontextmenu = PreventClick;
        
    var ele = document.getElementById(sDivId);
    ele.innerHTML = sMsg;
    ShowHideEle(ele, true);
    MoveTooltip(sDivId);
}

function ShowHideEle(ele, bShow)
{
    if (ele == null)
        return;
    if (typeof(ele) == "string")
        ele = GetElement(ele);
    if (bShow)
        ele.style.visibility = "visible";
    else
        ele.style.visibility = "hidden";
}

function FocusControl(sCtrlID)
{
    var ele = GetElement(sCtrlID);
    if (!ele) return;
    ele.focus();
}

// email form
function ShowEmailForm(sID)
{
    // position
    var ele = GetElement(sID);
    var pos = FindPos(ele.parentNode);
    
    ele.style.left = pos[0] - (ele.offsetWidth/3);
    ele.style.top = pos[1] - (2*ele.offsetHeight/3);
    // show, set focus and select text
    ShowHideEle(ele, true);
    FocusControl("ctrlResultsview_compView_txtEmailFrom");
    GetElement("ctrlResultsview_compView_txtEmailFrom").select();
}

function HideEmailForm(sID)
{
    ShowHideEle(sID, false);
}

function FindPos(ele) 
{
	var curleft = curtop = 0;
	if (ele.offsetParent) {
		curleft = ele.offsetLeft
		curtop = ele.offsetTop
		while (ele = ele.offsetParent) {
			curleft += ele.offsetLeft
			curtop += ele.offsetTop
		}
	}
	return [curleft,curtop];
}

function PreventClick(e) 
{
    if (e.which) // firefox, netscape
    {    
        if (e.type == "contextmenu" || e.which == 1)
        {
            alert('This picture is for viewing purposes only. No reproduction or distribution rights are granted.');
            return false;
        }
    }
    else if (e.button)
    {
        //if (e.button == 2 || e.button == 3)
        alert('This picture is for viewing purposes only. No reproduction or distribution rights are granted.');
        return false;
    }
    return true;
}


function RedirectToTop(sPartner, sPhrase)
{
    // if location does not have a partner, add current domain as partner
    // if location does not have a phrase, get referrer phrase
    var sLoc = document.location.href;
    if (sLoc.indexOf("?") < 0)
        sLoc += "?";
    if (sLoc.indexOf("Partner=") < 0 && sLoc.indexOf("partner=") < 0)
        sLoc += "&Partner=" + sPartner;
    if (sLoc.indexOf("phrase=") < 0)
        sLoc += "&phrase=" + sPhrase;
    top.location.href=sLoc;
}


function KeepAdsInView(e)
{
    var ele = GetElement("divRightSideAds");
    if (!ele)
        return;
    if (ele.style.top == "" || !ele.style.top)
        ele.style.top = "0px";
    //alert(ele.style.top);
    
    if (document.layers) {
        if (window.pageYOffset > gRightSideAdsTop)
        {
            ele.style.top = "" + (window.pageYOffset - gRightSideAdsTop) + "px";
        }
        else 
        {
            ele.style.top = "0px";
        }
    } else if (document.all) {
        if (document.body.scrollTop > gRightSideAdsTop)
        {
            ele.style.top = "" + (document.body.scrollTop - gRightSideAdsTop) + "px";
        }
        else 
        {
            ele.style.top = "0px";
        }

    } else if (document.getElementById) {
        if (window.pageYOffset > gRightSideAdsTop)
        {
            ele.style.top = "" + (window.pageYOffset - gRightSideAdsTop) + "px";
        }
        else 
        {
            ele.style.top = "0px";
        }
    }
}
