// JavaScript Document

  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; 
     } 
    } 
  } 
  
  function checkMail(s){
				 var a = false;
				 var res = false;
				 if(typeof(RegExp) == 'function')
				 {
				  var b = new RegExp('abc');
				  if(b.test('abc') == true){a = true;}
				  }
				
				 if(a == true)
				 {
				  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
								   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
								   '(\\.)([a-zA-Z]{2,4})$');
				  res = (reg.test(s));
				 }
				 else
				 {
				  res = (s.search('@') >= 1 &&
						 s.lastIndexOf('.') > s.search('@') &&
						 s.lastIndexOf('.') >= s.length-5)
				 }
				 return(res);
  }
  
  function getRandom( min, max ) {
         if( min > max ) {
              return( -1 );
         }
         if( min == max ) {
              return( min );
         }
         var r = parseInt( Math.random() * ( max+1 ) );
         return( r + min <= max ? r + min : r );
  }  
  
  function getNewsArticles(){ 
  
     var year = document.getElementById('newFilterBoxYear').value;
      
     var url = addParameterToUrl('year',year);
	 
     if(document.getElementById('newFilterBoxPublic') != null){	   
       var area = document.getElementById('newFilterBoxPublic').value;     
       url = addParameterToUrl('area',area, url);
	 }
	 
	 if(document.getElementById('newFilterBoxMonth') != null){	   
       var month = document.getElementById('newFilterBoxMonth').value;     
       url = addParameterToUrl('month',month, url);
	 }
	 
	 window.location.href = url;
  }
  
  function addParameterToUrl(key,value, url){
     var strReturn = "";
     var strHref = (url!=null)?url:window.location.href;
	 var addToken ="";
	 var pos;	 
	 
	 pos = strHref.indexOf("?");
	 
	 // überprüfe ob Parameter schon vorhanden und tauschen ihn gegenenfalls aus
	 if(pos > -1){
	     var paramStart = strHref.indexOf(key+"=", pos);
		 
		 if(paramStart > -1){
			paramStart = strHref.indexOf("=", paramStart);
		    paramEnd = strHref.indexOf("&", paramStart);
		    
			if(paramEnd < 0){
			    paramEnd = strHref.length;
			}
			
			strHref  = strHref.substring(0, paramStart+1) + value + strHref.substring(paramEnd);
			 
			return strHref;
		 }
	 }
	 
	 // Addtoken bestimmen
	 if ( pos > -1 ){		 
	    addToken = '&';
	 }else{
	    addToken = '?';
	 }
	 
	 strReturn = strHref + addToken + key + "=" + value;

	 return strReturn;
  }
  
  function getURLParam(strParamName){
    var strReturn = "";
    var strHref = window.location.href;
    if ( strHref.indexOf("?") > -1 ){
      var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
      var aQueryString = strQueryString.split("&");
      for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
          if (
            aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
              var aParam = aQueryString[iParam].split("=");
              strReturn = aParam[1];
              break;
           }
         }
      }
    return unescape(strReturn);
  }
  
  var opened = false; //Wurde das Fenster geöfnet?
  var fenster; //Referenz auf das Fenster
  
  function newWindow(url, title, width, height){
     
     var menuBar   = true;
     var urlBar    = false;
     var size      = "width="+width+",height="+height;
     var resizable = true;
     var scrollbar = true;
     
     parameter = '"';
     
     if(menuBar){
        parameter += "menuBar=yes,";
     }else{
        parameter += "menuBar=no,";
     }
     
     if(urlBar){
        parameter += "location=yes,";
     }else{
        parameter += "location=no,";
     }
     
     if(resizable){
        parameter += "resizable=yes,";
     }else{
        parameter += "resizable=no,";
     }
     
     if(scrollbar){
        parameter += "scrollbars=yes,";
     }else{
        parameter += "scrollbars=no,";
     }
     
     parameter += size+'"';
	 
	 //Falls das Fenster noch nicht geöfnert wurde
	 if(opened == false){
        fenster = window.open(url, title, parameter);
        opened = true;
        fenster.focus();
     }
  
     //Falls das Fenster wieder geschlossen wurde
     if(fenster.closed == true){
        fenster = window.open(url, title, parameter);
        fenster.focus();
     }
	 
	 //Falls das Fenster geöffnet ist
     if(fenster.closed == false){
        fenster.focus();
     }
  }
  
  
  var oldLayerName;
  function showNewsLayer(layerName){
     var hightlightDiv;
	 
     // passenden Newslayer ein/ausblenden
	 if(document.getElementById(oldLayerName+'NewsLayer') != null){
		 document.getElementById(oldLayerName+'NewsLayer').style.display = 'none';
	 }
	 document.getElementById(layerName+'NewsLayer').style.display = 'block';
	 
	 // passenden Navipunkt highlighten
	 if(layerName!='all'){
		 if(document.getElementById('brand_'+oldLayerName) != null){
			 hightlightDiv = document.getElementById('brand_'+oldLayerName).lastChild.lastChild;
			 hightlightDiv.style.visibility = 'hidden';
		 }
		 hightlightDiv = document.getElementById('brand_'+layerName).lastChild.lastChild;
		 hightlightDiv.style.visibility = 'visible';
	  }	 
		 oldLayerName = layerName;

  }
  
  // Galeriefunktionen
  function showGalleryContent(imgIndex, id){	 
	 document.getElementById('galleryImage_'+id).src = imgContentArray[id][imgIndex]['imgUrl'];  
	 
	 headlineObj = document.getElementById('galleryHeadline_'+id);
	 headlineObj.innerHTML = imgContentArray[id][imgIndex]['imgHeadline'];  
	 
	 if(imgContentArray[id][imgIndex]['imgHeadline'].length>2){
     	headlineObj.style.display = 'block';  
	 }else{
	    headlineObj.style.display = 'none';
	 }
	  
	 document.getElementById('galleryText_'+id).innerHTML = imgContentArray[id][imgIndex]['imgText'];  
	 galleryPos[id] = imgIndex;
  }
		  
  function galleryNext(id){
     if((galleryPos[id]+1) < arrIndex[id]){
	    showGalleryContent((galleryPos[id]+1),id);
	 }
	 
	 changeVisibilitiy(id);
	  
	 //else{
	   //showGalleryContent(0,id);
	 //}
  }
		  
  function galleryPrevious(id){
     if((galleryPos[id]-1) >= 0){
	    showGalleryContent((galleryPos[id]-1),id);
	 }
	 
	 changeVisibilitiy(id);
	 
	 /*else{
	    showGalleryContent((arrIndex-1),id);
	 }*/
 
  }
  
  function changeVisibilitiy(id){
  
     var stateNext = '';
	 var statePrev = '';
	 
     if((galleryPos[id]+1) < arrIndex[id]){
	    stateNext = 'visible';
	 }else{
	    stateNext = 'hidden';
	 }
	 
	 if((galleryPos[id])>0){
	    statePrev = 'visible';
	 }else{
	    statePrev = 'hidden';
	 }
	 
     document.getElementById('nextWrapper_'+id).style.visibility = stateNext;
	 document.getElementById('prevWrapper_'+id).style.visibility = statePrev;
  }
  

  function getXHR(){
		var httpReq = null;
	
		if (window.XMLHttpRequest){
		  httpReq = new XMLHttpRequest();
		}
		else if(typeof ActiveXObject != "undefined"){
		   httpReq = new ActiveXObject ("Microsoft.XMLHTTP");
		}
		return httpReq;
   }
   
      var req = null;
   var lock = false;
   var urlArray = new Array();
   var idArray = new Array();
   var arrayIndex = 0;
   var tas = false;

   function storeSet(url, element){
       
       while(tas){
       }

       tas = true;
       urlArray[arrayIndex] = url;
       idArray[arrayIndex] = element;
       arrayIndex++;
       lock = true;
       tas = false;
       
   }
   
   function storeGet(){
            
        if(arrayIndex > 0){
		   arrayIndex--;
           var result = new Array(urlArray[arrayIndex], idArray[arrayIndex]);		   
        }

        if(arrayIndex == 0){
           lock = false;
        }
               
        return result;
   }
   
   function sendReq(url, elementId){
        
        if(elementId == null){
           elementId = 'newsPreviewImage';
        }
        
        if(req != null && req.readyState == 1){
		   
           storeSet(url, elementId);
           return true;
        }
   
		req = getXHR();
		var myHost = window.location.host;
		//url = 'http://' + myHost + url;

		if(req){
 			req.onreadystatechange =  function(){handler(elementId);};
			req.open("GET", url, true);
			req.send(null);
		}
   }
   
   function handler(elementId){
              
		if(req.readyState == 4){
	
		   if (req.status == 200 || req.status == 304){
			   
			   var htmlObj = document.getElementById(elementId);        
               
			   htmlObj.innerHTML = '<img src="'+req.responseText+'" width="175" height="80" />';
			   htmlObj.style.display = "block";
               
               if(lock){
                  var values = storeGet();
                  sendReq(values[0],values[1]);
               }
		   }
		}
	}
    
    // Sprache umschalten
    function changeLanguage(){

       var url =  new String(window.location);
       if( url.indexOf("/DE/") > -1){
           url = url.replace(/\/DE\//g, '/EN/');
       }   else{
           url = url.replace(/\/EN\//g, '/DE/');
       } 
       
       if( url.indexOf("/de/") > -1){
           url = url.replace(/\/de\//g, '/en/');
       }   else{
           url = url.replace(/\/en\//g, '/de/');
       } 
       
       window.location.href = url;
    }

    // Funktionen für Job offers (Elemente nach Klassenname ausblenden) 
     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 = "block";
          return true;
     }
     function hide(obj){
          obj.style.display = "none";
          return true;
     }
     function showHide (blockName,selectbox) {
          var className = selectbox[selectbox.selectedIndex].value;
          var alertBlock = getElementsByClass('alert')[0];
          var blocks = getElementsByClass(blockName);
          var count = 0;
          if(className == '') {
               for(var i=0; i<blocks.length; i++){
                    show(blocks[i]);
                    count++;
               }
               hide(alertBlock);
          } else {
               var shows = getElementsByClass(className);
               for(var i=0; i<blocks.length; i++){
                    hide(blocks[i]);
               }
               for(var i=0; i<shows.length; i++){
                    show(shows[i]);
                    count++;
               }
          }
          if(count==0) {
          	show(alertBlock);
          }
          return false;     
     }

