	function cal_numSort(a, b) { return a-b; }			
	function cal_gel(id) { return document.getElementById(id); }
	
	function cal_submitForm(form) 
	{ 
		cal_gel('calendar_selection').value=''; 
		cal_gel('calendar_js').value=1; 
		form.submit();
	}
	
	function cal_getSelection() 
	{ 
		var sel=cal_gel('calendar_selection');
		var sel_arr=sel.value.split(',');
		sel_arr.sort(cal_numSort);
		return sel_arr;
	}
	
	function cal_saveSelection(sel_arr) 
	{ 
		var sel=cal_gel('calendar_selection');
		sel_arr.sort(cal_numSort);
		var sel_str=sel_arr.join(',');					
		sel.value=sel_str;
		cal_gel('calendar_js').value=1;
		//alert('SAVED: '+sel.value);
	}
	
	function cal_setActive(id,action) 
	{ 
		var obj=cal_gel(id);
		obj.style.backgroundColor=(action)?'#FFFFFF':'transparent'; // wird gebraucht weil man sonst nicht abwählen kann
		if(action == "event_true")
		{
			obj.style.backgroundColor = "#FFFFFF";
			obj.style.backgroundImage = "url(/portal/img/layout/cal_active_selected.gif)";
		}
		else if(action == "event_false")
		{
			obj.style.backgroundColor = "transparent";
			obj.style.backgroundImage = "url(/portal/img/layout/cal_active.gif)";
		}
		else if(action)
		{
			obj.style.backgroundImage = "url(/portal/img/layout/cal_selected.gif)";
		}
		else
		{
			obj.style.backgroundImage = "url(/portal/img/layout/cal_normal.gif)";
		}
	}	
	
	function cal_setActiveWeek(week,days_str,checked)
	{
		var sel_arr=cal_getSelection();
		var day_arr=days_str.split(',');
		day_arr.sort(cal_numSort);
		if(checked==true)
		{
			for(var d=0;d<day_arr.length;d++)
			{
				var unique=true;
				for(var i=0;i<sel_arr.length;i++) 
				{ 
					if(sel_arr[i]==day_arr[d]) 
					{
						unique=false;
						continue;
					} 
				} 
				if(unique)
				{
					sel_arr.push(day_arr[d]);
				}
				if(!in_array(parseInt(day_arr[d]), event_array)) cal_setActive('cal_day'+day_arr[d],true);
				else cal_setActive('cal_day'+day_arr[d],"event_true");
			}
			// cal_setActive('cal_week'+week,true);
		}
		else
		{
			for(var d=0;d<day_arr.length;d++)
			{
				for(var i=0;i<sel_arr.length;i++) 
				{ 
					if(sel_arr[i]==day_arr[d]) sel_arr.splice(i,1);
				}
				if(!in_array(parseInt(day_arr[d]), event_array)) cal_setActive('cal_day'+day_arr[d],false);
				else cal_setActive('cal_day'+day_arr[d],"event_false");
			}
			// cal_setActive('cal_week'+week,false);
		}
		cal_saveSelection(sel_arr);					
	}
	
	function cal_setActiveDay(id,week)
	{
		var day=cal_gel('cal_day'+id);
		var sel_arr=cal_getSelection();				
		if(day.style.backgroundColor=='transparent' || day.style.backgroundColor=='')
		{
			var unique=true;
			var hit=false;
			for(var i=0;i<sel_arr.length;i++) 
			{ 
				if(sel_arr[i]==id) { unique=false; continue; };
			}
			if(unique) 
			{
				sel_arr.push(id);	
				cal_saveSelection(sel_arr);						
			}
			var complete=true;
			var wel=cal_gel('cal_week'+week+'_days');
			var weekday_arr=wel.value.split(',');
			weekday_arr.sort(cal_numSort);
			for(var j=0;j<weekday_arr.length;j++)
			{ 
				hit=false;
				for(var s=0;s<sel_arr.length;s++) 
				{
					if(weekday_arr[j]==sel_arr[s]) { hit=true; continue }
				}
				if(!hit) complete=hit;
			}										
			if(complete) 
			{
				cal_gel('cal_week'+week+'_check').checked=true;
				// cal_setActive('cal_week'+week,true);
			}
			// cal_setActive('cal_day'+id,true);
			if(!in_array(parseInt(id), event_array)) cal_setActive('cal_day'+id,true);
			else cal_setActive('cal_day'+id,"event_true");
		}
		else
		{
			for(var i=0;i<sel_arr.length;i++) 
			{ 
				if(sel_arr[i]==id)
				{ 
					sel_arr.splice(i,1);
					cal_saveSelection(sel_arr);
				} 
			} 
			// cal_setActive('cal_day'+id,false);
			if(!in_array(parseInt(id), event_array)) cal_setActive('cal_day'+id,false);
			else cal_setActive('cal_day'+id,"event_false");
			cal_gel('cal_week'+week+'_check').checked='';
			// cal_setActive('cal_week'+week,false);
		}		
	}
