


function urlencode(txt)
{
  txt = replaceIt(txt, "&", "%26");
  txt = replaceIt(txt, "ü", "%FC");
  txt = replaceIt(txt, "Ü", "%DC");
  txt = replaceIt(txt, "ä", "%E4");
  txt = replaceIt(txt, "Ä", "%C4");
  txt = replaceIt(txt, "ö", "%F6");
  txt = replaceIt(txt, "Ö", "%D6");
  txt = replaceIt(txt, "ß", "%DF");
  return txt;
}

function replaceIt(string,suchen,ersetzen)
{
  ausgabe = "" + string;
  while (ausgabe.indexOf(suchen)>-1)
  {
    pos= ausgabe.indexOf(suchen);
    ausgabe = "" + (ausgabe.substring(0, pos) + ersetzen +
    ausgabe.substring((pos + suchen.length), ausgabe.length));
  }

  return ausgabe;
}



var SearchEngines   = new Array("/search\.msn.+/","/fireball.+/","/web.+/","/altavista.+/", "/t-online.+/", "/yahoo.+/", "/google.+/", "/lycos.+/");
var SearchVariables = new Array("q", "query", "p", "s", "su");
var ClassHighlighting="SearchResult";

var ref = "";
function highlightWords(node, word)
{
      if (node.hasChildNodes)
   {
  	 for (var i=0; i<node.childNodes.length; i++) highlightWords(node.childNodes[ i ], word);
   }

      if (node.nodeType == 3)
   {
	 tmp = node.nodeValue.toLowerCase();
	 tempWordVal = word.toLowerCase();

     	 if (node.parentNode.className != ClassHighlighting &&
         (ni = tmp.indexOf(tempWordVal)) != -1)
     {
       	   hiword = document.createElement("em");
	   hiword.className = ClassHighlighting;
	   hiword.appendChild( document.createTextNode( node.nodeValue.substr(ni,word.length) ) );
		
	   node.parentNode.insertBefore(document.createTextNode(node.nodeValue.substr(0,ni)), node);
	   node.parentNode.insertBefore(hiword,node);
	   node.parentNode.insertBefore(document.createTextNode(node.nodeValue.substr(ni+word.length)),node);
	   node.parentNode.removeChild(node);
 	 }
   }
}

function high()
{
		var referrer = decodeURIComponent(document.referrer);
	if (referrer.indexOf('?') == -1) return;

		var FoundIt=false;
	for(var i=0; i<SearchEngines.length; i++)
	{
		eval("if(referrer.search( " + SearchEngines[i] + " )) FoundIt=true;");
	}
	if(!FoundIt) return;

		variables = referrer.substr(referrer.indexOf('?')+1).split('&');

	//gehe jede Variable durch!
	for (i=0;i<variables.length;i++)
	{
		var variable = variables[i].split('=');

				for (j=0;j<SearchVariables.length;j++)
		{
						if (variable[0] == SearchVariables[j] && variable[1] != '')
			{
								variable[1] = variable[1].replace(/^(\s+|\++)/,'').replace(/(\++)$/,'').replace(/(\s+)$/,'');

				var words = unescape(variable[1].replace(/\+/g,' ')).split(/\s+/);
				for(k=0; k<words.length; k++) highlightWords(document.getElementsByTagName("body")[0], words[k]);
			}
		}
	}
}

//window.setTimeout("high();", 500);



function $(element)
{
  switch(typeof element)
  {
    case "string" :
			return document.getElementById(element); 
	case "object" : 
			return element;
	default		  :
			return false;
  }
}


function Elements() {
  
  this.visible = function(element) {
    return $(element).style.display != 'none';
  },
  
  this.toggle = function(element){
    element = $(element);
    Element[this.visible(element) ? 'hide' : 'show'](element);
    return element;
  },
  
  this.hide= function(element) {
    $(element).style.display = 'none';
    return element;
  },

  this.show= function(element) {
    $(element).style.display = 'inline';
    return element;
  }
}

var Element = new Elements(); 


function LoadMap(map,lat,lon)
{
  if(!$(map) ||
     !lat    ||
	 !lon) return false;
  if (GBrowserIsCompatible())
  {
    var map = new GMap2($( map ));
    map.setCenter(new GLatLng(lat, lon), (typeof PointView!="undefined" ? PointView : 15));

    if(typeof HidePoint == "undefined")
    {
      var marker = new GMarker(new GLatLng(lat, lon));
      map.addOverlay(marker);
    }
  }
}


    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    function load(address1, address2) {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));

        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
 
        setDirections(address1, address2, "de_DE");
      }
    }
    
    function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
    }

    function onGDirectionsLoad(){ 
          // Use this function to access information about the latest load()
          // results.

          // e.g.
	  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
    }

    function DisplayCard(objekt)
    {
      if(objekt.innerHTML == "Fahrplan einblenden")
      {
        $('directions_main').style.display='block';
        $('map_main').style.width="250px";
        objekt.innerHTML = "Fahrplan ausblenden";
      }
      else
      {
        $('directions_main').style.display='none';
        $('map_main').style.width="480px";
        objekt.innerHTML = "Fahrplan einblenden";
      }
    }


function setSocialBook(str)
{
  var url   = encodeURIComponent(location.href);
  var title = encodeURIComponent(document.title);
  switch(str)
  {
    case "del.icio.us" : 
          window.open('http://del.icio.us/post?v=2&url='+url+'&notes=&tags=&title='+title);
          break;
    case "wong" :
          window.open("http://www.mister-wong.de/index.php?action=addurl&bm_url="+url+"&bm_description="+encodeURIComponent(document.title));
	  break;
    case "yigg" :
          window.open("http://yigg.de/neu?exturl="+url+"&exttitle="+title+"&extdesc="+title);
          break;
    case "arena" : 
          window.open("http://linkarena.com/bookmarks/addlink/?url="+url+"&title="+title+'&desc=&tags=');
          break;
  }
  return false;
}

