/*!
 * slideViewer 1.2
 * Examples and documentation at:
 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html
 * 2007-2010 Gian Carlo Mingati
 * Version: 1.2.3 (9-JULY-2010)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * Requires:
 * jQuery v1.4.1 or later, jquery.easing.1.2
 *
 */

jQuery(function(){
   jQuery("div.svw").prepend("<img src='fileadmin/templates/img/slide-loading.gif' class='ldrgif' alt='loading...'/ >");
});
var j = 0;
var quantofamo = 0;
jQuery.fn.slideView = function(settings) {
   settings = jQuery.extend({
      easeFunc: "easeInQuad",
      easeTime: 750,
      uiBefore: false,
      toolTip: false,
      ttOpacity: 0.9
   },settings);
   return this.each(function(){
      var container = jQuery(this);
      container.find("img.ldrgif").remove();
      container.removeClass("svw").addClass("stripViewer");
      var pictWidth = container.find("li").width();
      var pictHeight = container.find("li").height();
      var pictEls = container.find("li").size();
      var stripViewerWidth = pictWidth*pictEls;
      
      var isTriple = (container.parent().hasClass('triple')) ? true : false;
      
      container.find("ul").css("width" , stripViewerWidth);
      container.each(function(i) {
         (!settings.uiBefore) ? $(this).after("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>") : $(this).before("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>");      
         
         if(isTriple){
            jQuery(this).find("li").children('.slidec').each(function(n) {
               var zer = (n<9)?'0':'';
               $("div#stripTransmitter" + j + " ul").append("<li><a id='slideme"+n+"' title='" + $(this).find("img").attr("alt") + "' href='#'>"+zer+(n+1)+"<\/a><\/li>");
                
            });
         }else {
            jQuery(this).find("li").each(function(n) {
               var zer = (n<10)?'0':'';
               jQuery("div#stripTransmitter" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'>"+zer+(n+1)+"<\/a><\/li>");
            });
         }
         
         $("div#stripTransmitter" + j + " ul").prepend('<li><span class="prev"><img src="fileadmin/templates/img/slider-prev-white.png" width="7" height="5" alt="&lt;" /></span></li>');
         $("div#stripTransmitter" + j + " ul").append('<li><span class="next"><img src="fileadmin/templates/img/slider-next-white.png" width="7" height="5" alt="&gt;" /></span></li>');
         $("div#stripTransmitter" + j + " ul").prepend('<li class="sl-btn prev"><span class="prev">&nbsp;</span></li><li class="sl-btn next"><span class="next">&nbsp</span></li>');  
         
         
         
         
         $('.prev').css({'visibility': 'hidden'})
         
         //if(isTriple){
         //   $('.triple .stripViewer a').click(function(){
         //       $(this).each(function(inx){
         //           
         //           $('div#stripTransmitter' + j + " a:last").trigger('click', [inx]);
         //           
         //       })
         //       
         //   });
         //}
         
         
         // transmitter click-event
         $("div#stripTransmitter" + j + " a").each(function(z) {
            $(this).click(function(e, isSpan){
                e.preventDefault();
                //$(this).prev().addClass('current');
                //alert(isSpan);
                //alert(z);
                //alert($('.stripTransmitter  a').length);
                if(isTriple && z==0){
                    $(this).parent().next().find('a').trigger('click');
                }else if (isTriple && z==$('.stripTransmitter  a').length-1) {
                    $(this).parent().prev().find('a').trigger('click');
                    
                }else {
                    $(this).addClass("current").parent().parent().find("a").not($(this)).removeClass("current"); // wow!
                     
                     var toAdd = 0;
                     if(isTriple){
                         $(this).parent().next().children().addClass('current');
                         $(this).parent().prev().children().addClass('current');
                         var toAdd = 150;
                     }
                    
                    if($(this).parent().parent().find('a').last().hasClass('current')){
                      $('.next').css({'visibility': 'hidden'});
                    } else {
                      $('.next').css({'visibility':'visible'});
                    }
                    
                    if($(this).parent().parent().find('a').first().hasClass('current')){
                      $('.prev').css({'visibility':'hidden'});
                    } else {
                      $('.prev').css({'visibility':'visible'});
                    }
                    
                    var divid = (isTriple) ? 3 : 1;
                    var cnt = -(((pictWidth)*z)/divid)+toAdd;
                    container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc);
                }
                

               return true;
            });
            
            //if(isTriple && (z==0 || z == $("div#stripTransmitter" + j + " a").length-1)){
            //    $(this).unbind('click');
            //}
            
         });
         
         //container.css('z-index', -1);
         //
         //$('.sliderbg').mousedown(function(){
         //   var cLeft = parseFloat(container.find('ul').css('left'));
         //   if((-1*cLeft)%675==0 ){
         //      container.css('z-index', 0);
         //   }
         //});
         //$('.sliderbg').mouseup(function(){
         //   container.css('z-index', -1);
         //});
         
         
         
         if(isTriple){
            //image clicks (for product slider)
            $('.triple .slidec a').each(function(n){
                $(this).click(function(){
                    $(".stripTransmitter  a#slideme"+n).trigger('click');
                    //alert('N:'+n);
                });
            });
            
            
            
            if($(this).find("li").length==1 && $(this).find("li").children('.slidec').length<3){
                $('.stripTransmitter').hide();
            } else {
                $('#svw-actel').trigger('click');
            }
            
            //Slide to act Element
            
         }
         
         //arrow/corner clicks
         $("div#stripTransmitter" + j + " ul span").click(function(){
            if(isTriple){
                if($(this).attr('class') == 'prev'){
                    var ui =  container.next().find("a.current").first().parent().prev().children();
                } else {
                    var ui =  container.next().find("a.current").last().parent().next().children();
                }
            } else {
                var ui =  container.next().find("a.current");
            }
            
            var bTotal = parseFloat(container.css('borderLeftWidth').replace("px", "")) +  parseFloat(container.css('borderRightWidth').replace("px", ""));
            var dOs = container.offset();
            
            if($(this).attr('class') == 'prev'){
               var uiprev = ui.parent().prev().find("a");
               if(isTriple && uiprev.parent().prev().prev().prev().is('li:first-child')){
                    uiprev = ui.parent().find('a');
                }
               
               ($(uiprev).length != 0)? uiprev.trigger("click", [true]) : ui.parent().parent().find("a:first").parent().next().find('a').trigger("click", [true]);  
            } else {
               var uinext = ui.parent().next().find("a");
               
                if(isTriple && uinext.parent().next().is('li:last-child')){
                    uinext = ui.parent().find('a');
                }
               
               ($(uinext).length != 0)? uinext.trigger("click" , [true]) : ui.parent().parent().find("a:last").parent().prev().find('a').trigger("click", [true]);
            }
         });
         
         //init class="current"
         $("div#stripTransmitter" + j).css("width" , pictWidth);
        if(!isTriple){
            $("div#stripTransmitter" + j + " a:first").addClass("current");
            //$("div#stripTransmitter" + j + " a:first").parent().next().children().addClass("current");
            //$("div#stripTransmitter" + j + " a:first").parent().next().next().children().addClass("current");
         }
         
         
         //tool tip stuff (not needed)
         $('body').append('<div class="tooltip" style="display:none;"><\/div>');
         
         if(settings.toolTip){
            var aref = jQuery("div#stripTransmitter" + j + " a");
            
            aref.live('mousemove', function(e) {
            var att = jQuery(this).attr('title');
            posX=e.pageX+10;
            posY=e.pageY+10;
            $('.tooltip').html(att).css({'position': 'absolute', 'top': posY+'px', 'left': posX+'px', 'display': 'block', 'opacity': settings.ttOpacity});
            });
            aref.live('mouseout', function() {
            $('.tooltip').hide();
            });        
         }
      });
      j++;
   });  
};
