(function($){
	$.fn.createQuicklinks = function(options) {
		
		var defaults = {
			link_xml:"/xml/default.asp",
			xType:"link",
			css_path:"/quicklinks.css",
			animation:true,
			direction:"down",
			offset:{h:0,v:0}
		};
		var options = $.extend(defaults, options);
		
		/*
		these quicklinks are modified to use the new XML, and also can go up or down depending on what you pass them.
		
		*/
		
		return this.each(function() {
			
			var obj = $(this);
			
			$("<link rel='stylesheet' type='text/css' href='"+options.css_path+"'/>").appendTo("head");
			
			var ajaxURL = "";
			
			if(options.schoolid != undefined && options.id != undefined){
				ajaxURL = options.link_xml+"?sid="+options.schoolid+"&type="+options.xType+"&id="+options.id;
			}else{
				//no schoolid set, hide the button
				HideButton();
			}
			
			if(ajaxURL.length > 0){				
				$.ajax({
					type: "GET",
					url: ajaxURL,
					dataType: "xml",
					success: function(xml) {						
						var links = new Array();
						var lcount = 0;
						//load links					
						$(xml).find('item').each(function(){
							links[lcount] = {
								url:$(this).find("url").text(),
								target:$(this).find("target").text(),
								title:$(this).find("title").text()
							};
							lcount++;	
						});
							
						if(links.length > 0){
							//build the dropdown
							$("<div id='ql-container-"+obj.attr("id")+"' style='position:absolute; left:-9999px'></div>").appendTo($("#sidebar"));
							$("<div id='ql-holder'></div>").appendTo("#ql-container-"+obj.attr("id"));
							
							for(i=0; i<links.length; i++){
								
								if(links[i].target == true){myTarget = " target=_blank"}else{myTarget = "";}
								$("<a class='quicklinks' href='"+links[i].url+"'"+myTarget+"><span>"+links[i].title+"</span></a>").appendTo("#ql-holder").hover(function(){ clearTimer() },function(){setTimer()});
							}
							
							
							
							$(obj).hover(function(){
								clearTimer() 
								var offset = $(this).getTopLeft();
								$("#ql-container-"+obj.attr("id")).css("left",offset.left-116+"px");
								if(options.direction == "up"){
									$("#ql-container-"+obj.attr("id")).css("top",(offset.top-$("#ql-container-"+obj.attr("id")).height())+"px");
								}else{
									$("#ql-container-"+obj.attr("id")).css("top",(offset.top + $(this).height())+"px");
								}
							
							},function(){
								setTimer();
								//alert("off");
								//$("#ql-container-"+obj.attr("id")).css("left","-9999px");
							});	
							
						}else{
							HideButton();
						}
						
					},
					error: function(request,tStatus,eThrown){
						HideButton();
					}
				});
				
			}
			
			function HideButton(){
				//alert("something is very wrong here.");
				//obj.css("display","none");
				//alert("button hidden");
			}
			var myTimer;
			function clearTimer(){
				clearTimeout(myTimer);
			}
			function setTimer(){
				myTimer = setTimeout(hideMenu,50);
			}
			function hideMenu(){
				$("#ql-container-"+obj.attr("id")).css("left","-9999px");
			}
		
		});
		
	};
})(jQuery);