	(function($){
		
	  $.fn.extend({
		 
		 slidebox: function(options){
			 
             var defaults = {
                 xmlFile: '',
				 hover: true,
				 containerName: '#slidebox',
				 menuID: '.slidebox_menuItems',
				 width: 400,
                 fadeSpeed_show : 3000,  
                 fadeSpeed_click : 1000,
				 fadeOut : 2000
             }  
                   
             var options =  $.extend(defaults, options);  
			 var o = options;
	         var imageArray = []; 
	         var counter = 0;
			 var container = $(this);
			 var slideCount = 0;
			 var interval = null; 
			 var menu = [];
			 
			var speedFix = null;
			if(o.hover == true){
				 speedFix = o.fadeSpeed_show;
			} else {
				 speedFix = o.fadeSpeed_click;
			}
			 
			 $(o.menuID).empty();
			 container.empty();
			 container.parent().css({'width':o.width});
			 var main_div = container.parent();
			 var p = container.position();

			 $.ajax({
				type: "GET",
				url: o.xmlFile,
				dataType: "xml",
				success: function(xml){
                var count = 0; 
                $(xml).find('site').each(function() {

                    var url = $(this).find('url').text();
                    var target = $(this).find('target').text();
                    var imageURL = $(this).find('imageURL').text();
                    var alt = $(this).find('alt').text();
					var time = ($(this).find('time').text() * 1000);

					//append to array
                    imageArray[parseInt(count)] = new Array(imageURL, url, target, alt, time); 
					menu[parseInt(count)] = new Array((count+1), alt);
                    count++;
                });
				$.each(imageArray,function(){
					container.append('<div class="image_container" style="display:none;" id="'+(counter+1)+'" title="'+imageArray[counter][3]+'"><p id="'+imageArray[counter][4]+'"><a href="'+imageArray[counter][1]+'" title="'+imageArray[counter][3]+'"><img src="'+imageArray[counter][0]+'" alt="'+imageArray[counter][3]+'" border="0" /></a></p></div>');
					$('div.image_container:last').css({'position':'absolute'});
					counter++;
					slideCount++;
				});
				counter = 0;

				$.each(menu,function(){
					$(o.containerName+" div.slidebox_menu ul.slidebox_menuItems").append('<li id="'+menu[counter][0]+'"><a class="slideoption" title="'+menu[counter][1]+'" id="'+menu[counter][0]+'">'+(counter+1)+'</a></li>');
					counter++;
				});
				
				},

				complete: function(){

				  var height_container = container.find(".image_container:first").height();
				  $(o.containerName+" div.image_container").hide();
				  container.css({'height':height_container});
					
		          var currentSlide = 0;
		          var prevSlide = null;
				  var last = null;
				  var chng_interval = null;

						function nextSlide(){

						if (currentSlide >= slideCount){
						 currentSlide = 1;
						}else{
						 currentSlide++
						}

						gotoSlide(currentSlide);

						}

						function gotoSlide(slideNum){
							
						if (slideNum != prevSlide){

						container.find('div#'+slideNum).fadeIn(speedFix);
						
				        $(o.containerName).find('ul.slidebox_menuItems').find('li#'+prevSlide).animate({opacity:1});
						$(o.containerName).find('ul.slidebox_menuItems').find('li#'+slideNum).animate({opacity:0.5});

						 $(container).children("div[id="+prevSlide+"]").fadeOut(speedFix);
						
						chng_interval = $('div#'+slideNum+' p').attr('id');

						prevSlide = currentSlide;
						
						if (interval != null){clearInterval(interval);}

   						     interval = setInterval(nextSlide, chng_interval);

 						   }

						}

						nextSlide();
						
			 if(o.hover == true){	
			 $(".slideoption").live( 'mouseover',  function() { 
			 if(currentSlide != $(this).attr('id')){
				currentSlide = $(this).attr('id');
				gotoSlide(currentSlide);
				if (interval != null){clearInterval(interval);}
			 }
			 })
			 .live('mouseleave', function(){
				 chng_interval = $('div#'+currentSlide+' p').attr('id');
				 interval = setInterval(nextSlide, chng_interval);
			 });
			 } else {
			 $(".slideoption").live( 'click',  function() { 
			 if(currentSlide != $(this).attr('id')){
				$(container).children("div[id="+currentSlide+"]").fadeOut(speedFix);
				currentSlide = $(this).attr('id');
				gotoSlide(currentSlide);
			 }
			 })
			 .live('mouseleave', function(){
			 }); 
			 }
						
				 }
				
			 });

			 }
			 
		 });
		  
	  })($);
