﻿/// <reference path="jquery-1.2.6-vsdoc.js" />

var CB = {

    init:
    function() {

        $(".form-container input[type=text]").keydown(CB.submitOnEnterPress);
        $(".toggle").click(CB.toggle);
        $("#contentwrapper a[rel=external]").click(CB.openInNewWindow);
        $(".clickable-rows tr").click(CB.handleTableRowClick);
        if (CB.IE6) {
            $(".clickable-rows tr").mouseover(function() { $(this).addClass("hover"); });
            $(".clickable-rows tr").mouseout(function() { $(this).removeClass("hover"); });
        }
        $("tr:nth-child(even)").addClass("alternate");
        $(".print-page").click(function() { window.print(); });

        CB.customFadeIn($("#infobox"), 400);
        CB.setAdditionalBrowserInfo();
        CB.NewsFetcher.init();
    },

    submitOnEnterPress:
    function(evt) {

        if (evt.keyCode === 13) {
            evt.preventDefault();
            $(this).parents(".form-container").find("input[type=submit]").trigger("click");
            return false;
        }
    },

    IE6:
    function() {
        return document.all && /MSIE\s?6/.test(navigator.userAgent);
    },

    toggle:
    function(evt) {

        var elmId = "#" + this.className.replace(/.*toggle-id-([\w\_\-]+).*/, "$1");
        var elm = $(elmId);

        if (elm.is(":hidden")) {
            CB.customFadeIn(elm, 400);

        }
        else {
            CB.customFadeOut(elm, 400);
        }
        return false;
    },

    setAdditionalBrowserInfo:
    function() {
        ua = navigator.userAgent.toLowerCase();
        is = function(t) { return ua.indexOf(t) != -1; },
		h = document.getElementsByTagName('html')[0],
		b = (!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? ('ie ie' + RegExp.$1)
			: is('firefox/2') ? 'gecko ff2' : is('firefox/3') ? 'gecko ff3' : is('gecko/') ? 'gecko' : is('opera/9') ? 'opera opera9' : /opera (\d)/.test(ua) ? 'opera opera' + RegExp.$1 : is('konqueror') ? 'konqueror' : is('applewebkit/') ? 'webkit safari' : is('mozilla/') ? 'gecko' : '',
		os = (is('x11') || is('linux')) ? ' linux' : is('mac') ? ' mac' : is('nt 5') ? ' xp' : is('win') ? ' win' : '';
        var c = b + os + ' js';
        h.className += h.className ? ' ' + c : c;

    },

    openInNewWindow:
    function(evt) {
        var event = (!evt) ? window.event : evt;
        if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
            return true;
        else {
            var oWin = window.open(this.getAttribute('href'), '_blank');
            if (oWin) {
                if (oWin.focus)
                    oWin.focus();
                return false;
            }
            oWin = null;
            return true;
        }
    },

    handleTableRowClick: function(evt) {
        var link = $("a:first", this)[0];

        if (link) {
            location.href = link.href;
        }
    },

    customFadeIn:
    function(elm, speed) {
        elm.fadeIn(speed, function() {
            if (jQuery.browser.msie) {
                $(this).get(0).style.removeAttribute('filter');
            }
        });
    },

    customFadeOut:
	function(elm, speed) {
	    elm.fadeOut(speed, function() {
	        if (jQuery.browser.msie) {
	            $(this).get(0).style.removeAttribute('filter');
	        }
	    });
	},

    NewsFetcher: {
        Setup: {
            url: 'http://investors.nobina.com/index.php?',
            landingPage: '/en/Alert-IR-newspage/?newsID=',
            Params: {
                p: 'press',
                s: 'json',
                afw_lang: '', // read from the container element based on EPiServer language branch variable.
                afw_callback: 'CB.NewsFetcher.callback'
            },
            Options: {
                maxItems: 4
            }
        },
        container: '', // HTML element
        init: function() {
            var cn = CB.NewsFetcher;
            cn.container = $('div.AlertIDNewsList');
            if (cn.container.length > 0) {
                cn.Setup.Params.afw_lang = cn.container.attr('lang');
                cn.fetchJSON();
            }
        },
        fetchJSON: function() {
            var url = CB.NewsFetcher.Setup.url;
            var params = $.param(CB.NewsFetcher.Setup.Params);
            // &callback=? enables JSONP
            $.getJSON(url + params + '&callback=?');
        },
        formatDate: function(date) {
            return date.substring(0, 10);
        },
        callback: function(result) {
            var cn = CB.NewsFetcher;
            var ol = $('<ol></ol>').addClass('news');
            var data = result.data;
            for (var i in data) {
                var d = data[i];
                var published = d.published;
                var headline = d.headline;
                if (published !== null && headline !== null) {
                    var li = $('<li></li>');
                    var span = $('<span></span>').html(cn.formatDate(published)).appendTo(li);
                    var aID = d.id;
                    var a = $('<a></a>').attr('href', cn.Setup.landingPage + d.id).html(headline).appendTo(li);
                    li.appendTo(ol);
                }

                if (i == cn.Setup.Options.maxItems - 1) break;
            }
            cn.container.html(ol.hide().fadeIn('fast'));
        }
    }
}

$(document).ready(CB.init);

