// Copyright © 2000-2006 etracker®. Alle Rechte vorbehalten.
// This material may not be reproduced, displayed, modified or distributed
// without the express prior written permission of the copyright holder.

var zeit 			= new Date();
var counter 		= 0;
var caladmin 		= false;
var menu_open 		= false;
var quick_cal  		= 0;
var quick_info 		= 0;
var quick_cal_open  = 0;
var quick_info_open = 0;
var naObj 			= new Array("text","file","password");
var sendURL 		= 0;
var time_out		= false;
var xmlHttp 		= false;
var HTTPresponse	= "";

/**********************************************************\
 * FUNCTION initEvent( )                                  *
 *--------------------------------------------------------*
 * Finds out the function that adds an event on a         *
 * specific browser.                                      *
\**********************************************************/
function initEvent()
{
	if(typeof window.addEventListener != 'undefined')
	{
		window.addEventListener('load', outclicks_init, false);
	}
	else if(typeof document.addEventListener != 'undefined')
	{
		document.addEventListener('load', outclicks_init, false);
	}
	else if(typeof window.attachEvent != 'undefined')
	{
		window.attachEvent('onload', outclicks_init);
	}
	else
	{
		if(typeof window.onload == 'function')
		{
			var existing = onload;
	
			window.onload = function()
			{
				existing();
				outclicks_init();
			};
		}
		else
		{
			window.onload = outclicks_init;
		}
	}
}

/*******************************************************************\
 * FUNCTION oc_addEvent( var elm, event fn, function useCapture  ) *
 *-----------------------------------------------------------------*
 * Add on the event fn to the specified element elm the function   *
 * useCapture                                                      *
\*******************************************************************/
function oc_addEvent(elm, evType, fn, useCapture) 
{
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

/**********************************************************\
 * FUNCTION outclicks_init( )                             *
 *--------------------------------------------------------*
 * Adds the onclick event to every anchor-tag that is not *
 * a javascript call or a click to another window         *
\**********************************************************/
function outclicks_init () 
{
	 olinks = document.getElementsByTagName('a');
	 this_domain = '';

	 for (i=0; i < olinks.length; i++) 
	 {
		target 	= olinks[i].target;
		link 	= olinks[i].href;
		click 	= olinks[i].onclick;
		// if it is off-domain and not a link, add listener
		if
		(
			(link.indexOf('MainPageI3000') == -1) && 
			(link.indexOf('StatisticGenCode&mode') == -1) && 
			(link.indexOf('#notrack') == -1) && 
			(link.indexOf('javascript:') == -1) && 
			(link.indexOf('saferpay') == -1) &&
			(link.indexOf('lnkcnt.php') == -1) &&
			(!target)
		)
		{
            // hopefully that will do
			// oc_addEvent(olinks[i], "click", trackOutclicks); //Normal style
			// rewrite onclick with block loading
			if(!link.match(/\.php/))
			{
				oc_addEvent(olinks[i], "click", trackOutclicks);
				//olinks[i].href = "javascript:trackOutclicks('"+link+"', true)";
			}
			else
			{
				oc_addEvent(olinks[i], "click", trackOutclicks);
				//olinks[i].href = "javascript:trackOutclicks('"+link+"', false)";
			}
        }	
	 }
}	

/**********************************************************\
 * FUNCTION trackOutclicks( url )                         *
 *--------------------------------------------------------*
 * calls onexit() on click by an outgoing link.           *
\**********************************************************/
function trackOutclicks () 
{
	onexit();
	document.location.href = this.href;
}

/**********************************************************\
 * FUNCTION trackOutclicksDelay( url )                    *
 *--------------------------------------------------------*
 * calls onexit() on click by an outgoing link, sends     *
 * request by HTTPXmlRequest (sendRequest()) to get info  *
 * wether loading of data will be long in coming. Shows   *
 * dialog in greyout to choose between loading and not.   *
\**********************************************************/
function trackOutclicksDelay () 
{
	url = this.href;
	onexit();
	sendURL = url;
	sendRequest( url, 'prognose=true', 1, checkDelay );
}

/**********************************************************\
 * FUNCTION checkDelay( )                                 *
 *--------------------------------------------------------*
 *    *
\**********************************************************/
function checkDelay() 
{
	if(xmlHttp.readyState == 4)
    {
       	HTTPresponse = xmlHttp.responseText;
		if(HTTPresponse == "true")
		{
			if(document.getElementById('pbarprogressbar'))
			{
				document.getElementById('pbarprogressbar').style.display = 'none'; 
				document.getElementById('pbarprogressbar').style.visibility = 'hidden'; 
			}

			if(document.getElementById('pbardialog'))
				document.getElementById('pbardialog').style.visibility = 'visible'; 

		}
		else
		{
			if(sendURL)
				document.location.href = sendURL;
		}
	    xmlHttp = false;
    }
}


/**********************************************************\
 * FUNCTION pressKey( event _event )                      *
 *--------------------------------------------------------*
 * do something if user presses a key and don't do some-  *
 * thing if user is in textfield, filefield or password-  *
 * field                                                  *
\**********************************************************/
function pressKey(_event) 
{
	var obj = (document.all) ? window.event.srcElement : _event.target;
	var qOk = true;

	if (obj.type) 
	{
		for (i=0;i<naObj.length;i++) 
		{
			if (qOk) qOk = (obj.type.toLowerCase() != naObj[i]);
		}
		if (!qOk && obj.tagName && obj.tagName.toLowerCase() != "input") qOk = true;
	}

	if (obj.type == "textarea") qOk = false;

	if (qOk) keyTrigger(((document.all) ? window.event.keyCode : _event.which));
}

/**********************************************************\
 * FUNCTION mouseClick( event _event )                    *
 *--------------------------------------------------------*
 * prevent quick_edits to be closed on mouseclick in an   *
 * optionfield in a slectbox                              *
\**********************************************************/
function mouseClick(_event) 
{
	var obj = (document.all) ? window.event.srcElement : _event.target;
	var qOk = true;

	if (obj.tagName && obj.tagName.toLowerCase() == "option") qOk = false;
	if (obj.tagName && obj.tagName.toLowerCase() == "select") qOk = false;
	
	if(qOk)
	{
		closeQuickInfos( 1 );
		closeQuickCals( 1 );
	}
}

/**********************************************************\
 * FUNCTION onexit( )                                     *
 *--------------------------------------------------------*
 * Shows progressbar and greys out when exiting the page. *
\**********************************************************/
function onexit( )
{
	toppos = 0;
	height = 2000;
	
	reduceChart( );

	if(document.getElementById('pbar'))
	{
		if(document.getElementById('pbarbackground'))
		{
			if(window.pageXOffset && window.innerWidth)
				document.getElementById('pbarbackground').style.width = (window.innerWidth+window.pageXOffset)+'px'; 
			else
				document.getElementById('pbarbackground').style.width = '100%'; 

			if(window.pageYOffset && window.innerHeight)
			{
				toppos = window.pageYOffset;
				height = toppos + window.innerHeight;
			}
			else if(document.documentElement.scrollTop)
			{
				toppos = document.documentElement.scrollTop;
				height = document.documentElement.scrollTop + screen.height;
			}
			else if(document.body.scrollTop) 
			{
				toppos = document.body.scrollTop;
				height = toppos + screen.height;
			}
			else
			{
				height = '2000';
			}
				
			document.getElementById('pbarbackground').style.height = height+'px'; 
			document.getElementById('pbarbackground').style.visibility = 'visible'; 
		}

		if(document.getElementById('pbarbox'))
		{
			document.getElementById('pbarbox').style.top = (150+toppos)+'px';
		}

		if(document.getElementById('pbarwindow'))
		{
			document.getElementById('pbarwindow').style.visibility = 'visible'; 
		}

		if(document.getElementById('pbartext'))
		{
			document.getElementById('pbartext').style.visibility = 'visible'; 
		}
		
		document.getElementById('pbar').style.display = 'block';
		document.getElementById('pbar').style.zIndex = '100';

		rawDisableSelectBoxes( 1 );
	}
}

/**********************************************************\
 * FUNCTION getScrollPosition( )                          *
 *--------------------------------------------------------*
 * gets amount of pixel scrolled by user                  *
\**********************************************************/
function getScrollPosition()
{
	toppos = 0;
	if(window.pageYOffset)
	{
		toppos = window.pageYOffset;
	}
	else if(document.documentElement.scrollTop)
	{
		toppos = document.documentElement.scrollTop;
	}
	else if(document.body.scrollTop) 
	{
		toppos = document.body.scrollTop;
	}
	return toppos;	
}

/**********************************************************\
 * FUNCTION onloading( )                                  *
 *--------------------------------------------------------*
 * disables the progressbar and greyout image             *
\**********************************************************/
function onloading()
{
	if (document.getElementById('pbar')) 
	{
		document.getElementById('pbar').style.display = 'none';
		document.getElementById('pbar').style.zIndex = '1';
	}
}

/**********************************************************\
 * FUNCTION showback( )                                   *
 *--------------------------------------------------------*
 * disables progressbar when coming back to page          *
\**********************************************************/
function showback()
{
	if(document.getElementById('pbar'))
	{
		document.getElementById('pbar').style.display = 'none';
		document.getElementById('pbar').style.zIndex = '1';
	}

	if(document.getElementById('pbarbackground'))
		document.getElementById('pbarbackground').style.visibility = 'hidden'; 

	if(document.getElementById('pbarwindow'))
		document.getElementById('pbarwindow').style.visibility = 'hidden'; 

	if(document.getElementById('pbartext'))
		document.getElementById('pbartext').style.visibility = 'hidden'; 

	rawDisableSelectBoxes(0);
}

/**********************************************************\
 * FUNCTION keyTrigger( var _key )                        *
 *--------------------------------------------------------*
 * start the function by the pressed key                  *
\**********************************************************/
function keyTrigger( _key )
{
	switch(_key)
	{
		case (69): //explore -> Fullscreen
			if(!sidebar)
				flipsidebaron();
			else
				flipsidebaroff();
			break;
		case (79): //open\close menus
			if(sidebar)
			{
				if(menu_open)
				{
					closeAllGroups();
				}
				else
				{
					openAllGroups();
				}
				menu_open = !menu_open;
			}
			break;
		case (78): //next page
			if( (page_number+1) <= max_page_number )
				submitNav('pnr', (page_number+1));
			break;
		case (66): //back -> last page
			if( page_number > 0 )
				submitNav('pnr', (page_number-1));
			break;
		
	}
}

/**********************************************************\
 * FUNCTION flipsidebaroff( )                             *
 *--------------------------------------------------------*
 * disables sidebar                                       *
\**********************************************************/
function flipsidebaroff()
{
	counter++;
	if(document.getElementById('dash'))
		document.getElementById('dash').style.width = '99%';

	if(document.getElementById('classicMenu'))
		document.getElementById('classicMenu').style.display = 'block';

	if(document.getElementById('chart_box'))
	{
		document.getElementById('chart_box').style.left = '0px';
		if(!open_calendar)
			document.getElementById('chart_box').style.paddingLeft = '4px';
		else
			document.getElementById('chart_box').style.paddingLeft = '4px';
	}

	if(document.getElementById('info_box'))
	{
		document.getElementById('info_box').style.top = '0px';
		document.getElementById('info_box').style.position = 'relative';
		if(!open_calendar)
		{
			if(document.getElementById('calendar_box'))
			{
				document.getElementById('calendar_box').style.height = '23px';
				document.getElementById('calendar_title').style.backgroundImage = 'url(/skin/tpl.source/img/img_box_closed.gif)';
			}
		}
		if(noCalendar)
				document.getElementById('calendar_box').style.display = 'none';
	}

	document.getElementById('calendar_title').style.cursor = 'pointer';

	document.getElementById('topblock').style.paddingLeft = '2px';
	document.getElementById('leftblock').style.width = '0px';

	document.getElementById('nav_block').style.visibility = 'hidden';
	document.getElementById('nav_block').style.position = 'absolute';

	document.getElementById('flipon').style.display = 'block';
	document.getElementById('flipoff').style.display = 'none';

	document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_m=1";
	groups = 1;
	for( i=0; i<max_groups; i++ )
	{
		if(document.getElementById(groups+'_pin'))
			document.getElementById(groups+'_pin').style.position = 'absolute';
		groups = groups << 1;
	}
	sidebar = false;
}

/**********************************************************\
 * FUNCTION flipsidebaron( )                              *
 *--------------------------------------------------------*
 * enables sidebar                                        *
\**********************************************************/
function flipsidebaron()
{
	counter++;
	if(document.getElementById('dash'))
		document.getElementById('dash').style.width = '90%';

	if(document.getElementById('classicMenu'))
		document.getElementById('classicMenu').style.display = 'none';

	if(document.getElementById('chart_box'))
	{
		document.getElementById('chart_box').style.left = '0px';
		if(!open_calendar)
			document.getElementById('chart_box').style.paddingLeft = '5px';
		else
			document.getElementById('chart_box').style.paddingLeft = '5px';
	}
	
	if(document.getElementById('info_box'))
	{
		document.getElementById('info_box').style.top = '60px';
		document.getElementById('info_box').style.position = 'absolute';
		if(!open_calendar)
		{
			if(document.getElementById('calendar_box'))
			{
				document.getElementById('calendar_box').style.height = '220px';
				document.getElementById('calendar_title').style.backgroundImage = 'url(/skin/tpl.source/img/img_box_opened.gif)';
			}
		}		

		if(noCalendar)
				document.getElementById('calendar_box').style.display = 'block';
	}

	document.getElementById('calendar_title').style.cursor = 'auto';

	document.getElementById('topblock').style.paddingLeft = '0px';
	document.getElementById('leftblock').style.width = '220px';

	document.getElementById('nav_block').style.visibility = 'visible';
	document.getElementById('nav_block').style.position = 'static';
	document.getElementById('nav_block').style.border = '0px' ;

	document.getElementById('flipon').style.display = 'none';
	document.getElementById('flipoff').style.display = 'block';
	document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_m=0";
	groups = 1;
	for( i=0; i<max_groups; i++ )
	{
		if(document.getElementById(groups+'_pin'))
			document.getElementById(groups+'_pin').style.position = 'relative';
		groups = groups << 1;
	}
	sidebar = true;
}

/**********************************************************\
 * FUNCTION submitNav( field, value )                     *
 *--------------------------------------------------------*
 * loads a new location with submit value for field by GET*
\**********************************************************/
function submitNav( field, value )
{
	onexit();
	document.location.href = "/layoutAPI?" + sid + "&" + layoutid + "&" + field + "=" + value;
}

/**********************************************************\
 * FUNCTION pinGroup( )                                   *
 *--------------------------------------------------------*
 * prevents open group to be closed on open another group *
\**********************************************************/
function pinGroup( groupvalue )
{
	counter++;
	open_groups = Number(open_groups) | Number(groupvalue);
	document.getElementById('pin_on_'+groupvalue).style.display = 'none';
	document.getElementById('pin_off_'+groupvalue).style.display = 'block';
	document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_g=" + open_groups;
}

/**********************************************************\
 * FUNCTION looseGroup( )                                 *
 *--------------------------------------------------------*
 * group closes again by open another group               *
\**********************************************************/
function looseGroup( groupvalue )
{
	counter++;
	open_groups = Number(open_groups) & (~Number(groupvalue));
	document.getElementById('pin_on_'+groupvalue).style.display = 'block';
	document.getElementById('pin_off_'+groupvalue).style.display = 'none';
	document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_g=" + open_groups;
}

/**********************************************************\
 * FUNCTION openAllGroups( )                              *
 *--------------------------------------------------------*
 * Open all navigationgroups                              *
\**********************************************************/
function openAllGroups()
{
	groups = 1;
	for( i=0; i<max_groups; i++ )
	{
		if(document.getElementById(groups+'_disable'))
		{
			document.getElementById(groups+'_disable').style.display = 'block';
			document.getElementById(groups+'_arrow').style.backgroundImage = 'url(/skin/tpl.source/img/mn_open.gif)';
			document.getElementById(groups+'_link').style.fontWeight = 'bold';
		}
		groups = groups << 1;
	}
}

/**********************************************************\
 * FUNCTION closeAllGroups( )                             *
 *--------------------------------------------------------*
 * closes all navigationgroups including pinned ones      *
\**********************************************************/
function closeAllGroups()
{
	groups = 1;
	for( i=0; i<max_groups; i++ )
	{
		closegroup( groups );
		groups = groups << 1;
	}
}

/**********************************************************\
 * FUNCTION opengroup( var groupid, var nav)              *
 *--------------------------------------------------------*
 * opens navigationgroup delivered by groupid.            *
 * if nav is delivered go to this location                *
\**********************************************************/
function opengroup( groupid, nav )
{
	if(document.getElementById(groupid+'_disable').style.display == 'block')
	{
		closegroup( groupid );
	}
	else
	{
		document.getElementById(groupid+'_disable').style.display = 'block';
		document.getElementById(groupid+'_arrow').style.backgroundImage = 'url(/skin/tpl.source/img/mn_open.gif)';
		document.getElementById(groupid+'_link').style.fontWeight = 'bold';
	
		groups = 1;
		for( i=0; i<max_groups; i++ )
		{
			if( !( groups & open_groups ) && ( groupid != groups ) && document.getElementById(groups+'_disable'))
			{
				document.getElementById(groups+'_disable').style.display = 'none';
				document.getElementById(groups+'_arrow').style.backgroundImage = 'url(/skin/tpl.source/img/mn_close.gif)';
				document.getElementById(groups+'_link').style.fontWeight = 'normal';
			}
			groups = groups << 1;
		}
	
		if(nav)
		{
			onexit();
			document.location.href = nav;
		}
	}
}

/**********************************************************\
 * FUNCTION closegroup( var groupid )                     *
 *--------------------------------------------------------*
 * closes group referenced by groupid                     *
\**********************************************************/
function closegroup( groupid )
{
	if(document.getElementById(groupid+'_disable'))
	{	
		document.getElementById(groupid+'_disable').style.display = 'none';
		document.getElementById(groupid+'_arrow').style.backgroundImage = 'url(/skin/tpl.source/img/mn_close.gif)';
		document.getElementById(groupid+'_link').style.fontWeight = 'normal';
		looseGroup( groupid );
	}
}

/**********************************************************\
 * FUNCTION ie_hover( var obj, var hov, var tag )         *
 *--------------------------------------------------------*
 * hover workaround for ie6                               *
\**********************************************************/
function ie_hover(obj,hov,tag)
{
	if(iexplore)
	{
		if( hov == 1 ) obj.className+=" "+tag;
		else obj.className=obj.className.replace(" "+tag,"");
	}
}

/**********************************************************\
 * FUNCTION checkSingleDel( var no, var cbox )            *
 *--------------------------------------------------------*
 * checks or unchecks all checkboxes for single delete    *
 * no is the amount of checkboxes and cbox is the CO      *
\**********************************************************/
function checkSingleDel( no, cbox )
{
	checkit = document.getElementById(cbox).checked ? 1 : 0 ;
	for(i=0; i<no; i++)
	{
		document.getElementById('delItem_'+i).checked = checkit;
	}
}

/**********************************************************\
 * FUNCTION switchElement( var checkbox, element )        *
 *--------------------------------------------------------*
 * switches element on and off                            *
\**********************************************************/
function switchElement(checkbox, element, invert)
{
	if( checkbox.checked )
	{
		document.getElementById(element).style.display = invert ? 'none' : 'inline';
	}
	else
	{
		document.getElementById(element).style.display = invert ? 'inline' : 'none';
	}
}

/**********************************************************\
 * FUNCTION magnifyDashboard( var dash )                  *
 *--------------------------------------------------------*
 * opens a floating window and show the bigger image of   *
 * the dashboard referenced by dash                       *
\**********************************************************/
function magnifyDashboard( dash, dashtitle )
{
	if(document.getElementById('big_chart'))
	{
		toppos = getScrollPosition();
		disableSelectBoxes(1);
		if(document.getElementById('big_chart_zindex'))
		{
			document.getElementById('big_chart_zindex').style.top = (toppos?toppos:100)+'px';
			document.getElementById('big_chart_zindex').style.zIndex = 100;
			document.getElementById('big_chart_zindex').style.display = 'block';
		}
		if(dash != document.getElementById('big_dashboard_image').src)
		{
			document.getElementById('big_dashboard_image').src = '/skin/image.global/1px.gif';
			document.getElementById('big_dashboard_image').src = dash;
		}
		document.getElementById('big_chart').style.visibility = 'visible'
		document.getElementById('big_dashboard_title').firstChild.nodeValue = dashtitle;
	}
}

/**********************************************************\
 * FUNCTION reduceDashboard( )                            *
 *--------------------------------------------------------*
 * just close the floating window on the dashboard        *
\**********************************************************/
function reduceDashboard(  )
{
	disableSelectBoxes(0);
	if(document.getElementById('big_dashboard_image'))
	{
		document.getElementById('big_dashboard_image').src = '/skin/image.global/1px.gif';
	}
	if(document.getElementById('big_dashboard'))
	{
		document.getElementById('big_dashboard').style.visibility = 'hidden'
		document.getElementById('big_dashboard_title').firstChild.nodeValue = '';
	}
}


/**********************************************************\
 * FUNCTION disableSelectBoxes( var disable, var enables )*
 *--------------------------------------------------------*
 * disables/enables the selectboxes on IE6                *
\**********************************************************/
function rawDisableSelectBoxes(disable)
{
	if(disable)
	{
		if(iexplore)
		{
			i=0;
			while(document.getElementsByTagName("select")[i])
			{
				document.getElementsByTagName("select")[i++].style.visibility = 'hidden';
			}
		}
	}
	else
	{
		if(iexplore)
		{
			i=0;
			while(document.getElementsByTagName("select")[i])
			{
				if(document.getElementsByTagName("select")[i].id)
				{
					test = document.getElementsByTagName("select")[i].id
					eval('check = test.search(/related_/);');
					if((test.search(/related_/) == -1) && (test.search(/filter_/) == -1) && (test.search(/view_/) == -1) && (test.search(/geo_/) == -1)) 
						document.getElementsByTagName("select")[i].style.visibility = 'visible';
				}
				else
				{
					document.getElementsByTagName("select")[i].style.visibility = 'visible';
				}
				i++;
			}
		}
	}
}

/**********************************************************\
 * FUNCTION disableSelectBoxes( var disable, var enables )*
 *--------------------------------------------------------*
 * disables/enables the selectboxes on IE6                *
\**********************************************************/
function disableSelectBoxes(disable)
{
	if(!iewa)
	{	
		if(disable)
		{
			if(iexplore)
			{
				i=0;
				while(document.getElementsByTagName("select")[i])
				{
					document.getElementsByTagName("select")[i++].style.visibility = 'hidden';
				}
			}
		}
		else
		{
			if(iexplore)
			{
				i=0;
				while(document.getElementsByTagName("select")[i])
				{
					if(document.getElementsByTagName("select")[i].id)
					{
						test = document.getElementsByTagName("select")[i].id
						eval('check = test.search(/related_/);');
						if((test.search(/related_/) == -1) && (test.search(/filter_/) == -1) && (test.search(/view_/) == -1) && (test.search(/geo_/) == -1)) 
							document.getElementsByTagName("select")[i].style.visibility = 'visible';
					}
					else
					{
						document.getElementsByTagName("select")[i].style.visibility = 'visible';
					}
					i++;
				}
			}
		}
	}
}

/**********************************************************\
 * FUNCTION enableSelectedBoxes( var type, var enable )   *
 *--------------------------------------------------------*
 * enables/disables the selectboxes for the chosen infobox*
\**********************************************************/
function enableSelectedBoxes( type, enable )
{
	if(enable)
	{
		if(iexplore)
		{
			i=0;
			while(document.getElementsByTagName("select")[i])
			{
				if(document.getElementsByTagName("select")[i].id)
				{
					test = document.getElementsByTagName("select")[i].id
					eval('check = test.search(/'+type+'_/);');
					if(check != -1)
						document.getElementsByTagName("select")[i].style.visibility = 'visible';
				}
				i++;
			}
		}
	}
	else
	{
		if(iexplore)
		{
			i=0;
			while(document.getElementsByTagName("select")[i])
			{
				if(document.getElementsByTagName("select")[i].id)
				{
					test = document.getElementsByTagName("select")[i].id
					eval('check = test.search(/'+type+'_/);');
					if(check != -1)
						document.getElementsByTagName("select")[i].style.visibility = 'hidden';
				}
				i++;
			}
		}
	}
}

/**********************************************************\
 * FUNCTION switchCalendar( type, img_url )               *
 *--------------------------------------------------------*
 * toggle between year, month and day and switches the    *
 * images in different languages                          *
\**********************************************************/
function switchCalendar( type, img_url )
{
	switch(type)
	{
		case('CAL_DAY'):
			if(document.getElementById('tab_year'))
				document.getElementById('tab_year').src = img_url+'/tab_year_off.gif';
			if(document.getElementById('tab_month'))
				document.getElementById('tab_month').src = img_url+'/tab_month_off.gif';
			if(document.getElementById('tab_day'))
				document.getElementById('tab_day').src = img_url+'/tab_day_on.gif';
			if(document.getElementById('calendarYear'))
				document.getElementById('calendarYear').style.display = 'none';
			if(document.getElementById('calendarMonth'))
				document.getElementById('calendarMonth').style.display = 'none';
			if(document.getElementById('calendarDay'))
				document.getElementById('calendarDay').style.display = 'block';
			break;
		case('CAL_MONTH'):
			if(document.getElementById('tab_year'))
				document.getElementById('tab_year').src = img_url+'/tab_year_off.gif';
			if(document.getElementById('tab_month'))
				document.getElementById('tab_month').src = img_url+'/tab_month_on.gif';
			if(document.getElementById('tab_day'))
				document.getElementById('tab_day').src = img_url+'/tab_day_off.gif';
			if(document.getElementById('calendarYear'))
				document.getElementById('calendarYear').style.display = 'none';
			if(document.getElementById('calendarMonth'))
				document.getElementById('calendarMonth').style.display = 'block';
			if(document.getElementById('calendarDay'))
				document.getElementById('calendarDay').style.display = 'none';
			break;
		case('CAL_YEAR'):
			if(document.getElementById('tab_year'))
				document.getElementById('tab_year').src = img_url+'/tab_year_on.gif';
			if(document.getElementById('tab_month'))
				document.getElementById('tab_month').src = img_url+'/tab_month_off.gif';
			if(document.getElementById('tab_day'))
				document.getElementById('tab_day').src = img_url+'/tab_day_off.gif';
			if(document.getElementById('calendarYear'))
				document.getElementById('calendarYear').style.display = 'block';
			if(document.getElementById('calendarMonth'))
				document.getElementById('calendarMonth').style.display = 'none';
			if(document.getElementById('calendarDay'))
				document.getElementById('calendarDay').style.display = 'none';
			break;
	}
}

/**********************************************************\
 * FUNCTION magnifyChart( )                               *
 *--------------------------------------------------------*
 * opens a floating window for a bigger view              *
\**********************************************************/
function magnifyChart( )
{
	if(document.getElementById('big_chart'))
	{
		var toppos = getScrollPosition();
		disableSelectBoxes(1);
		if(document.getElementById('big_chart_zindex'))
		{
			document.getElementById('big_chart_zindex').style.top = (toppos?toppos:100)+'px';
			document.getElementById('big_chart_zindex').style.display = 'block';
			document.getElementById('big_chart_zindex').style.zIndex = 100;
			document.getElementById('big_chart').style.visibility = 'visible'
		}
	}
}

/**********************************************************\
 * FUNCTION reduceChart( )                                *
 *--------------------------------------------------------*
 * closes the floating window                             *
\**********************************************************/
function reduceChart(  )
{
	if(document.getElementById('big_chart'))
	{
		document.getElementById('big_chart_zindex').style.display = 'none';
		document.getElementById('big_chart_zindex').style.zIndex = 2;
		document.getElementById('big_chart').style.visibility = 'hidden'
		disableSelectBoxes(0)
	}
}

/**********************************************************\
 * FUNCTION closeQuickInfos( var closeComplete )          *
 *--------------------------------------------------------*
 * closes all open quick_edits                            *
 * if closeComplete is true disable mouseover open        *
\**********************************************************/
function closeQuickInfos( closeComplete )
{
	if(!quick_info && quick_info_open)
	{
		disableSelectBoxes( 0 );
		
		if(document.getElementById('related_off'))
		{
			document.getElementById('related_off').style.visibility = 'hidden';
		}

		if(document.getElementById('admin_off'))
		{
			document.getElementById('admin_off').style.visibility = 'hidden';
			enableSelectedBoxes( 'admin', 0 );
		}

		if(document.getElementById('filter_off'))
		{
			document.getElementById('filter_off').style.visibility = 'hidden';
			enableSelectedBoxes( 'filter', 0 );
		}

		if(document.getElementById('view_off'))
		{
			document.getElementById('view_off').style.visibility = 'hidden';
			enableSelectedBoxes( 'view', 0 );
		}

		if(document.getElementById('geo_off'))
		{
			document.getElementById('geo_off').style.visibility = 'hidden';
			enableSelectedBoxes( 'geo', 0 );
		}

		if(closeComplete)
		{
			quick_info_open = 0;
		}
	}

}

/**********************************************************\
 * FUNCTION closeQuickCals( var closeComplete )           *
 *--------------------------------------------------------*
 * closes all open quick_cals                             *
 * if closeComplete is true disable mouseover open        *
\**********************************************************/
function closeQuickCals( closeComplete )
{
	if(!quick_cal && quick_cal_open)
	{
		if(document.getElementById('cal1'))
		{
			document.getElementById('cal1').style.visibility = 'hidden';
		}

		if(document.getElementById('cal2'))
		{
			document.getElementById('cal2').style.visibility = 'hidden';
		}
	
		if(closeComplete)
		{
			quick_cal_open = 0;
		}
	}

}

/**********************************************************\
 * FUNCTION openQuickInfo( var qe )                       *
 *--------------------------------------------------------*
 * open transfered quick_edit and set var quick_edit      *
\**********************************************************/
function openQuickInfo( qe )
{
	quick_info_open = 1;
	closeQuickInfos(0);
	if(document.getElementById(qe+'_off'))
	{
		document.getElementById(qe+'_off').style.visibility = 'visible';
		disableSelectBoxes( 1 );
		enableSelectedBoxes( qe, 1 );
	}
	quick_info = 1;
}

/**********************************************************\
 * FUNCTION openQuickCal( var qe )                        *
 *--------------------------------------------------------*
 * open transfered quick_edit and set var quick_edit      *
\**********************************************************/
function openQuickCal( qe )
{
	quick_cal_open = 1;
	closeQuickCals(0);
	if(document.getElementById(qe))
	{
		document.getElementById(qe).style.visibility = 'visible';
	}
	quick_cal = 1;
}

/**********************************************************\
 * FUNCTION closeQuickInfo( )                             *
 *--------------------------------------------------------*
 * open transfered quick_edit and set var quick_edit      *
\**********************************************************/
function closeQuickInfo( )
{
	quick_info = 0;
}

/**********************************************************\
 * FUNCTION closeQuickCal( )                             *
 *--------------------------------------------------------*
 * open transfered quick_edit and set var quick_edit      *
\**********************************************************/
function closeQuickCal( )
{
	quick_cal = 0;
}

/**********************************************************\
 * FUNCTION stayQuickInfo( )	                          *
 *--------------------------------------------------------*
 * set var quick_edit to disable closing on click         *
\**********************************************************/
function stayQuickInfo( )
{
	quick_info = 1;
}

/**********************************************************\
 * FUNCTION stayQuickCal( )  	                          *
 *--------------------------------------------------------*
 * set var quick_edit to disable closing on click         *
\**********************************************************/
function stayQuickCal( )
{
	quick_cal = 1;
}

/**********************************************************\
 * FUNCTION toggleQuickInfo( var qe )                     *
 *--------------------------------------------------------*
 * toggle (open/close) quick_edit                         *
\**********************************************************/
function toggleQuickInfo( qe )
{
	if(document.getElementById(qe+'_off'))
	{
		if(document.getElementById(qe+'_off').style.visibility != 'visible')
		{ 
			document.getElementById(qe+'_off').style.visibility = 'visible';
			quick_info_open = 1;
			disableSelectBoxes( 1 );
			enableSelectedBoxes( qe, 1 );
		}
		else
		{
			document.getElementById(qe+'_off').style.visibility = 'hidden';
			quick_info_open = 0;				
			disableSelectBoxes( 0 );
			enableSelectedBoxes( qe, 0 );
		}
	}
}

/**********************************************************\
 * FUNCTION toggleQuickCal( var qe )                     *
 *--------------------------------------------------------*
 * toggle (open/close) quick_edit                         *
\**********************************************************/
function toggleQuickCal( qe )
{
	if(document.getElementById(qe))
	{
		if(document.getElementById(qe).style.visibility != 'visible')
		{ 
			quick_cal_open = 1;
			closeQuickCals(0);
			document.getElementById(qe).style.visibility = 'visible';
			quick_cal = 1;
		}
		else
		{
			document.getElementById(qe).style.visibility = 'hidden';
			quick_cal_open = 0;				
			quick_cal = 0;
		}
	}
}

/**********************************************************\
 * FUNCTION toggleCalendar( )                             *
 *--------------------------------------------------------*
 * toggle (open/close) calendar                           *
\**********************************************************/
function toggleCalendar( )
{
	if(!sidebar)
	{	
		counter++;
		if(document.getElementById('calendar_box'))
		{
			if(document.getElementById('calendar_box').style.height == '23px')
			{ 
				open_calendar = 1;
				document.getElementById('calendar_box').style.height = '220px';
				document.getElementById('calendar_title').style.backgroundImage = 'url(/skin/tpl.source/img/img_box_opened.gif)';
				document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_c=1";
			}
			else
			{
				open_calendar = 0;
				document.getElementById('calendar_box').style.height = '23px';
				document.getElementById('calendar_title').style.backgroundImage = 'url(/skin/tpl.source/img/img_box_closed.gif)';
				document.images['settingImage'].src = "/setting.php?" + sid + "&change=" + counter + "&o_c=0";
			}
		}
	}
}

/**********************************************************\
 * FUNCTION writeFlash( )                                 *
 *--------------------------------------------------------*
 * Writes flashmovie for workaround the eolas patent      *
\**********************************************************/
function writeFlash(flashdata) 
{ 
	document.write(flashdata); 
}

/**********************************************************\
 * FUNCTION sendRequest( url, parameter, async, callBack )*
 *--------------------------------------------------------*
 * sends a request with XMLHttpRequest to url, adds the   *
 * parameter and async switches between asynchronous and  *
 * synchronous (go on with code and waiting)              *
\**********************************************************/
function sendRequest( url, parameter, async, callBack )
{
	HTTPresponse	= false;
	async 			= ( async ? true : false );
	
	// Mozilla, Opera, Safari and finaly Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined') {
	    xmlHttp = new XMLHttpRequest();
	}
	if (!xmlHttp) {
	    // Internet Explorer 6 and older
	    try {
	        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch(e) {
	        try {
	            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch(e) {
	            xmlHttp  = false;
	        }
	    }
	}
	if (xmlHttp) 
	{
		xmlHttp.onreadystatechange = callBack;
	    xmlHttp.open('GET', url+'&'+parameter, async);
		if(!async)
		{		
		    xmlHttp.send(null);
			HTTPresponse = xmlHttp.responseText;
			received = true;
	    }
	    else
	    {
		    xmlHttp.send(null);
		}
	}
	else
	{
		onexit();
		document.location.href = url;
	}
}

/**********************************************************\
 * FUNCTION closePBarDialog( )                            *
 *--------------------------------------------------------*
 * close the dialog and hide the greyout images and pbar  *
\**********************************************************/
function closePBarDialog()
{
	if(document.getElementById('pbar'))
	{
		document.getElementById('pbar').style.display = 'none';
		document.getElementById('pbar').style.zIndex = '1';
	}

	if(document.getElementById('pbarprogressbar'))
	{
		document.getElementById('pbarprogressbar').style.display = 'block'; 
		document.getElementById('pbarprogressbar').style.visibility = 'visible'; 
	}

	if(document.getElementById('pbarbackground'))
		document.getElementById('pbarbackground').style.visibility = 'hidden'; 

	if(document.getElementById('pbarwindow'))
		document.getElementById('pbarwindow').style.visibility = 'hidden'; 

	if(document.getElementById('pbardialog'))
		document.getElementById('pbardialog').style.visibility = 'hidden'; 

	rawDisableSelectBoxes( 0 );

	sendURL 		= 0;
	HTTPresponse	= "";
}

/**********************************************************\
 * FUNCTION submitPBarDialog( )                           *
 *--------------------------------------------------------*
 * displays the progressbar, hides the dialogtext and     *
 * sends the global sendURL to server                     *
\**********************************************************/
function submitPBarDialog()
{
	if(document.getElementById('pbardialog'))
		document.getElementById('pbardialog').style.visibility = 'hidden'; 

	if(document.getElementById('pbarprogressbar'))
	{
		document.getElementById('pbarprogressbar').style.display = 'block'; 
		document.getElementById('pbarprogressbar').style.visibility = 'visible'; 
	}

	document.location.href = sendURL;
}

/**********************************************************\
 * FUNCTION timeOut( )                                    *
 *--------------------------------------------------------*
 * set time_out if request fails                          *
\**********************************************************/
function timeOut()
{
	time_out = true;
}


/**********************************************************\
 * FUNCTION toggleClusterGroup( group_id, group, imgsrc ) *
 *--------------------------------------------------------*
 * toggles cluster group on and off and saves with AJAX   *
\**********************************************************/
function toggleClusterGroup( group_id, group, imgsrc )
{
	if(document.getElementById(group+'img').src.indexOf('plus.gif') == -1)
		on = 1;
	else
		on = 0; 
	
	idx = 1; 
	while(document.getElementById(group+idx))
	{
		document.getElementById(group+idx).style.display = (on?'none':(iexplore?'block':'table-row'));
		idx++;
	}
	document.getElementById(group+'img').src = imgsrc + (on ? "/plus.gif" : "/minus.gif");

	sendRequest( ajaxurl, 'cg_open='+group_id+'&cg_status='+on, 1, checkClusterGroup );
}

/**********************************************************\
 * FUNCTION checkClusterGroup( )                          *
 *--------------------------------------------------------*
 * unset xmlHttp Object                                   *
\**********************************************************/
function checkClusterGroup() 
{
	if(xmlHttp.readyState == 4)
    {
		xmlHttp = false;
    }
}
