/*************************************************************************
 * Main JS Functions
 *
 * @package CarPresenter Web
 * @author  Alexander Schmidt <a.schmidt@anschluss80.de>
 * @version 1.0, 2006-11-12 Alexander Schmidt
 * @version 1.1, 2007-03-06 Andreas Percher
 * @version 1.2, 2007-03-08 Andreas Percher
 */

/*************************************************************************
 * Einklapp-Status des Hauptmenus (true: aufgeklappt, false: eingeklappt)
 */
var zipperStatus = true;

/*************************************************************************
 * Status des Weiterleiten-Formulars (true: anzeigen, false: verstecken)
 */
var weiterleitenStatus = false;

/*************************************************************************
 * (AP) Icon global definieren
 */
var icon = null;

/*************************************************************************
 * Hauptmenu ein- und ausklappen
 */

function zipMainMenu()
{
  if(document.getElementById)
  {
    document.getElementById("mainmenu").style.display   = (zipperStatus ? "none" : "block");
    document.getElementById("menu-zipper").style.height = (zipperStatus ? "23px" : "13px");
    zipperStatus = !zipperStatus;
  }
}

/*************************************************************************
 * Detailsuche ein- und ausschalten
 */
function toggleSearchForm(typ)
{
  if(document.getElementById)
  {
    document.getElementById("suche-einfach").style.display   = (typ == "einfach" ? "block" : "none");
    document.getElementById("suche-erweitert").style.display = (typ == "einfach" ? "none"  : "block");
    document.getElementById("suchtyp").value = typ;
  }
}

/*************************************************************************
 * Weiterleiten-Formular ein-/ausschalten
 */
function toggleWeiterleitenForm()
{
  if(document.getElementById)
  {
    document.getElementById("daten").style.display        = (weiterleitenStatus ? "block" : "none");
    document.getElementById("weiterleiten").style.display = (weiterleitenStatus ? "none"  : "block");

    weiterleitenStatus = !weiterleitenStatus;
  }
}

/*************************************************************************
 * Erweiteres Kontaktformular (Menuspalte) ein- und ausschalten
 * (AP) optionaler zusatz
 */
function toggleMenuErweitertForm(typ,optname)
{
  if (optname==null)
    optname="";
  else
    optname="-"+optname;
  if(document.getElementById)
  {
    var einf = document.getElementById("kontakt-einfach"+optname);
    var erw = document.getElementById("kontakt-erweitert"+optname);
    einf.style.display   = (typ == "einfach" ? "block" : "none");
    erw.style.display = (typ == "einfach" ? "none"  : "block");
  }
}
/*************************************************************************
 * Erweiteres Kontaktformular (Menuspalte) ein- und ausschalten
 */
function toggleMenuKontaktFormAlt(typ)
{
  if(document.getElementById)
  {
    document.getElementById("kontakt-einfach").style.display   = (typ == "einfach" ? "block" : "none");
    document.getElementById("kontakt-erweitert").style.display = (typ == "einfach" ? "none"  : "block");
  }
}
/*************************************************************************
 * Kontaktformular (Menuspalte) umschalten
 */
 function toggleMenuKontaktForm(typ)
{
  if(document.getElementById)
  {
    if(typ == "kontakt")
    {
        document.getElementById("kontakt-kontakt").style.display = "block";
        document.getElementById("kontakt-partner").style.display = "none";
        document.getElementById("link-kontakt").className = "link-kontakt-aktiv";
        document.getElementById("link-partner").className = "link-partner-inaktiv";
    }
    else
    {
        document.getElementById("kontakt-kontakt").style.display = "none";
        document.getElementById("kontakt-partner").style.display = "block";
        document.getElementById("link-kontakt").className = "link-kontakt-inaktiv";
        document.getElementById("link-partner").className = "link-partner-aktiv";
    }

    document.getElementById("link-kontakt").blur();
    document.getElementById("link-partner").blur();
  }
}

/*************************************************************************
 * Niederlassung Kontaktformular (Menuspalte) waehlen
 */
function toggleNiederlassung(nl)
{
  if(document.getElementById)
  {
    document.getElementById("niederlassung-inhalt").innerHTML = nliste[nl];
  }
}

/*************************************************************************
 * Bilder tauschen bei onmouseover
 */
function swapImg(elem, img)
{
  if(document.images)
    elem.src = img;
}

/*************************************************************************
 * Grossbild in Detailansicht laden
 */
function detailBild(img)
{
  if(document.images && document.getElementById)
  {
    document.getElementById("grossbild").src = img;
  }
}

/*************************************************************************
 * Bilder vorladen
 */
function preloadImages(baseURI, imgArray)
{
  if(document.images && (imgArray.length > 0))
  {
    for(var i = 0; i < imgArray.length; i++)
    {
      temp     = new Image();
      temp.src = baseURI + imgArray[i];
    }
  }
}

/*************************************************************************
 * Flash-Check und Aktionsangebote schreiben
 *
 * @param string    mandant     URL der einzubindenden Inhalte (ggfs. incl. Parametern)
 */
function writeAktionsangebote(url)
{
  if(DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision))
  {
    var aaTags = '<div id="aktionsangebote">' + "\n"
               + ' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  width="720" height="283" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">' + "\n"
               + '  <param name="movie" value="' + url + '" \/>' + "\n"
               + '  <param name="quality" value="high" \/>' + "\n"
               + '  <param name="bgcolor" value="#ffffff" \/>' + "\n"
               + '  <!--[if !IE]> <-->' + "\n"
               + '   <object data="' + url + '" width="720" height="283" type="application/x-shockwave-flash">' + "\n"
               + '    <param name="quality" value="high" \/>' + "\n"
               + '    <param name="bgcolor" value="#ffffff" \/>' + "\n"
               + '    <param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer" \/>' + "\n"
               + '   <\/object>' + "\n"
               + '  <!--> <![endif]-->' + "\n"
               + ' <\/object>' + "\n"
               + '<\/div>' + "\n";

  }
  else
  {
    var aaTags = '<div id="aktionsangebote-trenner">&nbsp;</div>' + "\n"
  }
  document.write(aaTags);
}

/*************************************************************************
 * (AP) Icon definieren
 */
function getIcon(herst) {
  icon = new GIcon();
  if (herst=='BH') {
    icon.image = "/media/main/img/marker_bmw_harley.png";
    icon.mozPrintImage = "/media/main/img/marker_bmw_harley.png";
    icon.printImage = "/media/main/img/marker_bmw_harley.gif";
    icon.iconSize = new GSize(52, 35);
    icon.iconAnchor = new GPoint(3, 33);
    icon.infoWindowAnchor = new GPoint(3, 34);
  } else {
    icon.image = "/media/main/img/marker_bmw_hot.png";
    icon.mozPrintImage = "/media/main/img/marker_bmw_hot.png";
    icon.printImage = "/media/main/img/marker_bmw_print.gif";
    icon.iconSize = new GSize(41, 45);
    icon.iconAnchor = new GPoint(2, 42);
    icon.infoWindowAnchor = new GPoint(2, 44);
  }
  return icon;
}
/*************************************************************************
 * (AP) Marker setzen
 */
function setMarker(laenge,breite,funk,herst) {
  var marker = new GMarker(new GLatLng(laenge,breite), getIcon(herst));
  GEvent.addListener(marker, "click",
       function() {
         marker.openInfoWindowHtml(funk);
     } );
  map.addOverlay(marker);
 }

/*************************************************************************
 * onLoad-Handler
 */

function mainLoad(latitude, longitude, zoom)
{
  if(typeof(G_INCOMPAT) != "undefined")
  {
    if(GBrowserIsCompatible())
    {
      map = new GMap2(document.getElementById("karte"));
      map.setCenter(new GLatLng(latitude, longitude), zoom);
      map.addControl(new GLargeMapControl());
      map.addControl(new GOverviewMapControl());

      //getIcon();
    }
  }
}

/*************************************************************************
 * onUnLoad-Handler
 */
function mainUnload()
{
  if(typeof(G_INCOMPAT) != "undefined")
  {
    GUnload();
  }
}

/*************************************************************************
 * Kartentyp waehlen
 */
function mainSetMapType(typ)
{
  if(typeof(G_INCOMPAT) != "undefined")
  {
    switch(typ)
    {
      case "satellit":
        map.setMapType(G_SATELLITE_MAP);
      break;

      case "hybrid":
        map.setMapType(G_HYBRID_MAP);
      break;

      default:
        map.setMapType(G_NORMAL_MAP);
      break;
    }
  }
}

/*************************************************************************
 * Marker-Zoom
 */
function mainZoomMarker(zMarker)
{
  if(typeof(G_INCOMPAT) != "undefined")
  {
    map.setCenter(zMarker.getPoint(), 17, G_HYBRID_MAP);
  }
}

/*************************************************************************
 * [AP] allgemeines Zoom
 */

function zoom(lat,lng,faktor,maptype)   {
  map.setCenter(new GLatLng(lat,lng),faktor);
  map.setMapType(maptype);
}

/*AP**********************************************************************
 * Checken, ob Pflichfelder im Formular angegeben wurden
 * Führt das Formular aus, wenn OK
 */
function checkKontaktform(formid) {
	var bOK=true;
  var text1 = "";
  var text2 = "";
  var formular = null;
  if (formid!=null)
    formid = "-"+formid;
  else
    formid="";
  if (formular==null)
    formular=document.getElementById("kontakt"+formid);
  if (formular==null)
    formular=document.getElementById("kontakt");

  var telefon = formular.telefon;
  var kontakterror = document.getElementById("kontakterror"+formid);
  var txtname= document.getElementById("txtname"+formid);
  var txtemail= document.getElementById("txtemail"+formid);
  var txttelefon= document.getElementById("txttelefon"+formid);

  var colorOk = "#000000";
  if (formular.vorname!=null)
    colorOk = formular.vorname.style.borderColor;

  if (kontakterror==null)
    kontakterror=document.getElementById("kontakterror");

  if (kontakterror!=null) {
    kontakterror.style.display="none";
    kontakterror.style.color="#ff0000";
  }
  txtemail.style.color="#000000";

  if (formular.email!=null)
    formular.email.style.borderColor=colorOk;

  txtname.style.color="#000000";
  if (formular.nachname!=null)
    formular.nachname.style.borderColor=colorOk;

  if (telefon!=null) {
    txttelefon.style.color="#000000";
    formular.telefon.style.borderColor=colorOk
  }

  if (formular.nachname) {
    text1 = formular.nachname.value.leftTrim();
    if (text1.length<2)  {
      bOK=false;
      txtname.style.color="#ff0000";
      formular.nachname.style.borderColor="#f00";
      if (kontakterror!=null)
        kontakterror.style.display="block";
    }
  }

  text1="";
  text2="";
  if (formular.email!=null)
    text1 = formular.email.value.leftTrim();
  if (telefon!=null)
    text2 = ""+formular.telefon.value;

	if ( (text1.length<6 || text1.indexOf("@")<3)
    && text2.length<6 ) {
	  bOK=false;
	  txtemail.style.color="#ff0000";
    if (formular.email!=null)
      formular.email.style.borderColor="#ff0000";
    if (telefon!=null) {
      txttelefon.style.color="#ff0000";
	    formular.telefon.style.borderColor="#ff0000";
	  }
    if (kontakterror!=null)
      kontakterror.style.display="block";
	}

	if (bOK)
	  formular.submit();
  // else
  //  alert(formular);
}
/*AP**********************************************************************
 * Checken, ob Pflichfelder im Formular angegeben wurden
 * Führt das Formular aus, wenn OK
 */
function checkKontaktform3(formid) {
	var bOK=true;
  var text1 = "";
  var text2 = "";
  var formular = document.forms.kontaktform;
  var telefon = formular.telefon;
  if (formid==null)
    formid="";
  else
    formid="-"+formid;
  var txtname= document.getElementById("txtname"+formid);
  var txtemail= document.getElementById("txtemail"+formid);
  var txttelefon= document.getElementById("txttelefon"+formid);

  var kontakterror = document.getElementById("kontakterror"+formid);
  if (formid=="ap" && kontakterror==null)
    kontakterror = document.getElementById("kontakterror-anspr");
  if (kontakterror==null)
    kontakterror = document.getElementById("kontakterror");

  var colorOk = "#0000000";
  if (formular.vorname!=null)
    colorOk = formular.vorname.style.borderColor;

  if (kontakterror!=null) {
    kontakterror.style.display="none";
    kontakterror.style.color="#ff0000";
  }
  txtemail.style.color="#000000";
  formular.email.style.borderColor=colorOk;
  txtname.style.color="#000000";
  formular.nachname.style.borderColor=colorOk;

  if (telefon!=null) {
    txttelefon.style.color="#000000";
    formular.telefon.style.borderColor=colorOk
  }

  if (formular.nachname) {
    text1 = ""+formular.nachname.value;
    if (text1.length<2)  {
      bOK=false;
      txtname.style.color="#ff0000";
      formular.nachname.style.borderColor="#f00";
      if (kontakterror!=null)
        kontakterror.style.display="block";
    }
  }

  text1 = ""+formular.email.value;
  if (telefon==null)
    text2="";
  else
    text2 = ""+formular.telefon.value;

	if ( text1.length<6 && text2.length<6 ) {
	  bOK=false;
	  txtemail.style.color="#ff0000";
	  formular.email.style.borderColor="#ff0000";
    if (telefon!=null) {
      txttelefon.style.color="#ff0000";
	    formular.telefon.style.borderColor="#ff0000";
	  }
    if (kontakterror!=null)
      kontakterror.style.display="block";
	}

	if (bOK)
	  formular.submit();
}
/*AP**********************************************************************
 * Checken, ob Pflichfelder im Formular angegeben wurden
 * Führt das Formular aus, wenn OK
 * ANGEBOT WEITERLEITEN
 */
function checkKontaktform2() {
	var bOK=true;
  var txt = "";
  var formular = document.forms.kontaktform2;
  var kontakterror = document.getElementById("kontakterror2");
  var txtemail1= document.getElementById("txtemail1");
  var txtemail2= document.getElementById("txtemail2");

  var colorOk = formular.abs_name.style.borderColor;

  if (kontakterror!=null) {
    kontakterror.style.display="none";
    kontakterror.style.color="#ff0000";
  }
  txtemail1.style.color="#000000";
  formular.abs_email.style.borderColor=colorOk;
  txtemail2.style.color="#000000";
  formular.empf_email.style.borderColor=colorOk;

  txt = ""+formular.abs_email.value;
	if (txt.length<6 || txt.indexOf("@")<3)  {
	  bOK=false;
	  txtemail1.style.color="#ff0000";
	  formular.abs_email.style.borderColor="#f00";
    if (kontakterror!=null)
      kontakterror.style.display="block";
	}

  txt = ""+formular.empf_email.value;
	if (txt.length<6 || txt.indexOf("@")<3)  {
	  bOK=false;
	  txtemail2.style.color="#ff0000";
	  formular.empf_email.style.borderColor="#f00";
    if (kontakterror!=null)
      kontakterror.style.display="block";
	}

	if (bOK)  {
	  formular.submit();
	  toggleWeiterleitenForm();
	}
}
/************************************************************************/
function AddToFavorite(href,title)
{
    if ( (navigator.appName == "Microsoft Internet Explorer")
      && (parseInt(navigator.appVersion) >= 4))  {
        window.external.AddFavorite(href,title)
    } else {
      window.sidebar.addPanel(title,href, '');
    }
}

/*************************************************************************
 * Bookmarks
 */
function openBookmark(page, url, titel,notice, taglist)
{
  var ospace  = encodeURIComponent(taglist.replaceAll(',',' '));
  var t80     = encodeURIComponent(titel.substring(0,80));
  var t75     = encodeURIComponent(titel.substring(0,75));
  var url     = encodeURIComponent(url);
  var titel   = encodeURIComponent(titel);
  var notice  = encodeURIComponent(notice);
  var taglist = encodeURIComponent(taglist);

  switch(page)
  {
    case 'delicious':
      window.open('http://del.icio.us/post?url='+ url + '&title=' + t80+ '&notes=' +notice+ '&tags='+ospace);
    break;

    case 'mrwong':
      window.open('http://www.mister-wong.de/index.php?action=addurl&bm_url='+ url + '&bm_description=' + titel+ '&bm_notice=' +notice+ '&bm_tags='+taglist);
    break;

    case 'linkarena':
      window.open('http://linkarena.com/bookmarks/addlink/?url='+ url + '&title=' + titel+'&desc='+notice+'&tags='+ospace);
    break;

    case 'webnews':
      window.open('http://www.webnews.de/einstellen?url='+ url + '&title=' + t75+'&desc='+notice+'&usertag='+taglist);
    break;

    case 'yigg':
      window.open('http://yigg.de/neu?exturl='+ url + '&exttitle=' + titel);
    break;

    case 'google':
      window.open('http://www.google.com/bookmarks/mark?op=add&hl=de&bkmk='+ url + '&title=' + titel+'&annotation='+notice+'&labels='+taglist);
    break;
  }
}
/************************************************************************/
// AP
// Cookies
// immer 30 Tage gültig !
function setCookie(name, wert){
   var ablauf = new Date();
   var in30Tagen = ablauf.getTime() + (30 * 24 * 60 * 60 * 1000);
   ablauf.setTime(in30Tagen);

   var cook = name+"="+unescape(wert)
            + "; expires="
            +  ablauf.toGMTString()
            +"; path=/";
   // alert(cook);
   document.cookie = cook;
}
/************************************************************************/
function eraseCookie(name, domain, path){
   document.cookie = name+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/";
}
/************************************************************************/
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 "";
}
/************************************************************************/
function addCar(carid) {
  if (!document.cookie) {
    alert("Aktivieren Sie Cookies in Ihrem Browser!");
    return;
  }
  var cook = getCookie("geparkt");
  if ((cook+"-").indexOf("-"+carid+"-")<0)  {
    cook +="-"+carid;
    setCookie("geparkt",cook);
  }
  var pp = document.getElementById("pp_"+carid);
  pp.innerHTML = "<a class=\"geparkt\" href=\"javascript:removeCar('"+carid+"')\">geparkt</a>";

  var mpp = document.getElementById("meinparkplatz");
  mpp.style.display = "inline";
}
/************************************************************************/
function removeCar(carid) {
  var cook = getCookie("geparkt");
  var idx = (cook+"-").indexOf("-"+carid+"-");
  if (idx>=0) {
    cook = cook.substring(0,idx)
         + cook.substring(idx+carid.length+1);
    setCookie("geparkt",cook);
    // alert("ausgeparkt: "+carid+" : "+cook);
  }
  var pp = document.getElementById("pp_"+carid);
  pp.innerHTML = "<a class=\"blocklink\" href=\"javascript:addCar('"+carid+"')\">parken</a>";

  if (cook.length<3) {
    var mpp = document.getElementById("meinparkplatz");
    mpp.style.display = "none";
  }
}
/************************************************************************/
// AP 13.08.2007
function sayProb(msg) {
  var obj = document.getElementById("meldung");
  if (obj==null)
    obj = document.getElementById("sucheok");
  if (obj!=null)
    obj.innerHTML = msg;

  obj = document.getElementById("sucheok");
  if (obj!=null)
    obj.style.display   = "none";
  obj = document.getElementById("sucheko");
  if (obj!=null)
    obj.style.display   = "block";
}
/************************************************************************/
function sayMsg(msg) {
  var obj = document.getElementById("meldung");
  var btn = document.getElementById("sucheok");
  if (obj==null || (btn!=null && btn.tagName=='A'))
    obj = btn;
  if (obj!=null)
    obj.innerHTML = msg; //  + " <!-- "+btn.tagName+" -->";
}
/************************************************************************/
// AP 13.08.2007
function infoWindowOn(msg) {
  var obj = document.getElementById("meldung");
  //if (obj= =null)
  //  obj = document.getElementById("sucheok");
  if (obj!=null)
    obj.innerHTML = msg;
}
/************************************************************************/
// AP 13.08.2007
function infoWindowOff() {
  var obj = document.getElementById("meldung");
  if (obj!=null)
    obj.innerHTML = " &nbsp; ";
}
/************************************************************************/
