var framework =	
	{
		id: "", 
		animating: false, 
		sliderSlideWidth: 0, 
		sliderMaxX: 0, 
		sliderCurItem: 0, 
		sliderMaxItem: 0, 
		fn: {
			sliderInit: 
				function() {
					var objContainer	= $("ul.slider-links li");
					var objSlides		= $("div.slider-images ul li");
					
					if ((objSlides) && (objContainer) && (objSlides.length) && (objContainer.length)) {
						framework.sliderSlideWidth		= $($(objSlides)[0]).width();
						framework.sliderMaxItem			= ($(objContainer).length - 1);
						framework.sliderMaxX			= Math.round(-framework.sliderSlideWidth * framework.sliderMaxItem);
						
						// set bindings
						$("ul.slider-links li a").bind("click", framework.fn.sliderGoTo);
						$("a.nav.prev").bind("click", function() { framework.fn.sliderControl(false); });
						$("a.nav.next").bind("click", function() { framework.fn.sliderControl(true); });
						
						framework.fn.sliderNavControl();
					}
				}, 
				
			sliderGoTo: 
				function(objEvent) {
					if ((!framework.animating) && (objEvent) && (objEvent.currentTarget)) {
						var objElement		= $(objEvent.currentTarget);
						var objContainer	= $("div.slider-images ul");
						var intRelID		= parseInt($(objElement).attr("rel"));
						var dblTargetX, dblCurX;
						
						if ((objContainer) && (intRelID) && (!isNaN(intRelID))) {
							intRelID--;
							
							if ((intRelID  <= framework.sliderMaxItem) && (intRelID >= 0)) {
								dblTargetX		= -(framework.sliderSlideWidth * intRelID);
								dblCurX			= parseFloat($(objContainer).css("left").replace("px", ""));
								
								if (dblTargetX != dblCurX) {
									framework.animating			= true;
									framework.sliderCurItem		= intRelID;
									
									$("div.slider-images ul").animate(	{	left:	dblTargetX + "px"}, 
																			1000, 
																			"easeOutBack", 
																			function() { framework.animating = false; });
									
									// hide/show arrows
									framework.fn.sliderNavControl();
								}
							}
						}
					}
				}, 
			
			sliderControl: 
				function(boolForward) {
					var objContainer	= $("div.slider-images ul");
					var dblTargetX, dblCurX;
					
					if (objContainer) {
						dblCurX			= parseFloat($(objContainer).css("left").replace("px", ""));
						
						if ((boolForward) && (framework.sliderCurItem < framework.sliderMaxItem)) {
							framework.sliderCurItem++;
						} else if ((!boolForward) && (framework.sliderCurItem > 0)) {
							framework.sliderCurItem--;
						}
						
						dblTargetX		= -(framework.sliderSlideWidth * framework.sliderCurItem);
						
						if (dblCurX != dblTargetX) {
							framework.animating			= true;
							
							$("div.slider-images ul").animate(	{	left:	dblTargetX + "px"}, 
																	1000, 
																	"easeOutBack", 
																	function() { framework.animating = false; });
							
							// hide/show arrows
							framework.fn.sliderNavControl();
						}
					}
				}, 
				
			sliderNavControl: 
				function() {
					// set highlight
					$("ul.slider-links li a").removeClass("selected");
					$("ul.slider-links li a[rel=" + (framework.sliderCurItem + 1) + "]").removeClass("selected").addClass("selected");

					// show/hide arrows
					if (framework.sliderCurItem > 0) {
						$("a.nav.prev").show();
					} else {
						$("a.nav.prev").hide();
					}
					if (framework.sliderCurItem < framework.sliderMaxItem) {
						$("a.nav.next").show();
					} else {
						$("a.nav.next").hide();
					}
				}
		}
	};

