// ****************************************************************************
// COPYRIGHT © 2002 Foxfire Printing & Packaging. All Rights Reserved.
//
// NAME:         f_GlobalConst.js
//
// PURPOSE:      Global constants and routines used throughout the browser pages.
//
// AUTHOR:       Zuber Jafri
//
// MODIFIED BY:
//
// ****************************************************************************

// Global constants
var Debug = false;

// Max and Min Dates supported
var MIN_YEAR = 1900;
var MAX_YEAR = 2099;
// Events
var EVENT_MIDDLE_PAGE_LOADED = 0;
var EVENT_MIDDLE_PAGE_UNLOAD = 1;
var EVENT_MIDDLE_PAGE_UNLOADED = 2;
var EVENT_REFRESH_MIDDLE = 3;
var EVENT_TOP_APPLET_SELECTED = 4;
var EVENT_LEFT_NODE_SELECTED = 5;

var EVENT_MINI_SEARCH = 6;
var EVENT_GOTO_PAGE = 7;
var EVENT_OPEN_HTTP_LINK = 8;
var EVENT_LOGOUT = 9;
var EVENT_SAVE_HTML = 10;
var EVENT_MODAL_PAGE = 11;
var EVENT_PRINT_PAGE = 12;

// Applets
var APPLET_INVALID = -1;
var APPLET_NONE = 0;
var APPLET_ACCOUNTS = 1;
var APPLET_CONTACTS = 2;
var APPLET_ACTIVITIES = 3;
var APPLET_NOTES = 4;
var APPLET_APPROVALS = 5;
var APPLET_OPERATIONS = 6;
var APPLET_SYSADMIN = 7;
var APPLET_INTERVAL = 100;

// Constants for UI RS Errors
/*----------------------------------------------------------------------------*/
var CONST_RS_ERROR = "Unexpected error attempting to connect " +
                        "to server. Please try later...: " ;
var CONST_UNEXPECTED_ERROR = "Error occurred! Description: " ;
var CONST_RECENT_UPDATE_ERROR = "There has been a recent update to this record" ;

var CONST_OBJECT = "object" ;
var CONST_UNDEFINED = "undefined" ;
var CONST_FAILED = "FAILED" ;
var CONST_SUCCESSFULL = "SUCCESSFULL" ;
var CONST_FUNCTION = "function" ;

var CONST_LISTNAME = 0 ;
var CONST_LISTCODE = 1 ;

var CONST_NAME = 0 ;
var CONST_VALUE = 1 ;

var CONST_EDIT = "edit" ;
var CONST_DETAIL = "detail" ;

var CONST_EXPLANATION_LENGTH = "50";

// Constants for Dialog Windows.
/*----------------------------------------------------------------------------*/
var OPEN_WINDOW_ARGS = "dialogHeight=480px;dialogWidth=750px;center=yes;help=no;resizable=yes;titlebar=yes";
var OPEN_PRINT_WINDOW_ARGS = "status:no;center=yes;help=no;resizable=yes;titlebar=yes";
var MINISEARCH_DIALOG_ARGS       = "status:no; dialogWidth:484px; dialogHeight:470px; help:no; center:yes;";
var FRAME_MINISEARCH_DIALOG_ARGS = "status:no; dialogWidth:550px; dialogHeight:470px; help:no; center:yes;";

/*----------------------------------------------------------------------------*/
var CONST_SUCCESS = "Success" ;
var CONST_DRAFT = "Draft" ;
var CONST_INPROGRESS = "In Progress" ;
var CONST_TRUE = "True" ;
var CONST_FALSE = "False" ;

// Error Numbers & Error Messages
/*----------------------------------------------------------------------------*/
var ERROR_NUMBER = 0 ;
var ERROR_MESSAGE_GETTEMPLATE = "Error populating Template : " + ERROR_NUMBER ;

	ERROR_NUMBER = ERROR_NUMBER + 1 ;

var JS_TRUE = true ;
var JS_FALSE = false ;

var HTML_EMPTY_ATTRIBUTE_STRING = "empty_string";

//used for showing/hiding the buttons
var HTML_BUTTON_TRUE = 1 ;
var HTML_BUTTON_FALSE = 0 ;

var HTML_TRUE = "true";
var HTML_FALSE = "false";

var HTML_ROWTAG_START = "<tr class='tabledata'>" ;
var HTML_ROWTAG_END = "</tr>" ;
var HTML_CELLTAG_START = "<td nowrap>" ;
var HTML_CELLTAG_END = "</td>" ;

var HTML_TABLE = "TABLE" ;
var HTML_INPUT = "INPUT" ;
var HTML_SPAN = "SPAN" ;
var HTML_IMG = "IMG" ;
var HTML_TEXTAREA = "TEXTAREA" ;
var HTML_TEXT = "text" ;
var HTML_SELECT = "SELECT" ;
var HTML_CHECKBOX = "checkbox" ;
var HTML_RADIO = "radio" ;
var HTML_HIDDEN = "hidden" ;
var HTML_TH = "TH" ;
var HTML_ROW = "TR" ;
var HTML_CELL = "TD" ;

var HTML_OPENTAGSTART = "<" ;
var HTML_TAGEND = ">" ;
var HTML_CLOSETAGSTART = "</" ;

var HTML_SELECTSTART = "<select id=" ;
var HTML_SELECTEND = "</select>" ;
var HTML_SELECTEDOPTION = "<option selected value=" ;
var HTML_OPTIONSTART = "<option value=" ;
var HTML_OPTIONEND = "</option>" ;

var CONST_BACKGROUNDCOLOR_ROW_SELECTED = "#999999" ;
var CONST_BACKGROUNDCOLOR_ROW_UNSELECTED = "" ;

// Global constants

/*----------------------------------------------------------------------------*/
// Constants for different Mode of pages. e.g if the PgAcctRecvOneTimeNow.html
// page is called from Left Nav then its in ADD mode, if it is  called from
// Recurring now it is in EDITPOST mode. From View all is will be in EDIT mode.
// EDITCASH is a special case for Disbursement One time page coming from Cash
// Advance node from Left Nav.

var MODE_ADD = "ADD" ;
var MODE_EDIT = "EDIT" ;
var MODE_EDITPOST = "EDITPOST" ;
var MODE_CASH = "EDITCASH" ;

//Mode used for Activity Applet.
var MODE_ACTIVITY_ACTION     = "ACTIVITY_ACTION";

/*----------------------------------------------------------------------------*/

// Constant definition for custom attributes on the HTML pages.
var CONST_MYID = "myID" ;
var CONST_MYEDIT = "myEdit" ;
var CONST_MYREQUIRED = "myRequired" ;

var DELINIATOR = "|" ;

var G_GLOBAL_CURSOR_EMPTY = "CURSOR_EMPTY" ;

// For getHeaderImageElementID in table routines.
var IMG_TYPE_SORT = 1 ;
var IMG_TYPE_EXPCOL = 2 ;

/*----------------------------------*/
// 100 ms to paint the wait message before synch remote calls
var STATUS_PAINT_TIMEOUT_DURATION = 100;

/*----------------------------------*/
// wait 100 ms for mini search to finish
var MINISEARCH_BUSY_TIMEOUT_DURATION = 100;

/*----------------------------------*/
// key codes
var KEYCODE_ENTER = 13;
var KEYCODE_ESC = 27;

/*----------------------------------*/
// dialog return codes
var IDOK = 0;
var IDCANCEL = 1;
var IDERROR = 2;

// Global Routines
/*----------------------------------------------------------------------------*/
function getAppletIDByPageID(p_PageID)
{
	return Math.floor(p_PageID / APPLET_INTERVAL);
}

/* ---
PURPOSE:    The onmouseover event handler for all CSS5 pages. It manages element
            cursors based on the app's wait mode by 1) storing the element that
            the cursor is currently over, and 2) changing the cursor for the
            element the mouse is over to an hourglass if the app's wait mode is
            on, or restoring it to its former value if wait mode is off.
--- */
function bodyOnMouseOver()
{
}

/* ---
PURPOSE:    The onmouseout event handler for all CSS5 pages. Calls doMouseOut
            to do cursor management.
--- */
function bodyOnMouseOut()
{
}

// Gets the value of an attribute of the tag. If the attribute is missing,
// this returns the empty string.
function getAttrValue(pi_objTag, pi_strAttrName)
{
	var attrValue;
	attrValue = pi_objTag.getAttribute(pi_strAttrName);

	if (typeof(attrValue) == UNDEFINED_TYPE)
		return "";
	else
		return attrValue;
}



// called by onclick of elements
function itemOnDblClick() {

	var e = window.event.srcElement;
	if (e.className == "data") {
		// if it's data for user, alert it so user can see the whole string
		alert(e.innerText);
	}
}
