// NOTE:  Cookies.js must be incluced before this file.
// 
// Functions included in this file:
//  1)  txtLimitSize(fldObj, size);
//  2)  myOnKeyPress(fldObj, evt, max_len);
//  3)  CheckHelp(lsUrl, lsEditTitle, lsWidth, lsHeight, evt);
//  3.1)GunMakeHelp(lsUrl, lsEditTitle, lsWidth, lsHeight, evt)
//  3.2)GunMakePopup(lsUrl, lsEditTitle, lsWidth, lsHeight, evt)
//  4)  disableForm(theform);
//  5)  enableForm(theform);
// Window Functions moved to WindowFunctions.js
//  8)  Verify();
//  9)  SubmitMask();
// 10)  getFieldRules(aryRules, lsFieldName)
// 11)  setBackgroundColors()
// 12)  function setBG(sCurrElementName, bActive)
var sReqColor = '#00FFFF';
var sNrmColor = '#64b4a0';
var sActColor = '#FFFFFF';
var bCtrl = false;
var bAlt = false;
var bShift = false;
var isDOM = (document.getElementById ? true : false);
var isIE4 = ((document.all) ? true : false);
var isNS4 = (document.layers ? true : false);
//---------------------------------------------------------------------------
function txtLimitSize(fldObj, size)
{
	if(size > 0 && fldObj.value.length >= size) // Limit length
	{
		fldObj.value = fldObj.value.substr(0,size);
		event.returnValue = false;
	}
}
//---------------------------------------------------------------------------
function regKeyDown(e)
{
	if(!e) e = window.event;
	bCtrl = (e['ctrlKey'] == true);
	bAlt  = (e['altKey'] == true);
  bShift = (e['shiftKey'] == true);
}
//---------------------------------------------------------------------------
function myOnKeyPress(fldObj, evt, max_len)
{
	var lbRet = true;
	regKeyDown(evt);
	var keyCode = 
		evt.keyCode ? evt.keyCode : 
		evt.charCode ? evt.charCode : 
		evt.which ? evt.which : void 0;
// 	if(bShift && !bCtrl && !bAlt && keyCode == 13)
// 	{
// // 		if(bCtrl == false && bAlt == false)
// 		{// 	//-----------Shift-Enter-----------
// // 			if (evt.preventDefault) 
// // 			{
// // 				evt.preventDefault();
// // 			}
// 			if(SubmitMask())
// 			{
// 				window.document.myform.submit();
// 			}
// 			lbRet = false;
// 		}
// 	}
// 	else
	if(max_len > 0 && fldObj.value.length >= max_len)
	{ //-----------Limit length-----------
		fldObj.value = fldObj.value.substr(0,max_len);
		lbRet = false;
	}
	else
	{ //-----------Make Uppercase-----------
		if(keyCode > 96 && keyCode <123)
		{
			var key;
			if (keyCode) 
			{
				key = String.fromCharCode(keyCode);
			}
			if (keyCode && window.event && !window.opera) 
			{
				var newKey = key.toUpperCase();
				window.event.keyCode = newKey.charCodeAt();
				if (window.event.preventDefault) 
				{
					window.event.preventDefault();
				}
				lbRet = true;
			}
			else if (typeof fldObj.setSelectionRange != 'undefined') 
			{ // cancel the key event and insert the newKey for the current selection
				if(bCtrl == false && bAlt == false)
				{
					if (evt.preventDefault) 
					{
						evt.preventDefault();
					}
					var newKey = key.toUpperCase();			
					var newKeyCode = newKey.charCodeAt();

					var oldSelectionStart = fldObj.selectionStart;
					var oldSelectionEnd = fldObj.selectionEnd;
					var selectedText = fldObj.value.substring(oldSelectionStart,oldSelectionEnd);
					var newText = typeof newKey != 'undefined' ? newKey : String.fromCharCode(newKeyCode);
					fldObj.value = fldObj.value.substring(0, oldSelectionStart) + newText + fldObj.value.substring(oldSelectionEnd);
					fldObj.setSelectionRange(oldSelectionStart + newText.length,oldSelectionStart + newText.length);
					lbRet = false;
				}
			}
		}
// 		if(event.keyCode > 96 && event.keyCode <123)
// 		{
// 			event.keyCode = event.keyCode - 32;
// 		}
	}
// 	enableForm(window.document.myform);
	if (document.layers)
	{
		return lbRet;
	}
	else if (document.all)
	{
		evt.returnValue = lbRet;
	}
}
//---------------------------------------------------------------------------
function CheckHelp(lsUrl, lsEditTitle, lsWidth, lsHeight, evt)
{
	var keyCode = 
		evt.keyCode ? evt.keyCode : 
		evt.charCode ? evt.charCode : 
		evt.which ? evt.which : void 0;
	if(keyCode == 123)
	{
		NewWindow(lsUrl, lsEditTitle, lsWidth, lsHeight);
	}
// 	enableForm(window.document.myform);
}
//---------------------------------------------------------------------------
function GunMakeHelp(lsUrl, lsEditTitle, lsWidth, lsHeight, evt)
{
	var keyCode = 
		evt.keyCode ? evt.keyCode : 
		evt.charCode ? evt.charCode : 
		evt.which ? evt.which : void 0;
	if(keyCode == 123)
	{
		GunMakePopup(lsUrl, lsEditTitle, lsWidth, lsHeight);
	}
// 	enableForm(window.document.myform);
}
//---------------------------------------------------------------------------
function GunMakePopup(lsUrl, lsEditTitle, lsWidth, lsHeight, evt)
{
	lsPrompt = 'Please Enter a Gun Manufacturer "key word" (example: \'Wesson\' for Smith and Wesson )';
	lsKeyWord = prompt(lsPrompt, 'Wesson');
	if(lsKeyWord.length > 0)
	{
		lsUrl = lsUrl + "&KEY_WORD=" + lsKeyWord;
	}
	NewWindow(lsUrl, lsEditTitle, lsWidth, lsHeight);
}
//---------------------------------------------------------------------------
function disableForm(theform)
{
	theform.submit();
	if (document.all || document.getElementById) 
	{
		for (i = 0; i < theform.length; i++)
		{
			var tempobj = theform.elements[i];
			if (tempobj.type.toLowerCase() == "submit")// || tempobj.type.toLowerCase() == "reset")
				 tempobj.disabled = true;
		}
		return true;
	}
	else
	{
		alert("Mask data sent");
		return false;
	}
}
//---------------------------------------------------------------------------
function enableForm(theform)
{
	if (document.all || document.getElementById) 
	{
		for (i = 0; i < theform.length; i++)
		{
			var tempobj = theform.elements[i];
			if (tempobj.type.toLowerCase() == "submit")// || tempobj.type.toLowerCase() == "reset")
				 tempobj.disabled = false;
		}
		return true;
	}
}
//---------------------------------------------------------------------------
function setSelectedText()
{
	var theform = window.document.myform;
	var fldLedsMsg = window.document.myform.LedsMsg;
	var selectedText = "";
	//-----------Set selected text if found-----------
	if(fldLedsMsg)
	{
		if(fldLedsMsg.selectionEnd)
		{
			var Start = fldLedsMsg.selectionStart;
			var End = fldLedsMsg.selectionEnd;
			selectedText = fldLedsMsg.value.substring(Start,End);
		}
		else
		{
			selectedText = document.selection.createRange().text;
		}
		//-----------This method requires the following step and loop-----------
		if (document.all || document.getElementById) 
		{
			for (i = 0; i < theform.length; i++)
			{
				if (theform.elements[i].name == "SelectedText")
				{
					theform.elements[i].value = selectedText;
				}
			}
		}
	}
}
//---------------------------------------------------------------------------
function verifyMaskData()
{
	var lsMsg = "";//The following required fields are blank: ";
	var submit = false;
	if(cookieVal("MASK_RULES"))
	{
		aRules = cookieVal("MASK_RULES").split("$");
		with(document.myform)
			{
				for(i=0; i<elements.length; ++i)
				{
					aFldRules = getFieldRules(aRules, elements[i].name);
					if(aFldRules)
					{
						if(aFldRules[1] == "y")
						{
							if(elements[i].value == "")
							{
								if(lsMsg != "") { lsMsg += ", "; }
								lsMsg = lsMsg + elements[i].title;
							}
						}
					}
				}
			}
	}
	//-----------Confirm if nessessary-----------
	if(lsMsg != "")
	{
		lsMsg = "The following required fields are blank: \n\n"+lsMsg+"\n\nDo you wish to continue sending?";
		submit = confirm(lsMsg);
	}
	else
	{
		submit = true;
	}
	return submit;
}
//---------------------------------------------------------------------------
function SubmitMask()
{
	lbRet = false;
	setSelectedText();
	if(verifyMaskData())
	{
		lbRet = true;
// 		disableForm(window.document.myform);
	}
	return lbRet;
}
//---------------------------------------------------------------------------
// rules:
//  0 --> Required? (y:n)
function getFieldRules(aRules, lsFieldName)
{
	if(aRules != 0)
	{
		for(j = 0; j < aRules.length; ++j)
		{
			if(lsFieldName == aRules[j].split(":")[0])
			{
				return aRules[j].split(":");
			}
		}
	}
	return 0;
}
//---------------------------------------------------------------------------
function setBackgroundColors(sActElementName)
{
// 	if(cookieVal("MASK_RULES"))
	{
// 		aRules = cookieVal("MASK_RULES").split("$");
		with(document.myform)
		{
			for(i=0; i<elements.length; ++i)
			{
// 				aFldRules = getFieldRules(aRules, elements[i].name);
// 				if(aFldRules)
				{
					if(elements[i].name == sActElementName)
					{ // Active Field
						elements[i].style.backgroundColor = sActColor;
					}
					else
					{ // Required
						elements[i].style.backgroundColor = sReqColor;
					}
// 					else if(aFldRules[1] == "y") 
// 					{ // Required
// 						elements[i].style.backgroundColor = sReqColor;
// 					}
// 					else
// 					{
// 						elements[i].style.backgroundColor = sNrmColor;
// 					}
				}
			}
		}
	}
}
//---------------------------------------------------------------------------
function setBG(sCurrElementName, bActive)
{
// 	aRules = cookieVal("MASK_RULES").split("$");
	with(document.myform)
	{
		for(i=0; i<elements.length; ++i)
		{
			if(elements[i].name == sCurrElementName)
			{
				if(bActive == true)
				{
// 					elements[i].style.backgroundColor = sActColor;
					elements[i].className = 'FldItem';
				}
				else
				{
// 					elements[i].style.backgroundColor = sReqColor;
					elements[i].className = 'FldInput';
// 					aFldRules = getFieldRules(aRules, sCurrElementName);
// 					if(aFldRules && aFldRules[1] == "y")
// 					{ //-----------Required Field-----------
// 						elements[i].style.backgroundColor = sReqColor;
// 					}
// 					else
// 					{
// 						elements[i].style.backgroundColor = sNrmColor;
// 					}
				}
				break;
			}
		}
	}
}
//---------------------------------------------------------------------------
function myOnKeyDown(fldObj, evt)
{
	var lbRet = true;
	regKeyDown(evt);
	var keyCode = 
		evt.keyCode ? evt.keyCode : 
		evt.charCode ? evt.charCode : 
		evt.which ? evt.which : void 0;
	if(!bShift && !bCtrl && !bAlt && keyCode == 9)
	{ //-----------Find next | -----------
		if(isIE4)
		{
			myText = fldObj.createTextRange();
			if(myText.findText('|',0,0))
			{
				myText.text = '';
				myText.select();
				myText.scrollIntoView();
			}
			evt.returnValue = false;
		}
		else if(isNS4)
		{
			
		}
	}
}
//---------------------------------------------------------------------------

