/*
 * jQuery JAddTo plugin
 * Version 0.3  (12/15/2007)
 * @requires jQuery v1.2.1+
 */
(function($) { 
/*
 * @name JAddTo
 * @type jQuery
 * @cat Plugins/DOM
 * @return jQuery
 * @author Jason Levine
 */

 /**
 * 
 * Displays a list of links to help bookmark/publicize your website.
 */
	$.fn.JAddTo = function(options) {
		var defaults = {  // set up default options
			ButtonTitle:		"Add To:",
			IncludeSites:		["BlinkList", "Blogmarks", "Del.icio.us", "Digg", "Fark", "Furl", "Magnolia", "Newsvine", "Reddit", "Segnalo", "Simpy", "Smarking", "Spurl", "Stumbleupon", "Technorati", "Wists", "Yahoo!"],
			PageURL:			document.location,
			PageTitle:			document.title,
			ImageLocation:		"images/addlinks/",
			AddSpaceOnBlank:	true,
			HideTitle:			false,
			ParentClass:		"AddToLinksParent",
			ContainerClass:		"AddToLinks",
			TitleClass:			"AddToLinksTitle",
			SiteListClass:		"AddToLinksList",
			ShowText:			"hide"
		};
		var LinkItem, LinkURL, LinkImage, LinkTitle, defaultCustomLink, SkipThis, JAddToHTMLCode, JAddToHTMLObj, LinksListHTML;
		
		$.extend(defaults, options);
		
		return this.each(function() {
			// create LinksList
			LinksListHTML = "";
			for (LinkItem in defaults.IncludeSites) {
				if (typeof(defaults.IncludeSites[LinkItem]) == "string") {
					SkipThis = false;
					LinkImage = defaults.ImageLocation + defaults.IncludeSites[LinkItem].toLowerCase() + ".png";  // Most are in this form
					switch (defaults.IncludeSites[LinkItem].toLowerCase()) {
						case "blinklist":
							LinkURL = "http://blinklist.com/index.php?Action=Blink/addblink.php&url=[URL]&Title=[TITLE]";
							LinkTitle = "BlinkList";
							break;
						case "blogmarks":
							LinkURL = "http://blogmarks.net/my/new.php?mini=1&simple=1&url=[URL]&title=[TITLE]";
							LinkTitle = "Blogmarks";
							break;
						case "del.icio.us":
							LinkURL = "http://del.icio.us/post?url=[URL]&title=[TITLE]";
							LinkImage = defaults.ImageLocation + "delicious.png";
							LinkTitle = "Del.icio.us";
							break;
						case "digg":
							LinkURL = "http://digg.com/submit?phase=2&url=[URL]";
							LinkTitle = "Digg";
							break;
						case "fark":
							LinkURL = "http://cgi.fark.com/cgi/fark/edit.pl?new_url=[URL]&new_comment=[TITLE]";
							LinkTitle = "Fark";
							break;
						case "furl":
							LinkURL = "http://furl.net/storeIt.jsp?t=[TITLE]&u=[URL]";
							LinkTitle = "Furl";
							break;
						case "magnolia":
							LinkURL = "http://ma.gnolia.com/bookmarklet/add?url=[URL]&title=[TITLE]";
							LinkTitle = "Magnolia";
							break;
						case "newsvine":
							LinkURL = "http://www.newsvine.com/_tools/seed&save?u=[URL]&h=[TITLE]";
							LinkTitle = "Newsvine";
							break;
						case "reddit":
							LinkURL = "http://reddit.com/submit?url=[URL]&title=[TITLE]";
							LinkTitle = "Reddit";
							break;
						case "segnalo":
							LinkURL = "http://segnalo.com/post.html.php?url=[URL]&title=[TITLE]";
							LinkTitle = "Segnalo";
							break;
						case "simpy":
							LinkURL = "http://www.simpy.com/simpy/LinkAdd.do?href=[URL]&title=[TITLE]";
							LinkTitle = "Simpy";
							break;
						case "smarking":
							LinkURL = "http://smarking.com/editbookmark/?url=[URL]";
							LinkTitle = "Smarking";
							break;
						case "spurl":
							LinkURL = "http://www.spurl.net/spurl.php?title=[TITLE]&url=[URL]";
							LinkTitle = "Spurl";
							break;
						case "stumbleupon":
							LinkURL = "http://www.stumbleupon.com/submit?url=[URL]&title=[TITLE]";
							LinkTitle = "Stumbleupon";
							break;
						case "technorati":
							LinkURL = "http://technorati.com/faves?sub=addfavbtn&add=[URL]";
							LinkTitle = "Technorati";
							break;
						case "wists":
							LinkURL = "http://wists.com/r.php?c=&r=[URL]&title=[TITLE]";
							LinkTitle = "Wists";
							break;
						case "yahoo!":
							LinkURL = "http://myweb2.search.yahoo.com/myresults/bookmarklet?u=[URL]&t=[TITLE]";
							LinkImage = defaults.ImageLocation + "yahoo.png";
							LinkTitle = "Yahoo!";
							break;
						default:
							// Skip This entry/Invalid Entry
							SkipThis = true;
					}
				} else {
					if (typeof(defaults.IncludeSites[LinkItem]) == "object") {
						defaultCustomLink = {
							LinkURL:	"",
							LinkImage:	"",
							LinkTitle:	""
						};
						$.extend(defaultCustomLink, defaults.IncludeSites[LinkItem]);
						LinkURL = defaultCustomLink.LinkURL;
						LinkImage = defaultCustomLink.LinkImage;
						LinkTitle = defaultCustomLink.LinkTitle;
					} else {
						// Skip This entry/Invalid Entry
						SkipThis = true;
					}
				}
				if (!(SkipThis)) {
					LinkURL = LinkURL.replace(/\[URL\]/, escape(defaults.PageURL)).replace(/\[TITLE\]/, escape(defaults.PageTitle));
					LinksListHTML += "<a href=\"" + LinkURL + "\" >";
					if (defaults.ShowText.toLowerCase() == "left") {
						LinksListHTML += LinkTitle + "&nbsp;";
					}
					LinksListHTML += "<img src=\"" + LinkImage + "\" alt=\"" + LinkTitle + "\" title=\"" + LinkTitle + "\" />";
					if (defaults.ShowText.toLowerCase() == "right") {
						LinksListHTML += "&nbsp;" + LinkTitle;
					}
					LinksListHTML += "</a>"; 
				}
			}
			
			// create the JAddTo spans
			JAddToHTMLCode = "<span class=\"" + defaults.ContainerClass + "\"><span class=\"" + defaults.TitleClass + "\""
			if (defaults.HideTitle) {
				JAddToHTMLCode += " style=\"display: none;\"";
			}
			JAddToHTMLCode += ">" + defaults.ButtonTitle + "</span><span class=\"" + defaults.SiteListClass + "\">" + LinksListHTML + "</span></span>"
			JAddToHTMLObj = $(JAddToHTMLCode);
			//$(this).append("<span class=\"AddToLinks\"><span class=\"AddToLinksTitle\"></span><span class=\"AddToLinksList\"></span></span>");
			
			// Add space on blank
			if ((defaults.AddSpaceOnBlank) && ($(this).html() == "")) {
				$(this).append("&nbsp;");
			}
			if (!(defaults.ParentClass == "")) {
				$(this).addClass(defaults.ParentClass);
			}
			$(this).append(JAddToHTMLObj);
		});
	}
})(jQuery);