(function($){ 
	$.fn.iphoneSlider = function(options) {
	
		var defaults = {  
			width: "320",
			height: "300",
			speed: 500,
			lastItemClick: function (el) {
				
			},
			bc: {
				inicio: "Início",
				nomenu: "Escolha uma lista",
				sep: ">"
			}
		}; 
		
		var options = $.extend(defaults, options);
		options.position = 0;
		
		var isBusy = false;
		
		var aClick = function (data) {

			var nextUL = data.thisA.next("ul");
			var isEmpty = false;
			
			data.mainUL.find("ul").css({ "width": options.width + "px", "height": "auto", "left": options.width + "px", "position": "absolute", "top": 0 });
			//data.mainUL.find("li").css({ "position": "relative" });
			data.thisA.closest("ul").find("ul").hide();
			
			if (nextUL.length == 1) {
			
				options.position++;
				nextUL.show();
				
				if (options.position == 1) {

					data.elBC.html("");
					data.elBC.append(data.elBCInicio.clone());
				}
				
				data.elBC.append(data.elBCSep.clone()).append(data.thisA.clone().attr("rel", options.position));
				
				isBusy = true;
				
				data.mainUL.parent("div").css({ 
					"top": data.elBC.outerHeight()
				});
				
				data.mainUL.parent("div").animate({ scrollTop: 0 }, options.speed, function () {
					data.mainUL.animate({ "left": "-=" + options.width }, options.speed, function () {
					
						data.mainUL.parent("div").css({ 
							"overflow-y": 	(nextUL.height() > options.height) ? "scroll" : "hidden", 
							"overflow-x": 	"hidden"
						});
					
						isBusy = false;
					});
				});
				
				data.elBC.find("a").click( function () {
					
					if (isBusy)
						return false;
					
					var elBCA = $(this);
					var posCur = options.position;
					options.position = $(this).attr("rel");
					
					var bStr = "";
					for(i = 0; i <= options.position; i++) {
						bStr += " ul";
					}
					
					data.mainUL.find("ul")
						.css({ 	
							"overflow": "visible",
							"height": "auto", 
							"width": options.width + "px"
						})
					
					if (options.position > 0) {
						elBCA.nextAll().remove();
					} else {
						data.elBC.html(options.bc.nomenu);
					}
					
					data.mainUL.parent("div").css({ 
						"top": data.elBC.outerHeight()
					});
					
					isBusy = true;
					data.mainUL.parent("div").animate({ scrollTop: 0 }, options.speed, function () {
						data.mainUL.animate({ "left": options.width * options.position * -1 }, options.speed * (posCur - options.position), function () {
							
							data.mainUL.parent("div").css({ 
								"overflow-y": 	(nextUL.height() > options.height) ? "scroll" : "hidden", 
								"overflow-x": 	"hidden"
							});
							
							if (data.ajax)
								data.mainUL.find(bStr).remove();
							else
								data.mainUL.find(bStr).hide();
							isBusy = false;
						});
					});
		
					options.change(data.thisA, options.position);
		
					return false;
				});
				
			} else if (data.thisA.attr("rel")) {
				options.lastItemClick(data.thisA);
			} else {
				isEmpty = true;
			}
			
			options.change(data.thisA, options.position, isEmpty);
		
		}
	
		return this.each( function() {
		
			var mainUL = $(this).children("ul:first");
			var elBC = $("<div></div>").addClass("sliderBreadcrumb choose").html(options.bc.nomenu);
			var elBCSep = $("<span></span>").html(options.bc.sep);
			var elBCInicio = $("<a></a>")
									.attr({ "href": "#", "rel": options.position })
									.html(options.bc.inicio);
			mainUL.wrap($("<div></div>").addClass("sliderContent listBooksForChoose"));

			$(this).css({ "width": options.width, "height": options.height });
			$(this).find("ul").css({ "width": options.width + "px", "height": "auto", "left": options.width + "px", "position": "absolute" });
			//$(this).find("li").css({ "position": "relative" });
		
			$(this).find("a").live("click", function () {
			
				clickedA = $(this);
				
				if (isBusy)
					return false;

				if (clickedA.attr("href")) {
					isBusy = true;
					$(clickedA).css({ "cursor": "wait" });
					$.ajax({
						url: clickedA.attr("href"),
						type: "GET",
						success: function (html) {
							clickedA.parent().append(html);
							clickedA.css({ "cursor": "pointer" });	
							aClick({	
								"thisA": clickedA,
								"mainUL": mainUL, 
								"elBC": elBC,
								"elBCSep": elBCSep, 
								"elBCInicio": elBCInicio,
								"ajax":	true
							});
							isBusy = false;
						}
					});
				} else {
					aClick({
						"thisA": clickedA,
						"mainUL": mainUL, 
						"elBC": elBC,
						"elBCSep": elBCSep, 
						"elBCInicio": elBCInicio,
						"ajax":	false
					});
				}
				return false;
			});
			
			$(this).prepend(elBC);
			mainUL.css({ "top": elBC.offsetHeight, "left": "0" });
		});
	};  
})(jQuery); 
	
	
	
