/*
# -------------------------------------------------------------------------
# Design & Code by dCTRL
# 
# dCTRL - INTERACTIVE MEDIA & MOTION GRAPHICS GMBH
# Konradstrasse 17, CH-8005 Zurich, Switzerland
# Tel. 044-271 9828, info[at]dctrl[dot]ch, www.dctrl.ch
# 
# Copyright © 2000-2007 dCTRL - Switzerland. All Rights Reserved.
# All content from this site may not be reproduced without prior 
# written permission.
# All characters, titles and plublication names on this site are 
# the intellectual property of their respective owners/creators.

###########################################################################
# VERANSTALTUNGSKALENDER.JS
###########################################################################

*/

function show_fromtodayon(today){
	var counter = 0;
	// loop through elements
	divs = document.getElementsByTagName('div');

    //alert(divs.length);
    
	// *** EDITED AL 13.11.07 : START ***
	// for(i in divs){
	for (var i=0; i<divs.length; i++)
	{
	// *** EDITED AL 13.11.07 : END ***
		e = divs[i];
		id = String(e.id);
		id_d = id.substr(0,2);
		if(id_d == 'dd')
		{
			// detail element
			tag = id.substr(2,2);
			if(tag >= today){
				e.style.display = "block";
				counter ++;
			}else{
				e.style.display = "none";
			}
		}	
		
	}

	// falls anlässe vorhanden, diese anzeigen
	// sonst, >> nächster monat
	// in beiden fällen "keine" Zeile ausblenden
	document.getElementById('dd_00_0').style.display = "none"; // "keine zeile" aus
	if(counter == 0){
		document.getElementById('dd_00_none').style.display = "block"; // next month zeile ein
	}else{
		document.getElementById('dd_00_none').style.display = "none";	// next month zeile aus	
	}
	
	document.getElementById('cur_status').value = "show_fromtodayon("+today+")";
}

function show_oneday(day){
	var counter = 0;
	// loop through elements
	divs =document.getElementsByTagName('div');

	// *** EDITED AL 13.11.07 : START ***
	// for(i in divs){
	for (var i=0; i<divs.length; i++)
	{
	// *** EDITED AL 13.11.07 : END ***
	
		var e = divs[i];
		var cur_id = String(e.id);
		var id_d = cur_id.substr(0,2);
		if(id_d == 'dd')
		{
			// detail element
			var tag = cur_id.substr(2,2);
			if(tag == day){
				e.style.display = "block";
				counter ++;
			}else{
				e.style.display = "none";
			}
		}	
		
	}
	
	if(counter == 0){
		document.getElementById('dd_00_0').style.display = "block";
	}else{
		document.getElementById('dd_00_0').style.display = "none";		
	}
	
	document.getElementById('cur_status').value = "show_oneday("+day+")";
	// sets filter to all
	if(document.getElementById('cur_filter').value != '')
	{
		var cur_element = document.getElementById('cur_filter').value;
		document.getElementById(cur_element).style.textDecoration = "none";
	}
	// falls filter existiert
	if(document.getElementById('ff_0'))
	{
		document.getElementById('cur_filter').value = 'ff_0';
		document.getElementById('ff_0').style.textDecoration = "underline";
	}
}

function show_all(){
	var counter = 0;
	// loop through elements
	divs = document.getElementsByTagName('div');
	
	/**
	// *** EDITED AL 13.11.07 : START ***
	for(i in divs){
		e = divs[i];
		id = String(e.id);
		id_d = id.substr(0,2);
		if(id_d == 'dd'){
			// detail element
			counter ++;
			//alert(counter);
			e.style.display = "block";
		}	
		
	}
	*/
	
	
	for (var i=0; i<divs.length; i++){
        e = divs[i];
		id = String(e.id);
		id_d = id.substr(0,2);
		if(id_d == 'dd'){
			counter ++;
			e.style.display = "block";
		}
    }
	//alert('counter ' +counter)
    document.getElementById('dd_00_0').style.display = "none"; // "keine zeile" aus
	if(counter <= 2){
		document.getElementById('dd_00_none').style.display = "block"; // "next month zeile" ein
	}else{
		document.getElementById('dd_00_none').style.display = "none";	// "next month zeile" aus	
	}
	document.getElementById('cur_status').value = "show_all()";
	
	// sets filter to all
	if(document.getElementById('cur_filter').value != ''){
		var cur_element = document.getElementById('cur_filter').value;
		document.getElementById(cur_element).style.textDecoration = "none";
	}
	
	// falls filter existiert
	if(document.getElementById('ff_0')){	
		document.getElementById('cur_filter').value = 'ff_0';
		document.getElementById('ff_0').style.textDecoration = "underline";
	}

}

function doFilterOff(element)
{
	// altes filterelement linie weg
	if(document.getElementById('cur_filter').value != '')
	{
		var cur_element = document.getElementById('cur_filter').value;
		document.getElementById(cur_element).style.textDecoration = "none";
	}
	
	// neuer filter markieren und zwischen speichrn
	element.style.textDecoration = "underline";
	document.getElementById('cur_filter').value = String(element.id);
	
	// vorhergehenden zustand herstellen
	if(document.getElementById('cur_status').value != ''){
		var myfunction = document.getElementById('cur_status').value;
		eval(myfunction);
	}
}

function doFilter(filter, element){
    //alert("doFilter");
    //alert(element);
    
	// vorhergehenden zustand herstellen
	if(document.getElementById('cur_status').value != '')
	{
		var myfunction = document.getElementById('cur_status').value;
		eval(myfunction);
	}
	
	// filter string in array umwandeln
	var arr = new Array();
	while(filter.indexOf(",") != -1)
	{
		var i = filter.indexOf(",");
		f = filter.substr(0,i); 
		arr.push(f);
		filter = filter.substr(i+1);
	}
	
	arr.push(filter);
	var counter = 0;
	
	// loop through elements
	divs = document.getElementsByTagName('div');
	
	// *** EDITED AL 13.11.07 : START ***
	// for(i in divs){
	for (var i=0; i<divs.length; i++)
	{
	// *** EDITED AL 13.11.07 : END ***
	
		e = divs[i];
		id = String(e.id);
		id_d = id.substr(0,2);
		
		if(id_d == 'dd' && e.style.display == "block")
		{
			// detail element
			uscore = id.indexOf("_");
			keystr = id.substr(4, uscore-4);
			// keystr to arr
			var key_arr = new Array();
			while(keystr.indexOf("-") != -1)
			{
				var type2 = keystr.indexOf("-");
				f = keystr.substr(0,type2); 
				key_arr.push(f);
				keystr = keystr.substr(type2+1);
			}
			
			key_arr.push(keystr);
			//alert(key_arr.toString());
			// ist filter im key enthalten
			var hide = false;
			var finitio = 0;
			
			// filter loop
			
			// *** EDITED AL 13.11.07 : START ***
	        // for(j in arr){
	        for (var j=0; j<arr.length; j++)
	        {
	        // *** EDITED AL 13.11.07 : END ***
				fstr = arr[j];
				
				// *** EDITED AL 13.11.07 : START ***
	            // for(k in key_arr){
	            for (var k=0; k<key_arr.length; k++)
	            {
	            // *** EDITED AL 13.11.07 : END ***
				
					cur_key = key_arr[k];
					
					// Note: funktioniert auf home nicht...
					//alert(id+' --> ' + fstr + ' == ' + cur_key);
					
					if(fstr == cur_key)
					{
						//hide und weiter zu nächstem element
						hide = false;
						finitio = 1;
						counter ++;
						break;
					}
					else
					{
						hide = true;
					}
				}
				if(finitio == 1)
				{
					break;
				}
			}
			// hide element
			if(finitio == 0){
				e.style.display = "none";
			}
		}	
		
	}
	
	if(counter > 0)
	{
		document.getElementById('dd_00_0').style.display = "none";	
	}
	else
	{
		document.getElementById('dd_00_0').style.display = "block";	
	}
	
	// altes filterelement linie weg
	if(document.getElementById('cur_filter').value != '')
	{
		var cur_element = document.getElementById('cur_filter').value;
		document.getElementById(cur_element).style.textDecoration = "none";
	}
	
	// neuer filter markieren und zwischen speichrn
	element.style.textDecoration = "underline";
	document.getElementById('cur_filter').value = String(element.id);
	
}