var sliderInterval = 4000;
var sliderAnimationSpeed = 1000;

$(document).ready(function() {
	$("#header .banner .slider").slider();
	$("#sidebar .menu").sideMenu();
});

jQuery.fn.extend({
	
	slider: function(){
		return this.each(function(){
			var slider = $(this);
			var imgs = new Array();
			var currentImg = 0;
			var animationNow = false;
			var sliderPaused = false;
			var skipNextTimerTick = false;
			
			slider.find("img").each(function(){
				imgs[imgs.length] = $(this).attr("src");
				$(this).remove();
			});
			
			slider.append('<div class="display"><div class="image" style="background-image:url(' + imgs[0] + ')"></div></div>');
			slider.append('<div class="panel"><div class="controls">' +
				'<a class="left" href="#"> <br/> </a>' +
				'<a class="pause" href="#"> <br/> </a>' +
				'<a class="right" href="#"> <br/> </a>' +
				'</div></div>');
				
			slider.contents().find(".controls .right").click(function(){
				flipImages(currentImg + 1);
				skipNextTimerTick = true;
				return false;
			});
			
			slider.contents().find(".controls .left").click(function(){
				flipImages(currentImg - 1);
				skipNextTimerTick = true;
				return false;
			});
			
			slider.contents().find(".controls .pause").click(function(){
				if ($(this).hasClass("pause")) {
					sliderPaused = true;
					$(this).addClass("play").removeClass("pause");
				}
				else if ($(this).hasClass("play")) {
					sliderPaused = false;
					$(this).addClass("pause").removeClass("play");
				}
				
				return false;
			});
			
			setInterval(function(){
				if (!sliderPaused && !skipNextTimerTick) 
					slider.contents().find('.controls .right').click();
				skipNextTimerTick = false;
			}, sliderInterval);
			
			function flipImages(index)
			{
				
				if (!animationNow) {
					var old = slider.contents(".display").find(".image");
					
					if (index < 0) {
						index = imgs.length - 1;
					}
					else if (index >= imgs.length) {
						index = 0;
					}
					
					slider.contents(".display").append('<div class="new image" style="background-image:url(' + imgs[index] + ')"></div>');
					currentImg = index;
					animationNow = true;
					slider.contents(".display").find(".new.image").css("opacity", "0").
						animate({
							opacity:"1"
						}, sliderAnimationSpeed, "", function(){
							$(this).removeClass("new");
							old.remove();
							animationNow = false;
						});
				}
				
			}
		})
	},
	
	sideMenu: function(){
		return this.each(function(){
			var menu = $(this);
			
			menu.children("ul").contents("li").each(function(){
				if ($(this).children("ul").size() > 0) {
									
					$(this).children("a").click(function(){
						var a = $(this);
						var li = a.parent();
						var ul = li.children("ul");
						
						
						if (li.hasClass("expanded")) {
							ul.animate({
								height:0,
								opacity:0
							}, "slow", "", function(){
								li.removeClass("expanded");
								ul.attr("style", "");
							});
						}
						else {
							ul.css("display", "block");
							var startHeight = ul.height();
							
							li.addClass("expanded");
							ul.css("height", "0").
							css("opacity", "0").
							animate({
								height:startHeight + "px",
								opacity:1
							}, "slow");
						}
						
						return false;
					});
				}
				
			});
		});
		
	}
	
})

