var GlobalObjects = new Object();
var mapTimeOuts = 0;
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
function followLink(x,e) {
  if (typeof x == 'object' && x.getElementsByTagName('a'))
    x = x.getElementsByTagName('a')[0].getAttribute('href');
  if (x.indexOf('http')<0) location.href = x;
  else window.open(x);
  return false;
}
function windowOpen(url) {
  window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
  return false;
}
function setActive(host) {
  if (host.className.indexOf('active') < 0)
    host.className += ' active';
}
function setInactive(host) {
  host.className = host.className.replace(/active/g,"").trim();
}
function enlargePic(x,d) {
  if (x.className.indexOf(d)<0) {
    x.className += ' '+d;
    x.title = 'Bild vergrößern';
  } else {
    x.className = x.className.replace(d,'');
    x.title = 'Bild verkleinern';
  }
}
window.onscroll = function() {
  var h = document.getElementsByTagName('div')[0];
  if (pageYOffset > 100 && h.className.indexOf('small')<0) h.className += ' small';
  else if (pageYOffset <= 100) h.className = h.className.replace(/small/g,"").trim();

  if (document.getElementById('alsoRelevant')) {
    g = document.getElementById('alsoRelevant'); 
    if (pageYOffset <= 300 && g.className.indexOf('hide')<0) g.className += ' hide';
    else if (pageYOffset > 300) g.className = g.className.replace(/hide/g,"").trim();
  }
}
function transformInput(x,t) {
  var tar = document.createElement('input');
  tar.type = t;
  tar.setAttribute('value',x.getAttribute('value'));
  tar.setAttribute('name',x.getAttribute('name'));
  tar.setAttribute('class',x.getAttribute('class'));
  tar.onfocus = tar.onmousedown = function(event) { return checkInput(event) };
  tar.style.width = x.style.width;
  tar.setAttribute('data-initialcolor','#999');
  if (x.getAttribute('data-initialvalue')) tar.setAttribute('data-initialvalue',x.getAttribute('data-initialvalue'));
  else tar.setAttribute('data-initialvalue',x.getAttribute('value'));
  if (x.getAttribute('data-filled')) tar.setAttribute('data-filled',x.getAttribute('data-filled'));
  else tar.style.color = tar.getAttribute('data-initialcolor');
  x.parentNode.replaceChild(tar,x);
  return tar;
}
function checkInput(e) {
  e = e || window.event;
  var ziel = (e.target) ? e.target : e.srcElement;
  var keyCode = e.keyCode || e.which;
  var basecolor = '#000';
  ziel.setValue = function(x) {
    if (this.nodeName == 'textarea') this.innerHTML = x;
    else this.value = x;
  };
  ziel.getValue = function() {
    if (this.nodeName == 'textarea') return this.innerHTML;
    else return this.value;
  };
  function setCursor(x,r) {
    if(typeof document.selection != 'undefined') {
      var range = x.createTextRange();
      range.collapse(true);
      range.move('character', r);
      range.select();
    } else x.setSelectionRange(r,0);
  };
  ziel.onkeydown = ziel.onkeyup = ziel.onmousedown = function(event) { return checkInput(event); }
  ziel.setAttribute('autocomplete','off');
  if (!ziel.getAttribute('data-initialvalue')) ziel.setAttribute('data-initialvalue',ziel.getValue());
  if (!ziel.getAttribute('data-initialcolor')) ziel.setAttribute('data-initialcolor','#999');
  /*** Feld als befüllt markieren, wenn eine Zeichentaste gedrückt wird, und ungefüllt,
  wenn eine Taste losgelassen wird ***/
  if (e.type == 'keydown' && ziel.getValue() == ziel.getAttribute('data-initialvalue')) {
    ziel.removeAttribute('readonly');
    if (keyCode >= 48) {
      ziel.setAttribute('data-filled',true);
      ziel.setValue('');
      ziel.style.color = basecolor;
    } else if (keyCode != 9) return false; //alle Systemtasten außer Tab deaktivieren
  } else if (e.type == 'keyup' && ziel.getValue() == '') {
    ziel.removeAttribute('data-filled');
    ziel.setValue(ziel.getAttribute('data-initialvalue'));
    ziel.style.color = ziel.getAttribute('data-initialcolor');
    setCursor(ziel,0);
  } else if (!ziel.getAttribute('data-filled')) {
    if (e.type == 'mousedown') {
      if (e.wich == 3 || e.button == 2) {
        ziel.setAttribute('readonly','readonly');
        ziel.onblur = function() { ziel.removeAttribute('readonly'); }
      } else ziel.removeAttribute('readonly');
      ziel.focus();
    };
    setCursor(ziel,0);
    return false;
  };

  /*** Überprüfung, ob es sich bei dem Feld um ein Passwort handelt, und ggf. typ ändern ***/
  if (e.type != 'focus' && ziel.getAttribute('data-initialvalue').indexOf('asswor')>0) {
    var pass = (ziel.getAttribute('data-filled')) ? 'password' : 'text';
    if (ziel.type != pass) {
      try { ziel.type = pass } catch(err) {
        /*** Internet Explorer 7 und 8 können input.type nicht zur Laufzeit ändern,
        daher wird das Feld nachgebaut, sobald ein Wert eintrifft (keyup), und mit den
        Parametern des alten Feldes versehen. ***/
        if (e.type == 'keyup') {
          tar = transformInput(ziel,pass);
          tar.focus();
          setCursor(tar,ziel.getValue().length);
          return false;
        };    
      };
    };
  };
};

function checkForm(host,form) {
  if (host.getValue().length > 0) host.fill = true;
  else host.fill = false;
  form = document.getElementById(form);
  var inputs = form.getElementsByTagName('input')
  var textareas = form.getElementsByTagName('textarea');
  fields = [].concat(Array.prototype.slice.call(inputs), Array.prototype.slice.call(textareas));
  var submitBtn = false;
  var valid = 0;
  for (i=0; i<fields.length; i++) {
    if (fields[i].type == 'submit') submitBtn = fields[i];
    else if (fields[i].fill) valid += 1;
  }
  if (submitBtn) {
    if (valid==fields.length-1) {
      form.className += ' enabled';
      submitBtn.removeAttribute('disabled');
    }
    else {
      form.className = form.className.replace(/enabled/g,"").trim();
      submitBtn.setAttribute('disabled','disabled');
    }
  }
}
function showOne(x) {
  var changeList = x.parentNode.getElementsByTagName(x.nodeName);
  for (i=0; i<changeList.length; i++) changeList[i].style.display = 'none';
  x.style.display = 'block';
}

if(typeof document.documentElement.sourceIndex == "undefined")
HTMLElement.prototype.__defineGetter__("sourceIndex", (function(indexOf){
  return function sourceIndex(){
    return indexOf.call(this.ownerDocument.getElementsByTagName("*"), this);
  };
})(Array.prototype.indexOf));


function hoverOne(x,e) {
  if (x.parentNode.innerHTML.indexOf('pageThrough')>=0 && x.style.display == 'none') pageThrough(x,1);

  clearTimeout(x.parentNode.name);
  var Nodes = x.parentNode.getElementsByTagName(x.nodeName);
  var List = new Array();
  for (i=0; i<Nodes.length; i++) {
    if (x.parentNode.innerHTML.indexOf('pageThrough')>=0 || Nodes[i].style.display != 'none') List.push(Nodes[i]);
  }
  for (j=0; j<List.length; j++) {
    setInactive(List[j]);
    GlobalObjects[List[j].sourceIndex] = List[j];
    if (List[j] == x) var next = (j < List.length-1) ? j+1 : 0;
  }
  setActive(x);
  if (typeof(e) == 'undefined' || e.type == 'mouseout') {
    x.parentNode.name = setTimeout('hoverOne(GlobalObjects['+List[next].sourceIndex+'])',5000);
  }
  if (x.getAttribute('data-change')) eval(x.getAttribute('data-change'));
}
function AjaxPage(url) {
  var param = '';
  url = url.replace(/http:\/\/[^\/]+/i,"");
  if (url.indexOf('#')>0) {
    location.hash = url.substring(url.indexOf('#'),url.length);
    url = url.substring(0,url.indexOf('#'));
  };
  if (url.indexOf('?')>0) {
    param = '&'+url.substring(url.indexOf('?')+1,url.length);
    url = url.substring(0,url.indexOf('?'));
  };
  var id = url.substring(url.indexOf(',')+1,url.length);
  hoverOne(document.getElementById('thumb'+id),'');
  if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
  else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  xmlhttp.open("GET",url+',B?_FRAME=33&_DONOTCACHE=1'+param,true);
  xmlhttp.send();
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      var fields = ['TXT','CME','COM','SOC','HEA'];
      for (i=0;i<fields.length;i++) {
        if (document.getElementById('Ajax'+fields[i]+'Box')) document.getElementById('Ajax'+fields[i]+'Box').innerHTML =
        xmlhttp.responseText.substring(
          xmlhttp.responseText.indexOf(fields[i]+'begin')+11,
          xmlhttp.responseText.indexOf(fields[i]+'end')-4
        );
      };
    };
  };
  _gaq.push(['_trackPageview',url]);
  var oewa = document.getElementById('oewaPixel').src;
  document.getElementById('oewaPixel').src = oewa.substring(0,oewa.indexOf('&d=')+3)+(new Date()).getTime();
  return false;
}
function pageThrough(x,d) {
  var List = new Array();
  var Visible = new Array();
  var Paging = new Array();
  var Active = -1;
  function PagingBtn(x) {
    try { return (x.getAttribute('onclick').indexOf('pageThrough')>=0) ? true : false }
    catch(e) { return false }
  }
  for (i=0; i<x.parentNode.childNodes.length; i++) {
    if(PagingBtn(x.parentNode.childNodes[i])) {
      Paging.push(x.parentNode.childNodes[i]);
    } else if (x.parentNode.childNodes[i].nodeType == 1) {
      List.push(x.parentNode.childNodes[i]);
    }
  }
  Paging[0].className = Paging[0].className.replace(/clickable/g,'disabled');
  m = function(r) { return (r>0) ? 0 : Visible.length-1 };
  for (i=0; i<List.length; i++) {
    if (List[i].style.display != 'none') Visible.push(i);
    if (List[i].className.indexOf('active') >= 0) Active = i;
  }
  if (Visible[m(-d)]>=0 && Visible[m(-d)]<List.length-1) {
    for(j=0; j<Visible.length; j++) {
      List[Visible[j]+d].style.display = '';
    }
    List[Visible[m(d)]].style.display = 'none';
    if (Active >= 0 && Visible[m(d)] == Active) AjaxPage(List[Visible[m(d)]+d].getElementsByTagName('a')[0].getAttribute('href'));
    if (Visible[0]+d != 0) Paging[0].className = Paging[0].className.replace(/disabled/g,'clickable');
  } else if (Visible[m(-d)] == List.length-1) {
    for(j=0; j<Visible.length; j++) {
      List[Visible[j]].style.display = 'none';
      Visible[j] = j;
      List[j].style.display = '';
    }
    if (Active >= 0) return AjaxPage(List[0].getElementsByTagName('a')[0].getAttribute('href'));
  }
}
function expandTL(x,toplist) {
  if (typeof toplist == 'string') toplist = document.getElementById(toplist);
  for (i=0; i<toplist.getElementsByTagName('div').length; i++) {
    toplist.getElementsByTagName('div')[i].style.display = '';
  }
  x.style.display = 'none';
}
function getFlashMovieObject(movieName){
  if (window.document[movieName]) return window.document[movieName];
  if (navigator.appName.indexOf("Microsoft Internet")==-1) {
    if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; 
  } else return document.getElementById(movieName);
}

function mapHover(n,e) {
  var wienMap = document.getElementById('wienMap').getElementsByTagName('li');
  for (i=0; i<wienMap.length; i++) wienMap[i].removeAttribute('class');
  if (typeof(e) != 'undefined' && e.type == 'mouseover') {
    if (document.getElementById('wienMapFlash')) document.getElementById('wienMapFlash').style.visibility = 'hidden';
    clearTimeout(mapTimeOuts);
    if (document.getElementById('wienList')) clearTimeout(document.getElementById('wienList').name);
    document.getElementById('wien'+n).className = 'active hover';
  } else if (n == 'hover') {
    if (document.getElementById('wienList')) hoverOne(document.getElementById('wienList').getElementsByClassName('active')[0]);
  } else if (document.getElementById('wien'+n)) {
    document.getElementById('wien'+n).className = 'active';
  }
  return false;
}

function drawArrow(pl,nr) {
  document.getElementById('wienMapFlash').style.visibility = 'visible';
  var num = -1;
  var Bezirke = [
    'Innere Stadt',
    'Leopoldstadt',
    'Landstraße',
    'Wieden',
    'Margareten',
    'Mariahilf',
    'Neubau',
    'Josefstadt',
    'Alsergrund',
    'Favoriten',
    'Simmering',
    'Meidling',
    'Hietzing',
    'Penzing',
    'Rudolfsheim-Fünfhaus',
    'Ottakring','Hernals',
    'Währing','Döbling',
    'Brigittenau',
    'Floridsdorf',
    'Donaustadt',
    'Liesing'
  ];
  for (i=0; i<Bezirke.length; i++) if(pl.toLowerCase().indexOf(Bezirke[i].toLowerCase())>=0) {
    num = i;
    break;
  }
  var frame = (num<0) ? 1 : (3*num)+nr+1;
  mapHover(num+1);
  try { getFlashMovieObject('wienMapFlash').SetVariable('nr',frame); } catch(e) {}
}

function mapHoverOOE(n,e) {
  var ooeMap = document.getElementById('ooeMap').getElementsByTagName('li');
  for (i=0; i<ooeMap.length; i++) ooeMap[i].removeAttribute('class');
  if (typeof(e) != 'undefined' && e.type == 'mouseover') {
    if (document.getElementById('ooeMapFlash')) document.getElementById('ooeMapFlash').style.visibility = 'hidden';
    clearTimeout(mapTimeOuts);
    if (document.getElementById('ooeList')) clearTimeout(document.getElementById('ooeList').name);
    document.getElementById('ooe'+n).className = 'active hover';
  } else if (n == 'hover') {
    if (document.getElementById('ooeList')) hoverOne(document.getElementById('ooeList').getElementsByClassName('active')[0]);
  } else if (document.getElementById('ooe'+n)) {
    document.getElementById('ooe'+n).className = 'active';
  }
  return false;
}

function drawArrowOOE(pl,nr) {
  document.getElementById('ooeMapFlash').style.visibility = 'visible';
  var num = -1;
  var Bezirke = [
    'Wels-Land', 
    'Vöcklabruck', 
    'Urfahr-Umgebung', 
    'Steyr-Land', 
    'Schärding', 
    'Rohrbach', 
    'Ried im Innkreis', 
    'Perg', 
    'Linz-Land', 
    'Kirchdorf an der Krems', 
    'Grieskirchen', 
    'Gmunden', 
    'Freistadt', 
    'Eferding', 
    'Braunau am Inn', 
    'Linz', 
    'Wels', 
    'Steyr' 
  ];
  for (i=0; i<Bezirke.length; i++) if(pl.toLowerCase().indexOf(Bezirke[i].toLowerCase())>=0) {
    num = i;
    break;
  }
  var frame = (num<0) ? 1 : (3*num)+nr+1;
  mapHoverOOE(num+24);
  try { getFlashMovieObject('ooeMapFlash').SetVariable('nr',frame); } catch(e) {}
}

function setHomepage() {
  if (document.all) {
    document.body.style.behavior='url(#default#homepage)';
    document.body.setHomePage('http://www.heute.at');
  } else if (window.sidebar) {
    if(window.netscape) {
      try {  
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
      } catch(e) {  
        alert("Ihr Browser unterstützt diese Option nicht. Um Heute.at zur Startseite zu machen, tragen Sie dies in Ihrem Interneteinstellungen ein");  
      }
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
    prefs.setCharPref('browser.startup.homepage','http://www.heute.at');
 }
}
function bewertung(x) {
  switch(Math.round(x)) {
    case 1 : return 'Langweilig';
    case 2 : return 'Geht so';
    case 3 : return 'Mittelmäßig';
    case 4 : return 'Gut';
    case 5 : return 'Sehr Gut';
    case 6 : return 'Perfekt';
    default: return 'Nicht bewertet';
  }
}
function changeStarRange(x,n) {
  x.parentNode.getElementsByTagName('div')[0].style.width = n+'em';
  x.parentNode.parentNode.getElementsByTagName('p')[0].innerHTML = bewertung(n);
}
