/*****************************************************
* (c) 2000-2002 In2netlogic Ltd.  All rights reserved
* Written by John Makin.               www.jmakin.com
******************************************************/

function formSup(sForm) {
this.active = false;
this.form = sForm;
this.contents = new Array;
this.items = 0;
this.defFocus = "";
  
this.addItem = formSupAddItem;
this.statusMsg = formSupStatusMsg;
this.textBoxEmptyMsg = formSupTextBoxEmptyMsg;
this.textBoxEmptyClr = formSupTextBoxEmptyClr;
this.textBoxOKClr = formSupTextBoxOKClr;
this.textBoxBadClr = formSupTextBoxBadClr;
  
this.go = formSupGo;

this.addDefaults = formSupAddDefaults;
this.removeDefaults = formSupRemoveDefaults;
  
this.doFocus = formSupDoFocus;
this.doBlur = formSupDoBlur;
this.doMouseOver = formSupDoMouseOver;
this.doMouseOut = formSupDoMouseOut;
  
this.formSupElPosn = formSupElPosn;
  
return this;
}
function formSupEl(sName) {
this.name = sName;
this.statusMsg = '';
this.boxEmptyMsg = '';
this.boxEmptyClr = '';
this.boxOKClr = '';
this.boxBadClr = '';
  
return this;
}


function formSupAddItem(sName) {
if (this.formSupElPosn(sName) == -1) {
this.contents[this.items] = new formSupEl(sName);
if (this.defFocus == "") this.defFocus = sName;    

if (arguments.length > 1) this.contents[this.items].statusMsg = arguments[1];
if (arguments.length > 2) this.contents[this.items].boxEmptyMsg = arguments[2];
if (arguments.length > 3) this.contents[this.items].boxEmptyClr = arguments[3];
    
this.items++;
}
  
return true;
}


function formSupStatusMsg(sName, sMessage) {
var lPosn = this.formSupElPosn(sName);
if (lPosn != -1) this.contents[lPosn].statusMsg = sMessage;
}
function formSupTextBoxEmptyMsg(sName, sMessage) {
var lPosn = this.formSupElPosn(sName);
if (lPosn != -1) this.contents[lPosn].boxEmptyMsg = sMessage;  
}
function formSupTextBoxEmptyClr(sName, sClr) {
var lPosn = this.formSupElPosn(sName);
if (lPosn != -1) this.contents[lPosn].boxEmptyClr = sClr;  
}
function formSupTextBoxOKClr(sName, sClr) {
var lPosn = this.formSupElPosn(sName);
if (lPosn != -1) this.contents[lPosn].boxOKClr = sClr;  
}
function formSupTextBoxBadClr(sName, sClr) {
var lPosn = this.formSupElPosn(sName);
if (lPosn != -1) this.contents[lPosn].boxBadClr = sClr;  
}


function formSupGo() {
this.addDefaults();
  
eval("document." + this.form + "." + this.defFocus + ".focus()");

this.active = true;

return true;
}

function formSupAddDefaults() {
var sField;
  
for (var lLoop=0; lLoop<this.items; lLoop++) {
sField = "document." + this.form + "." + this.contents[lLoop].name;
    
if ((this.contents[lLoop].boxEmptyMsg != "") && (eval(sField + ".value == ''"))) {
eval(sField + ".value = this.contents[lLoop].boxEmptyMsg");
}
}

return true;
}
function formSupRemoveDefaults() {
var sField;
  
for (var lLoop=0; lLoop<this.items; lLoop++) {
sField = "document." + this.form + "." + this.contents[lLoop].name;
    
if ((this.contents[lLoop].boxEmptyMsg != '') && (eval(sField + ".value == this.contents[lLoop].boxEmptyMsg"))) {
eval(sField + ".value = ''");
}
}

return true;
}


function formSupDoFocus(oActive) {
if (this.active) {
var lPosn = this.formSupElPosn(oActive.name);
if (lPosn > -1) {
if (this.contents[lPosn].statusMsg != "") window.status = this.contents[lPosn].statusMsg;
if ((this.contents[lPosn].boxEmptyMsg != "") && (oActive.value == this.contents[lPosn].boxEmptyMsg)) oActive.value = "";
}
}

return true;
}
function formSupDoBlur(oActive) {
if (this.active) {
var lPosn = this.formSupElPosn(oActive.name);
if (lPosn > -1) {
window.status = window.defaultStatus;
if ((this.contents[lPosn].boxEmptyMsg != "") && (oActive.value == "")) oActive.value = this.contents[lPosn].boxEmptyMsg;
}
}
  
return true;
}
function formSupDoMouseOver(oActive) {
if (this.active) {
var lPosn = this.formSupElPosn(oActive.name);
if (lPosn > -1) {
if (this.contents[lPosn].statusMsg != '') window.status = this.contents[lPosn].statusMsg;
}
}
  
return true;
}
function formSupDoMouseOut(oActive) {
if (this.active) {
var lPosn = this.formSupElPosn(oActive.name);
if (lPosn > -1) {
window.status = window.defaultStatus;
}
}

return true;
}


function formSupElPosn(sName) {
if (this.items > 0) {
for (var lLoop=0; lLoop<this.items;lLoop++) {
if (this.contents[lLoop].name == sName) return lLoop;
}
}
return -1;
}