/* ----- Submit a form */

function submitform(action, target)
{
  document.Form1.action=action;
  document.Form1.target=target;
  document.Form1.submit();
}

/* ----- Write Screen Size Data to Cookie */

function writeCookie(cookiename) { 

    var expiration_date = new Date("December 31, 1999"); 
    var expiration_date = expiration_date.toGMTString(); 
    var cookie_name = cookiename + "=" + screen.width + "~~" + screen.height + "~~" + expiration_date; 
    document.cookie = cookie_name;
}

/* ----- Request User Confirmation */
function confirm_action(question) {
	var answer = confirm(question)
	if (answer) {return true}
	else {return false}
}

/* ----- Check/Uncheck A Group of Checkboxes */

var ie;

if (document.all)
	ie = true;
else
	ie = false;
	
function check_uncheck_multiple(obj, prefix, first, count) {
    
	for(var ii=first;ii<=first + count - 1;ii++) {
		if (ie) {
	  		box = document.all[prefix+ii];
	  		box.checked = obj.checked;
	  	}
		else {
	  		box = document.getElementsByName(prefix+ii);
	  		box[0].checked = obj.checked;
	  	}
	}
}


/* ----- Bookmark Site / Add to Favorites */

function bookmark_site(title, url){
	if (document.all)
  	window.external.AddFavorite(url, title);
  	else if (window.sidebar)
  	window.sidebar.addPanel(title, url, "")
}


/* ----- Go To URL Selected From Select List  */

function gotoSelected(s) {
	var i = s.options[s.selectedIndex].value; 
 	s.options[0].selected = true;
 	return i;
}

/* ----- Open/Close the Address Book  */

var addressbook;

function openaddressbook(url, formwidth, formheight){
	if (addressbook && addressbook.open && !addressbook.closed)	{
		addressbook.focus();
	}
	else {  
		var tp,lft;
		lft=(screen.availWidth/2)-(formwidth/2);
		tp=(screen.availHeight/2)-(formheight/2);
		addressbook=window.open(url,'addressbook','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,copyhistory=0,dependent=0,width=' + formwidth + ',height=' + formheight + ',screenX=' + lft + ',screenY=' +tp + ',top=' + tp + ',left=' + lft);
	}
}

function closeaddressbook() {
	if (addressbook && addressbook.open && !addressbook.closed) {addressbook.close();} 
};


/* ----- Open/Close the Ratings Form */

var ratings;

function openratings(url, formwidth, formheight){
	if (ratings && ratings.open && !ratings.closed)	{
		ratings.focus();
	}
	else {  
		var tp,lft;
		lft=(screen.availWidth/2)-(formwidth/2);
		tp=(screen.availHeight/2)-(formheight/2);
		ratings=window.open(url,'ratings','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,copyhistory=0,dependent=0,width=' + formwidth + ',height=' + formheight + ',screenX=' + lft + ',screenY=' +tp + ',top=' + tp + ',left=' + lft);
	}
}

function closeratings() {
	if (ratings && ratings.open && !ratings.closed) {ratings.close();} 
};

/* ----- Validate an Email Address For Correct Format */

function validateEmailAddress(field, fieldrequired, db) {

	var addr = field.value;
  	
	if (addr.length == 0) {
		if (!fieldrequired) {return true;}
   		if (db) alert('email address is mandatory');
   		return false;
	}

	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';

	for (i=0; i<invalidChars.length; i++) {
   		if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
      		if (db) alert('email address contains invalid characters');
			field.focus();
   			field.select();
      		return false;
   		}
	}

	for (i=0; i<addr.length; i++) {
   		if (addr.charCodeAt(i)>127) {
      		if (db) alert("email address contains non ascii characters.");
			field.focus();
   			field.select();
      		return false;
   		}
	}

	var atPos = addr.indexOf('@',0);
	
	if (atPos == -1) {
   		if (db) alert('email address must contain an @');
		field.focus();
   		field.select();
   		return false;
	}

	if (atPos == 0) {
   		if (db) alert('email address must not start with @');
		field.focus();
   		field.select();
   		return false;
	}

	if (addr.indexOf('@', atPos + 1) > - 1) {
   		if (db) alert('email address must contain only one @');
		field.focus();
   		field.select();
   		return false;
	}

	if (addr.indexOf('.', atPos) == -1) {
   		if (db) alert('email address must contain a period in the domain name');
		field.focus();
   		field.select();
   		return false;
	}

	if (addr.indexOf('@.',0) != -1) {
   		if (db) alert('period must not immediately follow @ in email address');
		field.focus();
   		field.select();
   		return false;
	}

	if (addr.indexOf('.@',0) != -1){
   		if (db) alert('period must not immediately precede @ in email address');
		field.focus();
   		field.select();
   		return false;
	}

	if (addr.indexOf('..',0) != -1) {
   		if (db) alert('two periods must not be adjacent in email address');
		field.focus();
   		field.select();
   		return false;
	}

	var suffix = addr.substring(addr.lastIndexOf('.')+1);

	if (	suffix.length != 2 && 
	    	suffix != 'com' &&
		suffix != 'net' &&
		suffix != 'org' &&
		suffix != 'edu' &&
		suffix != 'int' &&
		suffix != 'mil' &&
		suffix != 'gov' &&
		suffix != 'arpa' &&
		suffix != 'biz' &&
		suffix != 'aero' &&
		suffix != 'name' &&
		suffix != 'coop' &&
		suffix != 'info' &&
		suffix != 'pro' &&
		suffix != 'museum'
	   ) {
   		if (db) alert('invalid primary domain in email address');
		field.focus();
   		field.select();
   		return false;
	}
	return true;
}

/* ----- Limit Input To Selected Characters */

function letternumber(e, s)
{
var key;
var keychar;
var string;

string = " abcdefghijklmnopqrstuvwxyz0123456789!@#$%^*()-_=+~{}[]|\:;',.?/";

if (s=="#")						string = "0123456789";
if (s=="Phone")					string = "0123456789-";
if (s=="AN" || s==null)       		string = "abcdefghijklmnopqrstuvwxyz0123456789";
if (s=="PW" || s=="Password")			string = "abcdefghijklmnopqrstuvwxyz0123456789";
if (s=="ID" || s=="UserID")			string = "abcdefghijklmnopqrstuvwxyz0123456789_";
if (s=="NM" || s=="Name")    			string = "abcdefghijklmnopqrstuvwxyz0123456789' ";
if (s=="Se" || s=="Search")  			string = "abcdefghijklmnopqrstuvwxyz0123456789+ ";
if (s=="UR" || s=="URL" || s=="Address") 	string = "abcdefghijklmnopqrstuvwxyz0123456789-. ";    

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// alphas and numbers
else if (((string).indexOf(keychar) > -1))
   return true;
else
   return false;
}
//-->
