
//Constants
var MIN_USER_NAME = 5;
var MIN_PASSWORD = 5;
var MAX_USER_NAME = 30;
var MAX_PASSWORD = 10;
var STR_MESSAGEBOX_TITLE = 'TravelLink';
var EXPECTED_ERROR = -1;
var EMAIL_SUPPORT = 'support@TravelLinkUSA.com';
var DEFAULT_FONT_SETTINGS = 'color="#000066" face="Verdana, Arial, Helvetica, sans-serif"';
var ERROR_FONT_SETTINGS = 'color="#FF0000" face="Verdana, Arial, Helvetica, sans-serif"';

//Status constants
var STATUS_PENDING = 'P';
var STATUS_CLOSED = 'C';
var STATUS_OPEN = 'O';

//Form actions
var FORM_NO_ACTION = 0;
var FORM_UPDATE = 1;
var FORM_INSERT = 2;
var FORM_DELETE = 3 ;
var FORM_DISPLAY = 4;
var FORM_SEND = 5;
var FORM_PREVIEW = 6;

//Combo Box options
var SEL_NO_PREFERENCE = 0;
var SEL_OTHER = -1;
var SEL_NO_SELECTION = -5;

//Error Message Strings
var STR_REQUIRED_FIELDS_MISSING = 'Not all required fields were filled in.  Please fill in all fields marked with an asterix (*).';
var STR_NUMERIC_VALUE_EXPECTED = ' expected to be a number.';
var STR_UNIQUE_KEY_VIOLATION = ' already exists.  Please enter another value.';
var STR_UNEXPECTED_DB_ERROR = 'Unexpected DB error occurred.';

//Functions
function MakeStrDate(strMonth, strDay, strYear){
//Takes month components as strings and returns as a DateTime
	var strReturnDate;
	
	strReturnDate = strMonth + "/" + strDay + "/" + strYear;
	return (strReturnDate);
}
	
function MakeDate(strMonth, strDay, strYear){
//Takes month components as strings and returns as a DateTime
	var dateTarget = null, dateCurrent = new Date();
	var boolValidDate = true;
	
	if (strYear > (dateCurrent.getYear() + 10)
	|| strYear < (dateCurrent.getYear() - 10))
		boolValidDate = false;
	else if (strMonth > 12 || strMonth < 1)
		boolValidDate = false;
	else if (strDay > 31 || strDay < 1)
		boolValidDate = false;
		
	switch (strMonth){
		case "4":case "6":case "9":case "11":
			if (strDay > 30)
				boolValidDate = false;
			break;
		case "2":
			if (strDay > 28)
				if ( strDay > 29 || 0 != (strYear % 4) )
					boolValidDate = false;
			break;
	}
	
	if (boolValidDate)
		dateTarget = new Date(strYear,strMonth - 1,strDay);
	return (dateTarget);
}

function IsAlphaNumeric(strTarget){
//Checks if string contains any non-alpha numeric characters.  
//Can't find built in to do this!!!!
//Returns true if alphanumeric, false otherwise
	var iIndex = 0;
	var boolExceptionFound = false;
	
	if (null == strTarget)
		return true;
		
	for (iIndex = 1; iIndex <= 31; iIndex++){
		var strIndex = String.fromCharCode(iIndex);
		if (-1 != strTarget.search(strIndex)){
			boolExceptionFound = true;
			break;
		}
	}
	
	if (false == boolExceptionFound){
		if ( strTarget.search(String.fromCharCode(127)) != -1 )
			boolExceptionFound = true;
	}
	
	return (!boolExceptionFound);
}

function IsEmailAddress(strAddress){
//Checks if string contains any non-email address characters.
//Note, does not trim the string down 
//Returns true if valid, false otherwise
	if (null == strAddress || IsAlphaNumeric(strAddress) == false
	|| strAddress.search(" ") != -1 || strAddress.search("@") == -1)
		return(false);
	else
		return(true); 
}

function Trim(strTarget) {
	if (null != strTarget)
		strTarget = strTarget.replace(/(^\s+)|(\s+$)/g, "");
	return strTarget;
}

function IsEmptyString(strData){
//Checks to see if it's empty or whitespace
//Returns 1 if string is empty (whitespace), 0 otherwise
	if (null == strData)
		return(true);
		
	strData = Trim(strData);
	if (strData.length < 1)
		return(true);
	else
		return(false);
}

function NowAsString(){
//Return current date as a db formated string (for inserts/updates)
	var strCurrentDate;
	var dateNow = new Date();
	
	strCurrentDate = '#' + dateNow.getMonth() + '/' + dateNow.getDate()
	+ '/' + dateNow.getYear() + '#';
	 
	return strCurrentDate;	
}

function IsNumeric(strTarget){
	var numPosition;
	
	numPosition = strTarget.search("^[0-9]+$");
	if (-1 == numPosition)
		return false;
	else
		return true;
}
function IsTextDate(strString){
	var dateTemp = new Date(Date.parse(strString));
	
	if (dateTemp.getYear())
	  return true;
	else
	  return false;
}

function CompareDates(dateFirst,dateSecond){
//Returns -1 on error (not valid dates) 0 if dates are same, 1 if dates dateFirst < dateSecond,
//2 if dateFirst > dateSecond
var numFirstDay, numFirstMonth, numFirstYear;
var numSecondDay, numSecondMonth, numSecondYear;

if (!dateFirst.getYear() || !dateSecond.getYear())
	return -1;
	
numFirstDay = dateFirst.getDate();
numFirstMonth = dateFirst.getMonth();
numFirstYear = dateFirst.getYear();
numSecondDay = dateSecond.getDate();
numSecondMonth = dateSecond.getMonth();
numSecondYear = dateSecond.getYear();

if (numFirstYear < numSecondYear)
	return 1;
else if (numFirstYear > numSecondYear)
	return 2;
else if (numFirstMonth < numSecondMonth)
	return 1;
else if (numFirstMonth > numSecondMonth)
	return 2;
else if (numFirstDay < numSecondDay)
	return 1;
else if (numFirstDay > numSecondDay)
	return 2;
else
	return 0;
}
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
 
