var ua = navigator.userAgent.toLowerCase();

var isMac   = (ua.indexOf('mac')>-1)?1:0;
var isWin   = (ua.indexOf('win')>-1)?1:0;

var isGecko   = (ua.indexOf('gecko')>-1)?1:0;
var isSafari   = (ua.indexOf('safari')>-1)?1:0;

var isOpera = (ua.indexOf('opera')>-1)?1:0;

var isIE    = (ua.indexOf('msie')>-1 && !isOpera)?1:0;

var isIEWin = (isIE && isWin && !isOpera)?1:0;
var isIEMac = (isIE && isMac && !isOpera)?1:0;
var isIEWinCE  = (isIE && ua.indexOf('windows ce')>-1)?1:0;

var isWPrint   = (window.print)?1:0;
 
var isDOM   = (document.getElementById)?1:0;
var isIE4   = (isIE && !isDOM)?1:0;
var isNS4   = (document.layers)?1:0;

var tableIds;

var popupMatcher = /^(\d+)x(\d+)$/;

var popupSizesArr = new Object();
popupSizesArr["stichwort"]     = new Array( 380, 431 );
popupSizesArr["portrait"]      = new Array( 412, 661 );
popupSizesArr["kurzmeldungen"] = new Array( 685, 500 );
popupSizesArr["buli_vorschau"] = new Array( 685, 500 );
popupSizesArr["mediabox"]      = new Array( 818, 605 );
popupSizesArr["mediabox_av"]   = new Array( 818, 605 );
popupSizesArr["mediabox_b"]    = new Array( 818, 605 );
popupSizesArr["mediabox_vb"]   = new Array( 818, 605 );
popupSizesArr["mediathek"]     = new Array( 818, 605 );
popupSizesArr["mediathekt"]    = new Array( 818, 605 );
popupSizesArr["mediathekb"]    = new Array( 818, 605 );
popupSizesArr["mediatheka"]    = new Array( 818, 605 );
popupSizesArr["mediathekv"]    = new Array( 818, 605 );
popupSizesArr["rueckblick"]    = new Array( 818, 605 );
popupSizesArr["eventbox"]      = new Array( 786, 540 );
popupSizesArr["ticker"]        = new Array( 415, 665 );
popupSizesArr["statistik"]     = new Array( 425, 630 );

var popupSizes = new Object();

window.onload = doInit;

/**
 * initialisieren 
 */
function doInit(){
  for ( var pType in popupSizesArr ) {
    popupSizes[pType] = popupSizesArr[pType][0] + ',' + popupSizesArr[pType][1];
  }
  if(isDOM && !isIEMac) {
    setLinkAttributes();
    autoSubmitErgebnisForms();
    initDefinitionList();
    //addPrintButton();
  }
} // doInit

function addPrintButton() {
  var empfDiv = document.getElementById('ardContentEnd');
  if ( !empfDiv ) {
    return;
  }
  var lis = empfDiv.getElementsByTagName( 'li' );
  if ( !lis || lis.length < 1 ) {
    return;
  }
  var firstLi = lis[0];
  var printLi = document.createElement( 'li' );
  var printImg = document.createElement( 'img' );
  var printLink = document.createElement( 'a' );
  firstLi.parentNode.insertBefore( printLi, firstLi );

  printLi.appendChild( printImg );
  printLi.appendChild( printLink );

  printLink.appendChild( document.createTextNode( ' Seite drucken' ) );
  printLink.id = 'printBeitrag';
  printLink.name = 'printBeitrag';
  printLink.href = '#';

  printImg.src = '/euro2008/layout/img/druck.gif';
  printImg.className = 'ardIcon2';
  printImg.alt = 'drucken';
  printImg.title = 'Seite drucken';
  printLink.onclick = function() { window.print(); return false; };
}


function initDefinitionList() {
    var liste = document.getElementById( "stichwortliste" );
    if ( liste ) {
        var dds = liste.getElementsByTagName( "dd" );
        var dts = liste.getElementsByTagName( "dt" );
        for ( i = 0; i < dds.length && i < dts.length; i++ ) {
            dds[i].setAttribute( "id", "stichwort" + i );
            var linkNode = dts[i].firstChild;
            linkNode.setAttribute( "href", "#" );
            linkNode.setAttribute( "rel", "stichwort" + i );
            linkNode.onclick = function() { return swapVisibility( this.rel ); };
            if ( window.location.hash != "#" + linkNode.name ) {
                dds[i].style.display = "none";
            }
        }
    }
}

function autoSubmitErgebnisForms() {
  var ergDiv = document.getElementById( 'spvErgTabs' );
  if ( ergDiv ) {
    var liste = ergDiv.getElementsByTagName( 'select' );
    for ( var i=0; i<liste.length; i++ ) {
      liste[i].onchange = submitErgebnisForms;
    }
  }
}

function submitErgebnisForms(event) {
  var e = event || window.event;
  var orig = e.target || e.srcElement;
  if ( orig.defaultValue != orig.options[orig.selectedIndex].value ) {
    orig.form.submit();
  }
}

function swapVisibility( itemId ) {
    var node = document.getElementById( itemId );
    if ( node ) {
        if ( node.style.display == "none" ) {
            node.style.display = "block";
        } else {
            node.style.display = "none";
        }
    }
    return false;
}

function relPopupIE(evt) {
  var e = evt || window.evt;
  var orig = e.target || e.srcElement;
  return relPopup(orig);
}

function relPopup(orig){
  while ( orig.nodeName.toLowerCase() != 'a' && orig.nodeName.toLowerCase() != 'body' ) {
    orig = orig.parentNode;
  }
  var relTxt = orig.getAttribute( 'rel' );
  var url = orig.getAttribute( 'href' );
  if ( !relTxt || !url ) {
    return true;
  }
//  if ( url.indexOf( "?" ) >= 0 ) {
//      url += '&popup=true';
//  } else {
//      url += '?popup=true';
//  }
  var width = 600;
  var height = 400;
  if (relTxt.indexOf("@")>-1){
    var fall   = relTxt.substring(0,relTxt.indexOf("@"));
    var target = relTxt.substring(relTxt.indexOf("@")+1);
    if ( popupMatcher.exec( target ) ) {
      width = parseInt( RegExp.$1 );
      height = parseInt( RegExp.$2 );
      target = null;
    }
    if ( fall == 'bildPopup' && width > 0 && height > 0 ) {
      if ( height < 455 ) {
        height = 505;
      } else {
        height += 50;
      }
    }
    if ( isIE ) {
      height -= 20;
      width +=16;
    }
  } else {
    width = popupSizesArr[relTxt][0];
    height = ( isIE ? popupSizesArr[relTxt][1] - 20 : popupSizesArr[relTxt][1] );
  }
  return popup( url, width, height );
}

/**
 * popup-Fenster öffnen
 * Achtung! BA PopUps müssen scrollbar, resizable sein und ein Menubar haben
 *
 */
function popup(url, breite, hoehe){

  var winname = "popup" + (new Date()).getTime(); 
  var winarg = "";
  var x = 0;
  var y = 0;
  windowisopen = false;
  eval("if(window." + winname + " && window." + winname + ".closed==false) { windowisopen = true\; }");

  if ( url.indexOf( "?" ) >= 0 ) {
      url += '&popup=true';
  } else {
      url += '?popup=true';
  }

  if(!windowisopen) {
    if(screen.width > 640) { 
      x = (screen.availWidth  - breite) / 2;
      y = (screen.availHeight - hoehe) / 2; 
    }
    winarg  = 'width=' + breite + ',height=' + hoehe + ',top=' + y + ',left='+ x;
    winarg += ',resizable,menubar,scrollbars';
  }

  eval("" + winname + " = window.open( url, winname, winarg)\;");
  eval("" + winname + ".focus()\;");
  eval("if (" + winname + ".opener == null) " + winname + ".opener = self\;");

  return false;
} // popup

/**
 * popup-Fenster öffnen
 * Alter Funktionsname, aus Kompatibilitätsgründen aufgenommen f�r Zeitlupe
 * Markus Faltin, 29.8.07
 */
function popnoresize(url, breite, hoehe) {
    // Aufruf aus Zeitlupe mit 776x582, muss aber 818x626 sein
	popup(url, 818, 626);
}
 
function votePopup(tag, winname, breite, hoehe){
  tag.setAttribute( "target", winname );

  var winarg = "";
  var x = 0;
  var y = 0;

  windowisopen = false;
  eval("if(window." + winname + " && window." + winname + ".closed==false) { windowisopen = true\; }");

  if(!windowisopen) {
    if(screen.width > 640) { 
      x = (screen.availWidth  - breite) / 2;
      y = (screen.availHeight - hoehe) / 2; 
    }
    winarg  = 'width=' + breite + ',height=' + hoehe + ',top=' + y + ',left='+ x;
    winarg += ',resizable,menubar,scrollbars';
  }
  
  eval("" + winname + " = window.open(\"\", winname, winarg)\;");
  eval("" + winname + ".focus()\;");
  eval("if (" + winname + ".opener == null) " + winname + ".opener = self\;");
  return false;
}

/**
 * Link-Collection an setLinkAttrCollection �bergeben
 */
function setLinkAttributes(){
  var urls   = document.getElementsByTagName("a");
  setLinkAttrCollection(urls);

  var areaurls   = document.getElementsByTagName("area");
  setAreaAttrCollection(areaurls);

  //var secUeber   = document.getElementsByTagName("h2");
  //setTabsInvisible(secUeber);

  var forms   = document.getElementsByTagName("form");
  for ( i=0; i<forms.length; i++ ) {
    var target = null;
    var id = forms[i].getAttribute( "id" );
    if ( id ) {
      var idElems = id.split( ":" );
      if ( idElems.length > 1 && idElems[0] == "vote" ) {
        appendToTitleText( forms[i], "Link öffnet in neuem Fenster" );
        setLinkTarget( forms[i], idElems[1] );
      }
    }
  }
} // setLinkAttributes


function setTabsInvisible(secUeber) {
  var suche = /^invTabHead_(\d+)$/;
  tableIds = new Array();
  for (i=0; i<secUeber.length; i++){
    var id = secUeber[i].getAttribute("id");
    if ( suche.exec( id ) ) {
      tableIds.push( RegExp.$1 );
    }
  }

  if ( tableIds.length > 0 ) {
    var myUl = document.createElement( 'ul' );
    myUl.id = 'spvErgTabNav';
    for ( var i=0; i<tableIds.length; i++ ) {
      var actId = tableIds[i];
      var myLi = document.createElement( 'li' );
      var myHeadNode = document.getElementById( "invTabHead_" + actId );
      var myTable = document.getElementById( "invTab_" + actId );
      myLi.appendChild( document.createTextNode( myHeadNode.innerHTML ) );
      myLi.id = 'spvErgTabNavLi_' + actId;
      myUl.appendChild( myLi );
      if ( i==0 ) {
        myHeadNode.parentNode.insertBefore( myUl, myHeadNode );
        myLi.title = '';
        myLi.className = 'sel';
        myTable.className = 'tabBox tabVis';
      } else {
        myLi.className = 'notSel';
        myLi.title = 'Tabelle anzeigen';
        myLi.onclick = switchVisibility;
        myTable.className = 'tabBox tabInv';
      }
      myHeadNode.className = 'tabInv';
    }
  }
}

function switchVisibility(event) {
  var e = event || window.event;
  var orig = e.target || e.srcElement;
  var id = orig.getAttribute("id");
  for ( var i=0; i<tableIds.length; i++ ) {
    var actId = tableIds[i];
    var myLi = document.getElementById( "spvErgTabNavLi_" + actId );
    var myTable = document.getElementById( "invTab_" + actId );
    if ( id == 'spvErgTabNavLi_' + actId ) {
      myLi.title = '';
      myLi.className = 'sel';
      myTable.className = 'tabBox tabVis';
    } else {
      myLi.className = 'notSel';
      myLi.title = 'Tabelle anzeigen';
      myTable.className = 'tabBox tabInv';
      myLi.onclick = switchVisibility;
    }
  }
}

/**
 * Link-Attribute title/target setzen
 * in Abhängigkeit vom rel-Attribute
 */
function setLinkAttrCollection(urls){
  var zText  = "Link öffnet in neuem Fenster";

  for (i=0; i<urls.length; i++){
    var target = null;
    var onclick = null;
    var rel = urls[i].getAttribute("rel");
    var tgt = urls[i].getAttribute("target");
    var ocl = urls[i].getAttribute("onclick");
    var url = urls[i].getAttribute("href");
    var width = 0;
    var height = 0;

    if (rel) {
      if (rel.indexOf("@")>-1){
        fall   = rel.substring(0,rel.indexOf("@"));
        target = rel.substring(rel.indexOf("@")+1);
      } else {
        fall = rel; 
      }

      switch (fall){
        case 'audio':
        case 'gaestebuch':
        case 'video':
            if ( !target ) { target = null; }
            break;
        case 'eventbox':
        case 'kurzmeldungen':
        case 'buli_vorschau':
        case 'mediathek':
        case 'mediatheka':
        case 'mediathekv':
        case 'mediathekb':
        case 'mediathekt':
        case 'mediabox':
        case 'mediabox_av':
        case 'mediabox_b':
        case 'mediabox_vb':
        case 'rueckblick':
        case 'portrait':
        case 'statistik':
        case 'stichwort':
        case 'ticker':
        case 'popup':
            if ( !target ) { target = "_blank"; }
        case 'bildPopup':
            if ( !ocl && url ) {
              if ( isIE ) {
                urls[i].attachEvent( 'onclick', relPopupIE );
              } else {
                urls[i].setAttribute( 'onclick', 'return relPopup(this);' );
              }
            }
            break;
        case 'ard':
        case 'blank':
        case 'forum':
        case 'wdr':
        case 'www':
/*
        case 'mediaseite':
        case 'mediaseitea':
        case 'mediaseitev':
        case 'mediaseiteb':
        case 'mediaseitet':
*/
            if ( !target ){ target = "_blank"; }
            break;
        default:
            if ( !target ){ target = null; }
      }

      if(target){
        appendToTitleText(urls[i], zText);
        setLinkTarget(urls[i], target);
      }
    } else if( tgt ) { 
      appendToTitleText(urls[i], zText); 
    }
  } // for
} // setLinkAttrCollection


/**
 * Area-Attribute title/target setzen
 * in Abh�ngigkeit vom id-Attribute
 */
function setAreaAttrCollection(areas){
  var zText  = "Link öffnet in neuem Fenster";

  for (i=0; i<areas.length; i++){
    var target = null;
    var rel = areas[i].getAttribute("id");
    var idElems = rel.split(":");
    if ( idElems.length > 1 ) {
        rel = idElems[0];
    }
    var tgt = areas[i].getAttribute("target");

    if (rel){
      if (rel.indexOf("@")>-1){
        fall   = rel.substring(0,rel.indexOf("@"));
        target = rel.substring(rel.indexOf("@")+1);
      } else { 
        fall = rel; 
      } 

      switch (fall){
    case 'audio':
    case 'video':
    case 'gaestebuch':
      if(!target){ target = null; }
      break;

    case 'blank':
    case 'ard':
    case 'wdr':
    case 'www':
    case 'forum':
    case 'mediabox':
    case 'stichwort':
    case 'kurzmeldungen':
    case 'mediabox_av':
    case 'mediabox_b':
    case 'mediabox_vb':
    case 'rueckblick':
    case 'eventbox':
    case 'ticker':
    case 'popup':
    case 'mediaseite':
    case 'mediaseitea':
    case 'mediaseitev':
    case 'mediaseiteb':
    case 'mediaseitet':
      if(!target){ target = "_blank"; }
      break;

        default:
      if(!target){ target = null; }
      }

      if(target){
        appendToTitleText(areas[i], zText);
        setLinkTarget(areas[i], target);
      }
    } else if(tgt) { 
      appendToTitleText(areas[i], zText); 
    }
  } // for
} // setAreaAttrCollection


function appendToTitleText(n, s){
  if(n.getAttribute("title")){ n.setAttribute("title", n.getAttribute("title") + ". " + s); }
  else{ n.setAttribute("title", s); }
}

function setLinkTarget(n,t){
  n.setAttribute("target", t);
}


/** BRD-Karte f�r regionale Ergebnisse */

var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;

function DHTML_init() {

 if (window.opera) {
     OP = 1;
 }
 if(document.getElementById) {
   DHTML = 1;
   DOM = 1;
 }
 if(document.all && !OP) {
   DHTML = 1;
   MS = 1;
 }
if(window.netscape && window.screen && !DOM && !OP) {
   DHTML = 1;
   NS = 1;
 }
}

function getElem(p1,p2,p3) {
 var Elem;
 if(DOM) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.getElementById(p2) == "object")
     Elem = document.getElementById(p2);
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document.getElementsByName(p2) == "object")
     Elem = document.getElementsByName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.getElementsByTagName(p2) == "object" || (OP && typeof document.getElementsByTagName(p2) == "function"))
     Elem = document.getElementsByTagName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(MS) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.all[p2] == "object")
     Elem = document.all[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.all.tags(p2) == "object")
     Elem = document.all.tags(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(NS) {
   if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
   if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="index") {
    if (typeof document.layers[p2] == "object")
     Elem = document.layers[p2];
    else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
}

function getCont(p1,p2,p3) {
   var Cont;
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) {
     if(getElem(p1,p2,p3).firstChild.nodeType == 3)
       Cont = getElem(p1,p2,p3).firstChild.nodeValue;
     else
       Cont = "";
     return(Cont);
   }
   else if(MS && getElem(p1,p2,p3)) {
     Cont = getElem(p1,p2,p3).innerText;
     return(Cont);
   }
   else return void(0);
}

function getAttr(p1,p2,p3,p4) {
   var Attr;
   if((DOM || MS) && getElem(p1,p2,p3)) {
     Attr = getElem(p1,p2,p3).getAttribute(p4);
     return(Attr);
   }
   else if (NS && getElem(p1,p2)) {
       if (typeof getElem(p1,p2)[p3] == "object")
        Attr=getElem(p1,p2)[p3][p4]
       else
        Attr=getElem(p1,p2)[p4]
         return Attr;
       }
   else return void(0);
}

function setCont(p1,p2,p3,p4) {
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild)
     getElem(p1,p2,p3).firstChild.nodeValue = p4;
   else if(MS && getElem(p1,p2,p3))
     getElem(p1,p2,p3).innerText = p4;
   else if(NS && getElem(p1,p2,p3)) {
     getElem(p1,p2,p3).document.open();
     getElem(p1,p2,p3).document.write(p4);
     getElem(p1,p2,p3).document.close();
   }
}
DHTML_init();

var default_text =  "Klicken Sie auf die Region, aus der Sie regionale Ergebnisse suchen.";

// Vorschautext wird angezeigt
function update_text(wm_vorort_text)
{ 
    replace_feld = 'wm_vorort_vorschau';
    if (DHTML) {
        if (NS) {
            setCont("id", replace_feld, null, "<span class=\"" + replace_feld + "\">" + wm_vorort_text + "<\/span>");
        } else {
            setCont("id", replace_feld, null, wm_vorort_text   );
        } 
    } else {
        return;
    } 
} 

function stopError() { return true; }
window.onerror = stopError;

function preload(imgObj,imgSrc) {
   if (document.images) {
       eval(imgObj+' = new Image()')
       eval(imgObj+'.src = "'+imgSrc+'"')
   }
}
function changeImage(imgName,imgObj) {
   if (document.images) {
       document.images[imgName].src = eval(imgObj+".src")
   }
}

