var XME = 0;
var YME = 0;
var tagimageid = 0;

function doTTooltip(tipX, tipY, tagarr) {
// build tooltip
var tip = '<FORM NAME="AddTagForm" method="post">'
tip += '<TABLE BGCOLOR="#000000" WIDTH="220" CELLSPACING="0" CELLPADDING="1" BORDER="0"><TR><TD><TABLE BGCOLOR="#e6ecff" WIDTH="100%" CELLSPACING="0" CELLPADDING="1" BORDER="0">';
tip += '<TR><TD COLSPAN="5" ALIGN="RIGHT" BGCOLOR="#555555"><A onclick="javascript:hideTTip();" STYLE="font-family:arial;font-size:11px;font-weight:bold;color:#ffffff;text-decoration:none;cursor:pointer;">'
tip += 'close&nbsp;X</A></TD></TR>';
tip += '<TR><TD COLSPAN="5" CLASS="textblack2">Image Tags:</TD></TR>';
tip += '<TR><TD ID="taglist">'
	for (var i = 0; i < tagarr.length ; i++ )
	{
		//alert(tagarr[i]);
		tip += '<A HREF="search.aspx?q=' + tagarr[i] + '" CLASS="textblack">' + tagarr[i] + '</a> &nbsp;';
	}
tip += '</TD></TR>'
tip += '<TR STYLE="font-size:10px;"><TD>&nbsp;</TD></TR>'
tip += '<TR><TD ALIGN="RIGHT" CLASS="textblack">Add Tag:<INPUT TYPE="TEXT" ID="TagName" NAME="TagName" SIZE="13" CLASS="textblackt">&nbsp;<INPUT TYPE="BUTTON" STYLE="border-color:#000000;background-color:#aaaade;font-weight:bold;font-size:11px" VALUE="Add Tag" onclick="javascript:AddTag();">'  
tip += '</TD></TR></TABLE></TD>';
tip += '</TR></TABLE></TD></TR></TABLE></FORM>';


	// correct mouse position for scrolled screens
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
	//Netscape compliant
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	//DOM compliant
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
	} else if( document.documentElement &&
	  ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
	}

	var corrposx = 0;
	var corrposy = 0;
	corrposx = tipX + scrOfX;
	corrposy = tipY + scrOfY;
	//alert(tipX + '::' + tipY);
	//alert(document.body.scrollLeft + '::' + document.body.scrollTop);
	//alert(scrOfX + '::' + scrOfY);

	if (document.all) // IE4+
	{
		document.all.tooltip.innerHTML = tip;
	 	document.all.tooltip.style.pixelLeft = corrposx + 8;
 		document.all.tooltip.style.pixelTop = corrposy + 8;
	 	document.all.tooltip.style.visibility = "visible";
	}
	else if (document.layers) // NS4+
	{
		document.tooltip.document.write(tip);
		document.tooltip.document.close();
		document.tooltip.left = corrposx + 8;
		document.tooltip.top = corrposy + 8;
		document.tooltip.visibility = "show";
	}
	else if (document.getElementById) //NS6+
	{
		var myElement = document.getElementById("tooltip");
		myElement.innerHTML = tip;
		myElement.style.left = corrposx + 8 + "px";
		myElement.style.top = corrposy + 8 + "px";
		myElement.style.visibility = "visible";
	} 
}


function hideTTip() {
	if (document.all) // IE4+
	{
		document.all.tooltip.style.visibility = "hidden";
	}
	else if (document.layers) // NS4+
	{
		document.tooltip.visibility = "hide";
	}
	else if (document.getElementById) //NS6+
	{
		var myElement = document.getElementById("tooltip");
		myElement.style.visibility = "hidden";
	} 
}

function getTDescription(xpos, ypos, imageid) {
	XME = xpos;
	YME = ypos;
	tagimageid = imageid;
	var randpar = Math.round(100*Math.random()) //random parameter for cache busting of IE
	var url = 'http://www.eyefetch.com/info_tags.aspx?ID=' + imageid + '&rnd=' + randpar;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = processTRequest;
    req.open("GET", url, true);
    req.send(null);
}

function processTRequest() {
    if (req.readyState == 4) {
        if (req.status == 200) {
          parseTMessages();
        } else {
          //alert ( "Not able to retrieve description" );
				}
    }
}

function parseTMessages() {
	response  = req.responseXML.documentElement;
	var tagarr = new Array();
	var rows = response.getElementsByTagName('tag');
	for( var i = 0, row; row = rows[i]; i++ ) {
		tagarr[i] = row.firstChild.data;
	}
	doTTooltip(XME, YME, tagarr);
}

function AddTag() {
	var url = 'http://www.eyefetch.com/add-tag.aspx?tag=' + document.AddTagForm.TagName.value + '&ID=' + tagimageid;
    if (document.AddTagForm.TagName.value != '')
    {
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.onreadystatechange = processAddTagRequest;
		req.open("GET", url, true);
		req.send(null);
    }
}

function processAddTagRequest() {
    if (req.readyState == 4) {
        if (req.status == 200) {

			// tag successfully added
			if (document.all) // IE4+
			{
				document.all.taglist.innerHTML = document.all.taglist.innerHTML + '<A HREF="search.aspx?q=' + document.all.AddTagForm.TagName.value + '" CLASS="textblack">' + document.AddTagForm.TagName.value + '</a> &nbsp;';
				document.all.AddTagForm.TagName.value = '';
			}
			else if (document.layers) // NS4+
			{
				document.taglist.document.write(document.taglist + '<A HREF="search.aspx?q=' + document.AddTagForm.TagName.value + '" CLASS="textblack">' + document.AddTagForm.TagName.value + '</a> &nbsp;');
				document.tooltip.document.close();
				document.AddTagForm.TagName.value = '';
			}
			else if (document.getElementById) //NS6+
			{
				var myElement = document.getElementById("taglist");
				myElement.innerHTML = myElement.innerHTML + '<A HREF="search.aspx?q=' + document.AddTagForm.TagName.value + '" CLASS="textblack">' + document.AddTagForm.TagName.value + '</a> &nbsp;';
				myElement = document.getElementById("TagName");
				myElement.value = '';
			} 
        } else {
          //alert ( "Not able to retrieve description" );
				}
    }
}
