preloadflag = true;

// Browser Detection
var V = navigator.appVersion.substring(0,1);
var brsr = 0;
if (V < 4) {
	top.alert("This site uses java to support its major navigation.\n You may have trouble viewing the site");
} else if (navigator.appName.indexOf("Netscape") > -1) {

} else if (navigator.appName.indexOf("Explorer") > -1) {
		var T = navigator.appVersion.indexOf("MSIE");
		T += 5;
		V = navigator.appVersion.substring(T,eval(T+1));
}
if (navigator.appName.indexOf("Netscape") > -1) {
	brsr = 1;
} else if (navigator.appName.indexOf("Explorer") > -1) {
	if (V < 5) {

	} else {
		brsr = 2;
	}
}


function getElmById(aID){
	var rv = null;

	if (document.getElementById) {
		//alert("byId");
		rv = document.getElementById(aID)
	} else if (document.layers) {
		//alert("layers");
		rv = document.layers[aID]
	} else if (document.all) {
		//alert("all");
		rv = document.all[aID];
	}

	return rv;
}


function alignContent () {

	//top.alert(getElmById("mainFraming").offsetHeight);
	contentBottom = getElmById("mainFraming").offsetHeight;
	if ((contentBottom) % 6 != 0) {
		contentBottom = ((Math.ceil((contentBottom)/6)) * 6);
	//	top.alert(contentBottom);
		getElmById("mainFraming").style.height = contentBottom;
	//	top.alert(getElmById("mainFraming").offsetHeight);
	}
	// getElmById("sizeMe").style.height = getElmById('footerPage').offsetHeight + maxBottom;

}

function openPhotoCredit () {
	showHideLayers('','photoCreditClosed','hidden','photoCreditOpen','visible');
}

function closePhotoCredit () {
	showHideLayers('','photoCreditClosed','visible','photoCreditOpen','hidden');
}


function getElementById(id){
	var el = null;

	if (document.getElementById) {
		// isMozilla || isIE5
		el = document.getElementById(id)
	} else if (document.layers) {
		// isNetscape4
		el = document.layers[id]
	} else if (document.all) {
		// isIE4
		el = document.all[id];
	}

	return el;
}



// Email Spam hiding.
function popMail(host,user) {
	var acct = user +'@'+ host;
	self.location.href = 'mailto:'+ acct;
}
function linkMail(host,user,cls) {
	document.write('<a href="javascript:popMail(\''+ host +'\',\''+ user +'\');"');
	if (cls) {
		document.write(' class="'+ cls +'"');
	}
	document.write('>');
	showMail(host,user);
	document.write('</a>');
}
function showMail(host,user) {
	var acct = user +'@'+ host;
	document.write(acct);
}


function centerPop(page,w,h,args){
	if (w > 0) {
	} else {
		w = 650
	}
	if (h > 0) {
	} else {
		h = 550
	}
	var width
	var height
	var leftdist
	var topdist
	width = screen.width;
	height = screen.height;
	leftdist = Math.round((width - w) / 2);
	topdist = Math.round((height - h) / 2);
	if (args = '') {
		args = 'resizable=1,menubar=0,location=0,scrollbars=1,status=1,toolbar=0';
	}
	cpw = window.open(page,'cpw','width='+ w +',height='+ h +',top='+topdist+',left='+leftdist+','+ args);
	cpw.focus();
}


function centerPopMenu(page,w,h){

if (w > 0) {
} else {
 w = 650
}
if (h > 0) {
} else {
 h = 550
}

var width
var height
var leftdist
var topdist
width = screen.width;
height = screen.height;
leftdist = Math.round((width - w) / 2);
topdist = Math.round((height - h) / 2);

gwin = window.open(page,'gwin','width='+ w +',height='+ h +',top='+topdist+',left='+leftdist+',resizable=1,menubar=1,location=0,scrollbars=1,status=1,toolbar=0');
gwin.focus();

}


	function PopWin(HEIGHT,WIDTH,URL) {
		var PopWin = window.open(URL,'PopWin',"width="+ WIDTH +",height="+ HEIGHT +",scrollbars=0,toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0");
		PopWin.focus()
	}

	function newImage(arg) {
		if (document.images) {
			rslt = new Image();
			rslt.src = arg;
			return rslt;
		}

		//img_on	= newImage("/pics/index_nav/index_con.gif");
		//img_off	= newImage("/pics/index_nav/index_con.gif");
	}

	function resWin(page) {
		var resWin = window.open(page,'resWIn',"width=499,height=333,scrollbars=0,toolbar=1,location=0,directories=0,status=1,menubar=0,resizable=1");
		resWin.open
	}

	function changeImages() {
	//	if (document.images && (preloadFlag == true)) {
			for (var i=0; i<changeImages.arguments.length; i+=3) {
			//  top.alert (document.layers[i].document[changeImages.arguments[i+1]].name)
			//document.layers[changeImages.arguments[i]].document[changeImages.arguments[i+1]].src = eval(changeImages.arguments[i+2]+".src");
				if (brsr == 1) {
			//		if (changeImages.arguments[i] != '') {
			//			document[changeImages.arguments[i+1]].src = eval(changeImages.arguments[i+2]+".src")
			//		} else {
						if (document[changeImages.arguments[i+1]]) document[changeImages.arguments[i+1]].src = eval(changeImages.arguments[i+2]+".src")
			//		}
				}
				if (brsr == 2) {
					if (document[changeImages.arguments[i+1]]) document[changeImages.arguments[i+1]].src = eval(changeImages.arguments[i+2]+".src")
				}
			}
	//	}
	}
	function changeImagesStr() {
			for (var i=0; i<changeImagesStr.arguments.length; i+=3) {
				if (brsr == 1) {
						document[changeImagesStr.arguments[i+1]].src = changeImagesStr.arguments[i+2]
				}
				if (brsr == 2) {
					document[changeImagesStr.arguments[i+1]].src = changeImagesStr.arguments[i+2]
				}
			}
	}

	function rollOver (item,state) {
		if (state) {
			changeImages('','i'+item,'i'+item+'_on');
		} else {
			changeImages('','i'+item,'i'+item+'_off');
		}
	}

	function setClass() {
		var args=setClass.arguments;
		var ston = 0;

		if (brsr != 0) {
			for (i = ston; i<(args.length-1); i+=2) {
				var obj = args[i];
				var cls = args[i+1];
				if (brsr == 1 && V >= 5) {
					document.getElementById(obj).className = cls;
				}
				if (brsr == 2) {
					if (document.all[obj]) {
						document.all[obj].className = cls;
					}
				}
			}
		}
	}

	function showHideLayers() {
		var args=showHideLayers.arguments;
		var ston = 1;
		var baser = args[0];

		if (brsr != 0) {
			for (i = ston; i<(args.length-1); i+=2) {
				var obj = args[i];
				var vis = args[i+1];
				if (brsr == 1 && V < 5) {
						if (document.layers[obj]) document.layers[obj].visibility = vis;
				}
				if (brsr == 1 && V >= 5) {
					if (document.getElementById(obj)) {
						document.getElementById(obj).style.visibility = vis;
					}
				}
				if (brsr == 2) {
					if (document.all[obj]) {
						document.all[obj].style.visibility = vis;
					}
				}
			}
		}
	}



	function delayHide() {
			if (t==0) {
					removeall();
					lCount = 0;
			}
			if (t==2) {
					lCount = 0;
			}
			if (t==1) {
					lCount = lCount + 1;
					if (lDelay <= lCount) {
							t = 0;
					}
					if (lDelay >= lCount) {
							setTimeout('delayHide(' + t + ')',pause);
					}
			}
			return false;
	}










/**
 * form validating object
 */
function validateform() {
	/**
	 * defines fields and their validator methods
	 */
	this.fields = {};
 	/**
	 * contains active error messages for each invalid field
	 */
	this.errorMessages = {};
	/**
	 * contains default values for each field
	 */
	this.defaultValues = {};
        /**
         * prefix for form segments
         */
	this.formIdPrefix = 'RxForm_';
        /**
         *set the validation field sata
         */
        this.setValidators = function(data)
        {
            this.fields = data;
        };
        /**
         *set the default strings
         */
        this.setDefaults = function(data)
        {
            this.defaultValues = data;
        };

	/**
	 * Validator method checks if value is empty
	 *
	 * returns true if valid, error message otherwise
	 *
	 * @var mixed
	 */
	this.notEmpty = function (id)
	{
		var val = $F(id);
		if('' == val
                    || this.defaultValues[id] == val) {
			return false;
		}
		return true;
	}

	/**
	 * Validator method checks if value is an integer
	 *
	 * returns true if valid, error message otherwise
	 *
	 * @var mixed
	 */
	//var isInt = function(id)
	this.isInt = function (id)
	{
		var val = $F(id);
		if(val == parseInt(val)) {
                    return true;
		}
		return false;
	}

	/**
	 * Validator method checks if value is an integer
	 *
	 * returns true if valid, error message otherwise
	 *
	 * @var mixed
	 */
	//var isInt = function(id)
	this.isString = function (id)
	{
            if (this.notEmpty(id)) {
		var val = $F(id);
		var filter = /[a-zA-Z]/;
		if(filter.test(val)) {
                    return true;
		}
            }
            return false;
	}

        this.isStringOr = function (id,args)
        {
            if (this.isString(id)) {
                return true;
            }
            if (this.isString(args)) {
                return true;
            }
            return false;
        }

	this.isEqualTo = function (id,args)
	{
		var val = $F(id);
                if (val == args) {
                    return true;
                }
		return false;
	}

	this.isDate = function(id)
	{
		var val = $F(id);
		var parts = val.split('/');
		//alert(parts);
		var dateEntered = new Date(parts[2], parts[0] - 1, parts[1]);
		//alert((parts[0] - 1) + ' == ' + dateEntered.getMonth() + ' && ' + parts[1] + ' == ' + dateEntered.getDate() + ' && ' + parts[2] + ' == ' + dateEntered.getFullYear());
		if((parts[0] - 1) == dateEntered.getMonth() && parts[1] == dateEntered.getDate() && parts[2] == dateEntered.getFullYear()) {
			return true;
		}
		return false;
	}

	this.isInPast = function(id)
	{
		var val = $F(id);
		var parts = val.split('/');
		var dateEntered = new Date(parts[2], parts[0], parts[1]);
		var today = new Date();
		if(dateEntered < today) {
			return true;
		}
		return false;
	}

	this.isLocalPhoneNumber = function(id)
	{
		var val = $F(id);

		if(val.replace(/[^0-9]/g, "").length == 7) {
			return true;
		}
		return false;
	}

	this.isEmail = function(id)
	{
		var val = $F(id);
		var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;;

		if(filter.test(val)) {
			return true;
		}
		return false;
	}

	this._markFieldInvalid = function(id, message)
	{
		this.errorMessages[id] = message;
                if ($(id).type == 'checkbox'
                        || $(id).type.indexOf('select') == 0) {
                    var setElm = this._getFieldLabel(id);
                    if (setElm != false) {
                        $(setElm).addClassName('error');
                    } else {
                        $(id).addClassName('error');
                    }
                } else {
                    $(id).addClassName('error');
                }

	}

        this._getFieldLabel = function (id)
        {
               var group = $$('div#'+ id +'_label');
               if (group.length > 0) {
                    return group[0];
               }
               return false;
        }

	this._markFieldValid = function(id)
	{
		if(typeof(this.errorMessages[id]) != 'undefined') {
			delete this.errorMessages[id];
		}
                if ($(id).type == 'checkbox'
                        || $(id).type.indexOf('select') == 0) {
                    var setElm = this._getFieldLabel(id);
                    if (setElm != false) {
                        $(setElm).removeClassName('error');
                    } else {
                        $(id).removeClassName('error');
                    }
                } else {
                    $(id).removeClassName('error');
                }
	}

	this.hasError = function(id) {
		if(typeof(this.errorMessages[id]) == 'undefined') {
			return false;
		}
		return true;
	}

	this.getError = function(id) {
		if(true == this.hasError(id)) {
			return this.errorMessages[id];
		}
		return '';
	}

	/**
	 * returns the default value for a form field
	 */
	this.getDefaultValue = function(id) {
		if(typeof(this.defaultValues[id]) == 'undefined') {
			return '';
		}
		return this.defaultValues[id];
	}

	this.validateField = function(id) {
		var rtn = true;
                if (this.fields[id]) {
                    for(var validator in this.fields[id]) {
                            var result;
                            switch(this.fields[id][validator]['method']) {
                                    case 'notEmpty':
                                            result = this.notEmpty(id);
                                            break;
                                    case 'isInt':
                                            result = this.isInt(id);
                                            break;
                                    case 'isString':
                                            result = this.isString(id);
                                            break;
                                    case 'isStringOr':
                                            result = this.isStringOr(id,this.fields[id][validator]['args']);
                                            break;
                                    case 'isDate':
                                            result = this.isDate(id);
                                            break;
                                    case 'isInPast':
                                            result = this.isInPast(id);
                                            break
                                    case 'isEqualTo':
                                            result = this.isEqualTo(id,this.fields[id][validator]['args']);
                                            break
                                    case 'isLocalPhoneNumber':
                                            result = this.isLocalPhoneNumber(id);
                                            break;
                                    case 'isEmail':
                                            result = this.isEmail(id);
                                            break;
                            }
                            if(true !== result) {
                                    rtn = false;
                                    this._markFieldInvalid(id, this.fields[id][validator]['message']);
                                    break;
                            }
                    }
                    if(true === rtn) {
                            this._markFieldValid(id)
                    }
                    return rtn;
                } else {
                    this._markFieldValid(id);
                    return true;
                }
	}

        this.markFieldInvalid = function (id,errstring)
        {
            this._markFieldInvalid(id, errstring);
        }

	this.validateForm = function(id)
	{
		var formFields = $(this.formIdPrefix + id).serialize(true);
		var rtn = true;
		for(var key in formFields) {
			if(false == this.validatefield($F(key))) {
				rtn = false;
			}
		}
		return rtn;
	}
}

