﻿(function ($) {
    var config = {
        swf: false,
        stoptime: 2000,
        deuration: 7000,
        slidedirection: "rtl",
        imageheight: 300,
        imagewidth: 300,
        paesize: 4,
        summeryslider: "ttb",
        bigimage: $(".today-image"),
        maintemplate: "/Files/114/33/theme/Template/YahooTopNews.htm",
        thumbnailtheme: "/Files/114/33/theme/Template/YahooTopNews-Tumbnail.htm",
        loading: '<img id="loading" src="/Files/114/33/theme/theme/images/loading.gif" />',
        newitem: "news_new",
        thmnailwidth: 118,   //set for navigation
        mouseevent: "mouseenter",
        data: {},
        started: true
    };
    var defult = {
        imagecounter: 0,
        pagecounter: 1,
        thunailcontainer_width: 0,
        pagecount: 1,
        curentpage: 1

    }
    ///Files/114/33/theme
    $.fn.TopNewsy = function (method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist on jQuery.tooltip');
        }
    };
    var methods = {
        yahoo: function (options) {
            var This = this;
            var i = 1;
            var cn = 0;

            if (options) {
                $.extend(config, options);
            }
            if ((config.data.table.length % config.paesize) == 0) {
                var pagecount = (config.data.table.length / config.paesize);
            } else {
                var pagecount = Math.round(config.data.table.length / config.paesize) + 1;
            }
            /*theme method*/
            var ApplyThemes = {
                ApplyThemplate: function (obj, data) {
                    $(".htm-content,.tumnail-content").append(config.loading);
                    $(obj).setTemplateURL(config.maintemplate);
                    $(obj).setParam('page', [defult.imagecounter, config.paesize]);
                    $(obj).processTemplate(data);
                    $("#loading").remove();
                    $(".tumnail-content").animate({ width: ["473px", 'swing'] }, 500);
                    t0 = setTimeout(processor.next, config.deuration);
                },
                ApplyThumbnail: function (obj, data, status) {
                    defult.pagecount += 1;
                    $(obj).attr("page", defult.pagecount);
                    defult.curentpage += 1;
                    $(".tumnail-content ul li").width(config.paesize * config.thmnailwidth)
                    $(".tumnail-content").append(config.loading);
                    $(obj).setTemplateURL(config.thumbnailtheme);
                    $(obj).setParam('page', [defult.imagecounter, config.paesize]);
                    $(obj).processTemplate(data);
                    $("#loading").remove();
                    $(obj).removeClass(config.newitem);
                    $(".tumnail-content ul").animate({ left: [-(config.paesize * config.thmnailwidth * (defult.pagecounter - 1)), 'swing'] }, 500);
                    $('<li class="' + config.newitem + '"></li>').prependTo(".tumnail-content ul");
                }
            }
            /*manage actions*/
            var processor = {
                ShowItem: function (obj, status) {
                    var src = obj.attr("large");
                    var title = obj.attr("title");
                    var summary = obj.attr("summary");
                    var link = obj.attr("link");
                    $(".today-image").attr("src", src);
                    $(".big-title div a").text(title);
                    $(".today-summery").text(summary);
                    $(".big-title div a,.bigimage_lnk").attr("href", link);
                    if (status == true) {
                        $(".tumnail").delay(config.deuration).removeClass("active_tum");
                        obj.delay(config.deuration).addClass("active_tum");
                    } else {
                        $(".tumnail").removeClass("active_tum");
                        obj.addClass("active_tum");
                    }
                },
                GenerateHTML: function () {
                    defult.pagecounter += 1;
                    defult.imagecounter = config.paesize * (defult.pagecounter - 1);
                    i = defult.imagecounter;
                    $(".tumnail-content ul").width(config.thmnailwidth * config.paesize * (defult.pagecounter));
                    ApplyThemes.ApplyThumbnail("." + config.newitem, config.data, false);
                    var obj = $(".tumnail[id=" + i + "]");
                    processor.ShowItem(obj, true);
                    //$(".stop").addClass("play").removeClass("stop");
                    defult.thunailcontainer_width = $(".tumnail-content ul").width();
                },
                next: function () {
                    i = eval(i);
                    if (i < config.data.table.length) {
                        var obj = $(".tumnail[id=" + i + "]");
                        processor.ShowItem(obj, false);
                        if ((i + 1) % config.paesize == 0) {

                            if (defult.pagecounter < pagecount) {
                                t = setTimeout(processor.GenerateHTML, config.deuration);
                            } else {
                                t1 = setTimeout(navigate.forward, config.deuration);
                            }
                        }
                        i += 1;
                    }
                    if (i == config.data.table.length) {
                        i = 0;
                        defult.pagecounter += 1;
                        defult.imagecounter = 0;
                        t2 = setTimeout(navigate.revert, config.deuration);
                    }
                    if (config.started)
                        setTimeout(processor.next, config.deuration);
                }
            }
            /*end manage actions*/
            /*navigation method*/
            var navigate = {
                forward: function () {
                    var position = $(".tumnail-content ul").position();
                    if (defult.thunailcontainer_width > (config.paesize * config.thmnailwidth) && (position.left * 2) > -(defult.thunailcontainer_width)) {
                        $(".tumnail-content ul").animate({ left: [position.left - (config.paesize * config.thmnailwidth), 'swing'] }, 500);
                        defult.curentpage += 1;
                        if (!config.started) {
                            i = ((defult.curentpage - 1) * config.paesize);
                            $(".play").addClass("stop").removeClass("play");
                        }
                        var obj = $(".tumnail[id=" + i + "]");
                        processor.ShowItem(obj, true);
                    }
                },
                back: function () {
                    var position = $(".tumnail-content ul").position();
                    if (defult.thunailcontainer_width > (config.paesize * config.thmnailwidth) && position.left < 0) {
                        $(".tumnail-content ul").animate({ left: [position.left + (config.paesize * config.thmnailwidth), 'swing'] }, 500);
                        defult.curentpage -= 1;
                        if (!config.started) {
                            i = ((defult.curentpage - 1) * config.paesize);
                            $(".play").addClass("stop").removeClass("play");
                        }
                        var obj = $(".tumnail[id=" + i + "]");
                        processor.ShowItem(obj, true);
                    }
                },
                revert: function () {
                    $(".tumnail-content ul").animate({ left: [0, 'swing'] }, 500);
                    defult.curentpage = 1;
                },
                stop: function (obj) {
                    i = config.data.table.length + 2;
                    config.started = false;
                    $(obj).addClass("stop").removeClass("play");
                },
                play: function (obj) {
                    i = $(".active_tum").attr("id");
                    config.started = true;
                    processor.next();
                    $(obj).addClass("play").removeClass("stop");
                }
            }
            /*end navigation method*/
            /*load complate html in first time*/
            ApplyThemes.ApplyThemplate(This, config.data);
            /*auto play*/
            /*handle navigation event*/
            $(".back").live("click", function () {
                config.started = false;
                navigate.back()
            });
            $(".stop").live("click", function () {
                navigate.play(this);
            });
            $(".play").live("click", function () {
                navigate.stop(this);
            });
            $(".forward").live("click", function () {
                config.started = false;
                navigate.forward()
            });
            $(".tumnail").first().addClass("active_tum");
            $(".tumnail").live(config.mouseevent, function () {
                var imageid = $(this).attr("id");
                i = eval(imageid);
                processor.ShowItem($(this), false);

            });
        }
    };
})(jQuery); 

