// http://www.dynamicsitesolutions.com/javascript/add_bookmark_script/
// edited by Thomas Kessler (added browser-related image instead of link) 2006-10-30

/* 
*  Copyright 2006 Dynamic Site Solutions.
*  Free use of this script is permitted for non-commercial applications,
*  subject to the requirement that this comment block be kept and not be
*  altered.  The data and executable parts of the script may be changed
*  as needed.  Dynamic Site Solutions makes no warranty regarding fitness
*  of use or correct function of the script.  Terms for use of this script
*  in commercial applications may be negotiated; for this, or for other
*  questions, contact "license-info@dynamicsitesolutions.com".
*
*  Script by: Dynamic Site Solutions -- http://www.dynamicsitesolutions.com/
*  Last Updated: 2006-09-29
*/

//IE5+/Win, Firefox, Netscape 6+, Opera 7+, Safari, Konqueror 3, IE5/Mac, iCab 3

var addBookmarkObj = {
  init:function() {
    if(!document.getElementById || !document.createTextNode) return;
    var cont=document.getElementById('addBookmarkContainer');
    if(!cont) return;
    var a=document.createElement('a');
    a.href=location.href;

		// TK, alt/title text and more
		var altBmStr="Zu Lesezeichen hinzufügen";
		var altFavStr="Zu Favoriten hinzufügen";
		var altStr=altBmStr;
		var titleStr=altBmStr;
		var descStr="Speedport W700V FAQ";	// always use main page (if possible)
		var lnkStr="http://www.kessler-design.com/speedport-w700v/";
		// TK, add image with some default values
		var img=document.createElement('img');
		img.src="bookmark-moz.png";
		img.width=17;
		img.height=14;
		// TK, borrowed parts from exec:function
		var isKonq=(isLikelyKonqueror3 && isLikelyKonqueror3());
		var isMac=(navigator.userAgent.toLowerCase().indexOf('mac')!=-1);
		var buttonStr = isMac?'Command/Cmd':'CTRL';
		if(window.external && (!document.createTextNode ||
			(typeof(window.external.AddFavorite)=='unknown'))) {
			// IE4/Win generates an error when you
			// execute "typeof(window.external.AddFavorite)"
			// In IE7 the page must be from web server, not directly from a local 
			// file system, otherwise, you get a permission denied error.
			altStr=titleStr=altFavStr;
			img.src="bookmark-ie.png"; // IE/Win
			img.width=15;
		} else if(isKonq) {
			altStr=titleStr+=' - CTRL + B drücken';
		} else if((window.opera && 
		opera.buildNumber && !isNaN(opera.buildNumber()))) {
			titleStr="o";
			img.src="bookmark-opera.png";
			img.width=14;
		} else if(window.opera) { // older Opera
			altStr+=' - CTRL + T drücken';
			titleStr="o";
			img.src="bookmark-opera.png";
			img.width=14;
		} else if(window.home) { // Netscape, iCab
			altStr=titleStr+=' - '+buttonStr+' + D drücken';
		} else if(!window.print || isMac) { // IE5/Mac and Safari 1.0
			altStr=titleStr+=' - Command/Cmd + D drücken';
		} else {
			altStr=titleStr=false;	// do not display!
		}
		// set alt/title
		if (titleStr=="o") titleStr=descStr;	// for Opera, set with Bookmark title
		a.title=titleStr;
		img.alt=altStr;

    if(window.opera) {
      a.rel='sidebar'; // this makes it work in Opera 7+
    } else {
      // this doesn't work in Opera 7+ if the link has an onclick handler,
      // so we only add it if the browser isn't Opera.
      a.onclick=function() {
        addBookmarkObj.exec(lnkStr,descStr); // replaced addBookmarkObj.exec(this.href,this.title);
        return false;
      }
    }
    //a.title=document.title; // removed, done above
	if (altStr!=false) {	// added this check, see above, last else case
		a=cont.appendChild(a);
		a.appendChild(img);	// replaced a.appendChild(document.createTextNode('Bookmark This Page'));
	}
  },
  exec:function(url, title) {
    var isKonq=(isLikelyKonqueror3 && isLikelyKonqueror3());
    var isMac=(navigator.userAgent.toLowerCase().indexOf('mac')!=-1);
    var buttonStr = isMac?'Command/Cmd':'CTRL';

    if(window.external && (!document.createTextNode ||
      (typeof(window.external.AddFavorite)=='unknown'))) {
        // IE4/Win generates an error when you
        // execute "typeof(window.external.AddFavorite)"
        // In IE7 the page must be from web server, not directly from a local 
        // file system, otherwise, you get a permission denied error.
        window.external.AddFavorite(url, title); // IE/Win
    } else if(isKonq) {
      alert('Zum Lesezeichen setzen CTRL + B drücken.');
    } else if((window.opera && 
        opera.buildNumber && !isNaN(opera.buildNumber()))) {
          void(0); // do nothing here (Opera 7+)
    } else if(window.opera) { // older Opera
      alert('Zum Lesezeichen setzen '+buttonStr+' + T to drücken.');
    } else if(window.home) { // Netscape, iCab
      alert('Zum Lesezeichen setzen '+buttonStr+' + D drücken.');
    } else if(!window.print || isMac) { // IE5/Mac and Safari 1.0
      alert('Zum Lesezeichen setzen Command/Cmd + D drücken.');    
    } /* else {
      alert('In order to bookmark this site you need to do so manually through your browser.');
    } */
  }
}

function isLikelyKonqueror3() {
  if(!document.getElementById) return false;
  if(document.defaultCharset || window.opera || !window.print) return false;
  if(window.home) return false; // Konqueror doesn't support this but Firefox,
    // which has silent support for document.all when in Quirks Mode does
  if(document.all) return true; // Konqueror versions before 3.4
  var likely = 1;
  // testing for silent document.all support; try-catch used to keep it from
  // generating errors in other browsers.
  // try-catch causes errors in IE4 and NS4.x so we use the eval() to hide it.
  // try {
  //   var str=document.all[0].tagName;
  // } catch(err) { likely=0; }
  eval("try{var str=document.all[0].tagName;}catch(err){likely=0;}");
  return likely;
}

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') {
      // to prevent this function from crashing Netscape versions before 4.02
      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;
    }
  }
}

dss_addEvent(window,'load',addBookmarkObj.init);

