// vim: set expandtab tabstop=2 shiftwidth=2 foldmethod=marker:
// +----------------------------------------------------------+
// |   __             _                               _
// |  / _| __ ___   _(_) ___ ___  _ __     __ _ _ __ (_)
// | | |_ / _` \ \ / / |/ __/ _ \| '_ \   / _` | '_ \| |
// | |  _| (_| |\ V /| | (_| (_) | | | | | (_| | |_) | |
// | |_|  \__,_| \_/ |_|\___\___/|_| |_|  \__,_| .__/|_|
// |                                           |_|
// | 
// | Copyright (c) 2006 Favicon API 
// |                    (http://favicon.aruko.net/) - aruko.net
// |                                            version - 0.0.3
// +----------------------------------------------------------+
// |  * This script is freely distributable under 
// |    the terms of an MIT-style license.
// |    http://favicon.aruko.net/dl/license.txt
// +----------------------------------------------------------+

var fapi_conf = [
  // ---------------------------------------------------------+
  // Please change the following. 
  { 
    name: 'favicon_m',
    size: 'm',
    def: 'f',
    margin: '0 0 0 3px',
    padding: '0 0 2px 19px',
    background_color: '',
    background_position: '1px 1px'
  },
  { 
    name: 'favicon_s',
    size: 's',
    def: 'f',
    margin: '0 0 0 2px',
    padding: '0 0 2px 16px',
    background_color: '',
    background_position: '1px 1px'
  },
  { 
    name: 'extiw',
    size: 's',
    def: 'f',
    margin: '0 2px 0 0',
    padding: '0 16px 0 0',
    background_color: '',
    background_position: 'right bottom'
  },
  { 
    name: 'external',
    size: 's',
    def: 'f',
    margin: '0 0 0 2px',
    padding: '0 0 2px 16px',
    background_color: '',
    background_position: '1px 50%'
  }
  // ---------------------------------------------------------+ 
]

var fapi = { 

  /* Do not edit below */
  addE: function(obj, type, listener) {
    if (obj.addEventListener) // Std DOM Events
      obj.addEventListener(type, listener, false);
    else if (obj.attachEvent) // IE
      obj.attachEvent(
        'on' + type,
        function() { listener( {
          type            : window.event.type,
          target          : window.event.srcElement,
          currentTarget   : obj,
          clientX         : window.event.clientX,
          clientY         : window.event.clientY,
          pageY           : document.body.scrollTop + window.event.clientY,
          shiftKey        : window.event.shiftKey,
          stopPropagation : function() { window.event.cancelBubble = true }
        } ) }
      );
  },
  init: function() {
    if (!document.getElementsByTagName) return false;
    var lists = document.getElementsByTagName("a");
    var num = lists.length; 
    var m_num = fapi_conf.length;
    for (var i=0; i < num; i++) {
      for(var j=0; j<m_num; j++ ) {
        if (lists[i].className.match(fapi_conf[j].name)) {
          fapi.changeLink(lists[i],j);
        } 
      } 
    }
  }, 
  changeLink: function(e,n) {
    var url = e.href; 
    var es = e.style; 
    var bk = '';

    if(fapi_conf[n].background_color != '') { 
      bk += fapi_conf[n].background_color + ' ';
    } 
    bk += 'url("http://favicon.aruko.net/'+
         fapi_conf[n].size+'/'+
         fapi_conf[n].def+'/'+ 
         url + 
         '") no-repeat'; 

    es.margin = fapi_conf[n].margin;
    es.padding = fapi_conf[n].padding; 
    es.background = bk; 
    es.backgroundPosition = fapi_conf[n].background_position; 

    return true; 
  }

} 

fapi.addE(window, 'load', fapi.init);

