

// FUNCTIONS TO HIDE MENU POPUPS (CALLED FROM SHOWACTIONMSG.PHP)
function getElementsByStyleClass(cname) {
  var allobjs = document.all ? document.all : document.getElementsByTagName('*');
  var elements = new Array();
  for (var e = 0; e < allobjs.length; e++)
    if (allobjs[e].className == cname)
      elements[elements.length] = allobjs[e];
  return elements;
}

function hideallMenus(cname)
{
	var str;
	var objs = getElementsByStyleClass(cname);
	for(var i=0; i <= objs.length; i++)
	{
		if(typeof(objs[i]) == 'object')
			objs[i].style.visibility = 'hidden';
	}
}

/*function calendar_nav(str,element)
{
	var ajaxqs = "";
	var ajaxIndex = ajaxObjects.length;	
	ajaxObjects[ajaxIndex] = new sack();
	ajaxqs = "&ajax=true";

	if(element)
		ajaxObjects[ajaxIndex].element = element;
	
	ajaxObjects[ajaxIndex].onCompletion = function() { ajaxObjects[ajaxIndex].element.innerHTML = ajaxObjects[ajaxIndex].response; } ;	// Specify function that will be executed after file has been found
	
	ajaxObjects[ajaxIndex].requestFile = str + ajaxqs;	// Specifying which file to get
//alert(ajaxObjects[ajaxIndex].requestFile);
	ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function
}*/

function getOffsetX(oNode)
{
	var iOffsetLeft = 0;

	while(oNode.offsetParent)
	{
		iOffsetLeft += oNode.offsetLeft;
		oNode = oNode.offsetParent;
	}

	iOffsetLeft += document.body.offsetLeft;

	return iOffsetLeft;
}

function getOffsetY(oNode)
{
	var iOffsetTop = 0;

	while(oNode.offsetParent)
	{
		//alert(oNode.type);
		iOffsetTop += oNode.offsetTop;
		oNode = oNode.offsetParent;
	}

	iOffsetTop += document.body.offsetTop;
	
	return iOffsetTop;
}

var caldateObject,calendar_iniframe;
function Calendarwidget_open(obj,iframe,id,callback,lang)
{

	caldateObject = obj;
	var string = "";
	/*if(callback)callback = '&callback='+callback;
	else callback = '';*/
	callback = '';
	if(iframe)iframestr = '&iframe=' + iframe;
	else iframestr = '';
	obj.blur();
	calendarObject = (obj.id != '') ? obj.id : obj.name;
	var left = getOffsetX(obj);
	var top = getOffsetY(obj);
	
	if(document.getElementById(iframe))
	{
		if(iframe == 'div_actionmsg')
		{
			left += getOffsetX(document.getElementById('iframe_actionmsg'));
			top += getOffsetY(document.getElementById('iframe_actionmsg'));
			var iframeid = 'iframe_actionmsg';
		}
		else if(iframe == 'myframe')
		{
			left += getOffsetX(document.getElementById('myframe'));
			top += getOffsetY(document.getElementById('myframe'));
			var iframeid = 'myframe';
		}
		else
		{
			left += document.getElementById(iframe).offsetLeft;
			top += document.getElementById(iframe).offsetTop;
		}
	}
	var curval = '';
	if(obj.value != '')
		curval = obj.value;
	height = obj.offsetHeight;

	if(id)
	string = '&id=' + id

	if(height > 0) top += height;
	
	document.getElementById('divCalendarwidget').innerHTML = '<div style="cursor:wait;width:100%;height:100%;border:1px solid #c2c2c2;background-color:#f5f5f5;"><img src="/calendarwidget/images/icms_loading2.gif" alt="" style="width:32px;height:32px;margin:73px 67px 74px 67px;" /></div>';
	document.getElementById('divCalendarwidget').style.visibility = 'visible';
	document.getElementById('divCalendarwidget').style.top = top+'px';
	document.getElementById('divCalendarwidget').style.left = left+'px';
	var ajaxIndex = ajaxObjects.length;		//alert(curval);
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].element = 'divCalendarwidget';
	ajaxObjects[ajaxIndex].requestFile = 'http://'+document.domain+'/calendarwidget/calendarwidget2.php?lang='+lang+'&obj=' + calendarObject + '&currentdate=' + curval + iframestr + string + callback;
	if(callback)
		ajaxObjects[ajaxIndex].onCompletion = function() {eval(callback);return false;};
	ajaxObjects[ajaxIndex].runAJAX();
	/*window.calendarframe.location = 'calendarwidget/calendarwidget.php?obj=' + calendarObject + '&currentdate=' + curval + iframestr + string + callback;
	document.getElementById('divCalendarwidget').style.visibility = 'visible';
	document.getElementById('divCalendarwidget').style.top = top+'px';
	document.getElementById('divCalendarwidget').style.left = left+'px';*/
	calendar_iniframe = (iframeid) ? iframeid : false;
	calendar_hideselects('hidden');
	return false;
}

function Calendarwidget_close(obj)
{
	document.getElementById('divCalendarwidget').style.visibility = 'hidden';
	document.getElementById('divCalendarwidget').innerHTML = '';
	calendar_hideselects('visible');
	calendar_iniframe = null;
	if(typeof(calendarReturnfunction) != 'undefined')
		eval(calendarReturnfunction);
	return false;
}

function calendar_nav(str,element)
{
	var ajaxqs = "";
	var ajaxIndex = ajaxObjects.length;	
	ajaxObjects[ajaxIndex] = new sack();
	var ajaxqs = "&nav=true&ajax=true";
	document.getElementById(element).innerHTML = '<div id="divCalload" style="z-index:100;position:absolute;top:24px;left:1px;cursor:wait;width:162px;height:145px;border:1px solid #c2c2c2;background-color:#f5f5f5;background:#f5f5f5 url(/calendarwidget/images/icms_loading2.gif) center no-repeat;filter:alpha(opacity=80);-moz-opacity: 0.8;opacity: 0.8;"></div>' + document.getElementById(element).innerHTML;
	if(element)
		ajaxObjects[ajaxIndex].element = element;
	
	ajaxObjects[ajaxIndex].onCompletion = function() { ajaxObjects[ajaxIndex].element.innerHTML = ajaxObjects[ajaxIndex].response; } ;	// Specify function that will be executed after file has been found
	
	ajaxObjects[ajaxIndex].requestFile = str + ajaxqs;	// Specifying which file to get
//alert(ajaxObjects[ajaxIndex].requestFile);
	ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function
	return false;
}

function insertincallerobject(oVal)
{
	caldateObject.value = oVal;
	Calendarwidget_close();
	return false;
}

function clearcallerobject(oVal)
{
	caldateObject.value = '';	
	Calendarwidget_close();
	return false;
}

function alignOverlib(evt)
{
	if(!parent.document.getElementById('overDiv'))
		return false;
	parobj = parent.document.getElementById('calendarframe');
	if(evt.pageX) {
		x = getOffsetX(parobj) + evt.pageX;
		y = getOffsetY(parobj) + evt.pageY;
	}
	else if (evt.clientX) {
  		x = getOffsetX(parobj) + evt.clientX + (document.documentElement.scrollLeft ? parent.document.documentElement.scrollLeft : parent.document.body.scrollLeft);
		y = getOffsetY(parobj) + evt.clientY + (document.documentElement.scrollTop ? parent.document.documentElement.scrollTop : parent.document.body.scrollTop);
	}
	parent.document.getElementById('overDiv').style.left = x + 'px';
	parent.document.getElementById('overDiv').style.top = y + 'px';
	return false;
}

//Check and hide select-inputs behind ajax-calendar
function calendar_hideselects(action) // action==hidden || action==visible
{
	var iechk = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var iebelow7 = (iechk != null && Number(iechk[1]) < 7.0);
	if(!iebelow7)
		return false; // ONLY FOR IE < 7
	
	if(calendar_iniframe)
	{
		var ifrm = parent.document.getElementById(calendar_iniframe);
		if(ifrm.contentDocument)
			var useDoc = ifrm.contentDocument; 
		else if(ifrm.contentWindow)
			var useDoc = ifrm.contentWindow.document;
		else if(ifrm.document)
			var useDoc = ifrm.document;
		var calDoc = parent.document;
	}
	else
	{
		var useDoc = document;
		var calDoc = document;
	}
	var obj = calDoc.getElementById('divCalendarwidget');
	var objLeft = getOffsetX(obj);
	var objTop = getOffsetY(obj);
	var objW = obj.offsetWidth;
	var objH = obj.offsetHeight;
	// only care about bottom and right positions
	var objBottom = objTop+objH;
	var objRight = objLeft+objW;
	
	if (action != 'visible')
		action='hidden';
	var elementtype,elem,selLeft,selTop,selW,selH,selBottom,selRight;
	for(var j = 0; j <  useDoc.forms.length; j++)
	{
		elem = useDoc.forms[j].elements;
		for(var i = 0; i < elem.length; i++)
		{
			//alert(elem[i].type);
			elementtype = elem[i].type;
			if(elementtype && elementtype.substring(0,6) == 'select')
			{
				selLeft = getOffsetX(elem[i]);
				selTop = getOffsetY(elem[i]);
				selW = elem[i].offsetWidth;
				selH = elem[i].offsetHeight;
				// only care about bottom and right positions
				selBottom = selTop+selH;
				selRight = selLeft+selW;
				if(calendar_iniframe || ((selBottom >= objTop && selTop < objBottom) && (selLeft < objRight && selRight > objLeft)) )
				{
					elem[i].style.visibility = action;
				}
			}
		}
	}
}
