//functions.js
//xmlhttp = xHttpRequest();

//Create a boolean variable to check for a valid IE instance.
var xmlhttp = false;
//Check if we are using IE.
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
catch (e) {try 	{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} 
catch (E) {xmlhttp = false; } }

if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
{ xmlhttp = new XMLHttpRequest(); }

var prevID = 0; 
var atTop = false;
var initialNoteWidth = 350;
var prevEvent;
var timer;

function showModNotes(id, e) 
{
	var objID = "mnote";
	var serverPage = "_ajax/m.php";
	
	var obj = xGetElementById(objID);

	var xE = new xEvent(e);
	var winH = xClientHeight();
	var winW = xClientWidth();

	if ( id == prevID )
	{
	        if ( atTop )
			{
				xMoveTo(obj, xE.pageX, xScrollTop()+2);
			}
			else
			{
				var objH = xHeight(obj);
				var deltaY = xE.pageY - xScrollTop() + objH - winH;
				var posY = deltaY > 0 ? xE.pageY - deltaY - 1: xE.pageY;
				xMoveTo(obj, xE.pageX, posY);
			}
	 	xVisibility(obj, true);
	  	return;
	}

	prevID = id;

	var objW = winW > initialNoteWidth ? initialNoteWidth : winW;
	xWidth(obj, objW);

	obj.style.height='auto';

	xmlhttp.open("GET", serverPage + '?id=' + id);
	xmlhttp.onreadystatechange = function() 
	{
		if (xmlhttp.readyState == 0 ) 
			obj.innerHTML='Connecting...';
		else if (xmlhttp.readyState == 1 ) 
			obj.innerHTML='Receiving...';
		else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
			obj.innerHTML = xmlhttp.responseText;

			var objH = xHeight(obj);
			atTop = false;
			while ( objH > winH )
			{                 
				var prevH = objH;
				var prevW = objW;
				objW+=50; 
				if ( objW > winW ) 
					objW = winW - 2;  
				xWidth(obj, objW);
				objH = xHeight(obj);
				if ( prevH == objH )
				{    
					if ( objH + 4 > winH )
						xHeight(obj,winH-4);   
					obj.style.overflow = 'auto';
					atTop = true;
					break;
				}
			}
	        if ( atTop )
			{
				xMoveTo(obj, xE.pageX, xScrollTop()+2);
			}
			else
			{
				var deltaY = xE.pageY - xScrollTop() + objH - winH;
				var posY = deltaY > 0 ? xE.pageY - deltaY - 1 : xE.pageY;
				xMoveTo(obj, xE.pageX, posY);
			}
                }
		xVisibility(obj, true);
	}
	xmlhttp.send(null);
}


function hideModNotes(e) 
{
	var objID = "mnote";
	obj = document.getElementById(objID);
	var xE = new xEvent(e);
	xVisibility(obj, false)
}

function openFenster(id, title, url, x, y, w, h)
{
  var cw, ch, fw, fh, fx, fy, xf = xFenster.instances;
  if (xf[id]) { // if it already exists
    xf[id].show();
    if (url) xf[id].href(url);
    if (title) xf[id].title(title);
  }
  else { // it doesn't yet exist so create it
    cw = xClientWidth();
    ch = xClientHeight();
    fw = w || (cw / 3);
    fh = h || (ch / 3);
 
    new xFenster(id, title, null, x, y, fw, fh, 200, null, 0, 1, 0,
                 true, true, true, true, true, true, true,
                 null, null, null, null, null, null, null, null,
                 'xfCon', 'xfClient', 'xfTBar', 'xfTBarF', 'xfSBar', 'xfSBarF',
                 'xfRIco', 'xfNIco', 'xfMIco', 'xfOIco', 'xfCIco',
                 'Resize', 'Minimize', 'Maximize', 'Restore', 'Close');

	var objw = xf[id]; //.client;
	var obj = xf[id].client;

	xmlhttp.open('GET', url);

//Opera has strange bug (previous fenster was changed if readySate = 1
	xmlhttp.onreadystatechange = function() 
	{
		if (xmlhttp.readyState == 0 )
		{
			objw.status('Connecting...');
			//obj.innerHTML='Connecting...';
		}
		else if (xmlhttp.readyState == 1 ) 
		{
			objw.status('Receiving...');
		}
		else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
			var win=eval('('+xmlhttp.responseText+')');
			objw.status ( win['status']);
			obj.innerHTML = win['text'];
			objw.tbar.innerHTML = win['title'];
		}
	}
	xmlhttp.send(null);
}	
}

//var xf = [];
function cancelDelayedShowPost()
{
    clearTimeout(timer);
}

function delayedShowPost(id, e)
{
    timer = setTimeout('showPost('+id+')', 2000);

	prevEvent = new xEvent(e);
}

function showPost(id)
{
	var objID = "xf" + parseInt(id);
	var obj = xGetElementById(objID);
	var winH = xClientHeight();
	var winW = xClientWidth();

	var xE = new xEvent(prevEvent);
	
				var posY = xE.pageY - xScrollTop();// + 400 - winH;
				if (posY + 200 > winH ) {posY = winH-200; if (posY < 0) posY =0;}
				//deltaY > 0 ? xE.pageY - deltaY - 1 : xE.pageY;
	openFenster(objID, null, '/_ajax/p.php?pid='+id, xE.pageX, posY, 500, 200);
}
