//This is a utils file with useful javascripts 

//This array is the list of 256 characters for checktype and checkallcharacters functions
// - 0 means not allowed.

var allkeys=new Array(0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  1,0,0,0,1,0,0,1,1,1,0,1,1,1,1,1,
					  1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
					  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
					  1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,
					  0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
					  1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
					  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
					  1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0);


//this function checks to see the direction of the page to identify Hebrew vs. English

function checkhtml()
{
if (document.dir=="rtl")
	{return "hebrew"}
	else
	{return "english"}
}

//This function goes into input:text or textarea form fields with the onkeypress event.
// No parameters to be sent.

function checktype() {
	var thiskey=window.event.keyCode;
	if (allkeys[thiskey]==0)
	{
		var thiskey1=String.fromCharCode(thiskey);
		if (checkhtml()=="hebrew")
			{alert("מטעם אבטחת מידע, התו ' " + thiskey1 + " ' הינו אסור. נא להקליד תחליף.");}
		else
			{alert("For security reasons, the character ' " + thiskey1 + " ' is not valid. Please type a different character.")}
	event.returnValue=false;
	} 
}


//This function goes into textarea form fields with the onkeypress event.
//Don't need it in input:text field because can set maxlength parameter.
// Parameter: formname.textareaname

function checksize(s)
{
	var lengthoftext=s.value.length;
	if (checkhtml()=="hebrew")
	{thismessage="הגעת למקסימום גודל."}
	else
	{thismessage="You have reached maximum length allowed."}
	if (lengthoftext >= 500)
	{
	alert(thismessage);
	event.returnValue=false;
	}
}


//This function goes into textarea or input:text form fields with the onblur event.
// Parameter: formname.textareaname


function checkallcharacters(t)
{
	var thisstring=t.value
	var lengthoftext=thisstring.length

	for (var i=0; i <= lengthoftext-1; i++)

	{
		thischaracter=thisstring.charCodeAt(i)

		if (allkeys[thischaracter]==0)
		{
			var thischaracter1=String.fromCharCode(thischaracter);
			if (checkhtml()=="hebrew")
				{alert("מטעם אבטחת מידע, התו ' " + thischaracter1 + " ' הינו אסור. נא להקליד תחליף.");}
			else
				{alert("For security reasons, the character ' " + thischaracter1 + " ' is not valid. Please type a different character.")}
		t.focus()
		//characterlocation=t.value.substring(0,i+1)
		break
		}
		}

	if (lengthoftext >= 501)
	{
		if (checkhtml()=="hebrew")
			{alert("עברת מקסיום גודל.");}
		else
			{alert("You have passed the maximum length. Please shorten your text to 500 characters.")}
	t.focus()
	}
}

function ReplaceCharacters(checkString)
{
	var lengthOfText=checkString.length;
	var newString, currentChar;
		
	newString = "";
	for (var i=0; i <= lengthOfText-1; i++)
	{
		currentChar=checkString.charCodeAt(i);

		if (allkeys[currentChar]==0 || currentChar==39)
			
			newString += "_" + currentChar + "_";
		else
			newString += checkString.charAt(i);
	}
	
	return( newString) ;
}

function MultiSub(oFrmNm, sTxtToDiv, sTagName)
{
var i, j, nCurCh, sTmp, nChAmaunt, sVal;

	nChAmaunt = 200;

	sVal = sTxtToDiv;
	nDivSub = sTxtToDiv.length / nChAmaunt;
	sTmp = new String(nDivSub);
	nPos = sTmp.indexOf(".")
	if(nPos > 0)
	{
		sTmp = sTmp.substr(0, nPos);
		sTmp++;
	}
	if(sTmp == 1)
		return false;

//	alert("sTmp=" + sTmp + "\n nDivSub=" + nDivSub);
	for(i=1, nCurCh=0; i <= sTmp && sTxtToDiv.length >= nCurCh; i++)
	{
		sVal = "";
		for (j=0; j < nChAmaunt  && sTxtToDiv.length >= nCurCh; j++)
			sVal += sTxtToDiv.charAt(nCurCh++);

		oEl = document.createElement("<INPUT TYPE='Hidden' NAME='"+ sTagName + i +"' VALUE='"+sVal+"'>");
		oFrmNm.children(0).insertAdjacentElement("BeforeBegin",oEl);
	}
	
	return true;
}

function MirrorForm(objForm, oFrmID)
{
	var sVal, sTag, oEl, bRet;
	sVal = "";
	sTag = "";
	sinnerH = "";

	for(i=0;i<objForm.elements.length;i++)
	{
		sTag = objForm.elements[i].tagName;
		if(sTag.indexOf("INPUT") > -1 || sTag.indexOf("TEXTAREA") > -1 )
		{
			switch(objForm.elements[i].type)
			{
			case "checkbox":
				if(objForm.elements[i].checked == true)
					sVal = "on";
				else
					sVal = "";
				bRet = false;
				break;
				
			case "radio":
				if(objForm.elements[i].checked == true)
				{
				
					sVal = ReplaceCharacters(objForm.elements[i].value);
					bRet = false;
				}
				else
				{
					bRet = true;
				}
				break;
				
			default:
				sVal = ReplaceCharacters(objForm.elements[i].value);
				bRet = MultiSub(oFrmID, sVal, objForm.elements[i].name);
			}
		}	
		else
		{
			bRet = false;
			sVal = objForm.elements[i].value;
		}
		if(!bRet)
		{
			oEl = document.createElement("<INPUT TYPE='Hidden' NAME='"+ objForm.elements[i].name +"' VALUE='"+sVal+"'>");
			oFrmID.children(0).insertAdjacentElement("BeforeBegin",oEl);
		}
	}
}
	/*	sVal += objForm.elements[i].tagName + "|";
		sVal += objForm.elements[i].value + ">";
		sVal += objForm.elements[i].type + "\n";
		sinnerH += "<INPUT type= Hidden Name='" + objForm.elements[i].name +"' ";
		sinnerH += " value='" + objForm.elements[i].value + "'>";
	*/

