﻿function recordOutboundLink(link, label, category) {
    //alert('recording outboud link for : ' + link + label + category);
    //_gat._getTrackerByName()._trackEvent(category, link.href, label);
    _gaq.push(['_trackEvent', category, label, link]);
    setTimeout('', 100);
}

function recordOutboundLinkWithLabelAndCategory(label, category) {
    var currentURL = jQuery(location).attr('href');

    if (currentURL.indexOf(".ch") != -1) {
        recordOutboundLink(currentURL, label, category)
    }
}


jQuery.noConflict();

window.inputValues = {};
var currentNewsletterForm = null;



jQuery(document).ready(function () {

    jQuery(".showJS").show();
    jQuery(".hideJS").hide();

    /*** CSS3 compatibility ***/
    jQuery("table tr:first-child").addClass("first");
    jQuery("table tr:last-child").addClass("last");
    jQuery("table tr:nth-child(even)").addClass("even");
    jQuery("table tr:nth-child(odd)").addClass("odd");
    jQuery("table td:first-child").addClass("first");
    jQuery("table td:last-child").addClass("last");
    jQuery("table tr td:nth-child(even)").addClass("even");
    jQuery("table tr td:nth-child(odd)").addClass("odd");

    /* remove unused captcha buttons */
    jQuery(".scfCaptchaLimitGeneralPanel .even input").hide();

    /*** RATING ***/
    // init rating
    jQuery(".rating").stars({
        oneVoteOnly: true,
        callback: function (ui, type, value) {
            jQuery.getJSON("/Ajax.aspx?do=newsrating&id=" + ui.element[0].id + "&value=" + value,
            function (data) {
                // counted
            });
        }
    }).show();

    jQuery('ul#gallerycarousel').jcarousel({
        visible: 3,
        itemFallbackDimension: '100px'
    });

    jQuery('ul#gallerycarouselArtilceDetail').jcarousel({
        visible: 3,
        itemFallbackDimension: '150px',
        buttonNextHTML: null,
        buttonPrevHTML: null
    });


    /*** PRINT ***/
    jQuery("a.print").click(function () {
        recordOutboundLinkWithLabelAndCategory('article print', 'article print');
        window.print();
        return false;
    });

    jQuery("div.jobList > div.jobItem > div.more > a").click(function () {
        recordOutboundLinkWithLabelAndCategory('cop_jobs', 'overview');
    });

    jQuery("a.jobsLinkClassForGATracking").click(function () {
        recordOutboundLinkWithLabelAndCategory('cop_jobs', 'teaser');
        return true;
    });

    jQuery("a.partnerFeedLinkClassForGATracking").click(function () {
        var currentSite = document.location.host.toLowerCase();
        var label;

        if (currentSite.indexOf(".it-markt.") >= 0) {
            label = 'itm_channelrss';
        }
        else if (currentSite.indexOf(".ictjournal.") >= 0) {
            label = 'ict_channelrss';
        }
        else {
            label = 'nw_channelrss';
        }

        recordOutboundLinkWithLabelAndCategory(label, 'teaser');
        return true;
    });

    jQuery("a.ePaperTrackableDownloadLink").click(function () {

        var currentURL = jQuery(location).attr('href');
        
        if (currentURL.indexOf(".ch") != -1) {
            recordOutboundLink(jQuery(this).attr('href'), 'epaper_filename', 'epaper')
            setTimeout('', 100);
        }

        return true;
    });



    /*** SLIDE DOWN BOXES ***/
    // position the slide down boxes in the navigation
    jQuery(".navSlideBox").css("top", jQuery("#navTop").offset().top - 1).css("left", jQuery("#navTop").offset().left + 630);

    /*jQuery("a#nav_login, #loginLink").click(function()
    {
    var loginBox = jQuery("#loginBox");
    jQuery(".navSlideBox").not(loginBox).hide();
    loginBox.slideToggle();
    return false;
    });
	
    jQuery("a#nav_search, #searchLink").click(function()
    {
    var searchBox = jQuery("#searchBox");
    jQuery(".navSlideBox").not(searchBox).hide();
    searchBox.slideToggle();
    return false;
    });
    */


    /*** SEARCH BOX ***/

    jQuery("#searchBox").keypress(function (event) {
        if (event.keyCode == '13') {
            redirSearch();
            return false;
        }
    });
    jQuery("#searchButton").click(function () {
        redirSearch();
        return false;
    });


    function redirSearch() {
        window.location = "/Functions/Search.aspx?q=" + encodeURIComponent(jQuery("#searchBoxInput").val());
    }



    /*** FORMS ***/

    jQuery("input.autoClear").focus(function () {
        if (!jQuery(this).is(".cleared") && jQuery(this).attr('id') && jQuery(this).attr('id').length > 0) {
            window.inputValues[jQuery(this).attr('id')] = jQuery(this).val();
            jQuery(this).val('');
            jQuery(this).addClass("cleared");
        }
    });

    jQuery("input.autoClear.cleared").live("blur", function () {
        if (jQuery(this).val().length == 0) {
            jQuery(this).val(window.inputValues[jQuery(this).attr('id')]);
            jQuery(this).removeClass("cleared");
        }
    });




    /*** VALIDATION ***/

    jQuery("#mainform").validate();


    /*** NEWSLETTER LIST ***/
    var nnlClassName = "";
    while (jQuery(".newsletterList div:not(.wrapped):not(.holder)").length > 0) {
        nnlClassName = jQuery(".newsletterList div:not(.wrapped):not(.holder)").first().attr("class");
        jQuery(".newsletterList div." + nnlClassName + ":not(.wrapped)").addClass("wrapped").wrapAll('<div title="' + nnlClassName + '" class="holder holder_' + nnlClassName + '" />');
    }

    var nnlDate = new Date();
    jQuery(".newsletterList .holder").each(function () {
        jQuery("<h2><a>" + jQuery(this).attr('title') + "</a></h2>").insertBefore(this);
        if (jQuery(this).attr('title') != nnlDate.getFullYear()) {
            jQuery(this).hide();
        }

    });

    jQuery(".newsletterList h2 a").click(function () {
        jQuery(this).parent().next("div.holder").slideToggle();
    });

    /*** E-Paper LIST ***/
    var eplClassName = "";
    while (jQuery(".epaperList div:not(.wrapped):not(.holder)").length > 0) {
        eplClassName = jQuery(".epaperList div:not(.wrapped):not(.holder)").first().attr("class");
        jQuery(".epaperList div." + eplClassName + ":not(.wrapped)").addClass("wrapped").wrapAll('<div title="' + eplClassName + '" class="holder holder_' + eplClassName + '" />');
    }

    var eplDate = new Date();
    jQuery(".epaperList .holder").each(function () {
        jQuery("<h2><a>" + jQuery(this).attr('title') + "</a></h2>").insertBefore(this);
        if (jQuery(this).attr('title') != eplDate.getFullYear()) {
            jQuery(this).hide();
        }

    });

    jQuery(".epaperList h2 a").click(function () {
        jQuery(this).parent().next("div.holder").slideToggle();
    });

    /*** FANCYBOX ***/

    jQuery("img.lightbox").each(function () {
		if (jQuery(this).attr("src") != undefined) {
        jQuery(this).wrap("<a class=\"lightboxImage\" title=\"" + jQuery(this).attr("alt") + "\" href=\"" + jQuery(this).attr("src").replace(new RegExp("\\bmw=[^&;]+[&;]?", "gi"), "").replace(new RegExp("\\bmh=[^&;]+[&;]?", "gi"), "").replace(new RegExp("\\bh=[^&;]+[&;]?", "gi"), "").replace(new RegExp("\\bw=[^&;]+[&;]?", "gi"), "") + "?&mh=1200&mw=1600\" />");
		}
	});
    jQuery("a.lightboxImage").fancybox({ 'type': 'image', 'titlePosition': 'inside' });

    jQuery("a.gallerylightbox.image").fancybox({ 'type': 'image' });
    jQuery("a.gallerylightbox.swf").fancybox({ 'type': 'swf' });
    jQuery("a.gallerylightbox.flv").fancybox({ 'type': 'iframe' });
    jQuery("a.gallerylightbox.youtube").fancybox({
        'padding': 0,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'width': 680,
        'height': 495,
        'type': 'swf',
        'swf': {
            'wmode': 'transparent',
            'allowfullscreen': 'true'
        }
    });

    /*** FILTER DROPDOWN ***/

    jQuery(".filterDropdown").each(function () {
        jQuery(this).show();
        jQuery(this).children("select").change(function () {
            var newHref = window.location.href.replace(new RegExp("\\btag=[^&;]+[&;]?", "gi"), "");
            if (newHref.indexOf("?") > 0 && jQuery(this).val() != "") {
                newHref += "&tag=" + escape(jQuery(this).val());
            }
            else if (jQuery(this).val() != "") {
                newHref += "?tag=" + escape(jQuery(this).val());
            }
            newHref = newHref.replace(/\&\&/g, "&")
            window.location.href = newHref;
        });
    });

    if (document.location.host.indexOf(".it-markt.") >= 0) {
        jQuery(".filterDropdown").css("position", "absolute").css("top", (jQuery("#content").offset().top + 28) + "px").css("left", "407px");
    }
    else {
        jQuery(".filterDropdown").css("position", "absolute").css("top", (jQuery("#content").offset().top + 8) + "px").css("left", "407px");
    }

    /**** Action Text ***/
    jQuery(".showActionText").bind("click",
    function () {
        var str = jQuery(this).attr("actionText");
        if (str) {
            jQuery(this).addClass("action");
            jQuery(this).val(str);
        }
    });

    /**** Drop down navigation ***/
    jQuery('#jsddm > li').bind('mouseover', jsddm_open)
    jQuery('#jsddm > li').bind('mouseout', jsddm_timer)

    /*** Datepicker ***/
    jQuery(".datepicker").datepicker({
        dateFormat: "dd.mm.yy",
        showOn: "both",
        buttonImage: "/images/icon_calendar.png",
        buttonImageOnly: true,
        firstDay: 1
    });

    jQuery(".javascripthide").hide();


    jQuery("a.showTellAFriend, a.function.send").click(function () {
        if (jQuery(".tellAFriendHolder").is(":hidden")) {
            jQuery(".tellAFriendHolder").slideToggle();
            var newLocation = document.location.toString().substr(0, document.location.toString().indexOf("#")) + "#tellafriend";
            document.location = newLocation;
        }

        var inputs = jQuery(".tellAFriendHolder").find("input[type!='hidden']");
        if (inputs.length > 0) {
            inputs.get(0).focus();
        }
        return false;
    });

    jQuery("#teaserHolder .scOMSButtons a:hidden").parent().hide();

    // handle newsletter forms
    jQuery(".newsletterSubscribe").click(function () {
        currentNewsletterForm = jQuery(this).closest(".newsletterForm");
        var email = jQuery(".newsletterEmail", currentNewsletterForm).val();
        var newsletterKey = jQuery(".newsletterKey", currentNewsletterForm).val();
        var newsletterType = jQuery(".newsletterType", currentNewsletterForm).val();
        if (email != "") {
            jQuery.getJSON("/Ajax.aspx", { 'do': 'newsletter', 'email': email, 'newsletter': newsletterKey, 'newsletterType': newsletterType, 'action': 'add' }, function (data) {
                if (data.status == "error") {
                    jQuery(".newsletterMsg", currentNewsletterForm).hide();
                    jQuery(".newsletterErrorMsgSub", currentNewsletterForm).show();
                }
                else {
                    jQuery(currentNewsletterForm).children().hide();
                    jQuery(".newsletterSuccessMsgSub", currentNewsletterForm).show();
                }
            });
        }
        return false;
    });

    jQuery(".newsletterUnsubscribe").click(function () {
        currentNewsletterForm = jQuery(this).closest(".newsletterForm");
        var email = jQuery(".newsletterEmail", currentNewsletterForm).val();
        var newsletterKey = jQuery(".newsletterKey", currentNewsletterForm).val();
        if (email != "") {
            jQuery.getJSON("/Ajax.aspx", { 'do': 'newsletter', 'email': email, 'newsletter': newsletterKey, 'action': 'remove' }, function (data) {
                if (data.status == "error") {
                    jQuery(".newsletterMsg", currentNewsletterForm).hide();
                    jQuery(".newsletterErrorMsgUnsub", currentNewsletterForm).show();
                }
                else {
                    jQuery(currentNewsletterForm).children().hide();
                    jQuery(".newsletterSuccessMsgUnsub", currentNewsletterForm).show();
                }
            });
        }
        return false;
    });


});


/**** Drop down navigation ***/
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open() {
    jsddm_canceltimer();
    jsddm_close();
    ddmenuitem = jQuery(this).find('ul').css('visibility', 'visible');
}

function jsddm_close() {
    if (ddmenuitem)
        ddmenuitem.css('visibility', 'hidden');
}

function jsddm_timer() {
    closetimer = window.setTimeout(jsddm_close, timeout);
}

function jsddm_canceltimer() {
    if (closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}

/******************************************************** edit mode */

jQuery(document).ready(function () {
    if (jQuery.browser.msie && jQuery.browser.version.indexOf("7") == 0) window.setTimeout("initEditStart()", 1000);
    else initEditStart();
});

function initEditStart() {
    window.setTimeout("unlockUI()", 2000);
    if (jQuery(".editingOptions").length > 0 && editFrameInSite()) {
        initEditWaiter();
    }
    else if (jQuery(".editingOptions").length > 0) {
        activateEditStart();
    }
}

function initEditWaiter() {
    if (editFrameAvailable()) {
        initEdit();
    }
    else {
        window.setTimeout("initEditWaiter()", 500);
    }
}

function initEdit() {

    if (jQuery.cookie("nm_sceditingstatus") == "startediting" || document.location.href.indexOf("#editstart") != -1) {
        jQuery.cookie("nm_sceditingstatus", "editing", { path: '/', expires: 1 });
        editStart();
    }

    if (document.location.href.indexOf("#editstart") == -1 && qs('id') != "") {
        document.location.href += "#" + qs('id');
    }

    if (isInEditMode()) {
        activateEditStop();
        jQuery("a").click(function () {
            return confirm(jQuery("#pleasesavefirst").text());
        });
    }
    else {
        activateEditStart();
    }
}

function activateEditStop() {

    jQuery(".scLooseFrameZone").css("position", "relative");
    jQuery(".scLooseFrameMenu").show().css("position", "absolute").css("top", "0px").css("right", "").css("left", "").css("width", "auto").css("margin-top", "0px").css("margin-bottom", "0px");
    jQuery(".scLooseFrameMenu").each(function () {
        jQuery(this).css('left', 531 - jQuery(this).offset().left + 'px').css('width', '100px')
    });
    jQuery(".scFrameHint").css("display", "none").css("opacity", "0").css("filter", "alpha(opacity=0)").css("height", "0px").css("width", "0px");

    jQuery(".editStop").click(function () {
        lockUI();
        jQuery.cookie("nm_sceditingstatus", "startediting", { path: '/', expires: 1 });
        editStop();
        return false;
    });
    jQuery(".editStop").show();
}

function activateEditStart() {
    jQuery(".editStart").click(function () {
        lockUI();
        jQuery.cookie("nm_sceditingstatus", "startediting", { path: '/', expires: 1 });
        if (window.location.href.indexOf("sc_mode=edit") == -1) {
            window.location.href = "?&sc_mode=edit&action=edit";
        }
        else {
            jQuery.cookie("nm_sceditingstatus", "editing", { path: '/', expires: 1 });
            editStart();
        }
        return false;
    });
    jQuery(".editStart").show();
}

function unlockUI() {
    jQuery("#overlay").fadeOut(200);
}
function lockUI() {
    jQuery("#overlay").hide();
    jQuery("#overlay").show();
    window.setTimeout("unlockUI()", 15000);
}

function editStart() {
    if (!editFrameAvailable()) {
        window.setTimeout("editStart()", 100);
        return;
    }

    executeFunctionInIframe("scBeginEdit();");

}

function editStop() {
    if (!editFrameAvailable()) {
        window.setTimeout("editStop()", 100);
        return;
    }

    jQuery.cookie("nm_sceditingstatus", "ended", { path: '/', expires: 1 });
    executeFunctionInIframe("scSave('webedit:saved');");
}

function executeFunctionInIframe(func) {
    eval("jQuery('iframe#scWebEditRibbon')[0].contentWindow." + func);
}


function editFrameAvailable() {
    if (jQuery("iframe#scWebEditRibbon").length > 0 && jQuery("button", jQuery("iframe#scWebEditRibbon")[0].contentDocument).length > 0) return true;

    return false;
}

function editFrameInSite() {
    if (jQuery("iframe#scWebEditRibbon").length > 0) return true;

    return false;
}

function isInEditMode() {
    if (editFrameAvailable()) {
        for (var i = 0; i < jQuery("button", jQuery("iframe#scWebEditRibbon")[0].contentDocument).length; i++) {
            if (jQuery("button", jQuery(jQuery("iframe#scWebEditRibbon")[0].contentDocument)[i]).html().toLowerCase().indexOf("save") != -1 || jQuery("button", jQuery(jQuery("iframe#scWebEditRibbon")[0].contentDocument)[i]).html().toLowerCase().indexOf("speichern") != -1) {
                return true;
            }
        }
    }
    return false;
}

function qs(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}


function getSelText() {
    var txt = '';
    if (window.getSelection) {
        txt = window.getSelection();
    }
    else if (document.getSelection) {
        txt = document.getSelection();
    }
    else if (document.selection) {
        txt = document.selection.createRange().text;
    }

    return txt;
}

function previewStart() {


    jQuery("#reviewHolder").remove();
    jQuery("body").append("<div id='reviewHolder'></div>");

    var width = 440;
    if (jQuery(window).width() > 940) width += Math.min((jQuery(window).width() - 960), 300);

    jQuery("#reviewHolder").attr("style", "position:fixed;top:300px;left:500px;width:" + width + "px;height:210px;background-color:#ffffcc;border:1px solid black;");

    jQuery("#reviewHolder").append("<div id='commentHolder'><textarea id='comment'>My Comments:\n\n</textarea></div><button id='sendComment'>send</button><button id='addComment'>insert selected text</button>");

    jQuery("#reviewHolder #commentHolder").attr('style', 'width:' + (width - 10) + 'px;padding:5px;');
    jQuery("#reviewHolder #comment").attr('style', 'width:' + (width - 14) + 'px;height:160px').focus();
    jQuery("#reviewHolder #sendComment").attr('style', 'float:right;margin-right:5px;');
    jQuery("#reviewHolder #addComment").attr('style', 'float:left;margin-left:5px;');

    jQuery("#reviewHolder #addComment").click(function () {
        jQuery("#reviewHolder #comment").val(jQuery("#reviewHolder #comment").val() + "\n\n" + "[" + getSelText() + "]\n");
        jQuery("#reviewHolder #comment").animate({ scrollTop: jQuery("#reviewHolder #comment")[0].scrollHeight }, 200).focus();

        return false;
    });

    jQuery("#reviewHolder #sendComment").click(function () {
        jQuery("#reviewHolder #sendComment").text("please wait...");
        var postData = {};
        postData.comments = jQuery("#reviewHolder #comment").val();
        jQuery.post("/Ajax.aspx?do=previewcomments&id=" + window.reviewid, postData, function (data) {
            var dataObj = jQuery.parseJSON(data);
            if (dataObj.status == "ok") {
                jQuery("#reviewHolder").hide();
                alert("Review has been sent");
            }
            else {
                alert("An error occured: " + dataObj.message + ". Please try again or mail the comments directly to the author.");
            }
        }, function () {
            alert("An error occured. Please try again or mail the comments directly to the author.");
        }, "json");
    });


}

// ad improvement
jQuery(document).ready(function () {
    improveAdPlacement();
    window.setTimeout("improveAdPlacement()", 100);
    window.setTimeout("improveAdPlacement()", 300);
    window.setTimeout("improveAdPlacement()", 1000);
    window.setTimeout("improveAdPlacement()", 3000);
});

function improveAdPlacement() {
    jQuery(".listAd, .BodyBannerAd, .headerbannerAd").each(function () {
        if (jQuery(this).height() < 30) {
            jQuery(this).hide();
        }
        else {
            jQuery(this).show();
        }
    });
}
