﻿    var pos,offsetheight;

    function show_intellitext(id,elementid) {
        var text=document.getElementById("intellitext"+elementid);
        pos=findPos(text);
        offsetheight=text.offsetHeight
        doRequest("/intellitext/Intellitext.aspx?id="+id,"get",null,show_intellitext_delegate);

    }

    function show_intellitext_delegate(updateXML) {
        var element=document.getElementById("intellitext");
        element.style.left=pos[0]+"px";
        element.style.top=(pos[1]+offsetheight)+"px";
        element.style.visibility="visible";  

        var temp=updateXML.documentElement;
        element.innerHTML="<div class=\"intellitext_title\">" + temp.childNodes[0].firstChild.nodeValue + "</div>" + temp.childNodes[1].firstChild.nodeValue;
    }

    function remove_intellitext() {
        var element=document.getElementById("intellitext");
        element.style.visibility="hidden";
    }
    
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

// ------------------------------Ajax base function----------------------
function getXMLHttpRequest()
{
	var xmlObject = false;
	
	if (window.XMLHttpRequest)
	{
		//Create non-Microsoft
		xmlObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		//Create ActiveX, first for modern browsers
		try
		{ xmlObject = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (ex1)
		{
			//Older MS-Browser compability
			try 
			{ xmlObject = new ActiveXObject("Microsoft.XMLHTTP"); }			
			catch (ex2)
			{  
				/*Could not create ActiveX at all.*/ 
				return false;
			}
		}
	}
	return xmlObject;
}

function getReadyStateHandler(xmlObject, responseXmlHandler) 
{
	return function () 
	{

		// If the request's status is "complete"
		if (xmlObject.readyState == 4) 
		{
			// Check that a successful server response was received
			if (xmlObject.status == 200) 
			{  responseXmlHandler(xmlObject.responseXML); }	
			else 
			{
				// An HTTP problem has occurred
				alert("HTTP error: "+xmlObject.status);
			}
		}
	}
}

function doRequest(requestUrl, method, formcontent, delegate)
{ //formcontent only with 'post' method, otherwise 'null'
		var xmlObject = getXMLHttpRequest();
		if (!xmlObject) { return false; }
		xmlObject.onreadystatechange = getReadyStateHandler(xmlObject, delegate);
		xmlObject.open(method, requestUrl, true);
		if (method.toLowerCase() == 'post')
		{ 
			xmlObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
			//xmlObject.setRequestHeader('Content-length', formcontent.length);
		}
		else if (method.toLowerCase() == 'get')
		{ formcontent = null; }
		else
		{ return false; }
		xmlObject.send(formcontent);
		return true;
}
