var changeImageTimeout = null;
var curPoolImage = 0;  	 
function changeImage()
{
    if (changeImageTimeout) clearTimeout(changeImageTimeout);

    var oldEl = document.getElementById(poolImages[curPoolImage]);
    curPoolImage++;
    if(curPoolImage+1 > poolImages.length) curPoolImage = 0;
    var newEl = document.getElementById(poolImages[curPoolImage]);
    if (!newEl) return;
    newEl.style.display = 'none';
    newEl.style.zIndex = 10;
    oldEl.style.zIndex = 0;
    var param = {duration:2};
    new Effect.Appear(newEl, param);
    new Effect.Fade(oldEl, param);
    changeImageTimeout = setTimeout("changeImage()", 8000);
}
function changeImageBack()
{
    if (changeImageTimeout) clearTimeout(changeImageTimeout);

    var oldEl = document.getElementById(poolImages[curPoolImage]);
    curPoolImage--;
    if(curPoolImage < 0) curPoolImage = poolImages.length-1;
    var newEl = document.getElementById(poolImages[curPoolImage]);
    if (!newEl) return;
    newEl.style.display = 'none';
    newEl.style.zIndex = 10;
    oldEl.style.zIndex = 0;
    var param = {duration:2};
    new Effect.Appear(newEl, param);
    new Effect.Fade(oldEl, param);
    changeImageTimeout = setTimeout("changeImage()", 8000);
}

/*
Parts Based on Dynamic Heading Generator By Stewart Rosenberger www.stewartspeak.com

Parts based on code by Dean Edwards/Matthias Miller/John Resig dean.edwards.name

Parts Based on Lightbox by Lokesh Dhakar www.huddletogether.com
Creative Commons Attribution 2.5 License

*/
var imageLoaded = false;
var initDone = false;

document.write('<link id="hide-flicker" rel="stylesheet" media="screen" href="/css/replacement-screen.css" />');
window.flickerCheck = function()
{
    if(!imageLoaded)
        setStyleSheetState('hide-flicker',false);
};
setTimeout('window.flickerCheck();', 1000)

var replaceItems;
replaceSelector("div#homeMenu ul.main a.main","http://images.porschebank.at/heading.php",false);
replaceSelector("h1.homeClaim","http://images.porschebank.at/heading.php",false);
replaceSelector("div.el_headline h1","http://images.porschebank.at/heading.php",false);
replaceSelector("div#mainMenu ul.main li.notActive a.main","http://images.porschebank.at/heading.php",true);
replaceSelector("div#mainMenu ul.main li.active a.main","http://images.porschebank.at/heading.php",false);


var test = new Image();
test.onload = function() {
    imageLoaded = true;
    if(initDone) replacement();
}
test.src = "/files/test.png?date=" + (new Date()).getTime();

function init()
{
    // quit if this function has already been called
    if (initDone) return;

    // flag this function so we don't do the same thing twice
    initDone = true;

    // kill the timer
    if (_timer) clearInterval(_timer);

    activateLargeStyle(false);
    if(readCookie("style")=='large') {
        activateLargeStyle(true);
    }

    //download-links und externe links in neuem fenster öffnen
    //links auf fremde domains per ajax zählen
    var links = document.getElementsByTagName('a');
    for(var i=0;i<links.length;i++) {
        if(links[i].href.substr(location.protocol.length+2, location.hostname.length)!=location.hostname
        && links[i].href.substr(0, 11)!='javascript:') {
            links[i].oldOnClick = (links[i].onclick) ? links[i].onclick : new Function;
            links[i].onclick = function() {
                if(this.rel.indexOf("extern") >= 0 || this.rel.indexOf("download") >= 0) {
                    window.open(this.href);
                    return false;
                } else {
                    return this.oldOnClick();
                }
            }
        } else if (links[i].rel.indexOf("extern") >= 0 || links[i].rel.indexOf("download") >= 0) {
            links[i].oldOnClick = (links[i].onclick) ? links[i].onclick : new Function;
            links[i].onclick = function() {
                window.open(this.href);
                this.oldOnClick();
                return false;
            }
        }
    }

    if(imageLoaded) {
        replacement();
    }
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
        document.addEventListener("DOMContentLoaded", init, false);
}



/* for Safari */
if (/KHTML|WebKit/i.test(navigator.userAgent)) { // sniff
        var _timer = setInterval(function() {
                if (/loaded|complete/.test(document.readyState)) {
                        init(); // call the onload handler
                }
        }, 10);
}

/* for other browsers */
var oldOnLoadBackup = window.onload;
window.onload = function() {
    init();
	if (oldOnLoadBackup) oldOnLoadBackup();
}


function replaceSelector(selector,url,hover)
{
    if(typeof replaceItems == "undefined")
        replaceItems = new Array();

    replaceItems[replaceItems.length] = {selector: selector, url: url, hover: hover};
}


function replacement()
{
    for(var i=0;i<replaceItems.length;i++)
    {
        var elements = getElementsBySelector(replaceItems[i].selector);
        if(elements.length > 0) for(var j=0;j<elements.length;j++)
        {
            if(!elements[j]) continue;

            var element = elements[j];

            var text = extractText(elements[j]);
            text = text.replace(/^\s*|\s*$/g,""); //trim

            while(elements[j].hasChildNodes())
                elements[j].removeChild(elements[j].firstChild);

            var url = replaceItems[i].url + "?text="+encodeURIComponent(text)+"&selector="+escape(replaceItems[i].selector);
            url += '&host='+encodeURIComponent(location.host);

            var image = document.createElement("img");
            image.className = "replacement";
            image.alt = text.replace("[v]","").replace("[>]","").replace("<br/>", " ").replace("<br />", " "); //die pfeile+umbrüche aus dem alttext rausnehmen
            if(elements[j].tagName.toLowerCase()=='button') {W
                //wenn parent ein button ist die breite händisch setzen
                //weil der ie macht ihn um ein paar pixel zu breit
                //+1 weil er sonst beim tollen onmousedown-effekt vom ie abgeschnitten wird
                image.onload = function() {
                    if(this.width > 0) {
                        this.parentNode.style.width = (this.width+1)+'px';
                    }
                }
            }
            elements[j].appendChild(image); //bevor src gesetzt wird!
            image.src = url;

            if(replaceItems[i].hover) {
                elements[j].hoverSrc = url+"&hover";
                var preload = new Image();
                preload.src = elements[j].hoverSrc;
                elements[j].originalSrc = url;
                elements[j].onmouseover = function() {
                    if(this.firstChild.src!=this.hoverSrc)
                        this.firstChild.src = this.hoverSrc;
                }
                elements[j].onmouseout = function() {
                    if(this.firstChild.src!=this.originalSrc)
                        this.firstChild.src = this.originalSrc;
                }
            }
        }
    }

    setStyleSheetState('hide-flicker',false);
}

function setStyleSheetState(id,enabled)
{
    var sheet = document.getElementById(id);
    if(sheet)
        sheet.disabled = (!enabled);
}

function extractText(element)
{
    if(typeof element == "string")
        return element;
    else if(typeof element == "undefined")
        return element;
    //else if(element.innerText) doesn't return brs
    //    return element.innerText;

    var text = "";
    var kids = element.childNodes;
    for(var i=0;i<kids.length;i++)
    {
        if (kids[i].nodeName.toLowerCase()=='br') {
            text += '<br />';
        }
        if(kids[i].nodeType == 1) {
            text += extractText(kids[i]);
        } else if(kids[i].nodeType == 3) {
            text += kids[i].nodeValue;
        }
    }
    return text;
}

/*
    Finds elements on page that match a given CSS selector rule. Some
    complicated rules are not compatible.
    Based on Simon Willison's excellent "getElementsBySelector" function.
    Original code (with comments and description):
        http://simon.incutio.com/archive/2003/03/25/getElementsBySelector
*/
function getElementsBySelector(selector)
{
    var tokens = selector.split(' ');
    var currentContext = new Array(document);
    for(var i=0;i<tokens.length;i++)
    {
        token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');
        if(token.indexOf('#') > -1)
        {
            var bits = token.split('#');
            var tagName = bits[0];
            var id = bits[1];
            var element = document.getElementById(id);
            if(!element || (tagName && element.nodeName.toLowerCase() != tagName))
                return new Array();
            currentContext = new Array(element);
            continue;
        }

        if(token.indexOf('.') > -1)
        {
            var bits = token.split('.');
            var tagName = bits[0];
            var className = bits[1];
            if(!tagName)
                tagName = '*';

            var found = new Array;
            var foundCount = 0;
            for(var h=0;h<currentContext.length;h++)
            {
                var elements;
                if(tagName == '*')
                    elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                else
                    elements = currentContext[h].getElementsByTagName(tagName);

                for(var j=0;j<elements.length;j++)
                    found[foundCount++] = elements[j];
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            for(var k=0;k<found.length;k++)
            {
                if(found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b')))
                    currentContext[currentContextIndex++] = found[k];
            }

            continue;
        }

        if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/))
        {
            var tagName = RegExp.$1;
            var attrName = RegExp.$2;
            var attrOperator = RegExp.$3;
            var attrValue = RegExp.$4;
            if(!tagName)
                tagName = '*';

            var found = new Array;
            var foundCount = 0;
            for(var h=0;h<currentContext.length;h++)
            {
                var elements;
                if(tagName == '*')
                    elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                else
                    elements = currentContext[h].getElementsByTagName(tagName);

                for(var j=0;j<elements.length;j++)
                    found[foundCount++] = elements[j];
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            var checkFunction;
            switch(attrOperator)
            {
                case '=':
                    checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
                    break;
                case '~':
                    checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
                    break;
                case '|':
                    checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
                    break;
                case '^':
                    checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
                    break;
                case '$':
                    checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
                    break;
                case '*':
                    checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
                    break;
                default :
                    checkFunction = function(e) { return e.getAttribute(attrName); };
            }

            currentContext = new Array;
            var currentContextIndex = 0;
            for(var k=0;k<found.length;k++)
            {
                if(checkFunction(found[k]))
                    currentContext[currentContextIndex++] = found[k];
            }

            continue;
        }

        tagName = token;
        var found = new Array;
        var foundCount = 0;
        for(var h=0;h<currentContext.length;h++)
        {
            var elements = currentContext[h].getElementsByTagName(tagName);
            for(var j=0;j<elements.length; j++)
                found[foundCount++] = elements[j];
        }

        currentContext = found;
    }

    return currentContext;
}



function showLexikon(a)
{
    var req = loadXMLHttpRequest();
    if(!req) return(true);

    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    

    var div = createPopup();
    if(!div) return(true);


    div.className = 'lexikonAnsicht';

  req.onreadystatechange = function callBack()
  {
    if(req.readyState == 4)
    {
      if(req.status == 200)
      {
        divContent = document.createElement('div');
        divContent.innerHTML = req.responseText;
        div.appendChild(divContent);

        var height = 400;
        var width = 600;
        if(div.offsetHeight) height = div.offsetHeight;

        var y = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2);
        var x = ((arrayPageSize[0] - 20 - width) / 2);
        div.style.top = y + "px";
        div.style.left = x + "px";

        div.style.visibility = '';

        divLoading.parentNode.removeChild(divLoading);
        divLoading = null;

      }
      else
      {
        alert('An error has occurred: ' + req.statusText);
      }
    }
  };
  req.open('GET', a.href, true);
  req.send(null);

  return false;
}


function showTipp(a)
{
    var req = loadXMLHttpRequest();
    if(!req) return(true);

    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    

    var div = createPopup();
    if(!div) return(true);


    div.className = 'tippAnsicht';

  req.onreadystatechange = function callBack()
  {
    if(req.readyState == 4)
    {
      if(req.status == 200)
      {
        divContent = document.createElement('div');
        divContent.innerHTML = req.responseText;
        div.appendChild(divContent);

        var height = 400;
        var width = 600;
        if(div.offsetHeight) height = div.offsetHeight;

        var y = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2);
        var x = ((arrayPageSize[0] - 20 - width) / 2);
        div.style.top = y + "px";
        div.style.left = x + "px";

        div.style.visibility = '';

        divLoading.parentNode.removeChild(divLoading);
        divLoading = null;

      }
      else
      {
        alert('An error has occurred: ' + req.statusText);
      }
    }
  };
  req.open('GET', a.href, true);
  req.send(null);

  return false;
}

//wird verwendet fuer link auf home stage um specialsites/homestage_leasing zu öffnen
function showLeasingRechner()
{
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    var div = createPopup();
    divLoading.parentNode.removeChild(divLoading);
    divLoading = null;

    div.className = 'tippAnsicht';

    divContent = document.createElement('div');
    div.appendChild(divContent);

    var height = 440;
    var width = 585;

    var y = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2);
    var x = ((arrayPageSize[0] - 20 - width) / 2);
    div.style.top = y + "px";
    div.style.left = x + "px";
    div.style.height = height + "px";
    div.style.width = width + "px";
    var container = document.createElement('div');
    container.id = 'homeStageLeasingRechnerContainer';
    div.appendChild(container);

    var so = new SWFObject('/specialsites/homestage_leasing/porsche_leasing.swf', "homeStageLeasingRechner", width, height, "9", "#ffffff");
    so.addParam("wmode", "transparent");
    so.addVariable('configUrl', "/specialsites/homestage_leasing/config.php");
    so.write(container.id);

    div.style.visibility = '';

}

function loadXMLHttpRequest() {
    var pageRequest = false;
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            pageRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                pageRequest = false;
            }
        }
    @end
    @*/

    return pageRequest;
}

function createCookie(name,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 = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}


function activateLargeStyle(activate) {
    if(document.getElementById) {
        if (typeof activate == 'undefined') {
            activate = document.getElementById('largeStyleSheet').disabled;
        }
        document.getElementById('largeStyleSheet').disabled = !activate;
    }
}

window.onunload = function(e) {
    var style = ''
    if(!document.getElementById('largeStyleSheet').disabled) {
        style = 'large';
    }
    if(readCookie("style")!=style){
		createCookie("style", style, 365);
	}
}

function createPopup()
{

    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    closePopup();

    divOverlay = document.createElement("div");
    divOverlay.setAttribute('id','overlay');
    divOverlay.onclick = function () {closePopup(); return false;}
    divOverlay.style.height = (arrayPageSize[1] + 'px');
    document.body.insertBefore(divOverlay, document.body.firstChild);

    var div = document.createElement('div');
    if(!div) return false;

    var aClose = document.createElement('a');
    var imgClose = document.createElement('img')
    imgClose.src = "http://www.porschebank.hu/files/allgemein/reDesign/close.gif";
    imgClose.height = imgClose.width = 15;
    aClose.appendChild(imgClose);
    aClose.href = "javascript:closePopup()";
    aClose.className = "close";
    div.appendChild(aClose);

    div.style.visibility = 'hidden'; //erst verstecken um die höhe berechnen zu können

    document.body.appendChild(div);
    divPopup = div;


    divLoading = document.createElement('div');
    divLoading.id = 'popupLoading';
    imgLoading = document.createElement('img');
    imgLoading.src = e2LoadingImage.src;
    divLoading.appendChild(imgLoading);
    
    var height = 100;
    var width = 100;

    var y = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2);
    var x = ((arrayPageSize[0] - 20 - width) / 2);
    divLoading.style.top = y + "px";
    divLoading.style.left = x + "px";
    divLoading.style.height = height + "px";
    divLoading.style.width = width + "px";


    document.body.appendChild(divLoading);

    return div;
}
