/** vj global
/** based on http://www.dustindiaz.com/namespace-your-javascript/
/** adding private properties and methods **/

var asis = (function() {

  //private functions
  //peform the animation
  function doSlider(slidePanel,slideNo,slideNav,i) {
    slideTimer = setInterval(function() {
      slidePanel.eq(i).animate({opacity: 0}, 500, function(){      
        $(this).hide();
        slideNav.removeClass('active');
        if (i >= slideNo) {
          i = 0
        } else {
          i++
        } 
        slideNav.eq(i).addClass('active');
        slidePanel.eq(i).show().animate({opacity: 1}, 500);
      });
    }, 5000);
	};
  
  // click slider links
  function clickSlider(slidePanel,slideNo,slideNav,i) {
    slideNav.click(function() {
       var that = $(this),
       i = that.index();    
       if (that.parent('li').hasClass("active")) {     
        return false;
       } else if (that.parent('ul').hasClass('working')) {
        return false;
       } else {       
        slideNav.removeClass('active').parent('ul').addClass('working');
        that.addClass('active');
        clearInterval(slideTimer);           
        $(slidePanel).css({opacity: 0}).hide();
        slidePanel.eq(i).show().animate({opacity: 1}, 500, function(){
          that.parent('ul').removeClass('working');
          doSlider(slidePanel,slideNo,slideNav,i);
        });       
       }
    });
  };
	
	// public functions
	return {
		
    activeStates: function() {
			$('#nav').find('li a.active').parent('li').addClass("showBlock");
      $('#content').find('div.secondary ul li').last().addClass("lastLi");
      $('#content').find('table tr').last().addClass('lastRow');
		},

    switchPanels: function() {
      var switchPanel = $('#content').find('.switchPanel'), 
          panelNav = $('#content').find('.secondary li');       
          
      switchPanel.not(':first').hide();
      panelNav.first().addClass('active');        
      panelNav.click(function(e){          
      
      var that = $(this), 
          itemIndex = that.index();
            
        if (that.hasClass("active")) {
          return false
        } else {
          switchPanel.hide();
          panelNav.removeClass("active");
          switchPanel.eq(itemIndex).show(); 
          that.addClass("active");
          return false
        }
        e.preventDefault();
      });
    },
    
    //initialise slider
    slideshow: function() {  
       var slidePanel  = $('#slideshow').find('.slide'),
           slideNo = slidePanel.length - 1,
           slideNav = $('ul.slideNav li'),
           i = 0;
       
       slidePanel.not(':first').css('opacity', 0).hide();    
       slideNav.first().addClass('active'); 
       doSlider(slidePanel,slideNo,slideNav,i);
       clickSlider(slidePanel,slideNo,slideNav,i);
     },
              
     //hideshow
     hideShow: function() {
       var faq = $('#faq').find('dt > a');
       faq.click(function(e) {
         var that = $(this),
             nextDd = that.parent('dt').next('dd'); 
         if (nextDd.is(':hidden')) {
            nextDd.slideDown('fast');
            that.parent('dt').addClass('active');
          } else {
            nextDd.slideUp('fast');
            that.parent('dt').removeClass('active');
          }
          e.preventDefault();
       });
     },
     
     targetBlank: function() {
      $('#content a[target|="_blank"]:not(a.btn,.copyLinks a)').addClass('targetBlank').append("<img src='/images/framework/icon_nw.png' />");
     }

		
	};
	
})();


