var strLoginUsername = 'Please enter your username!';
var strLoginPassword = 'Please enter your password!';
var strOldPassword = 'Please enter your old password!';
var strNewPassword = 'Please enter a new password!';
var strVerifyPassword = 'Please enter your new password again!';
var strIdenticalPasswords = 'The \"New Password\" and \"Verify Password\" fields must be identical!';

var strReportName = 'Please select the \"Report Name\" field!';
var strComandName = 'Please select the \"Command Name\" field!';
var strSaveData = 'Do you want to save the data in this table?';
var strRecordID = 'Please enter a \"Record ID\"!';
var strNewRecord = 'Do you want to add a new record?';
var strUpdateRecord = 'Do you want to update this record?';
var strDeleteRecord = 'Do you want to delete this record?';
var strCountTooBig = 'You are about to create more than 10 records. Are you sure?';
var strResourceModified = 'The resource you have entered is modified according to Logo\'s rules.';

var regSplit = /(\s|\-)/;
var regDot = /\.(?!(\s|\.))/g;
var regLeftPar = /\.(?!(\s|\.))/g;

var JSVERSION = 'v18 '

function CheckReportNameField(theForm)
{
	if (theForm.textReportID.selectedIndex == 0)
		return giveAlert(theForm.textReportID, strReportName, false);		

	return true;
}

function CheckCommandNameField(theForm)
{
	if (theForm.textCommandID.selectedIndex == 0)
		return giveAlert(theForm.textCommandID, strCommandName, false);		

	return true;
}

function giveAlert(elem, str, boo)
{
	if (str != '')
		alert(str);
	return stallSubmit(elem, boo);
}

function stallSubmit(elem, boo)
{
	elem.focus();
	if (boo)
		elem.select();						
	return false;
}

function doNormalize(str)
{
	str = (str.replace(/^\s*/, '')).replace(/\s*$/, '');
	str = str.replace(/\s{2,}/g, ' ');

	return str;
}

function doNormalizeResource(elem)
{
alert(JSVERSION + 'doNormalizeResource');

	var str = elem.value;

alert(JSVERSION + str);

	str = str.replace(regDot, '. ');

	str = str.replace('(', ' (');
	str = str.replace('  (', ' (');
	str = str.replace(')', ') ');
	str = str.replace(')  ', ') ');

	str = str.replace('  ', ' ');
	str = doNormalize(str);

alert(JSVERSION + str);

	elem.value = str;

	return true;
}

function doCapitalize(elem)
{
	var reg = regSplit;
	var intI;
	var intJ;
	var str = elem.value;
	var strSeparator;
	var strChr;
	var strCapitalized;
	var strReturn = '';
	var strWords;

	str = str.replace(regDot, '. ');
	str = doNormalize(str);

	strWords = str.split(regSplit);
	reg.test(str);

	strSeparator = RegExp.$1;

	for (intI = 0; intI < strWords.length; intI++) {
		strCapitalized = '';

		strChr = strWords[intI].charAt(0);
		switch(strChr) {
			case 'ý':
				strChr = 'I';
				break;
			case 'i':
				strChr = 'Ý';
				break;
			case '\'':
				break;
			default:
				strChr = strChr.toUpperCase();
				break;
		}
		strCapitalized += strChr;

		for (intJ = 1; intJ < strWords[intI].length; intJ++) {
			strChr = strWords[intI].charAt(intJ);
			switch(strChr) {
				case 'I':
					strChr = 'ý';
					break;
				case 'Ý':
					strChr = 'i';
					break;
				case '\'':
					break;
				default:
					strChr = strChr.toLowerCase();
					break;
			}
			strCapitalized += strChr;
		}

		if (intI > 0) {
			strReturn += strSeparator;
		}
		strReturn += strCapitalized;
	}

	elem.value = strReturn;
	return true;
}

function checkInput(elem)
{
	elem.value = doNormalize(elem.value);
}

function isValidStr(elem, reg, msg, boo)
{
	var str = elem.value;

	if (!reg.test(str))
		return giveAlert(elem, msg, boo);
	return true;
}

function CheckLoginData(theForm)
{
	checkInput(theForm.textUSERNAME);
	if (theForm.textUSERNAME.value == '')
		return giveAlert(theForm.textUSERNAME, strLoginUsername, true);

	checkInput(theForm.textPASSWORD);
	if (theForm.textPASSWORD.value == '')
		return giveAlert(theForm.textPASSWORD, strLoginPassword, true);

	return true;
}

function CheckPasswordChangeData(theForm)
{
	checkInput(theForm.textOLDPASSWORD);
	if (theForm.textOLDPASSWORD.value == '')
		return giveAlert(theForm.textOLDPASSWORD, strOldPassword, true);

	checkInput(theForm.textNEWPASSWORD);
	if (theForm.textNEWPASSWORD.value == '')
		return giveAlert(theForm.textNEWPASSWORD, strNewPassword, true);

	checkInput(theForm.textVERIFYPASSWORD);
	if (theForm.textVERIFYPASSWORD.value == '')
		return giveAlert(theForm.textVERIFYPASSWORD, strVerifyPassword, true);

	if (theForm.textNEWPASSWORD.value != theForm.textVERIFYPASSWORD.value)
		return giveAlert(theForm.textVERIFYPASSWORD, strIdenticalPasswords, true);

	return true;
}

function CheckCount(theForm)
{
	checkInput(theForm.COUNT);
	if (theForm.COUNT.value > 10)
		return confirm(strCountTooBig);

	return true;
}

function ButtonOnClick()
{
	document.formSQL.submit();
}

function Y_TableOnClick(FileName)
{
//	alert(FileName);

	var URLToBeLoaded = FileName +
		"?TableName=" + document.formTableOps.TableName.options[document.formTableOps.TableName.selectedIndex].text;

	var ConfirmMessage = "";

	switch (FileName) {
		case "YTOSaveData.asp":
			ConfirmMessage = strSaveData;
			break;
	}

	if (ConfirmMessage != "") {
		if (confirm(ConfirmMessage) != true) {
			return;
		}
	}

//	parent.frames[1].location.href = URLToBeLoaded;
	document.location.href = URLToBeLoaded;
}

function Y_RecordOnClick(FileName)
{
//	alert(FileName);

	var URLToBeLoaded = FileName + 
		"?TableName=" + document.formTableOps.TableName.options[document.formTableOps.TableName.selectedIndex].text +
		"&ID=" + document.formTableOps.ID.value;

	var ConfirmMessage = "";

	switch (FileName) {
		case "YTONewRecord.asp":
			ConfirmMessage = strNewRecord;
			break;
		case "YTOUpdateRecord.asp":
			if (document.formTableOps.ID.value == "") {
				alert(strRecordID);
				return;
			}
			ConfirmMessage = strUpdateRecord;
			break;
		case "YTODeleteRecord.asp":
			if (document.formTableOps.ID.value == "") {
				alert(strRecordID);
				return;
			}
			ConfirmMessage = strDeleteRecord;
			break;
	}

	if (ConfirmMessage != "") {
		if (confirm(ConfirmMessage) != true) {
			return;
		}
	}

//	parent.frames[1].location.href = URLToBeLoaded;
	document.location.href = URLToBeLoaded;
}

function CheckResourceString(theForm)
{
	var strBefore = theForm.textRESOURCESTR.value;
	alert(JSVERSION + strBefore);

	doNormalizeResource(theForm.textRESOURCESTR);

	var strAfter = theForm.textRESOURCESTR.value;
	alert(JSVERSION + strAfter);

	if (strAfter != strBefore)
		return giveAlert(JSVERSION, strResourceModified, true);

	return true;
}

function placeFocus()
{
//	alert("" + document.forms.length);
	if (document.forms.length > 0)
	{
		for (j = 0; j < document.forms.length; j++)
		{
			var field = document.forms[j];
//			alert("" + field.length);
			if (field.length > 0)
			{
				for (i = 0; i < field.length; i++)
				{
//					alert("" + i + ": " + field.elements[i].name);
					if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type == "password"))
					{
//						alert(!field.elements[i].disabled);
//						alert(field.elements[i].name != "RESNR");

						if (!field.elements[i].disabled && (field.elements[i].name != "RESNR"))
						{
//							alert("Focus!");
							field.elements[i].focus();
							field.elements[i].select();
							break;
						}
						else
						{
//							alert("Don't focus!");
						}
					}
				}
			}
		}
	}

	return true;
}

function NewWindow(mypage, myname, w, h, pmenubar, ptoolbar, pscrollbars, pstatus, presizable) {
	var winleft = (screen.width - w) / 2;
	var wintop = (screen.height - h) / 2;
	var winprops = 'width = ' + w +
				 ', height = ' + h +
				 ', left = ' + winleft +
				 ', top = ' + wintop +
				 ', menubar = ' + pmenubar +
				 ', toolbar = ' + ptoolbar +
				 ', scrollbars = ' + pscrollbars + 
				 ', status = ' + pstatus +
				 ', resizable = ' + presizable;
	var win = window.open(mypage, myname, winprops, false);
	
	if (parseInt(navigator.appVersion) >= 4)
	{
		 win.window.focus();
	}
}

function cbSelect(what)
{
//	alert("" + document.forms.length);

	if (document.forms.length > 0)
	{
		for (j = 0; j < document.forms.length; j++)
		{
			var field = document.forms[j];

//			alert("" + field.length);

			if (field.length > 0)
			{
				for (i = 0; i < field.length; i++)
				{
//					alert("" + i + ": " + field.elements[i].name + " - " + field.elements[i].type);

					if (field.elements[i].type == "checkbox")
					{
//						alert("" + i + ": " + field.elements[i].name + " - " + field.elements[i].type + " - " + field.elements[i].checked);

						if (!field.elements[i].disabled)
						{
//							alert("Do it! " + what);
							field.elements[i].focus();
							if (what == "ALL")
								field.elements[i].checked = true;
							else if (what == "NONE")
								field.elements[i].checked = false;
							else if (what == "INVERSE")
								field.elements[i].checked = !field.elements[i].checked;
						}
						else
						{
//							alert("Don't do it!");
						}
					}
				}
			}
		}
	}

	return true;
} 

