if( typeof alreadyExists == 'undefined' ){
var alreadyExists = 1;
// initiate on body or dependent components
function DOMready(fn, dependencies){
  var counter = 0;
  var collections = {};
  var timer = setInterval(
    function(){
      var ready = false;
      counter++;
      if (typeof document.getElementsByTagName != 'undefined'
        && (document.getElementsByTagName('body')[0] || document.body)){
        ready = true;
        if (typeof dependencies == 'object'){
          for (var i in dependencies){
            if (dependencies[i] == 'id' && !document.getElementById(i)){
              ready = false;
              break;
            } else if (dependencies[i] == 'tag'){
              var len = document.getElementsByTagName(i).length;
              if (typeof collections[i] == 'undefined' || collections[i] != len || len < 1) {
                collections[i] = len;
                ready = false;
                break;
              }
            }
          }
        }
        if (ready) {
          clearInterval(timer);
          fn();
        }
      }
      if (counter >= 40){
        clearInterval(timer);
      }
    }, 250  
  ); //end setInterval()
 }

//shortcut functions
function $(id){
  if( document.getElementById && document.getElementById(id) ){
    return document.getElementById(id);
  } else {
    //alert( 'id not found: ' + id );
  }
 }
function $$(tagname){ //returns an array of tag objects
  if( document.getElementsByTagName && document.getElementsByTagName(tagname) ){
    return document.getElementsByTagName(tagname);
  } else {
    //alert( 'id not found: ' + id );
  }
 }
// stop default click behavior
function cancelClick(e)
 {
  if( window.event && window.event.returnValue ){ 
    window.event.returnValue = false; 
  }
  if( e && e.preventDefault ){ 
    e.preventDefault(); 
  }
}
function cancelClickSafari(){ return false; }

/************
 * new addEvent script
 * EventCache used by the new addEvent
 * function addEvent(): under CC-GNU LGPL license
 * originally written by Mark Wubben
 ************/
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

  function removeEvent(obj, evType, fn, useCapture) {
    if (obj.removeEventListener){
      obj.removeEventListener(evType, fn, useCapture);
      return true;
    } else if (obj.detachEvent)	{
      var r = obj.detachEvent("on"+evType, fn);
      return r;
    } else {
      elm[ 'on' + evType ] = null;
    }
  }

// the Ajax Abject initiator
var readyStateTimeout = null;
function AjaxObj(){
  this.createRequestObject = function(){
    var caller;
    try {
  	  caller = new XMLHttpRequest();
  	}catch( error ){
  	  try{
  	    caller = new ActiveXObject( "Microsoft.XMLHTTP" );
  	  }catch( error ){
  		  //place alternate action here
  		eval( linkElm.alternate );
  	    caller = null;
  	  }
  	} 
    return caller;
  }
  this.sndReq = function(action, url) {
    this.http.open(action,url);
    this.http.onreadystatechange = this.handleResponse;
    this.http.send(null);
  }
  this.handleResponse = function(){
    if ( me.http.readyState == 4){ 
    }
  }    
  var me = this;
  this.http = this.createRequestObject();
}

//main object for  
linkUpdater = {
    doAJAXRequest: function( action, url, linkElm ) {
        if ( url.match( /to_order=1/ )) {
            location.href = url;
            return false;
        }
        linkElm.innerHTML = linkElm.textCalling;
        var ao = new AjaxObj();
        ao.handleResponse = function() {
        
            if ( ao.http.readyState == 4 ) {

                if( ao.http.status == 200 || ao.http.status == 304 ) {
                    if( url.match( /wink/ ) ) {
                        linkElm.innerHTML = linkElm.textCalled;
                        var plainText = '<span class="postWinkText">' + linkElm.textCalled + '</span>';
                        linkElm.innerHTML = plainText;
                        linkElm.style.textDecoration = 'none';
                        linkElm.style.cursor = 'default';
                        removeEvent( linkElm, 'click', linkUpdater.jsClick, false );
                    } else {
                        linkElm.innerHTML = linkElm.textCalled;
                        removeEvent( linkElm, 'click', linkUpdater.jsClick, false );
                        addEvent( linkElm, 'click', linkUpdater.gotoHref );
                    }
                } else {
                    eval( linkElm.alternate );
                }
            }	  
        };

        try {
            ao.sndReq( action, url ); 
        } catch( error ) {
            eval( linkElm.alternate );
        }
      },
  gotoHref: function(e){
  if( this && this.textHref ){
	  location.href = this.textHref;
	}else{
      var targ = window.event ? window.event.srcElement : e ? e.target : null ;
      if( !targ ){ return ; }
      if (targ.nodeType == 3){ targ = targ.parentNode; } // defeat Safari bug
      if( this && targ.textHref)
      location.href = targ.textHref;
	  }
  },
  init: function(){
    if (!document.getElementById || !document.getElementsByTagName ){ return; }

    var spanArray = $$( 'SPAN' );
    var linkArray = $$( 'A' );
    if( linkArray.length ){
      for( i = 0; i < linkArray.length; i++ ){
        var linkTag = linkArray[ i ] ;
		//linkTag.alternate = linkArray[ i + 1 ].onclick;
        if ( linkTag.className == 'jsClick' ) {  
          linkTag.alternate = linkArray[ i + 1 ].onclick; //link i will get hidden and link i + 1 will replace it. This gives the behavior after the first click
          addEvent( linkTag, 'click', cancelClick ); //cancel default click event (could skip this since we are hiding link anyway!)
          linkTag.onclick = cancelClickSafari;
          addEvent( linkTag, 'click', linkUpdater.jsClick ); //add new click event
        }
      }
    }
    if( spanArray.length ){
      for( i = 0; i < spanArray.length; i++ ){
        var spanTag = spanArray[ i ] ;
        if ( spanTag.className == 'hide2' ) {  
          spanTag.style.display = 'none';
        }else if( spanTag.className == 'hide1' ){
          spanTag.style.display = 'inline';
        }
      }
    }
  },
  jsClick: function(e){
   	var myObject;
	var url = null;
    myObject = this;
	url = this.href;
	if( url == null || typeof myObject == 'undefined' ){
	  return false;
	}
    if( myObject.href.match( /hotlist/ )){
	  myObject.textCalling = hotlistCalling;
      myObject.textCalled = hotlistCalled;
	  myObject.textHref = hotlistUrl;
    }else if( myObject.href.match( /wink/ )){
      myObject.textCalling = winkCalling;
	  myObject.textCalled = winkCalled;
      myObject.textHref = url;//winkUrl;
    }else{
      return false;
    }
    var doAdd = linkUpdater.doAJAXRequest( 'GET', url, myObject );
  }
}	

  DOMready( linkUpdater.init, { 'A' : 'tag' } );
}//run only once enclosure



