if (document.getElementById)
	stdBrowser = true
else
	stdBrowser = false

function calendarPopUp(e,currElem)
{
	var scrollpos = getScrollingPosition();
	var popUpWin;
	
	if (document.getElementById)
	{
		popUpWin = document.getElementById("calendarPopupPlaceholder").style;
		l = (Math.max(2,parseInt(e.clientX)+2) + scrollpos[0]) + "px";
		t = (parseInt(e.clientY) + 2 + scrollpos[1]) + "px";
	}
	else
	{
		popUpWin = eval("document.calendarPopupPlaceholder");
		l = Math.max(2,parseInt(e.pageX)-10) + scrollpos[0];
		t = parseInt(e.pageY + e.y) + 2 + scrollpos[1];
	}
	
	document.getElementById("calendarPopupPlaceholder").innerHTML = document.getElementById(currElem).innerHTML;
	
	// document.getElementById("debugtxt").innerHTML = l + ", " + t;
	
	popUpWin.top = t;
	popUpWin.left = l;
	popUpWin.position = "absolute";
	popUpWin.visibility = "visible";
	popUpWin.display = "inline";
}

function popUp(e,currElem)
{
	var scrollpos = getScrollingPosition();
	var popUpWin;

	if (document.getElementById)
	{
		popUpWin = document.getElementById(currElem).style;
		l = (Math.max(2,parseInt(e.clientX)+2) + scrollpos[0]) + "px";
		t = (parseInt(e.clientY) + 2 + scrollpos[1]) + "px";
	}
	else
	{
		popUpWin = eval("document." + currElem);
		l = Math.max(2,parseInt(e.pageX)-10) + scrollpos[0];
		t = parseInt(e.pageY + e.y) + 2 + scrollpos[1];
	}
	
	popUpWin.top = t;
	popUpWin.left = l;
	popUpWin.visibility = "visible";
	popUpWin.display = "inline";
}

function popDown(currElem)
{
	var popUpWin;

	try
	{
		if (document.getElementById)
			popUpWin = document.getElementById(currElem).style;
		else
			popUpWin = eval("document." + currElem);
	
		popUpWin.visibility = "hidden";
		popUpWin.display = "none";
	}
	catch(e)
	{
	}
}

function getScrollingPosition() 
{ 
	var position = [0, 0]; 
	
	// Safari needs to return zero since the scroll position is already folded into the client x/y
	if( ! isSafari() )
	{
		position = [ document.body.scrollLeft, document.body.scrollTop ]; 
	}
	
	return position; 
}

function isSafari()
{
	var a = navigator.userAgent.toLowerCase();
	var v = navigator.appVersion.toLowerCase();
	
	if( a.indexOf("safari") != -1 )
	{
		pos = v.indexOf("safari/");
			
		if( pos != -1 )
		{
			var numstr = v.substring(pos+7);
			var num = parseFloat(numstr);

			if( num <= 419.3 /* Version number of bugged Safari browser */ )
			{
				return true;	// Bugged version of Safari
			}
		}
	}
	return false;		
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(dumpObj,level) 
{
var dumpObjFieldValue;
var dumpObjField;

	var dumped_text = "";
	if(!level) 
		level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) 
		level_padding += "    ";
	
	if(typeof(dumpObj) == 'object') 
	{ //Array/Hashes/Objects 
	
		for(dumpObjField in dumpObj) 
		{
			dumpObjFieldValue = dumpObj[dumpObjField];
			
			if(typeof(dumpObjFieldValue) == 'object') 
			{ //If it is an array,
				dumped_text += level_padding + "'" + dumpObjField + "' ...\n";
				dumped_text += dump(dumpObjFieldValue,level+1);
			}
			else 
			{
				dumped_text += level_padding + "'" + dumpObjField + "' => \"" + dumpObjFieldValue + "\"\n";
			}
		}
	}
	else 
	{ //Stings/Chars/Numbers etc.
		dumped_text = "===>"+dumpObj+"<===("+typeof(dumpObj)+")";
	}
	return dumped_text;
}