KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/markrose/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/markrose/lenanicj.html
<HTML>
<HEAD>
   <TITLE>The Old Skourene Conjugator</TITLE>
</HEAD>

<SCRIPT LANGUAGE="JavaScript">

function isVowel( ch )
{
	var isv = ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
	return isv;
}

function applyPluralDef( noun1, pl, def )
{
	var lastchar = noun1.charAt( noun1.length- 1 );
	var last2 = "";
	if (noun1.length > 2)
		last2 = noun1.substr( noun1.length - 2, 2 );

	if (last2 == "as" || last2 == "is")
	{
		var rest = noun1.substr( 0, noun1.length - 1 );
		if (pl)
		{
			lastchar = rest.charAt( rest.length- 1 );
			noun1 = rest + "r" + lastchar;
			if (def)
				noun1 = noun1 + "l";
		}
		else if (def)
			noun1 = rest + "tul";
	}
	else if (pl)
	{
		if (isVowel(lastchar))
		{
			noun1 = noun1 + (def ? "L" : "r");
		}
		else
		{
			var i = 0;
			while (i < noun1.length)
			{
				var ch = noun1.charAt(i);
				if (isVowel(ch))
					lastchar = ch;
				i++;
			}
			
			noun1 = noun1 + lastchar;

			if (def)
				noun1 = noun1 + "l";			
		}	
	}
	else if (def)
	{
		if (isVowel(lastchar))
			noun1 = noun1 + "l";
		else
			noun1 = noun1 + "ul";
	}
	return noun1;
}

function ConjugateMe()
{
	var verb = document.daform.verb.value;

	if (verb.length < 3)
	{
		document.daform.results.value = "Verb is too short!";
		return;
	}

	var c1 = verb.substr(0,1);
	var stem = verb.substr(1,1);
	var c2 = verb.substr(2,1);
	var c3 = c2;
	var isBi = 1;

	if (verb.length > 3)
	{
		isBi = 0;
		c3 = verb.substr(3,1);
	}

	var gotAbs = !document.daform.absno.checked;
	var gotErg = !document.daform.ergno.checked;

	if (!gotAbs && !gotErg)
	{
		document.daform.results.value = "One of the arguments must be present!";
		return;
	}

	var pre = "";
	var p12 = "";
	var p23 = "";
	var p4 = "";
	var p = "";
	var noun1 = document.daform.absnom.value;
	var noun2 = document.daform.ergnom.value;

	// absolutive
	if (gotAbs)
	{
		var psn1  =  document.daform.abspsn[0].checked;
		var psn2  =  document.daform.abspsn[1].checked;
		var psn3  =  document.daform.abspsn[2].checked;
		var pl = document.daform.absnum.checked;
		var dual = document.daform.absdual.checked;
		var vosnos = pl && !psn3; 

		if (psn1)
		{
			p4 = "e";
		}
		else if (psn2)
		{
			p4 = "a";
		}
		else
		{
			p4 = (pl && !dual) ? "i" : "u";
		}

		if (dual && (psn2 || psn3))
			p4 = p4 + "s";
		else if (vosnos)
		{
			if (document.daform.absex.checked && psn1)
				p4 = p4 + "p";
			else
				p4 = p4 + "g";
		}
		else
		{
			if (document.daform.absgen[1].checked) 
				p4 = p4 + "t";
			else if (!document.daform.absgen[0].checked)
			{
				if (psn3 )  
					p4 = p4 + "m";
			}
		}

		p = stem;
	}

	// ergative
	if (gotErg && !document.daform.refl.checked)
	{
		var psn1  =  document.daform.ergpsn[0].checked;
		var psn2  =  document.daform.ergpsn[1].checked;
		var psn3  =  document.daform.ergpsn[2].checked;
		var pl = document.daform.ergnum.checked;

		if (pl)
		{
			p23 = "o";
			if (document.daform.ergex.checked && psn1)
				p23 = p23 + "b";
		}

		if (psn1)
			p23 = p23 + "u";
		else if (psn2)
			p23 = p23 + "i";

		if (document.daform.erggen[1].checked)
		{
			if (psn3 && !pl)
				p23 = "a";
			
			p23 = "r" + p23;
		}
		else if (document.daform.erggen[2].checked && psn3)
		{
			if (psn3 && !pl)
				p23 = "a";

			if (c2 == "t" || c2 == "d" || c2 == "s" || 
				c2 == "n" || c2 == "l")
				p23 = "l" + p23;
			else
				p23 = "L" + p23;
		}
		
		p = p23;
		if (p == "")
			p = stem;
	}

	// reflexive
	if (document.daform.refl.checked)
	{
		if (!gotAbs)
		{
			document.daform.results.value =
			"The absolutive argument is required for reflexives.";
			return;
		}
	
		var lastchar = p4.charAt( p4.length - 1 );
		var rest = p4.substr(0,p4.length-1);

		if (p4 == "i")
			p4 = "iri";
		else if (p4.charAt(0) == 'i')
			p4 = rest + "ri" + lastchar;

		else if (lastchar == 't')
			p4 = rest + "T";
		else if (lastchar == 'g')
			p4 = rest + "D";
		else if (lastchar == 's')
			p4 = rest + "S";
		else if (rest == "")
			p4 = p4 + "i";
		else
			p4 = rest + "i" + lastchar;
	}

	// mood
	var moodset = 1;
	if (document.daform.mood[1].checked) // intentive
		p12 = "u";
	else if (document.daform.mood[2].checked) // desiderative
		p12 = stem == "a" ? "au" : "a";
	else if (document.daform.mood[3].checked) // metutive
		p12 = "o";
	else if (document.daform.mood[4].checked) // negative
		p12 = "";
	else if (document.daform.mood[5].checked) // imperative
		pre = "u";
	else
	{
		moodset = 0;
		p12 = stem;
	}

	// Adjust the mood for biconsonantal verbs
	if (isBi && moodset)
	{
		pre = p12;

		if (document.daform.mood[5].checked) // imperative
			pre = "u";

		if (!gotErg)
			p = "";

		if (document.daform.mood[4].checked) // negative
			pre = c1 + "o";
	}

	// special unpronounceability rules
	if (pre == "" && p12 == "" && p23 == "" && p4 == "")
	{
		pre = "o";
		p4 = "u";
	}
	if (pre == "u" && p12 == "" && p23 == "" && p4 == "")
	{
		p12 = "u";
	}

	// aspect
	if (!document.daform.mood[4].checked)
	{
		var asp = "";
		if (document.daform.aspect[1].checked) // durative
			asp = "a";
		else if (document.daform.aspect[2].checked) // inceptive
			asp = "u";
		else if (document.daform.aspect[3].checked) // cyclical
			asp = "i";
		
		if (asp != "")
		{
			if (isBi)
			{
				if (pre != "")
					pre = pre + asp;
				else
				{
					var lastchar = p.charAt( p.length- 1 );
					if (asp == lastchar)
						p = p + "r" + asp;
					else
						p = p + asp;
				}
			}
			else if (p12 == asp)
				p12 = p12 + "r" + asp;
			else
				p12 = p12 + asp;
		}
	}

	// prefixes
	if (document.daform.pret.checked)
		pre = "me" + pre;
	if (document.daform.caus.checked)
		pre = "ai" + pre;
	if (document.daform.att.checked)
		pre = "in" + pre;

	// put all the verb pieces together
	if (isBi)
		verb = pre + c1 + p + c2 + p4;
	else
		verb	= pre + c1 + p12 + c2 + p23 + c3 + p4;

	// Now do the nouns
	if (!gotAbs)
		noun1 = "";
	if (!gotErg)
		noun2 = "";

	// Decline the absolutive noun
	if (noun1 != "")
	{
		var pl = document.daform.absnum.checked;
		var def = document.daform.absdef.checked;

		noun1 = applyPluralDef( noun1, pl, def );
	}

	// Decline the ergative noun
	if (noun2 != "")
	{
		var pl = document.daform.ergnum.checked;
		var def = document.daform.ergdef.checked;

		noun2 = applyPluralDef( noun2, pl, def );

		var firstch = noun2.substr(0,1);
		if (isVowel( firstch ))
			noun2 = "N" + noun2;
		else
		{
			if (noun2.length < 2 || isVowel(noun2.substr(1,1)))
				noun2 = "i" + firstch + noun2;
			else
				noun2 = "i" + noun2;
		}
	}

	document.daform.results.value = verb + " " + noun1 + " " + noun2;

}

</SCRIPT>

<BODY BGCOLOR="#CCCCE0"> 
<H3>The Old Skourene Conjugator</H3>

<FORM action="" method="POST" name="daform">

Verb: <input name="verb" type="text" size=36>

<NOSCRIPT>
<P><b>JavaScript must be enabled</b> for this utility to work.
</NOSCRIPT>

<br>&nbsp;

<table><tr>
<td bgcolor="B0B0C8"
<b>Tense/Mood/Aspect</b>

<p><input name="mood" type="radio" value="p">
	perfect
<br><input name="mood" type="radio" value="i">
	intentive
<br><input name="mood" type="radio" value="d">
	desiderative
<br><input name="mood" type="radio" value="m">
	metutive
<br><input name="mood" type="radio" value="n">
	negative
<br><input name="mood" type="radio" value="o">
	imperative

<p><input name="aspect" type="radio" value="0">
	unmarked aspect
<br><input name="aspect" type="radio" value="d">
	durative
<br><input name="aspect" type="radio" value="i">
	inceptive
<br><input name="aspect" type="radio" value="c">
	cyclical

<p><input name="caus" type="checkbox" > Causative
<br><input name="pret" type="checkbox" > Pretentive
<br><input name="att" type="checkbox" > Attemptive

<td>&nbsp;

<td bgcolor="B8B8D0">
<b>Absolutive argument</b>
<p><input name="absno" type="checkbox" > NONE

<p><input name="abspsn" type="radio" value="1">
	1st person (I/me)
<br><input name="abspsn" type="radio" value="2"> 
	2nd person (you)
<br><input name="abspsn" type="radio" value="3">
	3rd person (he/she/it/they)
<br><input name="absnum" type="checkbox" > Plural
	<input name="absdual" type="checkbox" > Dual
<br><input name="absex" type="checkbox" > Exclusive 'we'
<br><input name="absgen" type="radio" value="masc">
	Masculine
<br><input name="absgen" type="radio" value="fem">
	Feminine
<br><input name="absgen" type="radio" value="anim">
	Non-sentient

<p>Noun: <input name="absnom" type="text" size=20">
<br><input name="absdef" type="checkbox" > Definite

</td>

<td>&nbsp;

<td bgcolor="B8B8D0">
<b>Ergative argument</b>
<p><input name="ergno" type="checkbox" > NONE
<input name="refl" type="checkbox" > Reflexive

<p><input name="ergpsn" type="radio" value="1">
	1st person (I/me)
<br><input name="ergpsn" type="radio" value="2 (you)"> 
	2nd person (you)
<br><input name="ergpsn" type="radio" value="3">
	3rd person (he/she/it/they)
<br><input name="ergnum" type="checkbox" > Plural
<br><input name="ergex" type="checkbox" > Exclusive 'we'
<br><input name="erggen" type="radio" value="masc">
	Masculine
<br><input name="erggen" type="radio" value="fem">
	Feminine
<br><input name="erggen" type="radio" value="anim">
	Animate

<p>Noun: <input name="ergnom" type="text" size=20">
<br><input name="ergdef" type="checkbox" > Definite

</td>

</tr>
</table>

<P><INPUT TYPE="button" NAME="doit" VALUE="Conjugate" onClick="ConjugateMe()">


<hr>

<TEXTAREA NAME="results" ROWS="10" COLS="60" WRAP="virtual"></TEXTAREA></P>

</FORM>

<hr>
<A HREF="lenani.htm">[Back]</A>


</BODY>
</HTML>


Anon7 - 2021