/*
    Version 3.6 - 23/11/2010
    Code By Pham Khanh Cuong - phamkhanhcuong@yahoo.com
    please don't remove this copyright
    I'm a Vietnamese
*/

(function(jQuery){

   jQuery.fn.ac_slideshow  = function(options)// truyen tham so theo qui tac JSON
   {

    // check if a validator for this form was already created
    //    alert(this.attr('class'));

        this.each(function(){
          //  var galitem = $('.neoslideshow').children();      alert(galitem);
    	    // Ð?m các ?nh trong gallery
            var ss=buildCore(this,options);
            if(ss === false){  return false; }

           init(ss);
            //==================================   Su li su kien ==============================

           processEvent(ss);


      });
   };
     function buildCore(ac,options){
             if (ac.slideTimeout)
            {
                clearTimeout(ac.slideTimeout);  //xoa cai timeout neu da tao tu truoc
            }
            ac.slideTimeout = 0;
            //--------------------------------------------------------------------------------------
            var $cont=$(ac);  //container
            var els=$cont.find('.ac-slides').children();
             if(els.length<2){// neu chi co 1 anh thi dung lai
               // alert("terminating; too few slides: " + els.length);
                return false;
            }
            var intro=$cont.find('.ac-textintro').children();
            var navi=$cont.find('.ac-navi').children();
            var contr=$cont.find('.ac-contr').children();
            var opts = $.extend({},$.fn.ac_slideshow.defaults,options||{});
            var ss ={'slideTimeout':ac.slideTimeout,'els':els,'intro':intro,'navi':navi,'contr':contr,'opts':opts};
        return ss;
    }
   function init(ss){
      var first = ss.opts.fist-1;  // thiet lap anh dau tien se active
            // cai dat ban dau
            $(ss.els).hide();
            $(ss.els[first]).show(); // opacity bit needed to handle reinit case
           // $(ss.intro[first]).append(ss.opts.fist + ' / '+ ss.els.length);
            $(ss.intro[first]).slideDown("slow");; // opacity bit needed to handle reinit case
            ss.opts.slideCount = ss.els.length;
            ss.opts.currSlide = first;

            if(ss.opts.pagging)// neu co su li phan trang tu dong
            {
               ss.opts.currPag = 0;
              $(ss.navi).hide(); //trang 0 dc kich hoat dau tien
              $(ss.navi[0]).show(); //trang 0 dc kich hoat dau tien
            }
            $(ss.navi).find('.ac-it').eq(first).addClass("active");// kich hoat item
            if(ss.opts.autoplay)
            {
              ss.opts.status=true;
              $(ss.contr).filter('.play').addClass("active");
            }
            else
            {
               ss.opts.status=false;
               $(ss.contr).filter('.pause').addClass("active");
            }
            if (ss.opts.timeout)
                  ss.slideTimeout = setTimeout(function() {
                  goAuto(ss);
              }, ss.opts.timeout + (ss.opts.delay||0));

   }
   function processEvent(ss)
   {

            if (ss.opts.allownavi) // neu co thiet lap dieu huong ( cho phep click)
            {
                 $(ss.navi).find('.ac-it').click(function() {
                 $active = $(this); //Activate the clicked paging
              	 var i = $(this).attr('rel'); //Get number of times to slide
                   if(i== ss.opts.currSlide )
                      return;
                   //alert(i );         alert(ss.opts.currSlide );
                   ss.opts.currSlide=i;

                   //-- xoa timeout dang chay (tat chay tu dong)
                   clearTimeout(ss.slideTimeout);
                   ss.slideTimeout=0;
                   //--
                   goTo(ss,i);
                  // activemenu(els,opts,i);
                //Reset Timer
                });
             }
            if (ss.opts.autoplay)// neu co thiet lap autoplay thii moi kiem tra
            {
             if (ss.opts.allowpause) // neu co thiet lap dung slide
             {
                $(ss.els).hover(function(){ss.opts.status =false;},function(){ss.opts.status = true;});
                 $(ss.contr).filter('.pause').click(function () {  ss.opts.status = false;  $(this).addClass("active"); $(ss.contr).filter('.play').removeClass("active")  });
                 $(ss.contr).filter('.play').click(function () {  ss.opts.status = true; $(this).addClass("active");$(ss.contr).filter('.pause').removeClass("active")    });
             }
             }
    	    // Thêm s? ki?n click vào nút Prev
    	    $(ss.contr).filter('.prev').click(function () {
                //-- xoa timeout dang chay (tat chay tu dong)
                 clearTimeout(ss.slideTimeout);
                 ss.slideTimeout=0;
                 //--
    	        if ( ss.opts.currSlide > 0) {
                    var p_img = ss.opts.currSlide - 1;
            	    if (p_img >= 0) {
                	     ss.opts.currSlide =  p_img;
                          goTo(ss,p_img);
                         //activemenu(els,opts,p_img);
            	    }

    	        }
    	    });
    	    // Thêm s? ki?n click vào nút Next
    	    $(ss.contr).filter('.next').click(function () {
                //-- xoa timeout dang chay (tat chay tu dong)
                 clearTimeout(ss.slideTimeout);
                 ss.slideTimeout=0;
                 //--
    	        if ( ss.opts.currSlide < ss.opts.slideCount - 1) {
                   var n_img = ss.opts.currSlide + 1;
              	    if (n_img < ss.opts.slideCount) {
           	             ss.opts.currSlide =n_img;
                         goTo(ss,n_img);
                         // activemenu(els,opts,n_img);
                     }
       	        }
    	    });
   }
   function goAuto(ss){
    // var p = els[0].parentNode;// lay selector cha chinh la div ma ap dung slideshow
  //  var p = ss.els[0].parentNode;

    if ( ss.slideTimeout === 0 && !manual)    return;

    var opts = ss.opts; //   alert(opts.status)  ;
    if ( opts.status)// neu khong pause thi moi chay slide
    {
         opts.currSlide++;
         if(opts.currSlide >= opts.slideCount)
         {
            opts.currSlide = 0;
         }

         if(opts.pagging)// neu co su li phan trang tu dong
         {
           var pag= Math.floor(opts.currSlide/opts.itinpag);
           //alert('trang hien thoi='+opts.currSlide +'/' +opts.itinpag +'='+pag);
           if(pag > ss.opts.currPag || pag == 0 )
           {
              ss.opts.currPag=pag;
              //alert(pag);
              $(ss.navi).hide();
              $(ss.navi[pag]).show(); //rang 0 dc kich hoat dau tien
           }
         }
         goTo(ss,opts.currSlide);
     }
     if (opts.timeout)
     {
        ss.slideTimeout = setTimeout(function(){goAuto(ss);},opts.timeout);
     }
   }

   function goTo(ss,i){
    //  alert(ss.slideTimeout);
    //alert($(ss.navi).find('.ac-it').eq(i).html());
    //   var a= $(ss.navi).find('.ac-it');
     //  alert($(a).eq(i).html());
    // alert(i);
    $(ss.navi).find('.ac-it').removeClass('active'); //Remove all active class
    $(ss.navi).find('.ac-it').eq(i).addClass('active'); //Remove all active class
    $(ss.intro).hide();
   //chua fix duoc loi var pt= parseInt(ss.opts.currSlide) + 1;
   // $(ss.intro).eq(i).html()append(pt + ' / '+ ss.els.length);
    $(ss.intro).eq(i).slideDown("slow");
   // $(ss.intro).eq(i).fadeIn(ss.opts.intro_speed);
    // $(ss.intro).eq(i).fadeTo('slow',0.8);

      eval(ss.opts.slide_effect)(ss,i);
      // sau khi chay xong kiem tra xem luong co con khong  ( neu ma chay bang tay thi no bi xoa, phai tao lai luong
      if(ss.slideTimeout === 0)
        ss.slideTimeout = setTimeout(function(){goAuto(ss);},ss.opts.timeout);
   }

/*=============================================================================================================
  ================================================ EFFECT =====================================================
  =============================================================================================================*/
  function fade(ss,i){
    $(ss.els).hide();
    $(ss.els).eq(i).fadeIn();

  }

    function shuff(ss,i){
     var sp=ss.opts.slide_speed;
    $(ss.els).hide();
    $(ss.els).eq(i-1).show();
    $(ss.els).eq(i-1).css({'left':'0px'});
    $(ss.els).eq(i).show();
    var w=$(ss.els).eq(i).css('width');
    $(ss.els).eq(i).css({'left':w});
    $(ss.els).eq(i-1).animate({'left':'-='+w},sp-400);
    $(ss.els).eq(i-1).animate({'left':'+='+w},sp-400);
    $(ss.els).eq(i).animate({'left':'-='+w},sp);
  // Turn
  }
  function turnLeft(ss,i){
    var sp=ss.opts.slide_speed;
    $(ss.els).hide();
    $(ss.els).eq(i-1).show();
    $(ss.els).eq(i-1).css({'left':'0px'});
    $(ss.els).eq(i).show();
    var w=$(ss.els).eq(i).css('width');
    $(ss.els).eq(i).css({'left':w});
    $(ss.els).eq(i-1).animate({'left':'-='+w},sp);
    $(ss.els).eq(i).animate({'left':'-='+w},sp);
    //$(ss.els).eq(i-1).hide();
    //ring
    if(ss.opts.slide_spring)
    {
      $(ss.els).eq(i).animate({'left':'+=30'},sp/3);
      $(ss.els).eq(i).animate({'left':'-=30'},sp/3);
      $(ss.els).eq(i).animate({'left':'+=5'},sp/3);
      $(ss.els).eq(i).animate({'left':'-=5'},sp/3);
    }
    }
  function turnRight(ss,i){
    var sp=ss.opts.slide_speed;
    $(ss.els).hide();
    $(ss.els).eq(i-1).show();    $(ss.els).eq(i).show();
    $(ss.els).eq(i-1).css({'left':'0px'});
    var w=$(ss.els).eq(i).css('width');
    $(ss.els).eq(i).css({'left':'-'+w});
    $(ss.els).eq(i-1).animate({'left':'+='+w},sp);
    $(ss.els).eq(i).animate({'left':'+='+w },sp);
       //ring
    if(ss.opts.slide_spring)
    {
      $(ss.els).eq(i).animate({'left':'+=30'},sp/3);
      $(ss.els).eq(i).animate({'left':'-=30'},sp/3);
      $(ss.els).eq(i).animate({'left':'+=5'},sp/3);
      $(ss.els).eq(i).animate({'left':'-=5'},sp/3);
    }
   }
  function turnUp(ss,i){
    var sp=ss.opts.slide_speed;
    $(ss.els).hide();
    $(ss.els).eq(i-1).show(); $(ss.els).eq(i).show();
    $(ss.els).eq(i-1).css({'top':'0px'});
    var h=$(ss.els).eq(i).css('height');
    $(ss.els).eq(i).css({'top':h});
    $(ss.els).eq(i-1).animate({'top':'-='+h},sp);
    $(ss.els).eq(i).animate({'top':'-='+h },sp);
     //ring
    if(ss.opts.slide_spring)
    {
      $(ss.els).eq(i).animate({'top':'+=30'},sp/3);
      $(ss.els).eq(i).animate({'top':'-=30'},sp/3);
      $(ss.els).eq(i).animate({'top':'+=5'},sp/3);
      $(ss.els).eq(i).animate({'top':'-=5'},sp/3);
    }
   }
   function turnDown(ss,i){
    var sp=ss.opts.slide_speed;
    $(ss.els).hide();
    $(ss.els).eq(i-1).show(); $(ss.els).eq(i).show();
    $(ss.els).eq(i-1).css({'top':'0px'});
    var h=$(ss.els).eq(i).css('height');
    $(ss.els).eq(i).css({'top':'-'+h});
    $(ss.els).eq(i-1).animate({'top':'+='+h},sp);
    $(ss.els).eq(i).animate({'top':'+='+h },sp);
     //ring
    if(ss.opts.slide_spring)
    {
      $(ss.els).eq(i).animate({'top':'+=30'},sp/3);
      $(ss.els).eq(i).animate({'top':'-=30'},sp/3);
      $(ss.els).eq(i).animate({'top':'+=5'},sp/3);
      $(ss.els).eq(i).animate({'top':'-=5'},sp/3);
    }
   }




// @see: http://malsup.com/jquery/cycle/lite/
    $.fn.ac_slideshow.defaults = {
    fist:1,
    timeout:   5000 ,
    allowpause:  true,
    allownavi:  true,
    status :true ,
    autoplay :true ,
    pagging:true,
    itinpag:7,
    slide_effect:'fade',//fade - turnLeft -turnRight - turnTop - turnDown -shuff
    slide_speed:900,
    slide_spring:false,// thuoc tinh dan hoi, ap dung cho cac hieu ung turn
    intro_speed:200
};
})(jQuery);


