jQuery.fn.hasAttr = function (name) { return this.attr(name) !== undefined; };

var articleHeightFixDone = false;
Cufon.replace('.header h3');
Cufon.replace('.header dl');
Cufon.replace('.header .menu li span.noLink');
Cufon.replace('.header .menu li a', { hover: true });
Cufon.replace('.content .welcome h1');
Cufon.replace('.content .partners .headlineWrap h4');
Cufon.replace('.footer address');
Cufon.replace('.content .article .articleWrap h1');
Cufon.replace('.content .cars .carsWrap h1');
Cufon.replace('div.carDetailsContent h2');

jQuery(function () {
    /* General fixes for IE6 */
    if (jQuery.browser.msie && jQuery.browser.version > 5 && jQuery.browser.version < 7) {
        jQuery(".header .menu li:first-child").addClass("first");
        jQuery(".header .menu li:last-child").width(121);
    }
    /* General fixes for IE7 */
    if (jQuery.browser.msie && jQuery.browser.version > 6 && jQuery.browser.version < 8) {
        jQuery(".header .menu li:last-child").width(121);
    }
    /* General fixes for IE6-8 */
    if (jQuery.browser.msie && jQuery.browser.version > 5 && jQuery.browser.version < 9) {
        jQuery(".header .menu li:last-child").addClass("last");
        jQuery(".content .cycle").prepend('<span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span>');
    }

    /* Frontpage Cycle */
    var cycle = jQuery("div.content > div.cycle > div.cycleWrap");
    var cycleImages = cycle.children("img");
    for (i = 0; i < cycleImages.length; i++) {
        var cycleImage = jQuery(cycleImages[i]);
        if (cycleImage.attr("src") != "") {
            if (cycleImage.attr("src").indexOf("blank.gif") == -1) {
                cycle.append(jQuery("<div>" + cycleImage.attr("alt") + "</div>").addClass("imgSwap").css({
                    'background-image': "url('" + cycleImage.attr("src") + "')"
                }));
            }
        }
        cycleImage.remove();
    }

    /* Article images */
    var articleImages = jQuery(".content .article .articleWrap img");
    articleImages.each(function (index) {
        var articleImage = $(this);
        var link = "";
        if (articleImage.parent().hasAttr("href")) {
            if (articleImage.parent().attr("href") != "") {
                link = articleImage.parent().attr("href");
            }
            articleImage.unwrap();
        }
        if (articleImage.attr("src") != "") {
            if (articleImage.attr("src").indexOf("blank.gif") == -1) {
                var first = "";
                if (i == 0) { first = " first"; }
                var newDiv = jQuery("<div />").addClass("imageWrap enablePIE" + first).append(jQuery('<div title="' + articleImage.attr("alt") + '">' + articleImage.attr("alt") + "</div>").addClass("image enablePIE").css({
                    'background-image': "url('" + articleImage.attr("src") + "')"
                }))
                if (link != "") {
                    newDiv.click(function () {
                        window.open(link);
                    });
                    newDiv.css("cursor", "pointer");
                }
                articleImage.after(newDiv);
                newDiv.prepend(articleImage.css({
                    'display': 'block',
                    'visibility': 'hidden'
                }));
                if (articleImage.height() > 0) {
                    articleHeightFixDone = true
                    newDiv.find("div.image").height(articleImage.height() - 10);
                }
            } else {
                articleImage.remove();
            }
        } else {
            articleImage.remove();
        }
    });

    if (articleHeightFixDone) {
        fixArticleArrows();
    }

    /* Start Cycle */
    var objTheCycle = jQuery("div.content > div.cycle > div.cycleWrap");
    if (objTheCycle.length > 0) {
        objTheCycle.cycle({
            fx: 'fade',
            pager: 'div.content > div.cycle ul',
            pagerAnchorBuilder: function (idx, slide) {
                return '<li></li>';
            }
        });
    }

    /* Fix Email */
    jQuery("a[href*=mailto]").each(function (index) {
        var mailtoLink = jQuery(this);
        mailtoLink.text(mailtoLink.text().replace(/grengrynter_spam/g, ""));
        mailtoLink.attr("href", mailtoLink.attr("href").replace(/grengrynter_spam/g, ""));
    });
    Cufon.replace('.footer address a');

    /* Add PIE for IE6-8 */
    if (jQuery.browser.msie && jQuery.browser.version > 5 && jQuery.browser.version < 9) {
        var article = jQuery("div.content > div.article,div.content div.cars");
        if (article.length > 0) {
            article.addClass("enablePIE");

            /* Renderbug Hack for IE6-8 */
            setTimeout(function () {

                // Check position of css3 container (Sometimes it's wrong in IE7)
                var prev = article.prev();
                if (prev.length > 0) {
                    if (prev[0].tagName.toLowerCase() == 'css3-container') {
                        var articleOffset = article.offset();
                        var prevOffset = prev.offset();
                        if (prevOffset.left != articleOffset.left || prevOffset.top != articleOffset.top) {
                            prev.css({
                                "left": articleOffset.left + "px",
                                "top": articleOffset.top + "px"
                            });
                        }
                    }
                }
            }, 1);
        }
    }
});

jQuery(window).load(function () {
    /* Ajust size of images */
    if (!articleHeightFixDone) {
        var articleImages = jQuery(".content .article .articleWrap img");
        for (i = 0; i < articleImages.length; i++) {
            var articleImage = jQuery(articleImages[i]);
            if (articleImage.attr("src") != "") {
                // Locate wrap div with this image 
                var div = articleImage.parent().find(".image[style*='" + articleImage.attr("src") + "']");
                if (div.length > 0) {
                    div.height(articleImage.height() - 10);
                }
            }
        }
        fixArticleArrows();
    }
});

function fixArticleArrows() {
    /* Arrows for Article images */
    var article = jQuery("div.content > div.article");
    var leftArticleImages = article.find("div.column.left div.articleImages");
    var rightArticleImages = article.find("div.column.right div.articleImages");
    if (leftArticleImages.length > 0) {
        var leftPosition = leftArticleImages.position()
        var imageHeight = leftArticleImages.height() - 15;
        article.prepend(jQuery('<div class="arrowLeft"></div>').css({
            "top": (leftPosition.top + ((imageHeight - 140) / 2)) + "px"
        }));
    }
    if (rightArticleImages.length > 0) {
        var rightPosition = rightArticleImages.position()
        var imageHeight = rightArticleImages.height() - 15;
        article.prepend(jQuery('<div class="arrowRight"></div>').css({
            "top": (rightPosition.top + ((imageHeight - 140) / 2)) + "px"
        }));
    }
}
