var addBookmarkObj = {
	linkText: '',
	addTextLink: function(parId) {
		var a=addBookmarkObj.makeLink(parId);
		if (!a) { return; }
		a.appendChild(document.createTextNode(addBookmarkObj.linkText));
	},
	addImageLink: function(parId,imgPath) {
		if (!imgPath || isEmpty(imgPath)) { return; }
		var a=addBookmarkObj.makeLink(parId);
		if (!a) { return; }
		var img = document.createElement('img');
		img.title = img.alt = addBookmarkObj.linkText;
		img.src = imgPath;
		a.appendChild(img);
	},
	makeLink:function(parId) {
		if (!document.getElementById || !document.createTextNode) { return null; }
		parId=((typeof(parId)=='string')&&!isEmpty(parId))?parId:'addBookmarkContainer';
		var cont=document.getElementById(parId);
		if (!cont) { return null; }
		var a=document.createElement('a');
		a.href=location.href;
		if (window.opera) {
			a.rel='sidebar'; 
		} else {
			a.onclick=function() {
				addBookmarkObj.exec(this.href,this.title);
				return false;
			}
		}
		if (config['site_name']) {
			a.title=config['site_name'];
			if (config['page_title']) {
				a.title+=' : '+config['page_title'];
			} else if (config['site_title']) {
				a.title+=' : '+config['site_title'];
			}
		} else {
			a.title=document.title;
		}
		return cont.appendChild(a);
	},
	exec:function(url, title) {
		var ua=navigator.userAgent.toLowerCase();
		var isKonq=(ua.indexOf('konqueror')!=-1);
		var isSafari=(ua.indexOf('webkit')!=-1);
		var isMac=(ua.indexOf('mac')!=-1);
		var buttonStr=isMac?'Command/Cmd':'CTRL';
		if (window.external && (!document.createTextNode || (typeof(window.external.AddFavorite)=='unknown'))) {
			window.external.AddFavorite(url, title);
		} else if (isKonq) {
			alert('Press CTRL + B');
		} else if (window.opera) {
			void(0);
		} else if (window.sidebar) {
			window.sidebar.addPanel(title, url,"");
		} else if (window.home || isSafari) { // Firefox, Netscape, Safari, iCab
			alert('Press '+buttonStr+' + D');
		} else if (!window.print || isMac) { // IE5/Mac and Safari 1.0
			alert('Press Command/Cmd + D');
		} else {
			alert('In order to bookmark this site you need to do so manually through your browser.');
		}
	}
}

function isEmpty(s) { return ((s=='')||/^\s*$/.test(s)); }

function dss_addEvent(el,etype,fn) {
	if (el.addEventListener && (!window.opera || opera.version) && (etype!='load')) {
		el.addEventListener(etype,fn,false);
	} else if (el.attachEvent) {
		el.attachEvent('on'+etype,fn);
	} else {
		if (typeof(fn) != "function") { return; }
		if (typeof(window.earlyNS4)=='undefined') {
			window.earlyNS4=((navigator.appName.toLowerCase()=='netscape') && (parseFloat(navigator.appVersion)<4.02) && document.layers);
		}
		if ((typeof(el['on'+etype])=="function") && !window.earlyNS4) {
			var tempFunc = el['on'+etype];
			el['on'+etype]=function(e) {
				var a=tempFunc(e),b=fn(e);
				a=(typeof(a)=='undefined')?true:a;
				b=(typeof(b)=='undefined')?true:b;
				return (a&&b);
			}
		} else {
			el['on'+etype]=fn;
		}
	}
}

