var UITT = null;
var JOKEMODE = 0;

var UserInfoTT = Class.create();

var _NOLOADUTT_ = 0;

UserInfoTT.prototype = {
  initialize: function(cont) {
		this.div = $(cont);
		this.hash = $H();
//		this.div = $(document.createElement("div")); 
//		document.body.appendChild(this.div);
		this.div.addClassName("usertt").hide();
		var cur = this.div;
		['back1','back2','back3','back4','pad'].each(function(e){
			var next = $(document.createElement("div"));
			next.addClassName(e);
			cur.appendChild(next);
			cur = next;
		});
		this.container = cur;		
		this.onHide();
		if (_NOLOADUTT_ == 0)
			this.start();
  },
  start:function(){
		//console.log('start');	
		//console.time('start');	
		$$('img[rel^=ttui]').each(function(s){
			var rel = s.readAttribute('rel');
			if (this.hash.get(rel) == undefined){
					this.hash.set(rel,{obj:$A([s])});
			}else{
				this.hash.get(rel).obj.push(s);
			}
		},this); // each
		this.hash.each(function (p){
			var id = p.key.replace(/^ttui\[(\d+)\]$/,"$1");
			p.value.obj.each(function (e){new Tooltip(e,this.div,
					{onhide:this.onHide.bind(this),onshow:this.onShow.bind(this,id)});},this);
		},this); // each
		//console.timeEnd('start');
  },	
  add:function(e,id,ev){
	var $$ = $(e);
	var rel = 'ttui['+id+']';
	if (this.hash.get(rel) == undefined){
			this.hash.set(rel,{obj:$A([$$])});
	}else{
		this.hash.get(rel).obj.push($$);
	}
	$$.onmouseover = function(){};
	var tip = new Tooltip($$,this.div,{onhide:this.onHide.bind(this),onshow:this.onShow.bind(this,id,e)});
	tip.showTooltip(ev);
  },			
  onHide: function(){
		this.container.innerHTML = '<img src="/s/i/wait_green.gif">'; 			  
  },
  onShow: function(id,obj){
		if (this.hash.get('ttui['+id+']').data == undefined){
			new Ajax.Request('/service/xml/',
				{method:'get',
				 parameters:{q:'userinfo','id':id},
				 onFailure: function(){alert("Не удалось соединиться с сервером.")},
				 onSuccess: this._save.bind(this,obj,id)
				 }		
			);
		}else{
			this._set(id);
		}	  
  },
  _save: function (obj,id,req){
		var xml = req.responseXML;
		var s = xml.getElementsByTagName('id');
		var data = {};
		data.id = s[0].firstChild.nodeValue;

		['nick','onsite','city','login','ava','rating','run','drive','cars','sex','place'].each(
			function(i){
				s = xml.getElementsByTagName(i);
				if (s.length > 0){
					data[i] = (s[0].firstChild == null  ? ' ' : s[0].firstChild.nodeValue);
				}
		});// each


		if (JOKEMODE){
			var src = $(obj).readAttribute('src').replace(/(s_)(.+?\.gif)$/,"$2");
			src = src.replace(/(def_small_avatar\.gif)$/,"def_avatar.gif");
			data.ava = src;
		}
		this.hash.get('ttui['+id+']').data = data;
		this._set(id);
  },
  _set: function (id){
		if ((this.div.visible() == 0) || (this.hash.get('ttui['+id+']').data == undefined) ||
				(this.hash.get('ttui['+id+']').data.id == ''))
			return;
		var c = this.hash.get('ttui['+id+']').data;
		this.container.innerHTML = "<div class='wrap'><img src='"+c.ava+"' class='av'>"+
			"<p><span><strong>"+c.nick+"</strong></span>"+( c.onsite == 1 ? ' <sup><strong class="online"><em>на сайте</em></strong></sup>': '')+"<br><br>"+
			"<span><b>Рейтинг:</b> <span class='"+(c.rating == 0 ? 'ratingzero' : (c.rating > 0 ? 'ratingplus' : 'ratingminus'))+"'>"+c.rating+"</span>"+(c.place == '' ? '' : ' ('+c.place+' место)')+"</span><br>"+
			"<span><b>Пробег по сайту:</b> "+c.run+" км.</span><br>"+
			(c.city == ' ' ? '' : "<span><b>Город:</b>"+c.city+"</span><br>")+
			(c.drive == ' ' ? '' : "<span><b>За рулем с:</b> "+c.drive+" года</span>")+'</p></div>'+
			(c.cars == ' ' ? '' : "<span class='cars'>Сейчас ездит на:</span><br><ul>"+c.cars+"</ul><br>")+
			(c.onsite == 0 ? "<span class='cars'>Был"+(c.sex == 2 ? 'а' : '')+" на сайте"+c.login+"</span>" : '');
			 
  }
	 		  
};

function _iu(e,obj,id){
	if (UITT){
		UITT.add(obj,id,e);
	}
	return false;
}

document.observe('dom:loaded', function () {
//	console.time('INIT');	
	UITT = new UserInfoTT('uitt');
//	console.timeEnd('INIT');
});

