﻿var CATEGORY_MODE = 1;
var ARTICLE_MODE = 2;
var EVENT_MODE = 3;
var nflashtimeout;

function togglePauseIcon() {
    if (newsflash.paused) {
        document.getElementById("playDiv").className = "slideplay";
    }
    else {
        document.getElementById("playDiv").className = "slideplay slidepause";
    }
}

function NewsFlash(pCats, pCount, mode, pLang) {
    var _this = this;
    document.getElementById("cat1").style.display = "none";
    document.getElementById("cat2").style.display = "none";
    document.getElementById("cat3").style.display = "none";
    document.getElementById("cat4").style.display = "none";
    document.getElementById("cat5").style.display = "none";
    this.lang = pLang;
    this.Cats = pCats;
    this.Count = pCount;
    this.mode = mode;
    this.selectedCat = 0;
    this.selectedArt = 0;
    this.paused = false;
    if(mode!=CATEGORY_MODE) {
        document.getElementById("artmainimg").className = "articleimg";
        document.getElementById("artsel").style.display = "none";
        document.getElementById("mainart").className += " mainartcntbg";
    }
    for(var x=0;x<this.Cats.length;x++) {
        var z = x;
        if (this.Cats[z] != null) {
            _this.setCatClick(z, mode);
            document.getElementById("cat" + (z + 1) + "img").src = "content/" + (mode == EVENT_MODE ? "events" : "articles") + "/" + this.Cats[z].ThumbURL + "_112x84.jpg";
            document.getElementById("cat" + (z + 1) + "text").innerHTML = this.Cats[z].Name;
            document.getElementById("cat" + (z + 1)).style.display = "block";
        }
    }
    for (var x = 3; x > pCount; x--) {
        document.getElementById("art" + x).style.display = "none";
    }
    document.getElementById("art1").onclick = function() { clearTimeout(nflashtimeout); _this.setSelectedArticle(0); _this.fillMainArticle(_this.curArticles[0]); }
    document.getElementById("art2").onclick = function() { clearTimeout(nflashtimeout); _this.setSelectedArticle(1); _this.fillMainArticle(_this.curArticles[1]); }
    document.getElementById("art3").onclick = function() { clearTimeout(nflashtimeout); _this.setSelectedArticle(2); _this.fillMainArticle(_this.curArticles[2]); }
}
NewsFlash.prototype = {
    selectFirstCat: function() {
        var elem = document.getElementById("cat1");
        if (typeof elem.onclick == "function") {
            elem.onclick.apply(elem);
        }
    },
    setCatClick: function(pIndex, pMode) {
        var _this = this;
        document.getElementById("cat" + (pIndex + 1)).onclick = function() { clearTimeout(nflashtimeout); _this.setSelectedCat(pIndex); if (pMode == CATEGORY_MODE) { _this.GetCatNews(_this.Cats[pIndex].ID, _this.Count); } else if (pMode == ARTICLE_MODE) { _this.GetNews(_this.Cats[pIndex].ID); } else { _this.GetEvents(_this.Cats[pIndex].ID); } }
    },
    setSelectedCat: function(pCatIndex) {
        this.selectedCat = pCatIndex;
        for (var i = 0; i < this.Cats.length; i++) {
            if (i == pCatIndex) {
                document.getElementById("cat" + (i + 1)).className = "artitem r catitem catitemsel";
            }
            else {
                document.getElementById("cat" + (i + 1)).className = "artitem r catitem";
            }
            if (i != 4) {
                document.getElementById("cat" + (i + 1)).className += " left15pxmar";
            }
        }
    },
    beginLoading: function() {
        //document.getElementById("flashmainloading").style.display = "block";
    },
    endLoading: function() {
        var _this = this;
        /*document.getElementById("flashmainloading").style.display = "none";*/
        nflashtimeout = window.setTimeout(function() {
            var oldindex = _this.selectedCat;
            _this.selectedCat++;
            if (_this.selectedCat >= _this.Cats.length) {
                _this.selectedCat = 0;
            }
            if (oldindex != _this.selectedCat) { //for 1 item case, so no post will happen wasted
                var elem = document.getElementById("cat" + (_this.selectedCat + 1));
                if (typeof elem.onclick == "function") {
                    elem.onclick.apply(elem);
                }
            }
        }, 5000);
    },
    playPause: function(){
    this.paused=!this.paused;
    if (!this.paused) {
        var _this = this;
        nflashtimeout = window.setTimeout(function() {
            var oldindex = _this.selectedCat;
            _this.selectedCat++;
            if (_this.selectedCat >= _this.Cats.length) {
                _this.selectedCat = 0;
            }
            if (oldindex != _this.selectedCat) { //for 1 item case, so no post will happen wasted
                var elem = document.getElementById("cat" + (_this.selectedCat + 1));
                if (typeof elem.onclick == "function") {
                    elem.onclick.apply(elem);
                }
            }
        }, 5000);
        }
        else
        {
            clearTimeout(nflashtimeout);
        }
    },
    setSelectedArticle: function(pIndex) {
        this.selectedArt = pIndex;
        for (var i = 0; i < 3; i++) {
            if (i == pIndex) {
                document.getElementById("art" + (i + 1)).className = "artitem arthov artitemsel";
            }
            else {
                document.getElementById("art" + (i + 1)).className = "artitem arthov";
            }
            if (i != 2) {
                document.getElementById("art" + (i + 1)).className += " botmar4px";
            }
        }
    },
    fillMainArticle: function(newsitem) {
        var _this = this;
        FadeInImage('artmainimg', 'content/' + (_this.mode == EVENT_MODE ? "events" : "articles") + '/' + newsitem.ThumbURL + '_510x350.jpg', 'mainart');
        document.getElementById("artmainimg").onclick = function() { window.location = 'view' + (_this.mode == EVENT_MODE ? "event" : "article") + '.aspx?id=' + newsitem.ID; }
        document.getElementById("artmaintitle").innerHTML = newsitem.Title;
        document.getElementById("artmaintitle").onclick = function() { window.location = 'view' + (_this.mode == EVENT_MODE ? "event" : "article") + '.aspx?id=' + newsitem.ID; }
        document.getElementById("artmaindesc").onclick = function() { window.location = 'view' + (_this.mode == EVENT_MODE ? "event" : "article") + '.aspx?id=' + newsitem.ID; }
        document.getElementById("artmaindesc").innerHTML = newsitem.Description;
    },
    GetCatNews: function(pCatID, pCount) {
        var _this = this;
        /*_this.beginLoading();
        $.ajax({
        'type': "GET",
        'url': "getnews.ks?fix=" + Math.random(),
        'data': { "catID": pCatID, "count": pCount },
        'dataType': "json",
        'success':*/
        var data = eval("catdata" + pCatID);
        var result = _this.ParseJSONtoNews(data);
        if (result != null) {
            _this.curArticles = result;
            for (var i = 0; i < result.length; i++) {
                var artCont = document.getElementById("art" + (i + 1));
                artCont.style.display = "block";
                document.getElementById("art" + (i + 1) + "img").src = "content/" + (_this.mode == EVENT_MODE ? "events" : "articles") + "/" + result[i].ThumbURL + "_112x84.jpg";
                document.getElementById("art" + (i + 1) + "img").setAttribute("tip",result[i].Title);
                document.getElementById("art" + (i + 1) + "img").className = "tooltippedimg";
                var _img = document.getElementById("art" + (i + 1) + "img");
                document.getElementById("art" + (i + 1) + "img").onmouseover = function() { KensoftTools.tooltipMe(this, _this.lang == "1" ? (TooltipAnchor.Left) : (TooltipAnchor.Right)); }
                document.getElementById("art" + (i + 1) + "title").innerHTML = result[i].Title;
                if (i == 0) {
                    _this.fillMainArticle(result[i]);
                    _this.setSelectedArticle(0);
                }
            }
            for (var x = 2; x >= result.length; x--) {
                var artCont = document.getElementById("art" + (x + 1));
                artCont.style.display = "none";
                if (x == 0) {
                    document.getElementById("artmainimg").src = "";
                    document.getElementById("artmaintitle").innerHTML = "";
                    document.getElementById("artmaindesc").innerHTML = "";
                }
            }
        }
        _this.endLoading();
    },
    GetNews: function(pArtID) {
        var _this = this;
        /* _this.beginLoading();
        $.ajax({
        'type': "GET",
        'url': "getnews.ks?fix=" + Math.random(),
        'data': { "artID": pArtID },
        'dataType': "json",
        'success': function(data, textStatus) {*/
        var data = eval("artdata" + pArtID);
        var result = _this.ParseJSONtoNews(data);
        if (result != null) {
            _this.curArticles = result;
            for (var i = 0; i < result.length; i++) {

                _this.fillMainArticle(result[i]);
            }
        }
        _this.endLoading();
    },
    GetEvents: function(pEvtID) {
        var _this = this;
        /*_this.beginLoading();
        $.ajax({
        'type': "GET",
        'url': "getnews.ks?fix=" + Math.random(),
        'data': { "evtID": pEvtID },
        'dataType': "json",
        'success': function(data, textStatus) {*/
        var data = eval("evtdata" + pEvtID);
        var result = _this.ParseJSONtoNews(data);
        if (result != null) {
            _this.curArticles = result;
            for (var i = 0; i < result.length; i++) {

                _this.fillMainArticle(result[i]);
            }
        }
        _this.endLoading();
    },
    ParseJSONtoNews: function(data) {
        var _this = this;
        if (Object.prototype.toString.apply(data) === "[object Array]") {
            var arr = new Array();
            for (var i = 0; i < data.length; i++) {
                if (typeof data[i] == "function") continue;
                arr.push(new Article(data[i].ID, data[i].Title, data[i].Desc, data[i].ThumbURL, data[i].Link, data[i].Date));
            }
            return arr;
        }

        if (!data || !data.data) {
            return null;
        }
    }
}
