
var tx = {};


tx.$ = function(id) 
{
  if (typeof id == "string") {
    return document.getElementById(id);
  } else {
    return id;
  }
}
tx.bind = function(obj, method) 
{
    var __method = method;
    var __object = obj;    
    return function(event) {
	  var args = new Array();
	  args.push(event || window.event);
      return __method.apply(__object, args);
    }
}


tx.addListener = function(id, event, func, capture) {
  if (document.all) {
    tx.$(id).attachEvent('on'+event, func);
  } else {
    tx.$(id).addEventListener(event, func, capture);
  }
}


tx._Behavior = function() {
  this._element = new Array();
  this.addRollOver = function(con, target, src) {
    if (this._element.length == 0) {
      tx.addListener(window, 'load', tx.bind(this, this._preload));
    }
    var _el = { _con:con, _target:target, _src:src };
    this._element.push(_el);
  }
  this._preload = function(e)
  {
    for (var i=0; i < this._element.length; i++) {
      var simg = new Image();
      simg.src = this._element[i]._src;
      var con = tx.$(this._element[i]._con);
      var target = tx.$(this._element[i]._target);
      con._simg = simg;
	  con._osrc = target.src;
      con._target = tx.$(this._element[i]._target);
      //con._target.src = '/asset/30/menu_tour_on.jpg'; 
      tx.addListener(con, 'mouseover', tx.bind(this, this._mouseover));
      tx.addListener(con, 'mouseout', tx.bind(this, this._mouseout));
    }
  }
  this._mouseover = function(e) 
  {
     var obj = e.srcElement || e.target;
     do {
        obj = obj.parentNode;
     } while(obj && !obj['_target']);
     if (obj._target) {
     //alert(obj._simg.src);
       tx.$(obj._target).src = obj._simg.src;  
     }
  } 
  this._mouseout = function(e) 
  {
     var obj = e.srcElement || e.target;
     do {
        obj = obj.parentNode;
     } while(obj && !obj['_target']);
     if (obj._target) {
       tx.$(obj._target).src = obj._osrc;  
     }
  }
}


tx.Behavior = new tx._Behavior();


