/**
 * Ajax Funktionen zum Bearbeiten der Spielerdaten
 *
 * $URL: svn://192.168.1.20/RBL-dev/tags/2012-01-31-a_rbl/jkcms/js/spieler.ajax.js $
 * $Rev: 2308 $
 * $Author: jo $
 * $Date: 2012-01-24 17:20:20 +0100 (Di, 24 Jan 2012) $
 */

/**
 * Container für das Spielerformular
 */
var fEditSpieler = new ajax_obj("fEditSpieler");
var fDragSpieler = new ajax_obj("fDragSpieler");
var fEditSpielerInfo = new ajax_obj("fEditSpielerInfo");
var fSpielerCopy;

/**
 * Ajax Call: Spieler bearbeiten
 * 
 * @param spielerid
 * @param managerid optional, falls Manager zu Spieler übertragen wird
 * @return Boolean <code>false</code>
 */
function edit_spieler(spielerid, managerid) {
	var url = '/ajax/spieler.edit.php?spielerid=' + spielerid;
	if (managerid) {
		url = url + '&managerid=' + managerid;
	}

	fEditSpieler.width = 380;
	fEditSpieler.minheight = 400;        // geschätzte Höhe des Containers

	fEditSpieler.create_container(ajax_event.pageX, ajax_event.pageY);

	fEditSpieler.load(url);

	return false;
}

/**
 * Ajax Call: Spieler speichern
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function save_spieler(spielerid) {

	var form = document.getElementById("spedit");
	if (form) {
		var url = '/ajax/spieler.edit.php?but[save]=s&spielerid=' + spielerid +'&'+ ajax_form2url(form);

		if ((!spielerid) || (spielerid == 'nil') || (spielerid == 'new')) {
			// neuer spieler (nil)
			var tr = document.createElement("tr");
			tr.setAttribute("id", "s_new");
			var tbody = document.getElementById('spieler_a');
			if (tbody) {
				tbody.appendChild(tr);
			} else { 
				alert('save_spieler: !tbody');
				return false; 
			}
			fEditSpieler.target = tr;
		}
		fEditSpieler.onLoad = spieler_saved;
		document.body.style.cursor = 'wait';
		fEditSpieler.create_container(-1, -1); // gleiche Position
		fEditSpieler.load(url);
	}

	return false;
}

/**
 * Ajax callback: Spieler gespeichert
 */
function spieler_saved() {
	document.body.style.cursor = 'auto';
	fEditSpieler.onLoad = null;
	if ((typeof(fEditSpieler.xmlresult) == 'object') && (fEditSpieler.xmlresult['id'])) {
		id = fEditSpieler.xmlresult['id'];
		// Verein zurücksetzen
		ajax_SetTextNodeById('s_verein_name_' + id, '');
		ajax_SetTextNodeById('s_verein_klasse_' + id, '');
		ajax_SetTextNodeById('s_verein_aklasse_' + id, '');
		for (var key in fEditSpieler.xmlresult) {
			ajax_SetTextNodeById('s_' + key + '_' + id, fEditSpieler.xmlresult[key]);
		}

		// falls neuer spieler : id der Zeile setzen
		var newtr = document.getElementById('s_new');
		if (newtr) {
			newtr.setAttribute("id", "s_"+fEditSpieler.xmlresult['id']);

			refresh_row_classes('spieler_a');
		}

		fEditSpieler.target = null;
		fEditSpieler.close();
	}
}

/**
 * Ajax call: Spieler löschen
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function delete_spieler(spielerid) {
	if (confirm("Soll der Spieler wirklich gelöscht werden?")) {
		var url = '/ajax/spieler.edit.php?but[del]=d&spielerid=' + spielerid;

		fEditSpieler.width = 340;
		fEditSpieler.minheight =  270;        // geschätzte Höhe des Containers

		fEditSpieler.create_container(ajax_event.pageX, ajax_event.pageY);
		fEditSpieler.onLoad = spieler_deleted;
		document.body.style.cursor = 'wait';
		fEditSpieler.load(url);
	}
	return false;
}

/**
 * Ajax callback: Spieler gelöscht
 */
function spieler_deleted() {
	document.body.style.cursor = 'auto';
	fEditSpieler.onLoad = null;

	if ((typeof(fEditSpieler.xmlresult) == 'object') && (fEditSpieler.xmlresult['id'])) {
		var id = fEditSpieler.xmlresult['id'];
		var zeile = document.getElementById('s_'+id);
		if (zeile) {
			var statimg = document.getElementById('sstat_'+id);
			if (statimg)  statimg.src = '/pic/fussball_r.png';

			var aktbut = document.getElementById('sbakt_'+id);
			if (aktbut)  aktbut.style.visibility = 'visible';

			var inabut = document.getElementById('sbina_'+id);
			if (inabut)  inabut.style.visibility = 'hidden';

			var delbut = document.getElementById('sbdel_'+id);
			if (delbut)  delbut.style.visibility = 'hidden';

			var edibut = document.getElementById('sbedi_'+id);
			if (edibut)  edibut.style.visibility = 'hidden';

			zeile.parentNode.removeChild(zeile);
			var tbody = document.getElementById('spieler_d');
			if (tbody)  tbody.appendChild(zeile);

			refresh_row_classes('spieler_a');
			refresh_row_classes('spieler_i');
			refresh_row_classes('spieler_d');
		}

		fEditSpieler.close();
	}
}

/**
 * Ajax call: Spieler inaktiv setzen
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function inactivate_spieler(spielerid) {
	if (confirm("Soll der Spieler wirklich inaktiv gesetzt werden?")) {
		var url = '/ajax/spieler.edit.php?but[ina]=i&spielerid=' + spielerid;

		fEditSpieler.width = 340;
		fEditSpieler.minheight =  270;        // geschätzte Höhe des Containers

		fEditSpieler.create_container(ajax_event.pageX, ajax_event.pageY);
		fEditSpieler.onLoad = spieler_inactivated;
		document.body.style.cursor = 'wait';
		fEditSpieler.load(url);
	}
	return false;
}

/**
 * Ajax callback: Spieler inaktiviert
 */
function spieler_inactivated() {
	document.body.style.cursor = 'auto';
	fEditSpieler.onLoad = null;

	if ((typeof(fEditSpieler.xmlresult) == 'object') && (fEditSpieler.xmlresult['id'])) {
		var id = fEditSpieler.xmlresult['id'];
		var zeile = document.getElementById('s_'+id);
		if (zeile) {
			var statimg = document.getElementById('sstat_'+id);
			if (statimg) statimg.src = '/pic/fussball_y.png';

			var aktbut = document.getElementById('sbakt_'+id);
			if (aktbut)  aktbut.style.visibility = 'visible';

			var inabut = document.getElementById('sbina_'+id);
			if (inabut)  inabut.style.visibility = 'hidden';

			var delbut = document.getElementById('sbdel_'+id);
			if (delbut)  delbut.style.visibility = 'visible';

			var edibut = document.getElementById('sbedi_'+id);
			if (edibut)  edibut.style.visibility = 'visible';

			zeile.parentNode.removeChild(zeile);
			var tbody = document.getElementById('spieler_i');
			if (tbody)  tbody.appendChild(zeile);

			refresh_row_classes('spieler_a');
			refresh_row_classes('spieler_i');
			refresh_row_classes('spieler_d');
		}
		fEditSpieler.close();
	}
}

/**
 * Ajax call: Spieler aktiv setzen
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function activate_spieler(spielerid) {
	if (confirm("Soll der Spieler wirklich reaktiviert werden?")) {
		var url = '/ajax/spieler.edit.php?but[akt]=i&spielerid=' + spielerid;

		fEditSpieler.width = 340;
		fEditSpieler.minheight =  270;        // geschätzte Höhe des Containers

		fEditSpieler.create_container(ajax_event.pageX, ajax_event.pageY);
		fEditSpieler.onLoad = spieler_activated;
		document.body.style.cursor = 'wait';
		fEditSpieler.load(url);
	}
	return false;
}

/**
 * Ajax callback: Spieler aktiviert
 */
function spieler_activated() {
	document.body.style.cursor = 'auto';
	fEditSpieler.onLoad = null;

	if ((typeof(fEditSpieler.xmlresult) == 'object') && (fEditSpieler.xmlresult['id'])) {
		var id = fEditSpieler.xmlresult['id'];

		var zeile = document.getElementById('s_'+id);
		if (zeile) {
			var statimg = document.getElementById('sstat_'+id);
			if (statimg) statimg.src = '/pic/fussball_g.png';

			var aktbut = document.getElementById('sbakt_'+id);
			if (aktbut)  aktbut.style.visibility = 'hidden';

			var inabut = document.getElementById('sbina_'+id);
			if (inabut)  inabut.style.visibility = 'visible';

			var delbut = document.getElementById('sbdel_'+id);
			if (delbut)  delbut.style.visibility = 'visible';

			var edibut = document.getElementById('sbedi_'+id);
			if (edibut)  edibut.style.visibility = 'visible';

			zeile.parentNode.removeChild(zeile);
			var tbody = document.getElementById('spieler_a');
			if (tbody)  tbody.appendChild(zeile);

			refresh_row_classes('spieler_a');
			refresh_row_classes('spieler_i');
			refresh_row_classes('spieler_d');
		}
		fEditSpieler.close();
	}
}

function unhide_spieler_i(checked) {
	var tbody = document.getElementById('spieler_i');
	if (tbody) {
		if (checked) {
			if (BROWSER.IE) {
				tbody.style.display = 'block';
			} else {
				tbody.style.display = 'table-row-group';
			}
		} else {
			tbody.style.display = 'none';
		}
	}
}

function unhide_spieler_f(checked) {
	var tbody = document.getElementById('spieler_f');
	if (tbody) {
		if (checked) {
			if (BROWSER.IE) {
				tbody.style.display = 'block';
			} else {
				tbody.style.display = 'table-row-group';
			}
		} else {
			tbody.style.display = 'none';
		}
	}
}

function unhide_spieler_d(checked) {
	var tbody = document.getElementById('spieler_d');
	if (tbody) {
		if (checked) {
			if (BROWSER.IE) {
				tbody.style.display = 'block';
			} else {
				tbody.style.display = 'table-row-group';
			}
		} else {
			tbody.style.display = 'none';
		}
	}
}

/**
 * Spieler ziehen und kombinieren
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function drag_spieler(spielerid) {
	var url = '/ajax/spieler.combine.php?spielerid=' + spielerid;

	// verknüpfen?
	var el = document.getElementById('vkn_spid');
	if ((el) && (confirm("Sollen die Spieler wirklich verknüpft werden?"))) {
//		alert(el.firstChild.nodeValue);
		url = url + '&old_spielerid=' + el.firstChild.nodeValue;

		fDragSpieler.onLoad = spieler_verknuepft;
		document.body.style.cursor = 'wait';
		fDragSpieler.load(url);
		
		return false;
	}

	fDragSpieler.width = 340;
	fDragSpieler.minheight = 10;

	fDragSpieler.create_container(ajax_event.pageX, ajax_event.pageY + 10);
	fDragSpieler.load(url);
	drag_start(fDragSpieler.container);
	
	return false;
}

function set_vkn_spieler(name) {
    var el = document.getElementById('vkn');
    if (el) ajax_SetTextNode(el, name);
}

function spieler_verknuepft() {
	document.body.style.cursor = 'auto';
	fDragSpieler.onLoad = null;

	if ((typeof(fDragSpieler.xmlresult) == 'object') && (fDragSpieler.xmlresult['id'])) {
		id = fDragSpieler.xmlresult['id'];
		for (var key in fDragSpieler.xmlresult) {
			var el = document.getElementById('s_' + key + '_' + id);
			if (el) {
				ajax_SetTextNode(el, fDragSpieler.xmlresult[key]);
			}
		}

		// zeile löschen
		if (fDragSpieler.xmlresult['vkn_id']) {
			var el = document.getElementById('s_' + fDragSpieler.xmlresult['vkn_id']);
			if (el) {
				el.style.display = 'none';

				refresh_row_classes('spieler_a');
				refresh_row_classes('spieler_i');
				refresh_row_classes('spieler_d');
			} else {
				alert('s_' + fDragSpieler.xmlresult['vkn_id'] + ' nicht gefunden!');
			}
		}
		fDragSpieler.close();
	}
}

/**
 * Ajax call: Spielerinfo bearbeiten
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function edit_spielerinfo(spielerid) {
	var url = '/ajax/spielerinfo.edit.php?spielerid=' + spielerid;

	fEditSpielerInfo.width = 380;
	fEditSpielerInfo.minheight =  150;        // geschätzte Höhe des Containers

	fEditSpielerInfo.create_container(ajax_event.pageX, ajax_event.pageY);

	//fEditSpielerInfo.onLoad = spielerinfo_onload;
	fEditSpielerInfo.load(url);

	return false;
}

/**
 * @deprecated
 * @return
 */
function spielerinfo_onload() {
	if (BROWSER.IE) {
//		alert('Achtung IE!');
		var spans = fEditSpielerInfo.content.getElementsByTagName('span');
		if (spans.length > 0) {
			for (var i = 0; i < spans.length; i++) {
				if (spans[i].className == 'combo') {
					if (spans[i].childNodes.length == 1) {
						var inp = document.createElement('<input id="key_1_text" type="text" name="dat[key_1]" value="" title="Combofeld: eintippen oder auswählen" maxlength="50" style="width: 95px;" onchange="var el=document.getElementById(\'key_1_sel\'); el.options.selectedIndex=-1; for(i=0; i<el.options.length; i++) if (el.options[i].text==this.value) el.options[i].selected=true;">');
						spans[i].appendChild(inp);
					}
				}
			}
		}
	}
}

/**
 * Ajax call: Spielerinfo speichern
 * 
 * @param spielerid
 * @return Boolean <code>false</code>
 */
function save_spielerinfo(spielerid) {

	var form = document.getElementById("spinfoedit");
	if (form) {
		var url = '/ajax/spielerinfo.edit.php?but[save]=s&spielerid=' + spielerid +'&'+ ajax_form2url(form);

		fEditSpielerInfo.onLoad = spielerinfo_saved;
		document.body.style.cursor = 'wait';
		fEditSpielerInfo.create_container(-1, -1); // gleiche Position
		fEditSpielerInfo.load(url);
	}

	return false;
}

/**
 * Ajax callback: Spielerinfo gespeichert
 * @return void
 */
function spielerinfo_saved() {
	document.body.style.cursor = 'auto';
	fEditSpielerInfo.onLoad = null;
	if (fEditSpielerInfo.xmlresult == 'true') {
		fEditSpielerInfo.close();
	}
}

/**
 * Ajax call: Filebrowser für Spielerfoto anzeigen
 * 
 * @param id fotoid
 * @return
 */
function spieler_foto_form(id) {
	var url = '/ajax/image.browser.php?path=spieler&fotoid=' + id;

	fFileBrowser.width = 300;
	fFileBrowser.minheight =  200;        // geschätzte Höhe des Containers

	fFileBrowser.create_container(ajax_event.pageX, ajax_event.pageY);

	fFileBrowser.onokclick = spieler_foto_form_okclick;
	fFileBrowser.load(url);

	return false;
}

function spieler_foto_form_okclick(id, img) {
	var fotoid_el = document.getElementById('s_fotoid');
	if (fotoid_el) {
		fotoid_el.value = id;
		var img_el = document.getElementById('spfoto');
		if (img_el) {
			//alert('spieler_foto_form_okclick w:'+img.width+', h:'+img.height);
			var f = img.width / 75;
			var fy = img.height / 100;
			if (fy > f) f = fy;
			var w = parseInt(img.width / f);
			var h = parseInt(img.height / f);
			img_el.src = img.src;
//			img_el.width = w;
//			img_el.height = h;
		}
	}
}

function unset_foto() {
	var url = "/pic/kopf.gif";
	var img = new Image();
	img.onload = function() {
		spieler_foto_form_okclick('', img);
	};
	img.src = url;
}

function unset_prop(propid) {
	var el = document.getElementById('prop_' + propid);
	if (el) {
		el.value = '';
		var tr = document.getElementById('tr_prop_' + propid);
		if (tr) tr.style.display = 'none';
	}
}

function add_prop() {
	var prop = document.getElementById('newprop1');
	var found = false;
	while (prop != null) {
		if ((prop.nodeName.toUpperCase() == 'TR') && (prop.className == "hide")) {
			prop.className = '';
			found = true;
			break;
		}
		prop = prop.nextSibling;
	}

	if (!found) {
		// Add Button entfernen
		var but = document.getElementById('addprop');
		if (but) but.style.display = "none";
	}
}

function add_fspieler() {
	var found = false;
	var tbody = document.getElementById('spieler_f');
	if (tbody) {
		var tr = tbody.firstChild;
		while (tr != null) {
			if ((tr.nodeName.toUpperCase() == 'TR') && (tr.style) && (tr.style.display == "none")) {
				if (BROWSER.IE) {
					tr.style.display = 'block';
				} else {
					tr.style.display = 'table-row';
				}
				found = true;
				break;
			}
			tr = tr.nextSibling;
		}
	}

	if (!found) {
		// Add Button entfernen
		var but = document.getElementById('addfspieler');
		if (but) but.style.visibility = "hidden";
	}
}

/**
 * Ajax call: Spielerstatistik in einem Fenster zeigen
 * 
 * @param spielerid
 */
function show_stat(spielerid) {
	el = document.getElementById('sp_' + spielerid);
	if (el) {
		if (!el.stat) {
			el.ajaxobj = new ajax_obj("sp_" + spielerid);
			el.stat = document.createElement('div');
			el.stat.className = 'spieler_stat';
			var img = document.createElement('img');
			img.src = '/pic/wait.gif';
			img.className = 'progress';
			el.stat.appendChild(img);
			var br = document.createElement('br');
			el.stat.appendChild(br);
			var txt = document.createTextNode('loading');
			el.stat.appendChild(txt);
			document.getElementsByTagName("body")[0].appendChild(el.stat);
			var url = '/ajax/spieler.statistik.php?spielerid=' + spielerid;
			el.ajaxobj.target = el.stat;
			el.ajaxobj.load(url);		
		}
		el.stat.style.visibility = 'visible';
		el.stat.style.left = parseInt(ajax_event.pageX + 10) + 'px';
		el.stat.style.top = parseInt(ajax_event.pageY + 10) + 'px';
	}
}

/**
 * Spielerstatistik-Fenster ausblenden
 * 
 * @param spielerid
 */
function hide_stat(spielerid) {
	el = document.getElementById('sp_' + spielerid);
	if (el) {
		if (el.stat) {
			el.stat.style.visibility = 'hidden';
		}
	}
}

function spieler_copy(id) {
	if (!fSpielerCopy) fSpielerCopy = new fSearch();

	fSpielerCopy.url = '/ajax/spieler.copy.php';
	fSpielerCopy.spielerid = id;
	
	fSpielerCopy.onOk = function(id, name) {
		fSpielerCopy.create_container(-1, -1);
		
		var url = '/ajax/spieler.copy.php?spielerid=' + fSpielerCopy.spielerid;
		url += '&copyto=' + id;
		
		fSpielerCopy.load(url);
		fSpielerCopy.onLoad = function () {
			window.location.reload();
		};
		
	};
	
	fSpielerCopy.open('?spielerid=' + id);
	
	return false;
}

