/*
 * Constants
 *
 * I want to use 'const' but that legacy UAs as IE does
 * not understand a simple thing like that. /AndersR
 */
 
// 
var EVENT_KEY_CODE_CR = 13;  // Carriage Return
var EVENT_KEY_CODE_ESC = 27; // Escape

// Class names
var CLASS_NAME_HIDDEN = 'Hidden';
var CLASS_NAME_HOVER = 'Hover';
var CLASS_NAME_SELECTED = 'Selected';

var CLASS_NAME_ODD = 'Odd';
var CLASS_NAME_EVEN = 'Even';
var CLASS_NAME_SELECTED = 'Selected';
var CLASS_NAME_HOVER = 'Hover';

var CLASS_NAME_DISABLED_FORM_ELEMENT = 'Disabled';
var CLASS_NAME_READONLY_FORM_ELEMENT = 'ReadOnly';

var CLASS_NAME_NODE_TREE = 'NodeTree';
var CLASS_NAME_NODE_TREE_EXPANDED = 'Expanded';
var CLASS_NAME_NODE_TREE_NODE_COLLAPSED = 'Collapsed';
var CLASS_NAME_NODE_TREE_NODE_EXPANDED = 'Expanded';

// JavaScript entities
var JS_NL = '\n'; // New line
var JS_HT = '\t'; // Horizontal tab
var JS_ALT_HT = unescape('%A0') + unescape('%A0') + unescape('%A0') + unescape('%A0'); // Alternative horizontal tab, used when \t not renders i.e. in an alert.
var JS_MIDDOT = unescape('%B7');
var JS_LAQUO = unescape('%AB'); // Left angle quotation mark
var JS_RAQUO = unescape('%BB'); // Right angle quotation mark

// Regular expressions
var PATTERN_VALID_EMAIL = /^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/;
//var PATTERN_VALID_EMAIL = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
var PATTERN_ORGANIZATIONAL_REGISTRATION_NUMBER_SE_STRICT = /^\d{6}-\d{4}$/;
var PATTERN_CIVIC_REGISTRATION_NUMBER_SE_STRICT = /^\d{6}-\d{4}$/;
var PATTERN_CIVIC_REGISTRATION_NUMBER_SE_LOOSE = /^\d{6}[- ]?\d{4}$/;
var PATTERN_POST_CODE_SE_STRICT = /^\d{3} \d{2}$/;
var PATTERN_POST_CODE_SE_LOOSE = /^\d{3} ?\d{2}$/;
//var PATTERN_GUID = /^{[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}}$/

// DOM named node types, defined here owing to that IE donīt support them
if (!window.Node)
{
	var Node = {
		ELEMENT_NODE: 1,
		ATTRIBUTE_NODE: 2,
		TEXT_NODE: 3,
		CDATA_SECTION_NODE: 4,
		ENTITY_REFERENCE_NODE: 5,
		ENTITY_NODE: 6,
		PROCESSING_INSTRUCTION_NODE: 7,
		COMMENT_NODE: 8,
		DOCUMENT_NODE: 9,
		DOCUMENT_TYPE_NODE: 10,
		DOCUMENT_FRAGMENT_NODE: 11,
		NOTATION_NODE: 12
	};
}

// Excluded elements that will not be a part of any node list
var EXCLUDED_ELEMENTS = new Array('br', 'hr');

//alert('constants.js loaded');