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;
}

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 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";
                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 size  = IMAGE_MAX;
    var step = (IMAGE_MIN - size) / IMAGE_TIX;

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

                icon.src = "./fileadmin/templates/img/zoom_in.gif";
                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
        );
}