// This file contains general JS functions for the Ani-Link.
// Zolka

// ----------------------------------------------------------------
// Trim functions
function Trim(str)
{
	str = LTrim(str);
	return RTrim(str);
}
function RTrim(str)
{
	while (str.charAt((str.length - 1)) == " ")
	{
		str = str.substring(0, str.length - 1);
	}
	return str;
}
function LTrim(str)
{
	while(str.charAt(0) == " ")
	{
		str = str.replace(str.charAt(0), "");
	}
	return str;
}
// ----------------------------------------------------------------


// ----------------------------------------------------------------
// Validator functions
function ValidateNotEmpty(idText, warnImgId)
{
	var oImg = this.document.getElementById(warnImgId);
	var oText = this.document.getElementById(idText);
	if (oText == null)
		return;

	var text = Trim(oText.value);
	if (text == "")
	{
		if (oImg != null)
			oImg.style.visibility = "visible";
		return false;
	}
	else
	{
		if (oImg != null)
			oImg.style.visibility = "hidden";
		return true;
	}
}

var emailIllegalCharsRegexp = new RegExp("[\\s\\b!#\\$\\%\\&\\'\\(\\)\\*\\,\\\\\":;<>\\?\\[\\]`|]+");
function ValidateEmail(idText, warnImgId, obligatory)
{
	var oText = this.document.getElementById(idText);
	if (oText == null)
		return;
		
	var oImg = this.document.getElementById(warnImgId);
	if (oImg == null)
		return;

	var isValid = true;	
	var text = Trim(oText.value);
	var lstr = text.length;
	
	if (obligatory || ((lstr > 0) && (text != "emailcím")))
	{
		var at = "@";
		var dot = ".";
		var lat = text.indexOf(at);
		var ldot = text.indexOf(dot);
		
		if ((lat <= 0) || (lat >= lstr - 1))			// @ check, @ at the first, and last position
		{
			isValid = false;
		}
		else if (text.match(emailIllegalCharsRegexp))	// illegal char check
		{
			isValid = false;
		}
		else if ((ldot <= 0) || (ldot >= lstr - 1))		// . at first, last position, and at least one
		{
			isValid = false;
		}
		else if (text.charAt(lstr-1) == dot)			// . at the last position?
		{
			isValid = false;
		}
		else if (text.indexOf(at, (lat + 1)) != -1)		// more than one @ check
		{
			isValid = false;
		}
		else if (text.indexOf("..", (lat + 1)) != -1)		// .. check after @
		{
			isValid = false;
		}
		else if ((text.substring(lat - 1, lat) == dot) || (text.substring(lat + 1, lat + 2) == dot))
		{												// .@ or @. search
			isValid = false;
		}
		else if (text.indexOf(dot, (lat + 2)) == -1)	// . must be after @
		{
			isValid = false;
		}
	}

		
	if (isValid)
		oImg.style.visibility = "hidden";
	else
		oImg.style.visibility = "visible";
	
	return isValid;
}
// ----------------------------------------------------------------


// ----------------------------------------------------------------
// Email Editboxes eyecandy
function EmailEditGotFocus(o, emptyText, newClassName)
{
	if (o.value == emptyText) 
	{
		o.value = "";
		o.className = newClassName;
	}
}

function EmailEditLostFocus(o, emptyText, newClassName)
{
	if (o.value == "")
	{
		o.value = emptyText;
		o.className = newClassName;
	}
}
// ----------------------------------------------------------------

// ----------------------------------------------------------------
// Submit form by a link

function SubmitForm(formName)
{
	var oForm = document.forms[formName];
	if (!oForm)
		return false;
	oForm.submit();
	return true;
}

function SetInputField(idObj, param)
{
	var o1 = document.getElementById(idObj);
	if (o1 == null) return false;
	o1.value = param;
	return true;
}

function SubmitFormByLink(formName, action, id, doConfirm, confirmText, actionObjID, idObjID)
{
	if (doConfirm)
	{
		if (!confirm(confirmText))
			return false;
	}
	
	if (!SetInputField(actionObjID, action))
		return false;
	if (!SetInputField(idObjID, id))
		return false;
	return SubmitForm(formName);
}

function SubmitFormByLink2(formName, param1, doConfirm, confirmText, idObj1)
{
	if (doConfirm)
	{
		if (!confirm(confirmText))
			return false;
	}
	
	if (!SetInputField(idObj1, param1))
		return false;
	return SubmitForm(formName);
}

function SubmitMailForm(formName, action, mailid, doConfirm, confirmText)
{
	return SubmitFormByLink(formName, action, mailid, doConfirm, confirmText, "action", "mailid");
}
function SubmitLangForm(formName, action, langid, doConfirm, confirmText)
{
	return SubmitFormByLink(formName, action, langid, doConfirm, confirmText, "action", "dellang");
}
function SubmitSchoolForm(formName, action, langid, doConfirm, confirmText)
{
	return SubmitFormByLink(formName, action, langid, doConfirm, confirmText, "action", "objectid");
}
function SubmitJobForm(formName, action, langid, doConfirm, confirmText)
{
	return SubmitFormByLink(formName, action, langid, doConfirm, confirmText, "action2", "objectid2");
}
function SubmitNewsForm(action, newsid, doConfirm, confirmText)
{
	return SubmitFormByLink("mainnewsform", action, newsid, doConfirm, confirmText, "action", "newsid");
}
function SubmitFindForm(formName, action)
{
	return SubmitFormByLink2(formName, action, false, '', 'action');
}
function SubmitPersonForm(formName, action)
{
	return SubmitFormByLink2(formName, action, false, '', "action");
}
function SubmitDelPostForm(id, confirmText)
{
	return SubmitFormByLink2("blogdelpost", id, true, confirmText, "postid");
}
function SubmitDelCommentForm(id, confirmText)
{
	return SubmitFormByLink2("blogdelcomment", id, true, confirmText, "commentid");
}
function SubmitPagingForm(action)
{
	return SubmitFormByLink2("setpagingform", action, false, '', "paging_action");
}

// ----------------------------------------------------------------

// ----------------------------------------------------------------
// UserBox, GroupBox, MemberBox misc functions

function DisableAjaxButton(objName, disabledImgName)
{
	DisableOnClick("btn" + objName);

	objImg = document.getElementById("img" + objName);
	if (objImg)
		objImg.src = imgRootFolder + disabledImgName;
}
function DisableOnClick(objName)
{
	var objA;
	objA = document.getElementById(objName);
	if (objA)
		objA.onclick = null;
}

function ShowMenu(menuid, isshow)
{
	var objA;
	objA = document.getElementById(menuid);
	if (!objA)
		return;
	
	objA.style.visibility = (isshow ? "visible" : "hidden");
}
// ----------------------------------------------------------------
