/**
*
*	SCRIPT BELOW MODIFIED FROM .....
*	
*	Simple Image Trail script- By JavaScriptKit.com
*	Visit http://www.javascriptkit.com for this script and more
*	This notice must stay intact
*	http://www.webmaster-talk.com/html-forum/36943-mouse-over-image-enlarge-off-cursor.html
*
*/

// initialize
var defaultOffsetfrommouse=[-550,-250]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=1; //duration in seconds image should remain visible. 0 for always.
var currentimageheight = 417;	// maximum image height.
var currentimagewidth = 430;	// maximum image size.
var pubGlossaryId;
var ajaxResponse;

if (document.getElementById || document.all){
    document.write('<div id="floatingImage">');
    document.write('</div>');
    document.write('<div id="floatingText">');
    document.write('</div>');
}


function gettextobj(varId){
    if (varId) {
        if (document.getElementById) {
                varEl = eval('document.getElementById("'+varId+'").style');
        } else if (document.all) {
                varEl = eval('document.all.'+varId+'.style');
        }
        return varEl;
    } else {
        if (document.getElementById)
                return document.getElementById("floatingText").style
        else if (document.all)
                return document.all.floatingText.style
    }
}

function gettextobjnostyle(varId){
    if (varId) {
        if (document.getElementById) {
                varEl = eval('document.getElementById("'+varId+'")');
        } else if (document.all) {
                varEl = eval('document.all.'+varId);
        }
        return varEl;
    } else {
        if (document.getElementById)
                return document.getElementById("floatingText")
        else if (document.all)
                return document.all.floatingText
    }
}
function gettrailobj(){
    if (document.getElementById)
        return document.getElementById("floatingImage").style
    else if (document.all)
        return document.all.floatingImage.style
}

function gettrailobjnostyle(){
    if (document.getElementById)
        return document.getElementById("floatingImage")
    else if (document.all)
        return document.all.floatingImage
}


function truebody(){
    return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}


function getGlossary(varGlossaryId) {
    pubGlossaryId = varGlossaryId;
    var myAjax = new Ajax.Request('profile/get-Glossary',
              {method: 'post', parameters: {glossaryid: pubGlossaryId},
               onComplete: getAjaxResponse});
}
function showtrail(imagename,varglossaryId){

    if (varglossaryId) {
        offsetfrommouse= [30,-130];
        currentimageheight = 100;
    } else {
        offsetfrommouse= [-500,-250];
        currentimageheight = 270;
    }

    if (varglossaryId) {
        var el =gettextobjnostyle('glossary'+varglossaryId)
        // if we already have one of these, we don't need ajax to get it
        if (el) {
            el.visibility="visible";
            el.display="block";
            var newHTML = '<div>' + el.innerHTML + '</div>';
        } else {
            var myAjax = new Ajax.Request('profile/get-Glossary',
                {method: 'post',
                parameters: {glossaryid: varglossaryId},
                onSuccess: function(transport) {
                    var notice = $('notice');
                    if (transport.responseText!= '') {
                        newHTML = '<div>';
                        newHTML = newHTML + '<div class="floattextwrapper">' + transport.responseText + '</div>';
                        newHTML = newHTML + '</div>';
                    }}});
        }
        gettextobjnostyle().innerHTML = newHTML;
        gettextobj().visibility="visible";
        document.onmousemove=followmouse; //imgfollowmouse

    }else {

        if (imagename){
            var el = $("#largeImage");
            // if we already have one of these, we don't need ajax to get it
            if (el) {
                var newHTML = '<div>' + $(el).html() + '</div>';
            } else {
                newHTML = '<div>';
                newHTML = newHTML + '<div class="floatimgwrapper"><img src="' + imagename + '" ></div>';
                newHTML = newHTML + '</div>';
            }
            gettrailobjnostyle().innerHTML = newHTML;
            gettrailobj().visibility="visible";
            document.onmousemove=imgfollowmouse;
        }
    }
}


function hidetrail(){

    gettextobj().visibility="hidden"
    document.onmousemove=""
    gettextobj().left="-500px"

    gettrailobj().visibility="hidden"
    document.onmousemove=""
    gettrailobj().left="-500px"

    document.onmousemove=null;
}

function followmouse(e){

    var xcoord=offsetfrommouse[0]
    var ycoord=offsetfrommouse[1]

    var minbottom = 29; //110
    var minleft = 200; //194;

    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
    var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(document.body.offsetHeight, window.innerHeight)

    //if (document.all){
    //	gettrailobjnostyle().innerHTML = 'A = ' + truebody().scrollHeight + '<br>B = ' + truebody().clientHeight;
    //} else {
    //	gettrailobjnostyle().innerHTML = 'C = ' + document.body.offsetHeight + '<br>D = ' + window.innerHeight;
    //}

    if (typeof e != "undefined"){
		//alert("e.offsetX="+e.offsetX + "\n\nxcoord="+xcoord + "\n\ndocwidth="+docwidth +"\n\ne.pageX=" + e.pageX + "\n\ndocwidth - e.pageX=" + (docwidth - e.pageX));
//	this works on firefox, but not in IE7		
//		if (e.pageX < 350){
//			xcoord = e.pageX + xcoord + 386;
//		} else {
//			xcoord += e.pageX;
//		}
		
// original version
        if (docwidth - e.pageX < 300){
            xcoord = e.pageX - xcoord - 286; // Move to the left side of the cursor
        } else {
            xcoord += e.pageX;
        }

        if (docheight - e.pageY < (currentimageheight + minbottom)){
            ycoord += e.pageY - Math.max(0,(minbottom + currentimageheight + e.pageY - docheight - truebody().scrollTop));
        } else {
            ycoord += e.pageY;
        }

    } else if (typeof window.event != "undefined"){
        if (docwidth - event.clientX < 300){
            xcoord = event.clientX + truebody().scrollLeft - xcoord - 286; // Move to the left side of the cursor
        } else {
            xcoord += truebody().scrollLeft+event.clientX
        }
        if (docheight - event.clientY < (currentimageheight + minbottom)){
            ycoord += event.clientY + truebody().scrollTop - Math.max(0,(minbottom + currentimageheight + event.clientY - docheight));
        } else {
            ycoord += truebody().scrollTop + event.clientY;
        }
    }

    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
    var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)

//	alert('about to jump\n\nxcoor='+xcoord+"px\nycoor="+ycoord+"px");

    //gettrailobj().left=xcoord+"px"
    //gettrailobj().top=ycoord+"px"
    gettextobj().left=xcoord+"px"
    gettextobj().top=ycoord+"px"
}
function imgfollowmouse(e){

    var xcoord=offsetfrommouse[0]
    var ycoord=offsetfrommouse[1]

    var minbottom = 29; //110
    var minleft = 200; //194;

    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
    var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(document.body.offsetHeight, window.innerHeight)

    //if (document.all){
    //	gettrailobjnostyle().innerHTML = 'A = ' + truebody().scrollHeight + '<br>B = ' + truebody().clientHeight;
    //} else {
    //	gettrailobjnostyle().innerHTML = 'C = ' + document.body.offsetHeight + '<br>D = ' + window.innerHeight;
    //}

    if (typeof e != "undefined"){
        //alert("e.offsetX="+e.offsetX + "\n\nxcoord="+xcoord + "\n\ndocwidth="+docwidth +"\n\ne.pageX=" + e.pageX + "\n\ndocwidth - e.pageX=" + (docwidth - e.pageX));
        //	this works on firefox, but not in IE7
        //		if (e.pageX < 350){
        //			xcoord = e.pageX + xcoord + 386;
        //		} else {
        //			xcoord += e.pageX;
        //		}

        // original version
        if (docwidth - e.pageX < 300){
                xcoord = e.pageX - xcoord - 286; // Move to the left side of the cursor
        } else {
                xcoord += e.pageX;
        }

        if (docheight - e.pageY < (currentimageheight + minbottom)){
                ycoord += e.pageY - Math.max(0,(minbottom + currentimageheight + e.pageY - docheight - truebody().scrollTop));
        } else {
                ycoord += e.pageY;
        }

    } else if (typeof window.event != "undefined"){
        if (docwidth - event.clientX < 300){
                xcoord = event.clientX + truebody().scrollLeft - xcoord - 286; // Move to the left side of the cursor
        } else {
                xcoord += truebody().scrollLeft+event.clientX
        }
        if (docheight - event.clientY < (currentimageheight + minbottom)){
                ycoord += event.clientY + truebody().scrollTop - Math.max(0,(minbottom + currentimageheight + event.clientY - docheight));
        } else {
                ycoord += truebody().scrollTop + event.clientY;
        }
    }

    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
    var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)
	
//	alert('about to jump\n\nxcoor='+xcoord+"px\nycoor="+ycoord+"px");

    gettrailobj().left=xcoord+"px"
    gettrailobj().top=ycoord+"px"
    //gettextobj().left=xcoord+"px"
    //gettextobj().top=ycoord+"px"

}