/**
 * Generatory wierszy dla mailboxa i innych podobnych.
 */

function _tdhelper(class_name, inner){
	var td = document.createElement('td');
	td.className=class_name;
	if(inner)
		td.appendChild(inner);
	return td;
}

/**
 * Generowanie wiersza w inboxie
 * @param {Object} tr
 * @param {Object} poz
 */
function inbox_row_gen(tr, poz){
	tr.appendChild(_tdhelper('attachment'));
	tr.appendChild(_tdhelper('sender'));
	tr.appendChild(_tdhelper('subject'));
	tr.appendChild(_tdhelper('date'));
	tr.appendChild(_gen_ban());
	tr.appendChild(_gen_chbox(poz));

	tr.fillrow = function(data, i){
		if(!data.przeczytany)
			setClass(tr, 'read', true);
		tr.childNodes[0].appendChild(_gen_zalacznik(tr, data.ma_zalacznik));
		tr.childNodes[1].appendChild(_gen_osoba_div(data.nadawca_login, data.nadawca_plec));
		tr.childNodes[2].appendChild(_gen_temat_div(data.temat, i, 'inbox'));
		tr.childNodes[3].appendChild(document.createTextNode(data.czas_wyslania));
	}
}

function blokowani_row_gen(tr, poz){
	tr.appendChild(_tdhelper('sender male'));
	tr.appendChild(_tdhelper('subjectB'));
	tr.appendChild(_tdhelper('date'));
	tr.appendChild(_gen_chbox(poz));

	tr.fillrow = function(data, i){
		quickElement('div', tr.childNodes[0], data.blokowany_username, 'class', 'cutter');
		quickElement('div', tr.childNodes[1], data.powod, 'class', 'cutter');
		quickElement('div', tr.childNodes[2], data.czas_utworzenia_blokady, 'class', 'cutter');
	}
	//tr.nieklikalny = true;
}

/**
 * Generowanie wiersza w outboxie
 * @param {Object} tr
 * @param {Object} poz
 */
function outbox_row_gen(tr, poz){
	tr.appendChild(_tdhelper('attachment'));
	tr.appendChild(_tdhelper('sender'));
	tr.appendChild(_tdhelper('subject2'));
	tr.appendChild(_tdhelper('date'));
	tr.appendChild(_gen_chbox(poz));
	
	tr.fillrow = function(data, i){
		tr.childNodes[0].appendChild(_gen_zalacznik(tr, data.ma_zalacznik));
		tr.childNodes[1].appendChild(_gen_osoba_div(data.adresat_login, data.adresat_plec));
		tr.childNodes[2].appendChild(_gen_temat_div(data.temat, i, 'outbox'));
		tr.childNodes[3].appendChild(document.createTextNode(data.czas_wyslania));
	}
}

/**
 * Generowanie wiersza w outboxie
 * @param {Object} tr
 * @param {Object} poz
 */
function trash_row_gen(tr, poz){
	tr.appendChild(_tdhelper('attachment'));
	tr.appendChild(_tdhelper('senderT'));
	tr.appendChild(_tdhelper('senderT'));
	tr.appendChild(_tdhelper('subjectT'));
	tr.appendChild(_tdhelper('date'));
	tr.appendChild(_gen_chbox(poz));
	
	tr.fillrow = function(data, i){
		if(!data.przeczytany)
			setClass(tr, 'read', true);
		tr.childNodes[0].appendChild(_gen_zalacznik(tr, data.ma_zalacznik));
		tr.childNodes[1].appendChild(_gen_osoba_div(data.nadawca_login, data.nadawca_plec));
		tr.childNodes[2].appendChild(_gen_osoba_div(data.adresat_login, data.adresat_plec));
		tr.childNodes[3].appendChild(_gen_temat_div(data.temat, i, 'trash'));
		tr.childNodes[4].appendChild(document.createTextNode(data.czas_wyslania));
	}
}

function _gen_ban(){
	var ban = _tdhelper('ban');
	ban.innerHTML = '<img alt="[-]" src="'+MEDIA_URL +'img/icons/mailer_ban.gif"/>';
	return ban;
}

function _gen_temat_div(temat, i, box){
		var temat_a = document.createElement('a');
		temat_a.appendChild(document.createTextNode(temat.length<20?temat:temat.substr(0,20)+'...'));
		temat_a.title = temat;
		temat_a.href = '#';
		var temat_div = document.createElement('div');
		temat_div.appendChild(temat_a);
		temat_div.className = 'cutter';
		return temat_div;
}

function _gen_chbox(poz){
	var inpt = document.createElement('input');
	inpt.type='checkbox';
	inpt.value= poz;
	inpt.name='usun';
	return _tdhelper('chb',inpt)
}

function _gen_zalacznik(tr, ma_zalacznik){
	if(ma_zalacznik){
			var zalacznik = document.createElement('img');
			zalacznik.alt = '.';
			zalacznik.src = MEDIA_URL + "img/icons/mailer_attachmentm.gif";
			
			return zalacznik;
	}
	else return document.createTextNode('');
}

function _gen_osoba_div(login, plec){
	//adresat
	var adresat_div = document.createElement('div');
	adresat_div.appendChild(document.createTextNode(login));
	if(plec=='k')
		adresat_div.className = 'cutter female';
	else
		adresat_div.className = 'cutter male';
	return adresat_div;
}


/**
 * Dla inboxa należy dodawać przycisk
 */
function InboxMailboxManager(elem, container_elem, url, elementow, widocznych, options){
	this.post_show_wiadomosc = function(wiadomosc, i){
		{
			var odpowiedz = $('id_napisz_odpowiedz');
			if (odpowiedz) {
				odpowiedz.href = '/wiadomosci/odpowiedz/' + wiadomosc.pk;
			}
			else {
				var elems = this.container_elem.parentNode.getElementsByTagName('div');
				for (var i = 0; i < elems.length; i++) {
					if (elems[i].className == 'btnWrapper') {
						var a = document.createElement('a');
						a.href = '/wiadomosci/odpowiedz/' + wiadomosc.pk;
						a.id = 'id_napisz_odpowiedz';
						var img = quickElement('img', a, '', 'src', MEDIA_URL + 'img/forms/btn_odpowiedz.gif', 'alt', 'napisz odpowiedź')
						elems[i].insertBefore(a, elems[i].firstChild);
						break;
					};
				}
			}
		}
	}
	this.init(elem, container_elem, url, elementow, widocznych, options);
}

InboxMailboxManager.prototype = new MailboxManager;