if(jQuery) {
	var highlights = {
		data: {},
		index: 0,
		interval: null,
		paused: false,
		init: function() {
			clearInterval(highlights.interval);
			this.data = highlight_data;
			this.container = $("#"+this.data.elementID);
			this.container.empty().addClass("highlights_container");
			this.container.mouseover(function() {
				highlights.paused = true;
			}).mouseout(function() {
				highlights.paused = false;
			})
			// add all the HTML from the start, so everything gets loaded
			for(var m in this.data.slides) {
				var slide = this.data.slides[m];
				$("<div class='highlights_slide' rel='"+m+"'>"+slide+"</div>").appendTo(this.container);
			}
			
			if(this.data.height && this.data.width) {
				this.container.css({
					"width": this.data.width,
					"height": this.data.height
				})
				this.container.find(".highlights_biglink").css({
					"width": this.data.width,
					"height": this.data.height
				})
			}
			
			// start interval
			if(this.data.slides.length > 1) {
				highlights.interval = setInterval(function() {
					if(highlights.paused == false) {
						highlights.next()
					}
				},highlights.data.speed?highlights.data.speed*1000:5000);
			}
			
			// do buttons, if required
			if(highlights.data.buttons) {
				this.buttons = $("<div class='highlights_buttons'></div>").appendTo(this.container);
				for(var m in this.data.slides) {
					$("<a class='highlights_button'><span class='highlights_button_inner'><span class='highlights_button_number'>"+(m*1+1)+"</span></span></a>").appendTo(this.buttons).attr("rel",m).click(function() {
						highlights.show(this.getAttribute('rel'), true);
					});
				}
			}
			
			// show first slide
			highlights.show(0,true);
		},
		pause: function() {
			highlights.pause = true;
		},
		next: function() {
			if(this.data.slides[this.index+1]) {
				this.index++;
			} else {
				this.index = 0;
			}
			this.show(this.index);
		},
		back: function() {
			if(this.data.slides[this.index-1]) {
				this.index--;
			} else {
				this.index = this.data.slides.length-1;
			}
			this.show(this.index);
		},
		show: function(slideID, instant) {
			this.index = slideID*1;
			if(this.buttons) {
				this.buttons.find("a").removeClass("active");
				this.buttons.find("a[rel="+slideID+"]").addClass("active");
			}
			if(instant == true || this.data.transition == "instant") {
				this.container.find(".highlights_slide").hide();
				this.container.find(".highlights_slide[rel="+slideID+"]").show();
				return;
			}
			
			if(!this.data.transition || this.data.transition == "fade") {
				highlights.container.find(".highlights_slide:visible").each(function() {
					var el = this;
					setTimeout(function() {
						$(el).hide();
					},1000)
				})
				highlights.container.find(".highlights_slide[rel="+slideID+"]").appendTo(highlights.container).fadeIn();
			}
		}
	};
	$(function() {
		highlights.init();
	})
} else if(console && console.log) {
	console.log("Include jQuery to enable Highlights.");
}
