function Browser(){var ua,s,i;this.isIE=false;this.isNS=false;this.version=null;ua=navigator.userAgent;s="MSIE";if((i=ua.indexOf(s))>=0){this.isIE=true;this.version=parseFloat(ua.substr(i+s.length));return;}s="Netscape6/";if((i=ua.indexOf(s))>=0){this.isNS=true;this.version=parseFloat(ua.substr(i + s.length));return;}s="Gecko";if((i=ua.indexOf(s))>=0){this.isNS=true;this.version=6.1;return;}}
function checkPhone(obj){var str=obj.value.replace(/[^0-9]+?/g,'');switch(str.length) {case 0:alert('Phone enter a valid PHONE number.');obj.select();return;case 7:str=str.substr(0,3)+"-"+str.substr(3,4);break;case 10:str="("+str.substr(0,3)+") "+str.substr(3,3)+"-"+str.substr(6,4);break;default:alert('Please enter a 7 digit phone number (with area code, if applicable).');obj.select();return;}obj.value=str;}
function chkNumericValue(e,val2){var val="0123456789";var key=(!document.all)?e.which:e.keyCode;var str=String.fromCharCode(key);if(val.indexOf(str)>-1||val2.indexOf(str)>-1||key<30){return true;} else {return false;}}
function chkAlphaValue(e,val2){var val="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";var key=(!document.all)?e.which:e.keyCode;var str=String.fromCharCode(key);if(val.indexOf(str)>-1||val2.indexOf(str)>-1||key<30){return true;}else{return false;}}
function chkEmailValue(e,val2){var val="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@1234567890.+-_";var key=(!document.all)?e.which:e.keyCode;var str=String.fromCharCode(key);if( val.indexOf(str) > -1 || val2.indexOf(str) > -1 || key < 30) {if(key==3||key==13||key==10) {return false;} else {return true;}} else { return false;}}
function checkEmail(src){var regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;if(!regex.test(src)){alert('Please enter a valid e-mail address.');}}
function imgSwap(id,src){document.getElementById(id).src=src;}
function txtSwap(id,src){document.getElementById(id).innerHTML=src;}
function CreateCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}else{var expires="";}document.cookie=name+"="+value+expires+"; path=/";}
function ReadCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length);}if(c.indexOf(nameEQ) == 0){return c.substring(nameEQ.length,c.length);}}return null;}
function EraseCookie(name){CreateCookie(name,"",-1);}

// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
/*
The format string consists of the following abbreviations:

Field        | Full Form          | Short Form
-------------|--------------------|-----------------------
Year         | yyyy (4 digits)    | yy (2 digits), y (2 or 4 digits)
Month        | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
             | NNN (abbr.)        |
Day of Month | dd (2 digits)      | d (1 or 2 digits)
Day of Week  | EE (name)          | E (abbr)
Hour (1-12)  | hh (2 digits)      | h (1 or 2 digits)
Hour (0-23)  | HH (2 digits)      | H (1 or 2 digits)
Hour (0-11)  | KK (2 digits)      | K (1 or 2 digits)
Hour (1-24)  | kk (2 digits)      | k (1 or 2 digits)
Minute       | mm (2 digits)      | m (1 or 2 digits)
Second       | ss (2 digits)      | s (1 or 2 digits)
AM/PM        | a                  |

NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!

Examples:
 "MMM d, y" matches: January 01, 2000
                     Dec 1, 1900
                     Nov 20, 00
 "M/d/yy"   matches: 01/20/00
                     9/2/00
 "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
 */
// ------------------------------------------------------------------
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x){return(x<0||x>9?"":"0")+x}
function formatDate(date,format){
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if(y.length<4){y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if(H==0){value["h"]=12;}
	else if(H>12){value["h"]=H-12;}
	else{value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if(H>11){value["K"]=H-12;}else{value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if(H > 11){ value["a"]="PM"; }
	else{ value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format<format.length){
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format<format.length)){
			token += format.charAt(i_format++);
			}
		if(value[token] != null){ result=result+value[token]; }
		else{ result=result+token; }
		}
	return result;
	}