function buildHiddenFields()
{
	buildHiddenField( "genres[]", "hiddenGenres" );
	buildHiddenField( "eventTypes[]", "hiddenEventTypes" );
	return true;
}

function buildHiddenField( boxesName, hiddenField)
{
	var genres = document.getElementsByName( boxesName );
	var count = genres.length;
	var firstRun = true;
	var selectedGenres = "";
	for( var i = 0; i < count; i ++ ) 
	{
   		if( genres[i].checked == true )
   		{
   			if ( firstRun )
   			{
   				firstRun = false;
   			}
   			else
   			{
   				selectedGenres += ",";
   			}
   			selectedGenres += genres[i].value;
   			genres[i].checked = false;
   		}
   	}
   	document.getElementById( hiddenField ).value = selectedGenres;  		
}


function doSelection( name, selected )
{
	if ( selected != "all" && selected != "none" )
	{	
		var selectionArray = selected.split( "," );
	}
	
	var elementArray = document.getElementsByName( name );
	var count = elementArray.length;	
	for( var i = 0; i < count; i ++ ) 
	{
		if ( selected == "all" )
		{		
			elementArray[i].checked = true;
		}
		else if ( selected == "none" )
		{
			elementArray[i].checked = false;
		}
		else
		{
			elementArray[i].checked = selectionArray.contains( elementArray[i].value ); 
		}  			
   	}
}

function changeView( name, viewType )
{
	document.getElementById( name ).value = viewType;
	buildHiddenFields();
	document.eventCalender.submit();
}
	
Array.prototype.contains = function( obj ) 
{
	var i, listed = false;
	var count = this.length;
	for ( i = 0; i < count; i ++ ) 
	{
		if ( this[i] === obj ) 
		{
			listed = true;
			break;
		}
	}
	return listed;
};

var eventCalendarPicker;

function datePickInit()
{
	eventCalendarPicker = new CalendarPopup("date_picker");
	var cal = eventCalendarPicker;
	cal.setMonthNames('Jänner','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
	cal.setDayHeaders('S','M','D','M','D','F','S');
	cal.setWeekStartDay(1);
	cal.setTodayText("Heute");
	cal.showNavigationDropdowns();
}

function datePickShow(which_date)
{
	var fmt = 'yyyy-MM-dd';
	var anchor_id = "show_" + which_date;
	var formelement_name = "user_volume_pi18[period" + which_date + "]";
	var dest = document.forms['eventCalender'][formelement_name];
	var cur = dest.value;
	var cal = eventCalendarPicker;
	cal.disabledDatesExpression = "";
	if (which_date == "End")
	{
		var beginDate = document.forms['eventCalender']["user_volume_pi18[periodBegin]"].value;
		var begin = parseDate(beginDate);
		var d = new Date();
		d.setTime(begin - 86400000);
		cal.addDisabledDates(null, formatDate(d, fmt));
		var curEnd = parseDate(cur);
		if (curEnd <= begin)
			cur = beginDate;
		
		cal.highlightPredicate = function(year, month, day) {
			return (year == begin.getFullYear() && month == (1 + begin.getMonth()) && day == begin.getDate());
		}
		document.forms['eventCalender']["user_volume_pi18[periodBegin]"].disabled = true;
	}
	else
	{
		cal.highlightPredicate = null;
		document.forms['eventCalender']["user_volume_pi18[periodEnd]"].disabled = true;
	}
	
	var beginInput = document.forms['eventCalender']["user_volume_pi18[periodBegin]"];
	var endInput = document.forms['eventCalender']["user_volume_pi18[periodEnd]"];
	eventCalendarPicker.onExit = function() {
		beginInput.disabled = false;
		endInput.disabled = false;
	}
	
	eventCalendarPicker.select(
		dest, anchor_id, fmt, cur);
	
	var dest_div = document.getElementById("date_picker");
	
	dest_div.style.top = "auto";
	dest_div.style.left = "0";
	
	return false;
}

if (window.addEventListener)
{
	window.addEventListener("load", datePickInit, false);
}
else if (window.attachEvent)
{
	window.attachEvent("onload", datePickInit);
}
else
{
	var prev = window.onload;
	if (prev)
		window.onload = function () { datePickInit(); prev(); }
	else
		window.onload = datePickInit;
}

