/*
 * ARITHNEA GmbH
 * JavaScript Utilities
*/

// Function to set the active stylesheet
function setActiveStyleSheet(title) {
  var i, a, main; 
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { 
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false; 
      a.media='screen'; 
      //alert(a.rel+' with title '+a.title+' and media '+a.media+' enabled'); 
    } 
  } 
} 

// Function to set all links target="_top" to target="_self"
     // hint: include call at the end of the page 

function setLinkTargets() {
    var oldTarget = '_top';
    var newTarget = '_self';
    var links = document.getElementsByTagName('a');
    for (var i=0; i<links.length; i++) {
        var link = links[i];
        if (link.target == oldTarget) {
          link.target = newTarget;
          if (link.href.indexOf('?') == -1) {
               link.href = link.href + '?KeepThis=true';
          } else {
               link.href = link.href + '&KeepThis=true';
          }
        }
    }
    return true;
}


// EVENTS Functions Start
	// read GET-Parameter
	function getParam(term){
		
		HTTP_GET_VARS = new Array();
		strGET = document.location.search.substr(1,document.location.search.length);
		if(strGET!=''){
		    var gArr=strGET.split('&');
		    for(i=0;i<gArr.length;++i){
		        var v='';
		        var vArr=gArr[i].split('=');
		        
		        if(vArr.length>1){v=vArr[1];}
		        HTTP_GET_VARS[unescape(vArr[0])]=unescape(v);
		    }
	    }
		if(!HTTP_GET_VARS[term]){return 'undefined';}
		return HTTP_GET_VARS[term];
	}
	
	function getElementsByClass(className){
       var class_arr = new Array();
       var all_tags = document.getElementsByTagName("*");
       for(var i=0; i<all_tags.length; i++){
         if(all_tags[i].className.indexOf(className) != -1) class_arr.push(all_tags[i]);
       }
       return class_arr;
     }
     function show(obj){
          obj.style.display = "";
          return true;
     }
     function hide(obj){
          obj.style.display = "none";
          return true;
     }
	 
     function showHideEvent(blockName,box,layer,page) {
          
		  var className = layer;
		  var defaultpage = page;
          var blocks = getElementsByClass(blockName); // all rows with outer class "events"
          var shows = getElementsByClass(className); // all rows where checkbox is checked
          var allBoxes = document.event_selector.eventselect;
		  var resultCounter = 0;
		  
          // reset Filter
          if(className == '') {

		   for(var i=0; i<blocks.length; i++){
               show(blocks[i]);
           }
		   for(var i=0; i<allBoxes.length; i++){
				allBoxes[i].checked = false;
			}
	    	window.location = defaultpage;
	      
	      //set Filter	
          } else {
          	   
               for(var i=0; i<blocks.length; i++){					
					hide(blocks[i]);
               }
			   
			   for(var i=0; i<allBoxes.length; i++){
					if(allBoxes[i].checked){
						//alert(allBoxes[i].id);
						shows = getElementsByClass(allBoxes[i].id);
						for(var j=0; j<shows.length; j++){
							show(shows[j]);
					    }
					}
				}

				// if none is checked, show all rows
			   var isChecked = false;
          	   for(var i=0; i<allBoxes.length; i++){
          	   		if(allBoxes[i].checked){isChecked = true};
          	   }
          	   if(!isChecked){
	 			   for(var i=0; i<allBoxes.length; i++){
						shows = getElementsByClass(allBoxes[i].id);
						for(var j=0; j<shows.length; j++){
							show(shows[j]);
					    }
					}         	   	
          	   }
          }
		  for(var i=0; i<blocks.length; i++){
				if(blocks[i].style.display == ""){resultCounter++;}
				//alert(blocks[i].style.display);
		  }
		  var allCounters = getElementsByClass("eventResultCounter");
		  for(var i=0; i<allCounters.length; i++){					
				allCounters[i].innerHTML = resultCounter;
          }
	     //document.getElementById("eventResultCounter").innerHTML = resultCounter;
          return false;     
     }
    
    // all checked Checkboxes are deliverd as GET-Parameter String
	function getAllChecked(){
		var paramString = "";
		var allBoxes = document.event_selector.eventselect;
	   for(var i=0; i<allBoxes.length; i++){

			if(allBoxes[i].checked){
				var divider = "&";
				if(paramString.length > 0){divider = "&";};
				paramString = paramString + divider + allBoxes[i].id + "=true";
			}
		}
		return paramString;		
	}
	
	// initial Filter setting via GET-Parameter
	function setChecked(){
		// set Federal State
	   document.event_selector.eventStateFilter.selectedIndex = getParam("fstate");	
	   
	   var allBoxes = document.event_selector.eventselect;
	   var isChecked = false;
	   for(var i=0; i<allBoxes.length; i++){
	   		if(getParam(allBoxes[i].id) == "true"){
				isChecked = true;
			}
	   }
	   // only if any Checkbox is checked, do hide/show
	   if(isChecked){
	   	   // set all DIVS hidden
		   for(var i=0; i<allBoxes.length; i++){
				blocks = getElementsByClass(allBoxes[i].id);
				for(var j=0; j<blocks.length; j++){
					hide(blocks[j]);
			    }
		   }
		   for(var i=0; i<allBoxes.length; i++){		  		
	  		 	if(getParam(allBoxes[i].id) == "true"){
					// set DIVs with Checkboxes checked visible
					allBoxes[i].checked = true;
					shows = getElementsByClass(allBoxes[i].id);
					for(var j=0; j<shows.length; j++){
						show(shows[j]);
				    }
				}
			}
		}
	}	
	
	// Change Federal Country via Dropdown + GET-Parameter with Filterinformation
	function changeLocation(obj)
	{
		window.location = obj.value + "?fstate=" + obj.selectedIndex + getAllChecked();
	}
	
// EVENTS Functions End

