/*
	Inspiration:
	http://www.leadio.com/ is a simpler-to-use framework for generating social bookmarks
	
	This library leverages http://ibdom.sourceforge.net/ and might be better-suited
	for more advanced usage.
*/

if (!window.IBDOM) {
	alert("please include ibdom.js (http://ibdom.sourceforge.net) BEFORE social.js");
}

DEFAULT_BOOKMARK_SITES_LIST = "el|gg|dl|yo|mw|dg|rd|fl";

function SocialBookmarkSite(longName, mainSite, urlPattern, tagLine, logoPath) {
	this.longName = longName;
	this.mainSite = mainSite;
	this.urlPattern = urlPattern;
	this.tagLine = tagLine;
	this.logoPath = logoPath;
}//SocialBookmarkSite

SocialBookmarkSites = {
	el: new SocialBookmarkSite (
		"myEarthLink myFavorites",
		"http://myfavorites.earthlink.net/",
		"http://myfavorites.earthlink.net/make_favorite?url={u}&amp;title={t}&desc={d}",
		"Add to EarthLink myFavorites",
		"el.png"
	)
	,
	bl: new SocialBookmarkSite (
		"Blink List",
		"http://www.blinklist.com",
		"http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description={d}&Url={u}&Title={t}",
		"BlinkList This!",
		"bl.png"
	)
	,
	bm: new SocialBookmarkSite (
		"Blog Marks",
		"http://blogmarks.net/",
		"http://blogmarks.net/my/new.php?mini=1&title={t}&url={u}",
		"Blogmark This!",
		"bm.png"
	)
	,
	dl: new SocialBookmarkSite (
		"Delicious",
		"http://del.icio.us/",
		"http://del.icio.us/post?url={u}&title={t}",
		"Bookmark This to del.icio.us",
		"dl.png"
	)
	,
	dg: new SocialBookmarkSite (
		"Digg",
		"http://digg.com/",
		"http://digg.com/submit?phase=2&url={u}",
		"Digg This!",
		"dg.png"		
	)
	,
	fl: new SocialBookmarkSite (
		"Furl",
		"http://www.furl.net/",
		"http://www.furl.net/storeIt.jsp?u={u}&t={t}",
		"Bookmark To Furl!",
		"fl.png"
	)
	,
	gg: new SocialBookmarkSite (
		"Google",
		"http://www.google.com/",
		"http://www.google.com/bookmarks/mark?op=add&bkmk={u}&title={t}",
		"Bookmark To Google!",
		"gg.png"
	)
	,
	nz: new SocialBookmarkSite (
		"Netvouz",
		"http://www.netvouz.com/",
		"http://www.netvouz.com/action/submitBookmark?url={u}&title={t}&popup=no",
		"Bookmark To Netvouz!",
		"nz.png"
	)
	,
	rd: new SocialBookmarkSite (
		"Reddit",
		"http://reddit.com/",
		"http://reddit.com/submit?url={u}&title={t}",
		"Add To Reddit!",
		"rd.png"
	)
	,
	sy: new SocialBookmarkSite (
		"Simpy",
		"http://www.simpy.com",
		"http://www.simpy.com/simpy/LinkAdd.do?href={u}&title={t}",
		"Simpy This!",
		"sy.png"
	)
	,
	sp: new SocialBookmarkSite (
		"Spurl",
		"http://www.spurl.net/",
		"http://www.spurl.net/spurl.php?url={u}&title={t}",
		"Spurl This!",
		"sp.png"
	)
	,
	yo: new SocialBookmarkSite (
		"Yahoo",
		"http://beta.bookmarks.yahoo.com/",
		"http://beta.bookmarks.yahoo.com/toolbar/savebm?t={t}&u={u}",
		"Add to Yahoo Bookmarks Beta!",
		"yo.png"
	)
	,
	mw: new SocialBookmarkSite (
		"Yahoo MyWeb 2.0",
		"http://myweb2.search.yahoo.com/",
		"http://myweb2.search.yahoo.com/myresults/bookmark?t={t}&u={u}",
		"Add yo Yahoo My Web 2.0 Beta!",
		"mw.png"
	)
	,
	nv: new SocialBookmarkSite (
		"Newsvine",
		"http://www.newsvine.com/",
		"http://www.newsvine.com/_tools/seed&save?u={u}&h={t}",
		"Seed Newsvine",
		"nv.png"
	)
	,
	rs: new SocialBookmarkSite (
		"RawSugar",
		"http://www.rawsugar.com/",
		"http://www.rawsugar.com/tagger/?turl={u}&tttl={t}",
		"Seed RawSugar",
		"rs.png"
	)
	
	
};

function SocialBookmarkLink(bmSite,url,title,description) {
	if (!description) description = "";
	if (!title) title = "";
	this.linkUrl = bmSite.urlPattern.replace(/\{u\}/,IBDOM.Utils.scape(url)).replace(/\{t\}/,IBDOM.Utils.scape(title)).replace(/\{d\}/,IBDOM.Utils.scape(description));
	this.linkClass = IBDOM.Utils.getString(["bmsite_", bmSite.shortName]);
	this.linkText = IBDOM.Utils.getString(["Add to: ", bmSite.longName]);
	this.linkTitle = bmSite.tagLine;
	this.imgUrl = IBDOM.Utils.getString(["url('http://cdc-com.ibsrv.net/internetbrands/bmsite_logos/",bmSite.logoPath,"')"]);
}//SocialBookmarkLink

function getBookmarkLinks(url,title,description,siteListString) {
	bmLinks = new Array();
	bmCount = 0;
	if (!siteListString && !window.DEFAULT_BOOKMARK_SITES_LIST) {
		for (site in SocialBookmarkSites) {
			bmLinks[bmCount] = new SocialBookmarkLink(SocialBookmarkSites[site],url,title,description);
			bmCount++;
		}
	} else {
		siteList = siteListString ? siteListString.split("|") : DEFAULT_BOOKMARK_SITES_LIST.split("|");
		for (i=0;(siteId=siteList[i]);i++) {
			bmLinks[i] = new SocialBookmarkLink(SocialBookmarkSites[siteId],url,title,description);
		}
	}
	return bmLinks;
}//getBookmarkLinks

function getBookmarkLinksForThisPage(siteListString) {
	descMetaNode = doc.gFEBANV("name","description","meta");
	theDescription = descMetaNode ? descMetaNode.getAttribute("content") : "";
	/* not used yet
	kwMetaNode = doc.gFEBANV("name","keywords","meta");
	keywords = kwMetaNode ? kwMetaNode.getAttribute("content") : ""; */
	title = document.title ? document.title : "";
	url = location.href;
	return getBookmarkLinks(url, title, theDescription, siteListString);	
}//getBookmarkLinksForThisPage

function showSocialBookmarksForThisPage(siteListString,sbmEl) {
	if (!sbmEl) sbmEl = $e("socialBookmarks");
	sbmEl.populate(
		getBookmarkLinksForThisPage(siteListString),
		function() {
			bean = arguments[0];
			aObj = this.gFEBTN("a");
			aObj.style.backgroundImage = bean.imgUrl;
			aObj.target="_blank";
		}
	);
}//showSocialBookmarksForThisPage
