var Contacts = {
	
	addContact: function(container, character) {
    container.appendChild( Contacts.createContact(character) )
  },

	createContact: function(character) {

    var node = $('dummy_contact').cloneNode(true);
		node.id = character.oid;
    var elements = node.getElementsByTagName('li');

    node.className = ((character.sex == 'F') ? 'red':'blue');
		
    elements[0].className = node.className + '_left';
    elements[1].className = node.className + '_center';
    elements[2].className = node.className + '_right';
    li_name = elements[1];

    // Events
    
    node.onmouseover = new Function(character.onmouseover);
    
    if ( !character.hide_menu ) {
      li_name.onclick = function () { Chat.appendRecipient(character.nick) };
    }
    
    if ( !character.invisible || window.is_admin ) {
      
      if ( !character.hide_menu ) {
        elements[0].onclick = function () { 
          Chat.showCharacterMenu(this, { 'character_name' : character.nick, 'character_uri' : character.uri }) 
        }
      }
      
      elements[2].onclick = function () {
        if (window.is_social_network) {
          if(window.is_simple){
            document.location.href = '/characters/' + character.uri;
          }else{
            Chat.setContent('/includes/iframe/characters/' + character.uri)
          }
        } else {
          window.open('/characters/'+character.uri)
        }
      }
      
		// Проверка invisible везде? может сделать общую?
	    if ( character.is_admin && !character.invisible && character.real_name != 'Evrei201' ) li_name.appendChild( Contacts.createContactImage( 'admin.gif', 'Одминчег' ) );
	    if ( character.is_moderator && !character.invisible && character.real_name != 'Evrei201' ) li_name.appendChild( Contacts.createContactImage( 'moderator.gif', 'Злой модератор' ) );
	    if ( character.is_noob && window.is_mentor && !character.invisible ) li_name.appendChild( Contacts.createContactImage( 'noob.gif', 'Требуется наставник' ) );
	    if ( character.is_jack_frost && !character.invisible ) li_name.appendChild(Contacts.createContactImage('jack_frost.gif', 'Дед Мороз' ) );
	    if ( character.is_snow_maiden && !character.invisible ) li_name.appendChild(Contacts.createContactImage('snow_maiden.gif', 'Снегурочка' ) );
		if( !character.invisible ) {
			var rr = character.ranks
			if( rr ) {
				for(var i=0; i<rr.length; i++) {
					var r = rr[i]
            if (r && r[0] && r[1]){
              li_name.appendChild(Contacts.createAnyImage(r[0],r[1]));
            }
				}
			}
		}
		if ( character.is_best && !character.invisible ) li_name.appendChild(Contacts.createContactImage('best.gif', 'Один из лучших'));
	    if ( character.is_worst && !character.invisible ) li_name.appendChild(Contacts.createContactImage('worst.gif', 'Один из худших'));
			if ( character.clan_icon && !character.invisible ) {
				var contact_image = Contacts.createContactImage('../..' + character.clan_icon, "Клан «" + character.clan_name + "»");
				contact_image.onclick = function() { 
          if (window.is_social_network) {
            if (window.is_simple){
              document.location.href = '/clans/' + character.clan_id;
            }else{
              Chat.setContent('/includes/iframe/clans/' + character.clan_id);
            }
          } else {
            window.open('/clans/' + character.clan_id, 'clan_' + character.clan_id); 
          }
        };
				li_name.appendChild(contact_image);
			}
    }

    node.getElementsByTagName('span')[0].appendChild( document.createTextNode( character.uri ) );
    if( character.invisible && (window.is_admin || window.is_moderator)  ) {
    	li_name.appendChild( document.createTextNode( character.real_name+' (инкогнито) ['+character.level+']' ) );
	}
	else {
    	li_name.appendChild( document.createTextNode( character.nick+' ['+character.level+']' ) );
	}
    node.style.display = 'block';

    return node;
  },

  createContactImage: function(src, hint_message) {
//	Contacts.createAnyImage('/images/game/'+src,hint_message); - почему то падает огнелис
		    var img = document.createElement('img');
		    img.src = '/images/game/'+src;
		    img.align = "absmiddle";
		img.width = 16;
		img.height = 16;
		    img.onmouseover=function() { hint(hint_message) };
		    img.onmouseout=function() { removeHint() };
		    return img;
  },

  createAnyImage: function(src, hint_message) {
    var img = document.createElement('img');
    img.src = src;
    img.align = "absmiddle";
	img.width = 16;
	img.height = 16;
    img.onmouseover=function() { hint(hint_message) };
    img.onmouseout=function() { removeHint() };
    return img;
  }
	
}
