var currentClass = "artikelMeldung";

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {

        var all, result = [];

        if (document.all) {
            all = document.all;
        } else if (document.getElementsByTagName) {
            all = document.getElementsByTagName("*");
        }
        for(var i=0; i<all.length; i++) {
            if (all[i].className.match(new RegExp("([\\s]+|^)"+className+"([\\s]+|$)"))) {
                result.push(all[i]);
            }
        }
        return result;
    }
}

function resizeFont(amount) {

    var lastClass = currentClass;

    if (amount > 0) {
        switch (currentClass) {
            case "artikelMeldung":
                currentClass = "artikelMeldung1";
                document.getElementById("fontMinus").src = "./fileadmin/templates/img/minus2.gif";
                break;
            case "artikelMeldung1":
                currentClass = "artikelMeldung2";
                document.getElementById("fontMinus").src = "./fileadmin/templates/img/minus2.gif";
                document.getElementById("fontPlus").src = "./fileadmin/templates/img/plus1.gif";
                break;
            case "artikelMeldung2":
                return;
        }
    }

    if (amount < 0) {
        switch (currentClass) {
            case "artikelMeldung2":
                currentClass = "artikelMeldung1";
                document.getElementById("fontPlus").src = "./fileadmin/templates/img/plus2.gif";
                break;
            case "artikelMeldung1":
                currentClass = "artikelMeldung";
                document.getElementById("fontMinus").src = "./fileadmin/templates/img/minus1.gif";
                document.getElementById("fontPlus").src = "./fileadmin/templates/img/plus2.gif";
                break;

            case "artikelMeldung":
                return;
        }
    }

    while (true) {
        if (!document.getElementsByClassName(lastClass) || document.getElementsByClassName(lastClass).length == 0) {
            break;
        }

        document.getElementsByClassName(lastClass)[0].className = currentClass;
    }
}

function clearImages() {
    clearImagesRec(document.getElementsByTagName("body")[0]);
}

function clearImagesRec(parent) {
    if (parent.childNodes.length > 0) {
        for (var i=0; i<parent.childNodes.length; i++) {
            clearImagesRec(parent.childNodes[i]);
        }
    } else {
        if (parent.nodeName == "IMG") {
            parent.style.display = "none";
        }
    }
}

function swap(hide, show) {
    document.getElementById(hide).style.display='none';
    document.getElementById(show).style.display='block';
}

function vote_do(aid) {
    var url = URL_TO_TYPO3+"typo3conf/ext/weka_articles/xhr/vote.php?aid="+aid;
    xhr_get(url);
}

function voted(response) {
    var aid = response.aid;
    if (!aid) {
        return;
    }
    document.getElementById("vote_btn_"+aid).className = "vote_tnx";
    document.getElementById("vote_info_"+aid).innerHTML = response.count;
}


var IMAGE_MAX  = 568;
var IMAGE_MIN  = 170;
var IMAGE_TIX  = 20;
var IMAGE_TIME = 100;
var IMAGE_INTERVAL = Math.round(IMAGE_TIME / IMAGE_TIX);

function image_zoom(id) {
    var img = document.getElementById(id);
    //        alert(img.zoom_blocked);

    if (img.zoom_blocked) {
        return;
    }
    img.zoom_blocked = true;

    if (!img.zoom_state) {
        img.zoom_state = false;
    }
    if (!img.zoom_state) {
        image_enlarge(id);
    } else {
        image_shrink(id);
    }
    img.zoom_state = img.zoom_state == false;
}


//baut die ganzen divs und andere Elemente, weil der IE das so braucht
function image_xxl(id) {
	var caption = document.getElementById(id+'_caption'); //das umschließende Div liefert die Position
	var pos = caption.offsetTop;

	//Body bekommt z-index
	var objBody = document.getElementsByTagName('body').item(0);
	objBody.style.zIndex = '4909';

	// das overlay für die halbtransparente Abdeckung
	var objOverlay = document.createElement('div');
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '999'; //muss so hoch sein, weil Werbebanner bei 998 liegt
	winWidth = document.getElementById('allover').offsetWidth+182; //für die Position des Overlays: Weite
 	objOverlay.style.width = '100%';
 	winHeight = document.getElementById('allover').offsetHeight+300; //für die Position des Overlays: Höhe
 	objOverlay.style.height = winHeight+'px';
 	objOverlay.style.backgroundColor = '#0f2b46';
 	objOverlay.style.opacity = '.70'; //für alle Nicht-IE-Browser
 	objOverlay.style.filter = 'alpha(opacity = 70)'; //für IE
	objOverlay.style.display = 'block';
	objBody.insertBefore(objOverlay, objBody.firstChild); //objOverlay wird gleich nach dem Body eingehängt

	// das Div, wo close-icon, xxl image und Text erscheinen
	var xxlAllDiv = document.createElement('div');
	xxlAllDiv.setAttribute('id','xxlAllDiv');
	xxlAllDiv.style.backgroundColor = '#ffffff';
	xxlAllDiv.style.position = 'relative';
	xxlAllDiv.style.width = 885+'px';
	xxlAllDiv.style.height = 870+'px';
	xxlAllDiv.style.display = 'block';
	xxlAllDiv.style.zIndex = '1000'; //muss so hoch sein, weil Werbebanner bei 998 liegt
	//der dämliche IE braucht eine Extrabehandlung der Position
	if ((navigator.appName == 'Microsoft Internet Explorer')&&((navigator.appVersion.indexOf('MSIE 6.0') != -1)||(navigator.appVersion.indexOf('MSIE 7.0') != -1)))
		pos = pos+500; //pos kommt von caption => siehe oben
	else
		pos = pos-500;
	xxlAllDiv.style.top = (pos)+'px';
	xxlAllDiv.style.left = 10+'px';
	objBody.insertBefore(xxlAllDiv, objOverlay.nextSibling);

	//oberes Kastl mit dem Close-Icon
	var objTopDiv = document.createElement('div');
	objTopDiv.setAttribute('class','cr_image_outer_caption_xxl');
	objTopDiv.style.width = '885px';
	objTopDiv.style.height = '25px';
	objTopDiv.style.backgroundColor = '#F2F5F7';
	objTopDiv.style.border = '1px solid #C6D4E1';
	objTopDiv.style.position = 'relative';
	objTopDiv.style.top = 0+'px';
	objTopDiv.style.left = 0+'px';
	xxlAllDiv.appendChild(objTopDiv);

	// Text "Schliessen"
	var closeTxt = document.getElementById(id+'_xxl__close_txt');
	closeTxt.style.display = 'block';
	closeTxt.style.fontSize = '10px';
	closeTxt.style.paddingRight = '20px';
	closeTxt.style.paddingTop = '5px';
	closeTxt.style.textAlign = 'right';
	closeTxt.style.cursor = 'pointer';
	objTopDiv.appendChild(closeTxt);

	//das close image sichtbar machen
	var imgxxlclose = document.getElementById(id+'_xxl_close_ico');
	imgxxlclose.style.display = 'block';
	imgxxlclose.style.position = 'absolute';
	imgxxlclose.style.top = 8+'px';
	imgxxlclose.style.left = 870+'px';
	imgxxlclose.style.textAlign = 'right';
	imgxxlclose.style.cursor = 'pointer';
	xxlAllDiv.appendChild(imgxxlclose);

	//das Div mit den XXL Inhalten
	var objLightbox = document.createElement('div');
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'block';
	objLightbox.style.position = 'absolute';
	objLightbox.style.width = 500+'px';
	objLightbox.style.height = 500+'px';
	objLightbox.style.border = '1px solid #C6D4E1';
	xxlAllDiv.appendChild(objLightbox);

	//das XXL Image
	var xxlImage = document.createElement('img');
	xxlImage.setAttribute('id','loadingImage');
	xxlImage.src = document.getElementById(id+'_xxl').src;
	xxlImage.onclick = function () {image_xxl_close(id); return false;}
	xxlImage.style.position = 'relative';
	xxlImage.style.border = '1px solid #000000';
	xxlImage.style.width = 885+'px';
	xxlImage.style.height = 823+'px';
	objLightbox.appendChild(xxlImage);

	//Div für die Textinhalte
	var xxlDiv = document.createElement('div');
	xxlDiv.setAttribute('id','xxlTable');
	xxlDiv.setAttribute('class','cr_image_outer_caption_xxl');
	xxlDiv.style.backgroundColor = '#F2F5F7';
	xxlDiv.style.border = '1px solid #C6D4E1';
	xxlDiv.style.width = 885+'px';
	xxlDiv.style.height = 55+'px';
	xxlDiv.style.zIndex = '150';
	xxlDiv.style.position = 'relative';
	xxlDiv.style.top = 825+'px';
	xxlDiv.style.left = 0+'px';
	xxlAllDiv.appendChild(xxlDiv)

	//Div für Reference
	var referenceDiv = document.createElement('div');
	referenceDiv.style.color = '#909090';
	referenceDiv.style.fontSize = 10+'px';
	referenceDiv.style.paddingLeft = 3+'px';
	xxlDiv.appendChild(referenceDiv);
	// Text wird nur eingefügt, wenn es ihn gibt
	if (document.getElementById(id+'_reference').firstChild) {
		var contentReference = document.createTextNode(document.getElementById(id+'_reference').firstChild.nodeValue);
		referenceDiv.appendChild(contentReference);
	}

	//Div für Legend
	var legendDiv = document.createElement('div');
	legendDiv.style.fontSize = 10+'px';
	legendDiv.style.position = 'relative';
	legendDiv.style.paddingLeft = 3+'px';
	legendDiv.style.top = 18+'px';
	xxlDiv.appendChild(legendDiv);
	// Text wird nur eingefügt, wenn es ihn gibt
	if (document.getElementById(id+'_legend').firstChild) {
		var content_legend = document.createTextNode(document.getElementById(id+'_legend').firstChild.nodeValue);
		legendDiv.appendChild(content_legend);
	}

	//rote Minus-Lupe unter dem Bild zum Schließen
	var imgxxlclose2 = document.createElement('img');
	imgxxlclose2.src = './fileadmin/templates/img/zoom_out.gif';
	imgxxlclose2.onclick = function () {image_xxl_close(id); return false;}
	imgxxlclose2.style.display = 'block';
	imgxxlclose2.style.position = 'absolute';
	imgxxlclose2.style.top = 8+'px';
	imgxxlclose2.style.left = 865+'px';
	imgxxlclose2.style.textAlign = 'right';
	imgxxlclose2.style.cursor = 'pointer';
	xxlDiv.appendChild(imgxxlclose2);
}


function image_xxl_close(id) {
	document.getElementById('xxlAllDiv').style.display = 'none';
	document.getElementById('overlay').style.display = 'none';
}


function image_enlarge(id) {
    var img 			= document.getElementById(id);
    var img_swap 	= document.getElementById(id+"_tall");
    var caption  	= document.getElementById(id+"_caption");
    var icon     	= document.getElementById(id+"_ico");
    var imgxxl 			= document.getElementById(id+"_xxl");
    var imgxxl_icon = document.getElementById(id+"_xxl_ico");
    var imgxxl_txt 	= document.getElementById(id+"_xxl_txt");
    var container 	= document.getElementById(id+"_container");

    var size = IMAGE_MIN;
    var step = (IMAGE_MAX - size) / IMAGE_TIX;

    var interval = window.setInterval(
        function () {
            if (size >= IMAGE_MAX) {
                window.clearInterval(interval);
                img.src          = img_swap.src;
                img.zoom_blocked = false;
                size             = IMAGE_MAX;

                icon.src = "./fileadmin/templates/img/zoom_out.gif";
								//container.style.width = 568+'px';
								if (imgxxl) {
									if (imgxxl.name == "1") {
										icon.style.position = "absolute";
										icon.style.left = 470+"px";
										imgxxl_txt.style.display = "inline";
										imgxxl_txt.style.position = "absolute";
										imgxxl_txt.style.left = 500+"px";
										imgxxl_txt.style.top = 2+"px";
										imgxxl_txt.style.fontSize = 10+'px';
										imgxxl_txt.style.cursor = 'pointer';
										imgxxl_icon.style.display = "inline";
										imgxxl_icon.style.position = "absolute";
										imgxxl_icon.style.left = 540+'px';
										imgxxl_icon.style.top = 2+"px";
										imgxxl_icon.style.cursor = 'pointer';
									} else {
										icon.style.position = "absolute";
										icon.style.left = 540+"px";
									}
								}
                return;
            }
            size = Math.round(size + step);
            img.style.width = size+"px";
            caption.style.width = size+"px";
        },
        IMAGE_INTERVAL);
}

function image_shrink(id) {
    var img = document.getElementById(id);
    var img_swap = document.getElementById(id+"_tiny");
    var caption  = document.getElementById(id+"_caption");
    var icon     = document.getElementById(id+"_ico");
    var imgxxl_icon = document.getElementById(id+"_xxl_ico");
    var imgxxl_txt = document.getElementById(id+"_xxl_txt");
		var container 	= document.getElementById(id+"_container");

    var size  = IMAGE_MAX;
    var step = (IMAGE_MIN - size) / IMAGE_TIX;

    var interval = window.setInterval(
        function () {
            if (size <= IMAGE_MIN) {
                window.clearInterval(interval);
								if (imgxxl_icon) {
									imgxxl_icon.style.display = 'none';
									imgxxl_txt.style.display = 'none';
								}
                img.src          = img_swap.src;
                img.zoom_blocked = false;
                size = IMAGE_MIN;
                icon.src = "./fileadmin/templates/img/zoom_in.gif";
                icon.style.position = 'absolute';
                icon.style.left = 145+'px';
								//container.style.width = 170+'px';
								//container.style.height = 270+'px';
                return;
            }
            size = Math.round(size + step);
            img.style.width = size+"px";
            caption.style.width = size+"px";
        },
        IMAGE_INTERVAL);
}




var TABS = ["last", "top", "best"];

function tabs_switch(id) {

    var last = null;
    var next = document.getElementById("content_"+id);
    for (var i=0; i<TABS.length; i++) {
        if (document.getElementById("tab_"+TABS[i]).className == "tab_current") {
            last = document.getElementById("content_"+TABS[i]);
            break;
        }
    }

    if (last == next) {
        return;
    }


    document.getElementById("tab_"+id).className="tab_current";
    document.getElementById("tab_"+TABS[i]).className="tab_not_current";

    last.style.display = "none";
    next.style.display = "block";

//    fadeout(last);
//    fadein(next);

}

function fadeout(object) {

    if (object.fadein != null) {
        return;
    }
    if (object.fadeout) {
        clearInterval(object.fadeout);
        object.fadeout = null;
    }

    object.alpha = 1;
    object.style.display = "block";
    object.style.position = "absolute";

    object.fadein = window.setInterval(
        function () {
            object.alpha *= 0.7;

            if (object.alpha < 0.1) {
                object.alpha = 0;
                clearInterval(object.fadein);
                object.fadein = null;
                object.style.display = "none";
                object.style.position = "relative";
            }
            object.style.filter = "alpha(opacity="+(object.alpha*100)+")";
            object.style.opacity = object.alpha;

        }, 20
        );

}

function fadein(object) {

    if (object.fadeout != null) {
        return;
    }
    if (object.fadein) {
        clearInterval(object.fadein);
        object.fadein = null;
    }

    object.alpha = 0.1;
    object.style.display = "block";
    object.style.position = "absolute";


    object.fadeout = window.setInterval(
        function () {
            object.alpha *= 1.5;
            if (object.alpha > 1) {
                object.alpha = 1;
                clearInterval(object.fadeout);
                object.fadeout = null;
                object.style.position = "relative";
            }
            object.style.opacity = object.alpha;
            object.style.filter = "alpha(opacity="+(object.alpha*100)+")";
        }, 40
        );
}
