
function isEmpty(input) {
	return (input.value.length == 0);
}

function alertInputLength(name, input) {
	alert("Input "+name+" length="+input.value.length);
	return true;
}
function setStatus(msg) {
	window.status = msg;
}
   
// whitespace characters
var DEF_WHITESPACE = " \t\n\r";
   
function containsWhitespace(input) {
    var s = input.value;
    var i;
    // Search through string's characters one by one
    // until we find a whitespace character.
    // When we do, return true; if we don't, return false.

    for(i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if(DEF_WHITESPACE.indexOf(c) != -1) {
            return true;
        }
    }
    // All characters are whitespace.
    return false;
}
   
function isEmail(input) {   
    if(isEmpty(input)) {
        return false;
    }
    // is s whitespace?
    if(containsWhitespace(input)) {
        return false;
    }

    // there must be >= 1 character before @, so we
    // start looking at character position 1
    // (i.e. second character)
    var s = input.value;
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")) { 
        i++;
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) {
        return false;
    }else{
        i += 2;
    }

    // look for .
    while ((i < sLength) && (s.charAt(i) != ".")) { 
        i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
        return false;
    }else{
        return true;
    }
}   
   
/*
    var nav = new TNav();
    if(nav.isN4()) {
        debug.prn("debug is on");    
    }
    if(nav.isIE4()) {
    }
*/

function TNav() {
        this.isN4 = TNav_isN4;        
        this.isIE4 = TNav_isIE4;        
        
    if(TNav_isN4() && (typeof document.jstb == 'undefined')){
        document.jstb = new Object;
        document.jstb.ns4bugfix = new Object;
        document.jstb.ns4bugfix.startWidth = window.innerWidth;
        document.jstb.ns4bugfix.startHeight = window.innerHeight;
        window.onresize = ns4bugfix;
    }
        
}

function TNav_isN4() {
        if(document.layers) { 
                // Navigator 4.0
                return true;
        }else{ 
                return false;
        } 
}
function TNav_isIE4() {
        if(document.all) { 
                // IE4 
                return true;
        }else{ 
                return false;
        } 
}

/******/

/* This section of code fixes a netscape resizing bug for DHTML pages.
If you use this code please leave these comments in place so that
others may benefit.  For use by anyone who needs it, this code
was created for by Glenn Davis of Project Cool, Inc. */

function ns4bugfix(){
    if (document.jstb.ns4bugfix.startWidth != window.innerWidth ||
        document.jstb.ns4bugfix.startHeight != window.innerHeight){
        document.location = document.location
    }
}
/*****/

/********* TDebug *************/


/*
    <script src="http://www.jutil.com/scripts/jsutil/jsutil.js" 
	language="JavaScript1.2"></script>
    
    var debug = new TDebug();
    if(debug.debug) {
        debug.prn("debug is on");    
    }
    debug.setTrue();
    debug.setFalse();
    debug.prn("debug is on");
    debug.prnln("debug is on");

	TPrintWriter writer = new TPrintWriter();
	writer.prn(":: ");
	writer.prnln("starting application...");
	writer.prnln(":: ");
	writer.prnln(":: ");
	writer.prnln(":: ");
	writer.prn(":: ");
	writer.prnln("closing application...");

*/
function TDebug() {
    var debug       = false;
    this.prn        = TDebug_prn;
    this.prnln      = TDebug_prnln;
    this.setTrue    = TDebug_setTrue;
    this.setFalse   = TDebug_setFalse
}
function TDebug_prn(msg) {
    if(this.debug) {
        document.write("debug:"+msg);
    }
}
function TDebug_prnln(msg) {
    if(this.debug) {
        document.writeln("debug:"+msg);
    }
}
function TDebug_setTrue() {
    this.debug = true;
}
function TDebug_setFalse() {
    this.debug = false;
}
/********* TDebug *************/


/********* TPrintWriter *************/
function TPrintWriter() {
    this.prn    = TPrintWriter_prn;
    this.prnln  = TPrintWriter_prnln;
}

function TPrintWriter_prn(msg){
    prn(msg);
}
function TPrintWriter_prnln(msg){
    prnln(msg);
}
function prn(msg){
    document.write(msg);
}

function prnln(msg){
    document.writeln(msg);
}
/********* TPrintWriter *************/


