//////////////////////////////////////////////////
// Copywrite (c) 2004 by America Online, Inc.
// All Rights Reserved
//
// File:        charset.js
//
// Facility:    Parkview
//
// Abstract:    Javascript file which contains functions to
//				perform various character restrictions on
//				strings or characters.  Uses charsets in
//				constants.js.
//
// Environment: Linux
//
// Author:      Patrick Flannery
//
// History:     $Log: charset.js,v $
// History:     Revision 1.1  2007/10/29 17:41:52  sadasiva
// History:     added validation for free text search
// History:
// History:     Revision 1.1  2007/02/27 21:55:34  flannery
// History:     Initial check-in of files from Iteration 19 for CVS refactor to
// History:     "shortcuts" project.
// History:
// History:     Revision 1.1  2006/09/06 15:12:20  flannery
// History:     DB Refactor changes
// History:
// History:     Revision 1.2  2006/05/09 16:43:14  flannery
// History:     Iteration 4 updates
// History:
// History:     Revision 1.1  2006/04/19 14:29:44  xli
// History:
// History:     Initial version
// History:
//
////////////////////////////////////////////

    // UNICODE VALUES - used for keystrokes
    var UNIC_NULL       = 0;
    var UNIC_BACKSPC    = 8;
    var UNIC_TAB        = 9;
    var UNIC_CR         = 13;
    var UNIC_ESC        = 27;

	//////////////////////////////////////////////////
	// string_charset_check()
	//
	//	- Check that all characters of the passed
	//	  variable are limited to specific charset.
	//
	//	Input: string to check, predefined charset,
	//		   any additional/special characters as a string
	//	Output: True/False
	/////////////////////////////////////////////////
	function string_charset_check(var_string, charset, special)
	{
		charset += special;
		var_string = var_string.toLowerCase();
		for (i=0; i < var_string.length; i++)
		{
			if (!char_charset_check(var_string.charAt(i),charset))
				return false;
		}
		return true;
	}

	//////////////////////////////////////////////////
	// char_charset_check()
	//
	//	- Check character against a string of characters
	//	  to see if the character exists in the string.
	//
	//	Input: char to check, character set
	//	Output: True/False
	/////////////////////////////////////////////////
	function char_charset_check(var_char, charset)
	{
		if(charset.indexOf(var_char) == -1)
			return false;
		else
			return true;
	}

	//////////////////////////////////////////////////
	// check_typed()
	//
	//	- Check characters typed from keyboard is
	//	  "valid" within the passed character set.
	//
	//	Input: keypressed event, character set
	//	Output: True/False
	/////////////////////////////////////////////////
	function check_typed(p_event,charset)
	{
		var character;
		var keypressed;

		if (window.event)
		   keypressed = window.event.keyCode;
		else if (p_event)
		   keypressed = p_event.which;
		else
		   return true;

		// check for valid keypresses
		if ((keypressed == UNIC_NULL) ||
			(keypressed == UNIC_BACKSPC) ||
			(keypressed == UNIC_TAB) ||
			(keypressed == UNIC_CR) ||
			(keypressed == UNIC_ESC) )
		{
			return true
		}

		//get character from keycode
		character = String.fromCharCode(keypressed);
		//alert('you pressed' +keypressed);

		// if character is not in charset, return false
		if (!char_charset_check(character,charset))
				return false;

		return true;
	}

