var addto = 'Add to: ';
var iconsize = 'medium'; // small, medium, large, x-large
var socialbookmarksscriptsroot = 'Scripts/';
var addtarget = '_blank'; // _blank, _self

var bookmarksjs = {};
var bookmarksfile = socialbookmarksscriptsroot + 'SocialBookmarks.JS/BookMarks.xml';
var bookmarksxmldoc;
var isSafari = navigator.userAgent.toLowerCase().indexOf('webkit') > -1;
var isIE = window.ActiveXObject;
var isFireFoxOrOpera = document.implementation && document.implementation.createDocument;

function initSocialBookmarksJs()
{
	if(isSafari)
	{
		bookmarksxmldoc = new XMLHttpRequest();
		bookmarksxmldoc.open("GET", bookmarksfile, true);
		bookmarksxmldoc.send(null);
		bookmarksxmldoc.onreadystatechange = function()
		{
			if(bookmarksxmldoc.readyState == 4)
			{
				renderSocialBookmarksJs();
			}
		};
	}

	else
	{
		if(isIE)
		{
			bookmarksxmldoc = new ActiveXObject("Microsoft.XMLDOM");
		}

		if(isFireFoxOrOpera)
		{
			bookmarksxmldoc = document.implementation.createDocument("","",null);
		}
		
		bookmarksxmldoc.async = false;
		bookmarksxmldoc.load(bookmarksfile);
		renderSocialBookmarksJs();
	}
}

function renderSocialBookmarksJs()
{
	var stylesheet = $create('link');
	var iconsfodler = socialbookmarksscriptsroot + 'SocialBookmarks.JS/Icons';
	var wrapper = $get('SocialBookmarksJs');
	var list = $create('UL');
	
	if(isSafari)
	{
		var bookmarksroot = bookmarksxmldoc.responseXML.getElementsByTagName('bookmarks')[0];
	}
	else
	{
		var bookmarksroot = bookmarksxmldoc.getElementsByTagName('bookmarks')[0];
	}

	var items = bookmarksroot.getElementsByTagName('item');
	
	stylesheet.setAttribute('rel', 'stylesheet');
	stylesheet.setAttribute('type', 'text/css');
	stylesheet.setAttribute('href', socialbookmarksscriptsroot + 'SocialBookmarks.JS/SocialBookmarksJS.css');

	wrapper.className = 'SocialBookMarksJs';
	document.getElementsByTagName('head')[0].appendChild(stylesheet);
	wrapper.appendChild(list);

	for(var i = 0; i < items.length; i ++)
	{
		var listitem = $create('LI');
		var name = items[i].getAttribute('name');
		var url = items[i].getAttribute('url');
		var visible = items[i].getAttribute('visible');
		var iconurl = items[i].getAttribute('iconurl');
		
		if(visible != 'false')
		{
			if(iconsize == 'small')
			{
				var icondimensions = '16';
				var fullurl = iconsfodler + '/16_x_16/';
			}
			if(iconsize == 'medium')
			{
				var icondimensions = '24';
				var fullurl = iconsfodler + '/24_x_24/';
			}
			if(iconsize == 'large')
			{
				var icondimensions = '48';
				var fullurl = iconsfodler + '/48_x_48/';
			}
			if(iconsize == 'x-large')
			{
				var icondimensions = '60';
				var fullurl = iconsfodler + '/60_x_60/';
			}
			listitem.innerHTML = [
				'<a href="' + url + window.location + '" title="' + addto + name + '" target="' + addtarget + '"><img src="' + fullurl + iconurl + '" alt="' + addto + name + '" width="' + icondimensions + '" height="' + icondimensions + '" border="0" /></a>'	
			];
			
			list.appendChild(listitem);
		}
	}
}

function $create(element)
{
	return document.createElement(element);
}

function $get(stringId)
{
	return document.getElementById(stringId);
}