﻿ var hypes = [];		

jQuery.fn.getHyper = function() {	
    var hypers = this;
    jQuery(hypers).each(function(i){
        hypes[i] = [this.href];
    })
}            


jQuery.fn.promotion_slides = function(s,slideshow,styling) {	
		var promotion_slides = this;
		var img = [];
        var currentImage = 0;
        var buttonTopBuffer = 0;
        if (jQuery.browser.msie) {
            if (jQuery.browser.version.substr(0,3)=="7.0" || jQuery.browser.version.substr(0,3)=="6.0")
                buttonTopBuffer = 21;
        }
        var buttonStopStartTop = 251 + buttonTopBuffer;
		var speed = 3000; if(s) speed = parseInt(s,10);		
		var ssOption = '<li><div id="stopstartbutton" class="img-promotion_slides" style="margin: 0 0 0 0; left: -70px; width: 25px; position: absolute; top: ' + buttonStopStartTop + 'px; height: 24px;"><a href="#" id="playstop" title="Play/Stop SlideShow">&nbsp;</a></div></li>';
		var take = 0;
		if(slideshow==undefined) {
			slideShowSpeed = speed*2.5;
		} else if(slideshow) {
			slideShowSpeed = slideshow;
		} else if (!slideshow) {
			ssOption = '';
			take = 1;
		}
		var promotion_slidesStructure = '<div id="img-promotion_slides" ><a class="img-hyp" href=""><img style="display:none" /></a><div id="img-navbar" style="filter: alpha(opacity=70); opacity:.70;"></div><ul>'+ssOption+'</ul></div>';
		var started = false;
		var active = false;
		var stopclicked = false;
		var startclicked = false;
		var previousclicked = false;
		var nextclicked = false;
		var clickeventfired = false;
		var runcount = 0;				
	    
		jQuery(promotion_slides).each(function(i){
			jQuery(this).hide();
			img[i] = [this.src,this.alt,jQuery(this).attr('longdesc')];
			this.onload = function(){
				jQuery(this).remove();
			}
			promotion_slides[promotion_slides.length-1].onload = function(){
				jQuery(this).remove();
				start();
				started = true;
				active = true;
			}
			setTimeout(function(){
				if(!started) start();
			},2000)
		})
		function start(){
			
		    clickeventfired = false;
			
	        jQuery('body').prepend(promotion_slidesStructure);
	        jQuery("#img-promotion_slides").corner("20px");
		    jQuery("#img-promotion_slides #img-navbar").corner("bottom 20px");
			
			jQuery('#img-promotion_slides #img-navbar').fadeIn();
			
			var buttonPos = -565;
			var buttonWidth = (208/img.length);
			var buttonTop = 247 + buttonTopBuffer;
			jQuery(img).each(function(i){
			    jQuery('#img-promotion_slides ul').append('<li><div id="img-promotion_slides-button' + (i + 1) + '" style="left: ' + buttonPos + 'px; position: absolute; top: ' + buttonTop + 'px; height: 35px; width:' + buttonWidth + 'px;"><center><a href="#img' + (i + 1) + '">' + (i + 1) + '</a></center></div></li>');
			    buttonPos = buttonPos + buttonWidth;
			    if (i == 0) 
				    jQuery("#img-promotion_slides-button1").corner("bl 20px");
			})
		    jQuery('#img-promotion_slides ul').append('<li><div id="previousbutton" class="img-promotion_slides" style="margin: 0 0 0 0; left: -95px; width: 25px; position: absolute; top: ' + buttonStopStartTop + 'px; height: 24px;"><a href="#Previous" id="previous_slide" title="Previous Slide">&nbsp;</a></div></li>');
		    jQuery('#img-promotion_slides ul').append('<li><div id="nextbutton" class="img-promotion_slides" style="margin: 0 0 0 0; left: -45px; width: 25px; position: absolute; top: ' + buttonStopStartTop + 'px; height: 24px;"><a href="#Next" id="next_slide" title="Next Slide">&nbsp;</a></div></li>');
            						
			changeImage(0);

			jQuery('#img-promotion_slides ul a:not(#playstop)').click(function(){

				if (clickeventfired == false){

				    clickeventfired = true;

				    var imgToLoad = jQuery(this).attr('href');
				    imgToLoad = imgToLoad.split('#');
    				
		            if (imgToLoad[1] == 'Previous')
		            {
		                previousclicked = true;
		                nextclicked = false;
                        if (active == true)
                        {
                            if (currentImage == 1) 
                                {imgToLoad = promotion_slides.length - 1;}
                            else 
		                        {imgToLoad = currentImage - 2;}
		                } 
		                else 
		                {
                            if (stopclicked == true)
                            {
                                if (currentImage == 1) 
                                    {imgToLoad = promotion_slides.length - 1;}
                                else 
		                            {imgToLoad = currentImage - 2;}
                            } else {
                                if (currentImage == 0) 
                                    {imgToLoad = promotion_slides.length - 1;}
                                else 
		                            {imgToLoad = currentImage - 1;}
		                    }
		                }
		            } 
		            else if (imgToLoad[1] == 'Next')
		            {
		                nextclicked = true;
                        previousclicked = false;
                        if (active == true)
                        {
                            if (currentImage == promotion_slides.length) 
                                {imgToLoad = 0;}
                            else 
		                        {imgToLoad = currentImage;}
		                } 
		                else 
		                {
                            if (stopclicked == true)
                            {
                                if (currentImage == promotion_slides.length) 
                                    {imgToLoad = 0;}
                                else 
		                            {imgToLoad = currentImage;}
                            } else {
                                if (currentImage == promotion_slides.length - 1) 
                                    {imgToLoad = 0;}
                                else 
		                            {imgToLoad = currentImage + 1;}
		                    }
		                }
		            }
		            else 
		            {
		                nextclicked = false;
                        previousclicked = false;
		                imgToLoad = parseInt(imgToLoad[1].substr(3)) - 1;
		            }
            
                    changeImage(imgToLoad);
                    
                    
                    if (active == true)
                    {
				        stopSlideShow();
				        startSlideShow();
				    }
    				
				    stopclicked = false;				
				    if(window['ssr']) jQuery('#img-promotion_slides ul a#playstop').click();

				    clickeventfired = false;
				}				
				return false;
			})
            
			jQuery('#img-promotion_slides ul a#playstop').toggle(
			    function(){
			        if(promotion_slides.length > 1)
			        {
				        jQuery(this).toggleClass('stop');
				        stopSlideShow();
				        return false;
			        } else {
				        jQuery(this).toggleClass('stop');
				        startSlideShow();
				        return false;
				    }
			    }
			, function(){
			        if(promotion_slides.length > 1)
			        {
				        jQuery(this).toggleClass('stop');
				        startSlideShow();
				        return false;
			        } else {
				        jQuery(this).toggleClass('stop');
				        stopSlideShow();
				        return false;
				    }
			    }
			)

            if(promotion_slides.length > 1){
               jQuery('#img-promotion_slides ul a#playstop').toggleClass('stop');
               startSlideShow();
            }
            
			function changeImage(n, callback){
                runcount++;
	            currentImage = n;
		        jQuery('#img-promotion_slides img').fadeOut(speed / 2, function(){
			        var originalWidth = jQuery('#img-promotion_slides img').width();
			        jQuery('#img-promotion_slides img').attr('src', img[n][0]).attr('alt', img[n][1]);
			        jQuery('#img-promotion_slides a.img-hyp').attr('href', hypes[n]);
			        var width = jQuery('#img-promotion_slides img').width();
			        var height = jQuery('#img-promotion_slides img').height();
                    if (jQuery.browser.safari) {
                        width = originalWidth;
                    } 					    
			        if (width == originalWidth) { fadeInAll(); } else { animate(); }
			        function animate(){ 
				        jQuery('#img-promotion_slides ul').fadeOut(speed / 2, function(){
					        jQuery('#img-promotion_slides').animate({
						        width: width,
						        height: height
					        }, speed / 2, function(){
						        fadeInAll(true)
					        })
				        })
			        }
			        function fadeInAll(fromAnimate){
				        var localSpeed = speed;
				        if (!fromAnimate) 
					        localSpeed = speed / 2;
				        jQuery('#img-promotion_slides img').fadeIn(localSpeed / 2);
				        jQuery('#img-promotion_slides ul').fadeIn(localSpeed / 2);
				        jQuery('#img-promotion_slides ul a:eq(' + (n + 1 - take) + ')').addClass('active');
				        if (callback) callback();
				        if (styling) styling();
			        }
		        })
		        jQuery('#img-promotion_slides ul a').removeClass('active');				
			}
			function startSlideShow(){
			    var imgToStart = currentImage;
			     active = true;
                 nextclicked = false;
                 previousclicked = false;
                 if (imgToStart == promotion_slides.length) {imgToStart = 0;}
                 window['promotion_slidesTimeout'] = setTimeout(function(){startSlideShow()}, slideShowSpeed)
                 if (jQuery.browser.safari) {
                     if  (runcount == 1){			                       
			            jQuery('#img-promotion_slides ul a:eq(' + (1) + ')').addClass('active');
                     } else {
                        changeImage(imgToStart, function(){eval(promotion_slidesTimeout);});
                     }
                 } else {               
                    changeImage(imgToStart, function(){eval(promotion_slidesTimeout);});
                 }
                 runcount++;
                 currentImage++;
			}
			function stopSlideShow(){
    		    active = false;
				window['ssr'] = false;
				clearTimeout(eval(promotion_slidesTimeout));
				stopclicked = true;				
			}
						
		}
}
