//Konstanten
//baseurl
var baseurl = 'http://www.pp-m.net/index.php';

//Funktion bei neuaufruf der Seite
window.onDomReady = initReady;
 
      // Initialize event depending on browser
      function initReady(fn)
      {
      	//W3C-compliant browser
      	if(document.addEventListener) {
          document.addEventListener("DOMContentLoaded", fn, false);
        }
      	//IE
      	else {
          document.onreadystatechange = function(){readyState(fn)}
        }
      }
      //IE execute function
      function readyState(func)
      {
      	// DOM is ready
      	if(document.readyState == "interactive" || document.readyState == "complete")
      	{
      		func();
      	}
      }

function set_cookie(my_cookie,value,days) {
 if (days) {
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }
 else expires = ""
 document.cookie = my_cookie+"="+value+expires+"; path=/";
}

//Cookie auslesen
function getCookie(name){
   var i=0  //Suchposition im Cookie
   var suche = name+"="
   while (i<document.cookie.length){
      if (document.cookie.substring(i, i+suche.length)==suche){
         var ende = document.cookie.indexOf(";", i+suche.length)
         ende = (ende>-1) ? ende : document.cookie.length
         var cook = document.cookie.substring(i+suche.length, ende)
         return unescape(cook)
      }
      i++
   }
   return null
}

//ID`s der Liste bestimmen zum ersten auslesen
function getListIDcaticon(listname){
	var listname = listname;
	var liste = document.getElementById(listname);
	listElements = liste.getElementsByTagName("li");

	for(var i = 0; i < listElements.length; i++)
		{
			if(getCookie(listElements[i].id) == '1') {
				Effect.Fade(listElements[i].id,{ duration: 0.1, from: 1, to: 0.4 });
				//???? Live Testen, ob hier implementiert sein muss
				//rggooglemap Ajax Anfrage (normalerweise wenn die chzeckbox geklickt wird) senden
				//tx_rggooglemap_pi1processCat(xajax.getFormValues('xajax_cat'));clearCat();	
			}
		}
	}

//Beim starten Cookie auslesen und Wert prüfen
//und alten Wert wiederherstellen
window.onDomReady(onReady);
function onReady()
{
	//Ebene, welche vom Cookie gelesen werden soll
	getListIDcaticon('rggmmenulvl1');
}


//Fader Funktion und Selectbox
function fader(id) {
    //rggooglemap Ajax Anfrage (normalerweise wenn die checkbox geklickt wird) senden
	//tx_rggooglemap_pi1processCat(xajax.getFormValues('xajax_cat'));clearCat();
	
    //if an element is invisible, make it visible, else make it ivisible
    if(getCookie(id) == '1') {
        Effect.Fade(id,{ duration: 0.1, from: 0.4, to: 1 });
		set_cookie(id,'0',365)
		//Ajax Funktion zum laden der Icons auf der Karte
		tx_rggooglemap_pi1processCat(xajax.getFormValues('xajax_cat'));clearCat();
		 
    } else {
        Effect.Fade(id,{ duration: 0.1, from: 1, to: 0.4 });
		set_cookie(id,'1',365)
		//Ajax Funktion zum löschen der Icons der Karte
		tx_rggooglemap_pi1processCat(xajax.getFormValues('xajax_cat'));clearCat();
    }
}


//Fader Funktion für Kategoriemenü
function catfader(id,klasse,linkklasse,id2,id3) {
	
	var styletag = document.getElementById(id);
	//prüfen, ob aktuelle kategorie geklickt
	if (styletag.style.display == 'none') {
		//alle ausblenden
		var allElems = document.getElementsByTagName('*');
		for (var i = 0; i < allElems.length; i++) {
			var thisElem = allElems[i];
			if (thisElem.className && thisElem.className == klasse) {
				thisElem.style.display = 'none';
			}
			//Für die Reiter
			if (thisElem.className && thisElem.className == linkklasse) {

					thisElem.className = 'rggooglemap-menutitle';
					
					if(thisElem.className == 'rggooglemap-menutitle-li-first' ) {
						thisElem.className = 'rggooglemap-menutitle-li-first';	
					}
			}
		}
						

		
		//aktuelle ID einblenden
		styletag.style.display = 'block';
		if(id3 =='first_unten') {
			document.getElementById(id2).className = 'rggooglemap-menutitle-active';
		}
			//ersten Reiter deaktivieren
		if(id3 == 'first_unten') {
				document.getElementById('first_unten_active').id = 'first_unten';
		}
		else {
			document.getElementById('first_unten').id = 'first_unten_active';	
		}
		
	//Effect.Fade(id,{ duration: 0.5, from: 0.5, to: 1 });
	} 
}

//Startfader Fade in bei onload
function startfader() {
			//Emomap markieren
			document.getElementById('first').id = 'first_active';
			//Legende markieren
			document.getElementById('first_unten').id='first_unten_active';				
}

//Fader Funktion für Kategoriemenü
function catfadeout(klasse) {
	    //alle ausblenden
		var allElems = document.getElementsByTagName('*');
		for (var i = 0; i < allElems.length; i++) {
			var thisElem = allElems[i];
			if (thisElem.className && thisElem.className == klasse) {
				thisElem.style.display = 'none';
		}
	} 
}

//Ajax Preloader für Brotkrumen und Main Content
function ajaxpreload(id1, id2, id3, page) {

	var url1 = baseurl+'?id='+page+'&ajax=1'; 
		//Content laden 
		ajax_loadContent(id1,url1,fadein(id1,id2));
		
		
		//Brotkrumen laden
		var url2 = baseurl+'?id='+page+'&ajax=2';
		ajax_loadContent(id3,url2);
		//geladen setzen
		//load=1;
}

//Overlay öffnen und Brotkrumen per Ajax austauschen

function fadein(id1,id2) {
	
	//Ajax Ebene einblenden
	//var ajaxContainer3 = document.getElementById(id3);
	//ajaxContainer3.style.display = 'block';
	
	//var ajaxContainer1 = document.getElementById(id2);
	//ajaxContainer1.style.display = 'block';
	
	//Overlay einblenden
	Effect.Grow(id1);
	//Effect.Appear(id2, { duration: 0, from: 0, to: 0.6 });
	document.getElementById("overlay").style.display = 'block';


}

//Overlay schliessen
function fadeout(id1,id2) {
	//var ajaxContainer1 = document.getElementById(id1);
	//ajaxContainer1.style.display = 'none';
		//var ajaxContainer2 = document.getElementById(id2);
	//ajaxContainer2.style.display = 'none';	
	
	Effect.Shrink(id1,{direction:'center', duration:'2'});
	Effect.Fade(id2,{ duration: 0, from: 0.6, to: 0 });
}

//Fade auf der Startseite
function startfade (id) {
	
       	set_cookie(id,'1',365)
		document.getElementById(id).style.display = 'none';
}


///#################################################

/************************************************************************************************************

Ajax dynamic content

Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland



This library is free software; you can redistribute it and/or

modify it under the terms of the GNU Lesser General Public

License as published by the Free Software Foundation; either

version 2.1 of the License, or (at your option) any later version.



This library is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

Lesser General Public License for more details.



You should have received a copy of the GNU Lesser General Public

License along with this library; if not, write to the Free Software

Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA



Dhtmlgoodies.com., hereby disclaims all copyright interest in this script

written by Alf Magne Kalleland.



Alf Magne Kalleland, 2006

Owner of DHTMLgoodies.com





************************************************************************************************************/	



var enableCache = true;

var jsCache = new Array();



var dynamicContent_ajaxObjects = new Array();



//AK History und Titel einbauen

function writeIntoBrowserHistory(pagetitle, url) {

document.title(pagetitle + " - domain.de");

dhtmlHistory.add(url,pagetitle);

}



function ajax_showContent(divId,ajaxIndex,url,callbackOnComplete)

{

	var targetObj = document.getElementById(divId);

	targetObj.innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;

	if(enableCache){

		jsCache[url] = 	dynamicContent_ajaxObjects[ajaxIndex].response;

	}

	dynamicContent_ajaxObjects[ajaxIndex] = false;

	

	ajax_parseJs(targetObj);

	

	if(callbackOnComplete) {

		executeCallback(callbackOnComplete);

	}

}



function executeCallback(callbackString) {

	if(callbackString.indexOf('(')==-1) {

		callbackString = callbackString + '()';

	}

	try{

		eval(callbackString);

	}catch(e){



	}

	

	

}



function ajax_loadContent(divId,url,callbackOnComplete)

{

	//AK Ebene Einblenden, wenn nicht aktiv

	//if(document.getElementById('overlay').style.display=='none') {

	//	document.getElementById('overlay').style.display='none';

	//}

	//Ende AK



	

	if(enableCache && jsCache[url]){

		document.getElementById(divId).innerHTML = jsCache[url];

		ajax_parseJs(document.getElementById(divId))

		evaluateCss(document.getElementById(divId))

		if(callbackOnComplete) {

			executeCallback(callbackOnComplete);

		}		

		return;

	}

	

	var ajaxIndex = dynamicContent_ajaxObjects.length;
	
	//AK
	document.getElementById(divId).innerHTML = 'Bitte warten - Lade....';

	dynamicContent_ajaxObjects[ajaxIndex] = new sack();

	

	if(url.indexOf('?')>=0){

		dynamicContent_ajaxObjects[ajaxIndex].method='GET';

		var string = url.substring(url.indexOf('?'));

		url = url.replace(string,'');

		string = string.replace('?','');

		var items = string.split(/&/g);

		for(var no=0;no<items.length;no++){

			var tokens = items[no].split('=');

			if(tokens.length==2){

				dynamicContent_ajaxObjects[ajaxIndex].setVar(tokens[0],tokens[1]);

			}	

		}	

		url = url.replace(string,'');

	}



	

	dynamicContent_ajaxObjects[ajaxIndex].requestFile = url;	// Specifying which file to get

	dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function(){ ajax_showContent(divId,ajaxIndex,url,callbackOnComplete); };	// Specify function that will be executed after file has been found

	dynamicContent_ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	

	

	

}



function ajax_parseJs(obj)

{

	var scriptTags = obj.getElementsByTagName('SCRIPT');

	var string = '';

	var jsCode = '';

	for(var no=0;no<scriptTags.length;no++){	

		if(scriptTags[no].src){

	        var head = document.getElementsByTagName("head")[0];

	        var scriptObj = document.createElement("script");

	

	        scriptObj.setAttribute("type", "text/javascript");

	        scriptObj.setAttribute("src", scriptTags[no].src);  	

		}else{

			if(navigator.userAgent.toLowerCase().indexOf('opera')>=0){

				jsCode = jsCode + scriptTags[no].text + '\n';

			}

			else

				jsCode = jsCode + scriptTags[no].innerHTML;	

		}

		

	}



	if(jsCode)ajax_installScript(jsCode);

}





function ajax_installScript(script)

{		

    if (!script)

        return;		

    if (window.execScript){        	

    	window.execScript(script)

    }else if(window.jQuery && jQuery.browser.safari){ // safari detection in jQuery

        window.setTimeout(script,0);

    }else{        	

        window.setTimeout( script, 0 );

    } 

}	

	

	

function evaluateCss(obj)

{

	var cssTags = obj.getElementsByTagName('STYLE');

	var head = document.getElementsByTagName('HEAD')[0];

	for(var no=0;no<cssTags.length;no++){

		head.appendChild(cssTags[no]);

	}	

}

/* Simple AJAX Code-Kit (SACK) v1.6.1 */
/* �2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence,
   see documentation or authors website for more details */

function sack(file) {
	this.xmlhttp = null;

	this.resetData = function() {
		this.method = "POST";
  		this.queryStringSeparator = "?";
		this.argumentSeparator = "&";
		this.URLString = "";
		this.encodeURIString = true;
  		this.execute = false;
  		this.element = null;
		this.elementObj = null;
		this.requestFile = file;
		this.vars = new Object();
		this.responseStatus = new Array(2);
  	};

	this.resetFunctions = function() {
  		this.onLoading = function() { };
  		this.onLoaded = function() { };
  		this.onInteractive = function() { };
  		this.onCompletion = function() { };
  		this.onError = function() { };
		this.onFail = function() { };
	};

	this.reset = function() {
		this.resetFunctions();
		this.resetData();
	};

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				this.xmlhttp = null;
			}
		}

		if (! this.xmlhttp) {
			if (typeof XMLHttpRequest != "undefined") {
				this.xmlhttp = new XMLHttpRequest();
			} else {
				this.failed = true;
			}
		}
	};

	this.setVar = function(name, value){
		this.vars[name] = Array(value, false);
	};

	this.encVar = function(name, value, returnvars) {
		if (true == returnvars) {
			return Array(encodeURIComponent(name), encodeURIComponent(value));
		} else {
			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
		}
	}

	this.processURLString = function(string, encode) {
		encoded = encodeURIComponent(this.argumentSeparator);
		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
		varArray = string.split(regexp);
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split("=");
			if (true == encode){
				this.encVar(urlVars[0], urlVars[1]);
			} else {
				this.setVar(urlVars[0], urlVars[1]);
			}
		}
	}

	this.createURLString = function(urlstring) {
		if (this.encodeURIString && this.URLString.length) {
			this.processURLString(this.URLString, true);
		}

		if (urlstring) {
			if (this.URLString.length) {
				this.URLString += this.argumentSeparator + urlstring;
			} else {
				this.URLString = urlstring;
			}
		}

		// prevents caching of URLString
		this.setVar("rndval", new Date().getTime());

		urlstringtemp = new Array();
		for (key in this.vars) {
			if (false == this.vars[key][1] && true == this.encodeURIString) {
				encoded = this.encVar(key, this.vars[key][0], true);
				delete this.vars[key];
				this.vars[encoded[0]] = Array(encoded[1], true);
				key = encoded[0];
			}

			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
		}
		if (urlstring){
			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
		} else {
			this.URLString += urlstringtemp.join(this.argumentSeparator);
		}
	}

	this.runResponse = function() {
		eval(this.response);
	}

	this.runAJAX = function(urlstring) {
		if (this.failed) {
			this.onFail();
		} else {
			this.createURLString(urlstring);
			if (this.element) {
				this.elementObj = document.getElementById(this.element);
			}
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
					try {
						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
					} catch (e) { }
				}

				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState) {
						case 1:
							self.onLoading();
							break;
						case 2:
							self.onLoaded();
							break;
						case 3:
							self.onInteractive();
							break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;

							if (self.execute) {
								self.runResponse();
							}

							if (self.elementObj) {
								elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input"
								|| elemNodeName == "select"
								|| elemNodeName == "option"
								|| elemNodeName == "textarea") {
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							if (self.responseStatus[0] == "200") {
								self.onCompletion();
							} else {
								self.onError();
							}

							self.URLString = "";
							/* These lines were added by Alf Magne Kalleland ref. info on the sack home page. It prevents memory leakage in IE */

							delete self.xmlhttp['onreadystatechange'];
							self.xmlhttp=null;
							self.responseStatus=null;
							self.response=null;
							self.responseXML=null;
														
							break;
					}
				};

				this.xmlhttp.send(this.URLString);
			}
		}
	};

	this.reset();
	this.createAJAX();
}