

jQuery.fn.scroller = function( options )
{
	var opts = {
		reverse: options.reverse===true,
		pause: options.pause || 1500,
		speed: options.speed || 300,
		endless: options.endless===true,
		autoPlay: options.autoPlay!==false,
		pageNumbers: options.pageNumbers && /^[TMB][LMR]$/i.test(options.pageNumbers) ? options.pageNumbers.toUpperCase() : null,
		width: options.fixWidth,
		pageControls: options.pageControls && /^[TMB][LMR]$/i.test(options.pageControls) ? options.pageControls.toUpperCase() : null
	}
	
	
	return this.each( function( index, domElm )
	{
		function addButton( control, text, className )
		{
			return $("<a " + (className!==undefined ? "class='" + className + "' " : "") + "href='javascript:return false;'>" + text + "</a>").appendTo( control ).css("float","left")

		}
		
		function addControl( anchor )
		{
			return $("<div/>").attr( "class", "control" ).appendTo( anchor ).css("float","left")
		}
		
		function getAnchor( name )
		{
			if (!anchors[name])
			{
				var anchor = $("<div/>").css( "position", "absolute" ).addClass("control-box");
				
				switch (name.charAt(0))
				{
					case "T":
						anchor.css( "top", 20 );
						break;
					case "M":
						anchor.css( "top", "50%" )
						break;
					case "B":
						anchor.css( "bottom", 20 );
						break;
				}
				switch (name.charAt(1))
				{
					case "L":
						anchor.css( "left", 20 );
						break;
					case "M":
						anchor.css( "left", "50%" );
						break;
					case "R":
						anchor.css( "right", 20 );
						break;
				}
				anchors[name] = anchor.appendTo( jElm )
			}
			return anchors[name];
		}
		
		
		var jElm = $(domElm).addClass("scroller")
		var innerWidth  = (opts.width) ? opts.width : jElm.innerWidth()
		var inTransition = false
		var timer, pageNumbers, pageControls
		var anchors = {}
		var index, lastIndex
		
		if (opts.endless)
		{
			jElm.children(":first").clone().appendTo( jElm )
		}
		jElm.css( { position: "relative", overflow: "hidden", width: innerWidth } )
		var items = jElm.children().css( { width: innerWidth, float: "left" } )
		var container = $("<div/>").css( { width: innerWidth * items.length, position: "relative" } ).appendTo( jElm ).append( items )


		if (items.length>1)
		{
			if (opts.pageNumbers)
			{
				pageNumbers = addControl(getAnchor(opts.pageNumbers));
				items.each(
					function( i )
					{
						if (!(i==items.length-1 && opts.endless))
						{
							addButton( pageNumbers, i+1 ).bind("click", function(e) { if (!inTransition && index!=i) { index=i; update()}; e.preventDefault(); return false })
						}
					}
				)
			}

			if (opts.pageControls)
			{
				pageControls = addControl(getAnchor(opts.pageControls));
				addButton( pageControls, "&lt;" ).bind("click", function(e) { if (!inTransition) { index--; update()}; e.preventDefault(); return false })
				addButton( pageControls, "&gt;" ).bind("click", function(e) { if (!inTransition) {index++; update()}; return false })
			}
		}

		lastIndex = index = opts.reverse ? items.length-1 : 0;
		container.css("left", -(index)*innerWidth);
		update()
		
		if (opts.autoPlay)
		{		
			play()
		}		
		

		
		function play()
		{
			pause()
			timer = setInterval( function() { index += (opts.reverse) ? -1 : 1; update()}, opts.pause )
		}
		
		function pause()
		{
			clearInterval(timer)
		}
		



		function update()
		{
			container.stop()
			if (opts.autoPlay)
			{		
				pause()
			}
			
			if (index < 0)
			{				
				/*lastIndex = */index = items.length - 1
				if (opts.endless)
				{
					container.css("left", -(index--)*innerWidth);
				}
			}
			
			if (index > items.length - 1)
			{
				/*lastIndex = */index = 0
				if (opts.endless)
				{
					container.css("left", index++);
				}
			}			
			
			var eventArgs = { from: lastIndex, to: index}
			
			if (pageNumbers)
			{
				pageNumbers.children("a:eq(" + lastIndex + ")").removeClass("active")
				pageNumbers.children("a:eq(" + index + ")").addClass("active")
			}
			
			inTransition = true;
			jElm.trigger("transitionstart", eventArgs )
			
			container.animate({left: -index*innerWidth }, opts.speed, function() 
			{ 
				jElm.trigger("transitionstop", eventArgs)
				if (opts.autoPlay) 
				{
					play()
				}
				lastIndex = index
				inTransition = false; 

			} );
	
		}
		
		
		
		
	})
	
	
}

//PLAN CONTROLS
	$(document).ready( function()
	{
		 $(".nav-selector").css({"display" : "none"})
		var indexes = $("div.nav-selector").each( function()
		{
			$("ul.indexes a", this).click( function() 
			{ 
				var link = $(this);
				var menu = link.parents("div.nav-selector");
				menu.find("ul.indexes a.active").removeClass("active");
				menu.children("div:visible").hide();
				menu.children("div"+this.hash).show();
				link.addClass("active"); return false
			} ).eq(0).trigger("click");
		} )
	} )


//LIGHTBOX
$(document).ready( function()
{
	var overlay, viewer, img, close
	var imgWidth = 789
	var imgHeight = 566
	var padding = 25
	
	$("li a.plans").bind("click",function()
	{ 
		
		if (!overlay)
		{
			function close()
			{
				overlay.fadeTo(200,0, function() { overlay.css("display","none" )})	
				viewer.fadeTo(200,0, function() { viewer.css("display","none" );  })
				return false;
			}

			overlay = $("<div style='background:#000;position:fixed;top:0;left:0;height:100%;width:100%;z-index:50;_position:absolute;_height:" +  $(window).height() + "px'></div>").appendTo("body").bind("click", close)
			viewer = $("<div style='background:#eee;position:fixed;top:50%;left:50%;border:2px solid #000;text-align:center;z-index:50;_position:absolute;'></div>").appendTo("body")
			close = $("<a class='close-lb' href='#'>Close</a>").css({position: "relative", "top": 15,  "text-decoration": "none", "z-index" : "100"}).appendTo(viewer).bind("click", close)
			$(".nav-selector").appendTo(viewer).css({display:"block", padding: padding, margin:"auto"})
			
			overlay.css({"opacity":0 })
			viewer.css({ "min-width": imgWidth+(padding*2), "min-height": imgHeight+(padding*2), "margin-left": -(imgWidth/2), "margin-top":  -40-(imgHeight/2) })
		}

		viewer.css("display", "block")
		overlay.css("display", "block")
		viewer.fadeTo(200,1)
		overlay.fadeTo(200, 0.6)
		
	})
						
}
)


				
				