﻿jQuery.noConflict();
(function($K)
{
/*
parameters = 
        {
        pagesize,
        containerClass,
        thumbClass,
        slideSpeed,
        containerStyle(slide/fade),
        eventOn:(click/mouseover),
        nextButtonID,
        prevButtonID,
        selectedThumbCSS,
        pagerInfoBoxCSS
        }
*/
$K.fn.StartNews=function(data)
    {        
        $K(this).each(function(i)
            {   
                //initialize parameters             
                var containerClass ="." + data.containerClass;
                var thumbClass = "." + data.thumbClass;
                
                var selectedThumbCSS=data.selectedThumbCSS;
                
                var nextButtonID=data.nextButtonID;
                var prevButtonID=data.prevButtonID;

                var pagesize = data.pagesize;
                var slideSpeed = data.slideSpeed;
                
                var totalPages,currentPage;
                var objContainer = $K(this).find(containerClass);
                var objThumbs = $K(this).find(thumbClass);
                
                var objNextButton= $K(this).find("#"+nextButtonID);
                var objPrevButton= $K(this).find("#"+prevButtonID);
                var objPageInfoBox= $K(this).find("." + data.pagerInfoBoxCSS);
                
                var newsItemWidth=objContainer.eq(0).width();
                var thumbFullWidth=objThumbs.eq(0).width() + (parseInt(objThumbs.eq(0).css("margin-left")) * 2);
                
                objContainer.parent().addClass("PG_ContainerClass");
                objContainer.addClass("PG_ItemClass");
                
                objThumbs.addClass("PG_thumbsClass");
                objThumbs.parent().addClass("PG_thumbsContainerClass");
                
                //Set Container Style
                var containerStyle=data.containerStyle;
                if(containerStyle == null)
                    {
                        containerStyle="slide";
                    }       
                var isSlide=true;
                if(containerStyle == "fade")
                    isSlide=false;
                    
                
                var eventOn=data.eventOn;                
                if(eventOn == null)
                    {
                        eventOn="click";
                    }
                var isOnClick=true;
                if(eventOn == "mouseover")
                    isOnClick=false;
                
                
                   /*Functions & Events statrs*/
                   
                   changeContainerItem=function(ind)
                    {
                        if(isSlide)
                            {
                                objContainer.each(function(i)
                                {
                                    var leftaxis = newsItemWidth * (i - ind);
                                    $K(this).animate({"left":leftaxis},slideSpeed);
                                });
                            }
                        else
                            {
                                objContainer.hide();
                                objContainer.eq(ind).fadeIn(slideSpeed);
                            }
                    }
                 
                 if(isOnClick)   
                    {
                        objThumbs.click(function()
                        {
                            var thumbIndex=objThumbs.index($K(this));                            
                            objThumbs.removeClass(selectedThumbCSS);
                            objThumbs.addClass(data.thumbClass);
                            $K(this).removeClass(data.thumbClass).addClass(selectedThumbCSS);
                            changeContainerItem(thumbIndex);
                        });
                    }
                else
                    {
                        objThumbs.mouseover(function()
                        {
                            var thumbIndex=objThumbs.index($K(this));
                            objThumbs.addClass(data.thumbClass);
                            $K(this).removeClass(data.thumbClass).addClass(selectedThumbCSS);
                            changeContainerItem(thumbIndex);
                        });
                    }
                initContainerItems = function()
                    {
                        if(isSlide)
                        {
                            objContainer.each(function(ind)
                            {                        
                                $K(this).css("left",(newsItemWidth * ind));
                            });
                        }
                        else
                        {
                            objContainer.hide();
                            objContainer.eq(0).show();
                        }
                    }
                
                initAllThumbs = function()
                    {
                        objThumbs.each(function(i)
                        {
                            
                            $K(this).css("left",(thumbFullWidth * i));
                        });
                        currentPage=1;
                        
                        var totalThumbs=objThumbs.length;
                        
                        if((totalThumbs % pagesize) == 0 )
                            {
                                totalPages= totalThumbs / pagesize;
                            }
                        else
                            {
                                totalPages= Math.floor((totalThumbs / pagesize) + 1);
                            }
                        
                    }
                changeThumbPage=function(pageNo)
                    {                        
                        if(pageNo < 1)
                            {
                                pageNo=totalPages;
                                currentPage=totalPages;
                            }
                        else if(pageNo > totalPages)
                            {
                                pageNo=1;
                                currentPage=1;                                
                            }
                        objThumbs.each(function(i)
                        {
                            var leftaxis = thumbFullWidth * (i - (pagesize*(pageNo-1)));
                            $K(this).animate({"left":leftaxis},slideSpeed);
                        });
                        var totalItems= objThumbs.length;
                        var first= ((currentPage - 1)*pagesize) + 1;                        
                        var last = first + pagesize -1;;
                        if(currentPage==totalPages)
                            last=totalItems;
                        
                        objPageInfoBox.html("Showing " + first + " to " +last + " of " + totalItems );
                    }
                objNextButton.click(function()
                    {                        
                        currentPage=currentPage+1;
                        changeThumbPage(currentPage);
                    });
                objPrevButton.click(function()
                    {                        
                        currentPage=currentPage-1;
                        changeThumbPage(currentPage);
                    });
                /*Functions & events Ends*/
                
                initContainerItems();
                initAllThumbs();
                changeThumbPage(1);
            });
    }
})(jQuery);
