/**-----------------------------------
Title: Simple Javascript XML Slideshow
Description: This file is created for use with the this product hosted on codecanyon.net
Version: 1.1
Last Updated: July 28, 2010
Author: Israel Jernigan
Author URI: http://israeljernigan.com/
Usage: This file is only authorized to be used in accordance with the licensing agreements setup on the Envato Networks websites. These licensing options can be found here, http://codecanyon.net/wiki/support/legal-terms/licensing-terms/ Any other use is not permitted unless otherwise stated by direct permission of the author or this specific file has been purchased for use.

How To Buy A License: http://codecanyon.net/wiki/buying/howto-buying/licensing/


-----------------------------------*/
   
//<![CDATA[
if(typeof jQuery != 'undefined') {
	jQuery(function($) {
		$.fn.extend({
		// !TODO Write docs for this file, and post on CodeCanyon for sale as a plugin
		
		/**-----------------------------------
		SETUP
		
			-HTML
			This is the basic html needed to get started with your slideshow. Simply place this code wherever you want your slideshow to appear.
			
			<div class="SliderContainer">	
				<!-- !start of slider -->
				<div class="sjxs_sliding_content">

			    </div>
			    <!-- !end of slider -->
			</div>
		
			-SETTINGS
			At the bottom of this file are the default options that can be used for this file, you can change the global variables there.
			And there are brief descriptions of what they do next to each. The xml file has more expnaded descriptions and examples.
			
			Example of how to change the settings with html:
				$('.SliderContainer').simple_js_xml_slideshow({
							container: ".sjxs_sliding_content", 
							xml_url: "js/simple_jxs/simplexmlslideshow.xml",
							transition_time: 3, 
							transition_speed: 750, 
							transition: 'fadeIn',  
							show_loading: 'true', 
							random_start: 'false',
							stop_on_click: 'true',
							include_prev_next: 'true',
							picket_fence_cnt: '15',
							prev_button: '&lt;',
							next_button: '&gt;'
				});
				
			If there are settings in the xml file, they will take presidence over the javascript settings in all cases. It goes like this:
			1. XML
			2. Javascript
			3. Defaults

		--------------------------------------**/
		
		/**-----------------------------------
		XML SETUP
		
		Instructions for how to change the effects, speed, duration of the images is documented in the xml file itself.
		simplexmlslideshow.xml
		
		If you want to use php to dynamically create your xml file, I've included a script that easily does this for you.
		All you have to do is include it in a folder of images you want to use. 
		Just follow the instructions in the included simplexmlslideshow.xml.php file.
		
		--------------------------------------**/
		
		/**-----------------------------------
		Coming Features
		
		- Prev and Next button options
		- Pause slideshow/timer on rollover
		- Better integration of text with the images (Like titles or descriptions on top of the images.)
		- More easing transitions
		
		--------------------------------------**/
		
		
		/**-----------------------------------
		NO NEED TO EDIT BELOW THIS LINE
		--------------------------------------**/
			simple_js_xml_slideshow: function(options) {
			
			this.sjxs_xml;
			this.sjxs_object = new Array();
			var self = this;
		    this.width;
		    this.height;
		    this.slideTotCount = 0;
		    this.curSlideNum = 0;
		    var nextSlideNum = 1;
		    this.slideStart = false;
		    var $t = $(this);
		    this.daddy = $t.attr('class');
		    this.settings = $.extend({}, $.fn.simple_js_xml_slideshow.defaults, options);
		    this.startTimer = new Timer();
		    var clickOn = true;
		    var buttonClicked = '';
		      
		    this.sjxs_init = function(){
		    
		    //Set width
		    this.width = $t.find(this.settings.container).width();
		    
		    //Set height
		    this.height = $t.find(this.settings.container).height();
			
			//insert html needed
		    this.loadHtml();

		    //display load animation
		    this.loadingImage();  
		    
		    //get xml file
			$.ajax({
		                 type: "GET",
		                 url: this.settings.xml_url,
		                 dataType: "xml",
		                 success: function(xml) {
		                     this.sjxs_xml = xml;
		                     $(this.sjxs_xml).find('image').each(function(i,val) {
		                     
						          var image = $(this);
						          
						          var content = {
						          	'content':image.text()
						          	
						          };
						          
						          if(typeof(image.attr('href')) != 'undefined'){
						          	content.href = image.attr('href');
						          }
						         
						          if(typeof(image.attr('title')) != 'undefined'){
						          	content.title = image.attr('title');
						          }else{
						          	content.title = ''; //will never be false, just empty
						          }
						          
						          self.sjxs_object.push(content);
						    });
						    
						    var gal = $(this.sjxs_xml).find('gallery');
						    
						    if(typeof(gal.attr('transition_time')) != 'undefined'){
						    	self.settings.transition_time = parseInt(gal.attr('transition_time'));
						    }
						    	self.settings.transition_time = (parseInt(self.settings.transition_time)*1000);//convert to milliseconds
						    
						    if(typeof(gal.attr('transition')) != 'undefined'){
						    	self.settings.transition = gal.attr('transition');
						    }
						    
						    self.settings.transition_speed = parseInt(self.settings.transition_speed);
						    
						    if(typeof(gal.attr('transition_speed')) != 'undefined'){
						    	self.settings.transition_speed = (parseInt(gal.attr('transition_speed')));
						    }
						    
						    if(typeof(gal.attr('show_loading')) != 'undefined'){
						    	self.settings.show_loading = gal.attr('show_loading');
						    }
						    
						    if(typeof(gal.attr('random_start')) != 'undefined'){
						    	self.settings.random_start = gal.attr('random_start');
						    }
						    
						    if(typeof(gal.attr('include_prev_next')) != 'undefined'){
						    	self.settings.include_prev_next = gal.attr('include_prev_next');
						    }
						    
						    if(typeof(gal.attr('prev_button')) != 'undefined'){
						    	self.settings.prev_button = gal.attr('prev_button');
						    }
						    
						    if(typeof(gal.attr('next_button')) != 'undefined'){
						    	self.settings.next_button = gal.attr('next_button');
						    }
						    
						    if(typeof(gal.attr('picket_fence_cnt')) != 'undefined'){
						    	self.settings.picket_fence_cnt = gal.attr('picket_fence_cnt');
						    }
						  
						  	if(self.settings.transition_time > 0){
						    	self.startTimer.interval(self.settings.transition_time).addCallback(self.timerControl);
						    }
						    //file loaded
							//remove load animation, then trigger starting function
							self.loadingImage();
							
							self.slideTotCount = self.sjxs_object.length;
							
							if(self.settings.random_start == 'true'){
						    	self.curSlideNum = Math.floor(Math.random()*self.slideTotCount-1);
						    	if(self.curSlideNum<0){ this.curSlideNum = self.slideTotCount-1; nextSlideNum = 0;}
						    	
						    }
						    
							self.sjxs_run_setup();
							
		                 }
		      }); //close $.ajax(
		        
		    };
		    
		    
		    this.loadingImage = function(){
		    	//$(".sjxs_group_container").append('<div class="sjxs_status"><img src="images/ajax-loader.gif" alt="loading"/></div>');
		    	//$(".sjxs_status").removeClass('sjxs_hide');
		    	
		    	if(self.settings.show_loading == 'false'){
		    		$t.find(self.settings.container+" .sjxs_status").addClass('sjxs_hide');
		    		return;
		    	}
		    	
		    	
		    	if($t.find(self.settings.container+" .sjxs_status").hasClass('sjxs_hide')){
		    	
		    		$t.find(self.settings.container+" .sjxs_status").removeClass('sjxs_hide');
		    	}else{
		    	
		    		$t.find(self.settings.container+" .sjxs_status").addClass('sjxs_hide');
		    	}
		    	
		    };
		    
		    /*
		    Setup html needed
		    */
		    this.loadHtml = function(){
		    	if(self.settings.include_prev_next == 'false'){
		    		$t.find(self.settings.container).append('<div class="sjxs_status sjxs_hide"></div><div class="sjxs_group_container"><!-- loading images here --></div>');
		    	}else{
		    		$t.find(self.settings.container).append('<a href="javascript:void(0);" class="sjxs_prev">'+self.settings.prev_button+'</a><a href="javascript:void(0);" class="sjxs_next">'+self.settings.next_button+'</a><div class="sjxs_status sjxs_hide"></div><div class="sjxs_group_container"><!-- loading images here --></div>');
		    		
		    		$t.find(self.settings.container + ' .sjxs_prev').click(function(){
						self.clickPrev();
					});
					
					$t.find(self.settings.container + ' .sjxs_next').click(function(){
						self.clickNext();
					});

		    	}
		    	
		    	
		    };

								      
		    this.sjxs_init();  
		    		    
		    /*
		    This is triggered once xml file is loaded
		    It initializes/starts the slideshow process
		    */
		    this.sjxs_run_setup = function(){
		    	$t.find(self.settings.container+" .sjxs_group_container").append('<div class="sjxs_col-group current"></div>');
		     
			    //cycle through slides
			   	self.slideNext();
		    };
		    
		    /*
		    Controls the prev and next buttons
		    */
		    this.clickNext = function(){
		    	if(clickOn){
		    		buttonClicked = 'next';
			    	self.curSlideNum = self.curSlideNum;
			    	
			    	//cycle through slides
				   	self.timerControl();
				   	
				   	if(self.settings.stop_on_click == 'true'){
					   	self.startTimer.stop();
					}
				}
		    };
		    
		    this.clickPrev = function(){
		    	if(clickOn){
		    		buttonClicked = 'prev';
			    	if(self.curSlideNum == 0){
			    		self.curSlideNum = self.slideTotCount-2;
			    	}else{
			    		self.curSlideNum = self.curSlideNum-2;
			    	}
			    	
			    	//cycle through slides
				   	self.timerControl();
				   	
				   	if(self.settings.stop_on_click == 'true'){
					   	self.startTimer.stop();
					}
				}
		    };
		    
		    this.slideNext = function(){
		    
		    if(!self.slideStart){//first one
		    	var slideHtml = '<div class="sjxs_current_img"><img style="display:none;"></div>';
		    	
		    	if(self.curSlideNum < 0){self.curSlideNum = self.slideTotCount-1; nextSlideNum = 0;}
		    	
		    	//add link
		    	if(typeof(this.sjxs_object[nextSlideNum].href) != 'undefined' && self.settings.transition.substring(0,11) != 'picketFence'){
		    		slideHtml = '<div class="sjxs_current_img"><a><img/></a></div>';
		    	}
		    	
		    	$t.find(self.settings.container+' .sjxs_col-group')
		    	.append(slideHtml)
		    	.find('.sjxs_current_img img')
		    	.attr(
		    		'src',self.sjxs_object[self.curSlideNum].content
		    		);
		    	
		    	//add link
		    	if(typeof(this.sjxs_object[nextSlideNum].href) != 'undefined' && self.settings.transition.substring(0,11) != 'picketFence'){ 		
		    		$t.find(self.settings.container+' .sjxs_col-group .sjxs_current_img a')
		    		.attr({
		    			'href':$(self.sjxs_object[self.curSlideNum]).attr('href'),
		    			'title':$(self.sjxs_object[self.curSlideNum]).attr('title')
		    			});
		    	}
		    	
		    	slideHtml = '<div class="sjxs_next_img"><img></div>';
		    	
		    	if(self.curSlideNum == self.slideTotCount-1){ nextSlideNum = 0;}else{nextSlideNum = self.curSlideNum+1;}
		    	
		    	//add link
		    	if(typeof(this.sjxs_object[nextSlideNum].href) != 'undefined' && self.settings.transition.substring(0,11) != 'picketFence'){
		    		slideHtml = '<div class="sjxs_next_img"><a><img/></a></div>';
		    	}
		    	
		    	$t.find(self.settings.container+' .sjxs_col-group')
		    	.prepend(slideHtml)
		    	.find('.sjxs_next_img img')
		    	.attr(
		    		'src',self.sjxs_object[nextSlideNum].content
		    		);

		    	
		    	//add link
		    	if(typeof(this.sjxs_object[nextSlideNum].href) != 'undefined' && self.settings.transition.substring(0,11) != 'picketFence'){
		    		$t.find(self.settings.container+' .sjxs_col-group .sjxs_next_img a')
		    		.attr({
		    			'href':$(self.sjxs_object[nextSlideNum]).attr('href'),
		    			'title':$(self.sjxs_object[nextSlideNum]).attr('title')
		    			});
		    	}
		    	
		    	if(self.settings.transition.substring(0,11) == 'picketFence'){
		    		
			    	var currentSlide = function(){
				    	self.animateImage($t.find(self.settings.container+' .sjxs_current_img'),self.settings.transition,'out');
			    	};    	
			    	var nextSlide = function(){
			    		self.animateImage($t.find(self.settings.container+' .sjxs_next_img'),self.settings.transition,'');
			    	};
			    	$(currentSlide).add($(nextSlide));
		    	}else{
		    		
			    	$t.find(self.settings.container+' .sjxs_col-group')
			    	.find('.sjxs_next_img img')
			    	.hide();
			    	$t.find(self.settings.container+' .sjxs_col-group')
			    	.find('.sjxs_current_img img')
			    	.fadeIn(self.settings.transition_speed);
		    	}
		    	
		    	//start timer
		    	this.slideStart = true;
		    	self.startTimer.start();
		    	
		    }else{
		 		clickOn = false;
		    	var currentSlide = function(){
			    	self.animateImage($t.find(self.settings.container+' .sjxs_current_img'),self.settings.transition,'out');
		    	};
		    	
		    	
		    	var nextSlide = function(){
		    		self.animateImage($t.find(self.settings.container+' .sjxs_next_img'),self.settings.transition,'');
		    	};
		    	
		    	
		    	
		    	$(currentSlide).add($(nextSlide));
		    	    	
			}     
		   };
		
		  	//transition types
			this.animateImage = function(rav,transition_type,transition_out){	
				
				if(transition_out == 'out'){
					switch(transition_type){
						case 'easeBack':
							transition_type = 'easeInBack';
						break;
						case 'easeBounce':
							transition_type = 'easeInBounce';
						break;
						case 'picketFenceDownSmooth':
						case 'picketFenceDown':
						case 'picketFenceUp':
						case 'picketFenceWipe':
						case 'picketFenceWipe2':
						case 'picketFenceCornerWipe':
							transition_type = 'picketFence';
						break;
						case 'fade':
							transition_type = 'fadeOut';
						break;
					}
				}
				
				switch(transition_type){
					case 'easeBack':
						rav.css({'left':self.width});
						rav.animate({
							left:'-='+self.width,
							opacity: 'show'
						}, self.settings.transition_speed, 'easeOutBack', function(){
							$t.find(self.settings.container+' .sjxs_current_img')
							.addClass('sjxs_next_img')
							.removeClass('sjxs_current_img');
							$(this)
							.addClass('sjxs_current_img')
							.removeClass('sjxs_next_img');
							clickOn = true;
						});
		
					break;
					
					case 'easeInBack':
						rav.animate({
							left:'-='+self.width,
							opacity: 'hide'
						}, self.settings.transition_speed, 'easeInBack', function(){
			    			clickOn = true;
			    		});
					break;
					
					case 'easeBounce':
						rav.css({'left':self.width});
						rav.animate({
							left:'-='+self.width,
							opacity: 'show'
						}, self.settings.transition_speed, 'easeOutBounce', function(){
							$t.find(self.settings.container+' .sjxs_current_img')
							.addClass('sjxs_next_img')
							.removeClass('sjxs_current_img');
							$(this)
							.addClass('sjxs_current_img')
							.removeClass('sjxs_next_img');
							clickOn = true;
						});
		
					break;
					
					case 'easeInBounce':
						rav.animate({
							left:'-='+self.width,
							opacity: 'hide'
						}, this.settings.transition_speed, 'easeInBounce', function(){
			    			clickOn = true;
			    		});
					break;
				
					case 'picketFenceDownSmooth':
						rav.css({'left':'0'});
						rav.empty().append(self.picketFence('down'));
						
						//rav.css({'left':self.width});
						$t.find(self.settings.container+' .sjxs_next_img img').hide();
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						x = 0;
						for(x;x<self.settings.picket_fence_cnt;x++){
							amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/3))*x);
						    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').delay(amnt).animate({
						    	height:self.height,
						    	opacity:'show',
						    	zIndex:400
						    },self.settings.transition_speed,'linear');
						}

						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;
						
						

						
						
					break;
					
					case 'picketFenceDown':
						
						rav.css({'left':'0'});

						rav.empty().append(self.picketFence('up'));
						//rav.css({'left':self.width});
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						
						if(buttonClicked == 'next' || buttonClicked == ''){
							x = 0;
							for(x;x<self.settings.picket_fence_cnt;x++){
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*x);
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').delay(amnt).animate({
							    	top:0,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							    
							}
						}else{
							x = self.settings.picket_fence_cnt;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x>=0;x--){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(self.settings.picket_fence_cnt-x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}

						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;
						
						

						
						
					break;
					
					case 'picketFenceUp':
						
						rav.css({'left':'0'});

						rav.empty().append(self.picketFence('down'));
						//rav.css({'left':self.width});
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						
						
						if(buttonClicked == 'next' || buttonClicked == ''){
							x = 0;
							for(x;x<self.settings.picket_fence_cnt;x++){
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*x);
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').delay(amnt).animate({
							    	top:0,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}else{
							x = self.settings.picket_fence_cnt;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x>=0;x--){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(self.settings.picket_fence_cnt-x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}
						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;

					break;
					
					case 'picketFenceWipe':
						
						rav.css({'left':'0'});

						rav.empty().append(self.picketFence('wipe'));
						//rav.css({'left':self.width});
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						
						
						if((buttonClicked == 'next' || buttonClicked == '') && self.settings.picket_fence_cnt == 1){
							x = 0;
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':-elWidth,'float':'none','position':'absolute','width':elWidth}).animate({
							    	top:0,
							    	left:'+='+elWidth,
							    	opacity:['show']
							    },self.settings.transition_speed,'easeOutQuart');
							
						}else if(buttonClicked == 'next' || buttonClicked == ''){
							x = 0;
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							for(x;x<self.settings.picket_fence_cnt;x++){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
							
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	width:elWidth,
							    	opacity:['show']
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}else if(self.settings.picket_fence_cnt == 1){
							x = 0;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elWidth,'float':'none','position':'absolute'}).animate({
							    	top:0,
							    	left:'-='+elWidth,
							    	width:elWidth,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							
						}else{
							x = self.settings.picket_fence_cnt;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x>=0;x--){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(self.settings.picket_fence_cnt-x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	width:elWidth,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeInQuart');
							}
						}
						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;

					break;
					
					case 'picketFenceWipe2':
						
						rav.css({'left':'0'});

						rav.empty().append(self.picketFence('wipe'));
						//rav.css({'left':self.width});
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						
						
						if((buttonClicked == 'next' || buttonClicked == '') && self.settings.picket_fence_cnt == 1){
							x = 0;
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;

								
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':-elWidth,'float':'none','position':'absolute','width':self.width}).animate({
							    	top:0,
							    	left:0,
							    	opacity:['show']
							    },self.settings.transition_speed*3,'easeOutQuart');
							
						}else if(buttonClicked == 'next' || buttonClicked == ''){
							x = 0;
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							for(x;x<self.settings.picket_fence_cnt;x++){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
							
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	width:self.width,
							    	opacity:['show']
							    },self.settings.transition_speed*3,'easeOutQuart');
							}
						}else if(self.settings.picket_fence_cnt == 1){
							$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq(0)').css({'left':self.width,'width':self.width,'float':'none','position':'absolute'}).animate({
							    	top:0,
							    	left:'0',
							    	height:self.height,
							    	opacity:['show']
							    },self.settings.transition_speed*3,'easeOutQuart');
						}else{
							x = self.settings.picket_fence_cnt;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x>=0;x--){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(self.settings.picket_fence_cnt-x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	width:self.width,
							    	opacity:'show'
							    },self.settings.transition_speed/2,'easeInQuart');
							}
						}
						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;

					break;
					
					case 'picketFenceCornerWipe':
						
						rav.css({'left':'0'});

						rav.empty().append(self.picketFence('wipecorner'));
						//rav.css({'left':self.width});
						
						$('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket').hide();
						
						
						if(buttonClicked == 'next' || buttonClicked == '' || self.settings.picket_fence_cnt == 1){
							x = 0;
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x<self.settings.picket_fence_cnt;x++){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
							
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(x));
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	height:self.height,
							    	width:elWidth,
							    	opacity:['show']
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}else{
							x = self.settings.picket_fence_cnt;
							
							elWidth = (self.width/self.settings.picket_fence_cnt);
							elTotWidth = 0;
							
							for(x;x>=0;x--){
							
							if(x == (self.settings.picket_fence_cnt-1)){
								elWidth = self.width-elTotWidth;
								elTotWidth += elWidth;
								elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x+'px';
							}else{
								elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
								elTotWidth += elWidth;
								elNewPos = elWidth*x+'px';
							}
							
								amnt = ((self.settings.transition_speed/(self.settings.picket_fence_cnt/1))*(self.settings.picket_fence_cnt-x));
								
							    $('.'+self.daddy+' '+self.settings.container+' .sjxs_next_img .sjxs_picket:eq('+x+')').css({'left':elNewPos,'float':'none','position':'absolute'}).delay(amnt).animate({
							    	top:0,
							    	height:self.height,
							    	width:elWidth,
							    	opacity:'show'
							    },self.settings.transition_speed,'easeOutQuart');
							}
						}
						
						$t.find(self.settings.container+' .sjxs_current_img')
						.addClass('sjxs_next_img')
						.removeClass('sjxs_current_img');
						
						rav.addClass('sjxs_current_img')
						.removeClass('sjxs_next_img');
						clickOn = true;

					break;
					
					case 'picketFence':

					break;
				
					case 'fade':
						rav.css({'left':'auto'});
						rav.fadeIn(self.settings.transition_speed,function(){
			    			$t.find(self.settings.container+' .sjxs_current_img')
							.addClass('sjxs_next_img')
							.removeClass('sjxs_current_img');
							$(this)
							.addClass('sjxs_current_img')
							.removeClass('sjxs_next_img');
							clickOn = true;
			    		});
					break;
					
					case 'fadeOut':
					default:
						rav.css({'left':'auto'});
						rav.fadeOut(self.settings.transition_speed,function(){
			    			clickOn = true;
			    		});
					break;
					
				}
				
			};  
		  
		   //initialize timer
		   this.timerControl = function(){
						if(self.curSlideNum < self.slideTotCount){
							self.curSlideNum = self.curSlideNum+1;
						}else if(self.curSlideNum < 0){
							self.curSlideNum = self.slideTotCount-1;
						}else{
							self.curSlideNum = 0;
						}
						if(self.curSlideNum == self.slideTotCount){
							self.curSlideNum = 0;
						}
					          self.slideNext();
					          
					          self.loadNext();
						notrun = false;
						self.startTimer.start();
				      
			};
			
			this.loadNext = function(){
				self.startTimer.stop();
				self.loadingImage();
				
				var img = new Image();
				$(img).load(function(){
					$t.find(self.settings.container+' .sjxs_next_img img').remove();
					self.loadingImage();
					
					if(typeof(self.sjxs_object[self.curSlideNum].href) != 'undefined'){
						
						$t.find(self.settings.container+' .sjxs_next_img a').append(this);
					}else{
						$t.find(self.settings.container+' .sjxs_next_img').append(this);
					}
					
				}).error(function(){
				
				})
				.attr('src',self.sjxs_object[self.curSlideNum].content);
				
				//add link
		    	if(typeof(self.sjxs_object[self.curSlideNum].href) != 'undefined'){
		    		
		    		$t.find(self.settings.container+' .sjxs_col-group .sjxs_next_img a')
		    		.attr({
		    			'href':$(self.sjxs_object[self.curSlideNum]).attr('href'),
		    			'title':$(self.sjxs_object[self.curSlideNum]).attr('title')
		    			});
		    	
		    	}		
						
			};
			
			this.picketFence = function(type){
				if(type=='down'){
					styles = 'top:'+self.height+'px;height:'+self.height+'px;';
				}else if(type=='up'){
					styles = 'top:-'+self.height+'px;height:'+self.height+'px;';
				}else if(type=='wipe'){
					styles = 'width:0px;height:'+self.height+'px;';
				}else if(type=='wipecorner'){
					styles = 'width:0px;height:0px;';
				}else{
					styles = 'height:0px;';
				}

				elWidth = (self.width/self.settings.picket_fence_cnt);
				elTotWidth = 0;
				
				var html = '';
				var x=0;
				
				for(x; x < self.settings.picket_fence_cnt; x++){
					if(x == (self.settings.picket_fence_cnt-1)){
						elWidth = self.width-elTotWidth;
						elTotWidth += elWidth;
						elNewPos = (Math.floor((self.width/self.settings.picket_fence_cnt)))*x;
					}else{
						elWidth = Math.floor((self.width/self.settings.picket_fence_cnt));
						elTotWidth += elWidth;
						elNewPos = elWidth*x;
					}
					html += '<div class="sjxs_picket" style="position:relative;float:left;background:url(\''+self.sjxs_object[self.curSlideNum].content+'\') '+(elNewPos*-1)+'px 0px no-repeat;width:'+elWidth+'px;'+styles+'"></div>';
				}
				
				//check if there needs to be a link
				if(typeof(this.sjxs_object[self.curSlideNum].href) != 'undefined'){
		    		html = '<a href="'+$(self.sjxs_object[self.curSlideNum]).attr('href')+'" title="'+$(self.sjxs_object[self.curSlideNum]).attr('title')+'">'+html+'</a>';
		    	}
		    	
				
				return html
			};
			
			}
		});
	//Default settings can be changed here
	$.fn.simple_js_xml_slideshow.defaults = {
					container: ".sjxs_sliding_content", //Class/id of main container. You can use "#container" for an id.
					xml_url: "js/simple_jxs/simplexmlslideshow.xml",
					transition_time: 7, //Set to positive number for true. This number will be the time between transitions.
					transition_speed: 750, //Speed of slide animation, 1000 = 1second.
					transition: 'fade', //Easing type can be put here; Options: fade, easeBack, easeBounce, picketFenceUp, picketFenceDown, picketFenceCornerWipe, picketFenceWipe, picketFenceWipe2
					show_loading: 'true', //Add loading animation before loading an image between transitions; true/false
					random_start: 'false', //Load the first image randomly; true/false
					stop_on_click: 'true', //If either the Prev or Next button is pressed the transitions will stop; true/false
					picket_fence_cnt: '15', //How many strips you would like if using the picketFenceTransition
					include_prev_next: 'true', //Show Prev and Next buttons; true/false,
					prev_button: '&lt;', //This is what icon/html/text will be used for the previous button
					next_button: '&gt;' //This is what icon/html/text will be used for the next button
		};
	});
}
