//========================================================
// LIGAEXPERTE Ajax Functions, copyright Ligaexperte.de
// v2.3
//
// - needs le_std.js (must be included in same HTML)
//========================================================

// : spielstand
// globals
var calls = 0;  // just a debug var
var arrCalledUserIds = new Array();  // holds all requested user_ids
var outFlag = 1; // used in IE to check if needed to set all overdivs hidden
var arrMsgIds = new Array();

// : spielstand
function ttUserTips(e, user_id, username, spieltag, tippspiel_id, overdiv_id, punktemodus)
{
	var strCalledUserIds;
	var overdiv;
	if (document.getElementById)
	{
		overdiv = document.getElementById(overdiv_id);
	}

	if (!e)
	  e = window.event;
	menuover(e, user_id, tippspiel_id, overdiv_id);

	// check for already called IDs
	strCalledUserIds = ';' + arrCalledUserIds.join(";") + ';';
	if (strCalledUserIds.search(';' + overdiv_id + ';') == -1)
	{
		//xajax_getUserWeeklyTip(user_id, username, spieltag, tippspiel_id, overdiv_id, punktemodus);
		new Ajax.Updater(overdiv_id, '/xhrInterface.php', {
					parameters: {r: 'getUserWeeklyTip', user_id: user_id, username: username, spieltag: spieltag, tippspiel_id: tippspiel_id, overdiv_id: overdiv_id, punktemodus: punktemodus}
				});
		calls=calls+1;
		arrCalledUserIds.push(overdiv_id);
	}
	/* debug info div control
	var helperInfo;
	helperInfo = document.getElementById("debugInfo");
	helperInfo.innerHTML = 'userid: ' + user_id + ' , AjaxRequests: ' + calls  + '<br />RequestedIds: ' +  strCalledUserIds + '<br />' + 'document.documentElement.scrollTop: ' + document.documentElement.scrollTop + '<br />self.innerHeight: ' + self.innerHeight + '<br />document.documentElement.clientHeight: ' + document.documentElement.clientHeight + '<br />overdiv.offsetHeight: ' + overdiv.offsetHeight;
	*/
}

// : userligen
function ttDaysTipped(e, user_id, tippspiel_id, overdiv_id)
{
	var strCalledUserIds;
	var overdiv;
	if (document.getElementById)
	{
		overdiv = document.getElementById(overdiv_id);
	}

	if (!e)
	  e = window.event;
	menuover(e, user_id, tippspiel_id, overdiv_id);

	// check for already called IDs
	strCalledUserIds = ';' + arrCalledUserIds.join(";") + ';';
	if (strCalledUserIds.search(';' + overdiv_id + ';') == -1)
	{
		xajax_matchdaysTipped(user_id, tippspiel_id, overdiv_id);
		calls=calls+1;
		arrCalledUserIds.push(overdiv_id);
	}
}

// : spielstand
//menu move over -> move and show div
function menuover(e, user_id, tippspiel_id, overdiv_id)
{
	var overdiv;
	if (!e)
	  e = window.event;

	// set all hidden - only needed for IE...
	if (document.getElementById && !(self.innerHeight) && outFlag==1)
	{
		for (var i = 0; i < arrCalledUserIds.length; i++)
		{
			overdiv = document.getElementById(arrCalledUserIds[i]);
			overdiv.style.visibility = "visible";  //it won't work without it
			overdiv.style.visibility = "hidden";
		}
		outFlag = 0;
	}
	stdShowElement (overdiv_id, e);
}
// : spielstand
//menu out -> hide div
function menuout(user_id, overdiv_id)
{
	stdHideElement (overdiv_id);
	outFlag = 1;
}

// : buddylist
function getMail2BuddiesForm (e, user)
{
	var strOut;
	var strEmpty = "";
	var strHtml ="<div><a href=\"javascript:void(1)\" onclick=\"setCheckboxChecked('mailBuddies', 'check')\">Alle ausw&auml;hlen</a> | <a href=\"javascript:void(1)\" onclick=\"setCheckboxChecked('mailBuddies', 'uncheck')\">Alle abw&auml;hlen</a> | <a href=\"javascript:void(1)\" onclick=\"setCheckboxChecked('mailBuddies', 'invert')\">Auswahl umkehren</a><br /><textarea id=\"gbText\" class=\"textareaGb stdBor\" rows=\"4\" name=\"text\" cols=\"34\"></textarea><br /><br />Art der Nachricht:<br /><input type=\"radio\" class=\"radio stdBor\" name=\"gbentry_type\" value=\"public\" checked=\"checked\" /> &ouml;ffentlich = G&auml;stebucheintrag<br /><input type=\"radio\" class=\"radio stdBor\" name=\"gbentry_type\" value=\"private\" /> privat<br />(Private Nachrichten kann nur der Empf&auml;nger sehen.)<br /><br /><input type=\"submit\" class=\"submit\" value=\"Nachricht abschicken\" onclick=\"sendMailToBuddies(" + user + ", xajax.getFormValues('mailBuddies'))\" /><div class=\"aj\"><span class=\"strong\">Hinweis: </span>Massenweises Versenden von Einladungen f&uuml;r Expertenrunden wird als Spam angesehen! Um f&uuml;r deine Expertenrunden zu werben, verwende die Expertenrundenb&ouml;rse im Forum.</div></div>";
	if (document.getElementById(e))
	{
		if (!document.getElementById(e).innerHTML.match(/setCheckboxChecked/)) strOut = strHtml;
		else strOut = strEmpty;
		document.getElementById(e).innerHTML = strOut;
	}
}
function sendMailToBuddies(sender_id, arrFormValues)
{
  // check for empty msg
  var formXmlData = xajax.getFormValues('mailBuddies');
	var textFlag = formXmlData.match(/text=&/);
	var textFlag2 = formXmlData.match(/mailBuddy/);
	var errMsg = "";
	var gb;
  if (textFlag=="text=&")
  {
		errMsg = errMsg + 'Fehler: Deine Nachricht darf nicht leer sein!';
		if (!document.getElementById("gbInsertInfo"))
		{
			var elem = document.createElement("div");
			var elemTxt = document.createTextNode(errMsg);
			elem.appendChild(elemTxt);
			var attr = document.createAttribute("class");
			attr.nodeValue = "contInfo highlightBor strong";
			elem.setAttributeNode(attr);
			attr = document.createAttribute("id");
			attr.nodeValue = "gbInsertInfo";
			elem.setAttributeNode(attr);
			var Ausgabebereich = document.getElementById("mailBuddiesResponse");
			Ausgabebereich.appendChild(elem);
		}
	  gb = document.getElementById("gbText");
	  gb.style.backgroundColor = "#ff0000";
	  gb.style.color = "#ffffff";
	  gb.style.borderColor = "#ff0000 #800000 #800000 #ff0000";
	  gb.focus();
	  gb = document.getElementById("gbInsertInfo");
		gb.innerHTML = errMsg;
	  gb.style.color = "#ff0000";
  }
	else
	{
		gb = document.getElementById("gbText");
		gb.style.backgroundColor = "";
	  gb.style.color = "";
	  gb.style.borderColor = "";
	}
	if (!textFlag2)
	{
		if (errMsg!="") errMsg = errMsg + "<br />";
		errMsg = errMsg + 'Fehler: Kein Empfänger ausgewählt!';
		if (!document.getElementById("gbInsertInfo"))
		{
			var elem = document.createElement("div");
			var elemTxt = document.createTextNode(errMsg);
			elem.appendChild(elemTxt);
			var attr = document.createAttribute("class");
			attr.nodeValue = "contInfo highlightBor strong";
			elem.setAttributeNode(attr);
			attr = document.createAttribute("id");
			attr.nodeValue = "gbInsertInfo";
			elem.setAttributeNode(attr);
			var Ausgabebereich = document.getElementById("mailBuddiesResponse");
			Ausgabebereich.appendChild(elem);
		}
	  gb = document.getElementById("gbInsertInfo");
		gb.innerHTML = errMsg;
	  gb.style.color = "#ff0000";
	}
	if (!textFlag && textFlag2)
	{
		xajax_sendMailToBuddies(sender_id, arrFormValues);
	}
	return false;
}

//--------------------------------------------------------
// tipp.inc: ajax tip form, ajax submit
//--------------------------------------------------------
function highlightTipForm (e, idBase)
{
	setTipFormFeedback ("");
	if (!idBase) idBase = "tipForm_data_";
	setTipFormClassName (idBase, "tfHover", 0, 1);
	//if (!e) var e = window.event;
	//toggleViewByIdSet(e, idBase, "none");
}

function blurTipForm (e, idBase)
{
	if (!idBase) idBase = "tipForm_data_";
	setTipFormClassName (idBase, "tfBlur", 0, 1);
}

function setTipFormClassName (idBase, name, affectBase, affectChildren)
{
	var i=0, j=0, elem;
	while(document.getElementById((idBase + "" + i)))
	{
		elem = document.getElementById(idBase + "" + i);
		if (affectBase)
		{
			if (name.toLowerCase()!="none") elem.className = name;
			else elem.removeAttribute("class");
		}
		if (affectChildren)
		{
			while(elem.childNodes[j])
			{
				if (elem.childNodes[j].nodeName.toLowerCase()=="span")
				{
					if (name.toLowerCase()=="none") name = "";
					elem.childNodes[j].className = name;
				}
				j++;
			}
			j = 0;
		}
		i++;
	}
}

function initTipForm (tippspiel_id, tippspiel_name)
{
	var elem, form, field, i=0, idBase = "tipForm_", formId = "tipForm", arrFields = new Array(), arrValues = new Array();
	// remove errors
	removeMarkFromForm(formId);
	// reset feedback
	setTipFormFeedback ('<div class="secondary ar">Bitte gib deine Tipps in die Felder ein.</div>');
	// set display
	setTipFormButtonDisability(0);
	setTipFormClassName (idBase+"form_", "ac", 1, 0);
	setTipFormClassName (idBase+"data_", "nzs", 1, 0);
	setTipFormClassName (idBase+"button_", "ar", 1, 0);

	// reset form values
	// get values from <div>s, fieldnames from <input>s
	form = document.getElementById(formId);
	while (document.getElementById(idBase + "data_" + i))
	{
		elem = document.getElementById(idBase + "data_" + i);
		arrValues.push(elem.getElementsByTagName("span")[0].innerHTML.replace(/&nbsp;/g, ""));
		arrValues.push(elem.getElementsByTagName("span")[1].innerHTML.replace(/&nbsp;/g, ""));
		field = document.getElementById(idBase + "form_" + i);
		arrFields.push(field.getElementsByTagName("input")[0].name);
		arrFields.push(field.getElementsByTagName("input")[1].name);
		i++;
	}
	// write values to fields
	setFormValues (formId, arrFields, arrValues);
	//show boxRight table
	document.getElementById("boxRightContainer").className = "ac";
	document.getElementById("boxRightContainer").innerHTML = '<br /><br /><br /><br /><img alt="" src="/grafik/waiting.gif" />';
	xajax_showLeagueTableBoxed(tippspiel_id, tippspiel_name);
}

function resetTipForm ()
{
	var idBase = "tipForm_";
	setTipFormFeedback ("");
	setTipFormClassName (idBase+"form_", "nzs", 1, 0);
	setTipFormClassName (idBase+"data_", "ac", 1, 0);
	setTipFormClassName (idBase+"button_", "nzs", 1, 0);
}

function setTipFormFeedback (v)
{
	document.getElementById("tipForm_feedback").innerHTML = v;
}

function setTipFormButtonDisability (disable, formId)
{
	var form, i=0;
	if(!formId) formId = "tipForm";
	if(disable==1) disable = true;
	if(disable==0) disable = false;
	form = document.getElementById(formId);
	while (form.elements[i])
	{
		if (form.elements[i].type.toLowerCase()=="button" || form.elements[i].type.toLowerCase()=="reset" || form.elements[i].type.toLowerCase()=="submit")
		{
			form.elements[i].disabled = disable;
		}
		i++;
	}
}

function tInsertTips(userId)
{
	var formId="tipForm", fValue, i=0, valid=1, result, j=1, prevValue=0, arrMarkFields = new Array();
	var regexp=/\D/g;
	form = document.getElementById(formId);
	while (form.elements[i]) // DEV: && valid==1
	{
		if (form.elements[i].type.toLowerCase()=="text")
		{
			fValue = form.elements[i].value;
			fValue = fValue.replace(regexp, "");
			result = validateFormValue (fValue, 1);
			if (result==false && form.elements[i].value!="")
			{
				valid = 0;
				arrMarkFields.push(form.elements[i].name);
			}
			else
			{
				form.elements[i].value = fValue;
			}
			prevValue = fValue;
		}
		i++;
	}
	// init markierung
	removeMarkFromForm(formId);
	markFormErrors(formId, arrMarkFields);

	// valid data, send to db
	if (valid==1)
	{
		setTipFormFeedback('<img class="vatb" src="/grafik/waiting.gif" alt="waiting" /> Deine Tipps werden &uuml;bertragen.');
		setTipFormButtonDisability(1);
		xajax_tInsertTips(userId, xajax.getFormValues(formId));
	}
	else
	{
		setTipFormFeedback('<div class="contInfo highlightBor"><div class="strong">Fehler:</div>In die Tippfelder bitte nur Ziffern eintragen. Alle Falscheingaben wurden rot markiert.</div>');
	}
}

function tRefreshDisplay(formId, strValues)
{
	var i=0, arrV = new Array(), arrValues = new Array();
	arrV = strValues.split("@@@");

	while(arrV[i] && document.getElementById(formId + "_data_" + i))
	{
		arrValues = arrV[i].split(":");
		document.getElementById(formId + "_data_" + i).getElementsByTagName("span")[0].innerHTML = arrValues[0];
		document.getElementById(formId + "_data_" + i).getElementsByTagName("span")[1].innerHTML = arrValues[1];
		i++;
	}
}

//--------------------------------------------------------

//========================================================
