/**
 * @author J. Noah Keitel
 */
function changePage(val){
	window.location = val;
}

function currentPage(){
	page = document.location.href;
	return page;
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString());
	return;
}

function getCookie(c_name){
	if(document.cookie.length>0){
		c_start=document.cookie.indexOf(c_name + "=");
			alert(unescape(document.cookie));
		if (c_start != -1){
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
		}else if(c_end == -1){
			c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return "There has been an Error";
}

function matchTwoFields(id1,id2){
	var the_id1 = document.getElementById(id1).value;
	var the_id2 = document.getElementById(id2).value;
	if(the_id1!='' && the_id2!=''){
		if(the_id1==the_id2){
			return true;
		}else{
			return false;
		}
	}
	return false;
}

function toggleItineraryDaysVisibility(id){
	if (document.getElementById(id).style.display==''){
		document.getElementById(id).style.display='none'
		document.getElementById('img_'+id).src='images/arrow_right.png';
		document.getElementById('status_'+id).innerHTML='View';
		return;
	}else if (document.getElementById(id).style.display=='none'){
		document.getElementById(id).style.display=''
		document.getElementById('img_'+id).src='images/arrow_down.png';
		document.getElementById('status_'+id).innerHTML='Hide';
		return;
	}
}

function toggleItineraryVisibility(id){
	if (document.getElementById(id).style.display==''){
		document.getElementById(id).style.display='none'
		document.getElementById('img_'+id).src='images/arrow_right.png';
		return;
	}else if (document.getElementById(id).style.display=='none'){
		document.getElementById(id).style.display=''
		document.getElementById('img_'+id).src='images/arrow_down.png';
		return;
	}
}

function showGalleryImage(url,prev_a){
	showTransBG();
	previous_anchor = prev_a;
	location.href='media_gallery.php#top_of_page';
	centerWindow('image_container');
	var myimage = document.getElementById('image_container');
	myimage.innerHTML = "<img src='"+url+"' style='border:2px white solid;'>";
	myimage.style.zIndex = "9001";
	myimage.style.visibility = "visible";
	document.getElementById('close_button').style.visibility = "visible";
	document.getElementById('close_button').style.zIndex = "9001";
	return;
}

function hideGalleryImage(){
	centerWindow('image_container');
	var myimage = document.getElementById('image_container');
	myimage.innerHTML = "";
	myimage.style.visibility = "hidden";
	myimage.style.zIndex = "-1";
	document.getElementById('close_button').style.visibility = "hidden";
	document.getElementById('close_button').style.zIndex = "-1";
	hideTransBG();
	location.href='media_gallery.php#'+previous_anchor;
	return;
}


function showTransBG(){
	var bg = document.getElementById('trans_bg');
	bg.style.visibility = "visible";
	bg.style.zIndex = "9000";
	bg.style.width = "100%";
	bg.style.height = "100%";
	return;
}

function hideTransBG(){
	var bg = document.getElementById('trans_bg');
	bg.style.visibility = "hidden";
	bg.style.zIndex = "-2";
	bg.style.width = "0px";
	bg.style.height = "0px";
	return;
}


function centerWindow(myitemid){
	var w = findWindowSize().width;
	var h = findWindowSize().height;
	var area = document.getElementById(myitemid);
	
	var mywidth = area.offsetWidth;
	var myheight = area.offsetHeight;
	
	var l_pad = ((w-mywidth)/2)+"px";
	var t_pad = ((h-myheight)/2)+"px";
	
	area.style.left = l_pad;
	area.style.top = t_pad;
	return;
}

function findWindowSize(){
	var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth){
		//strict mode
		if(!(document.documentElement.clientWidth == 0)){
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}
 
function resizeBody(){
	var agent = navigator.userAgent.toLowerCase();
	var is_iphone = (agent.indexOf('iphone')!=-1);
	
	
		//opera Netscape 6 Netscape 4x Mozilla 
		if (window.innerWidth || window.innerHeight){ 
			docwidth = window.innerWidth; 
			docheight = window.innerHeight; 
		} 
		//IE Mozilla 
		if (document.body.clientWidth || document.body.clientHeight){ 
			docwidth = document.body.clientWidth; 
			docheight = document.body.clientHeight; 
		} 
	
	
	var x = (docwidth-amount)+"px";
	var y = (docheight-amount)+"px";
	document.getElementById('body').style.width = x;
	document.getElementById('body').style.height = y;
	return;
}
 
function urlEncodeCharacterReplace(value){
	value = value.replace(/#/g,'%23');
	value = value.replace(/&/g,'%26');
	value = value.replace(/[+]/g,'%2b');
	value = value.replace(/\n/g, "%0d");
	
	return value;
}

function imposeMaxLength(Object, MaxLen){
  return (Object.value.length <= MaxLen);
}

function imageSetIVC(){
	var xmlHttp = GetXmlHttpObject();
	    
    if (xmlHttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
   	
    var url2 = "script/queryDB.php";
    var url2 = url2 + "?f=imageSetIVC";
    var url2 = url2 + "&sid=" + Math.random();
   
	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
			rcars_value = xmlHttp.responseText;
		}
	};
	
    xmlHttp.open("GET", url2, true);
    xmlHttp.send(null);
}

function imageValidation(r_val){
	if(r_val==rcars_value){
		return true;
	}else if(r_val!=rcars_value){
		return false;
	}
	
}
 function sendContactEmail(rcars,to,from,subject,message,rm,em,display_result_area){
	if(imageValidation(rcars)==true){
		var to = urlEncodeCharacterReplace(to);
	 	var from = urlEncodeCharacterReplace(from);
	 	var subject = urlEncodeCharacterReplace(subject);
		var message = urlEncodeCharacterReplace(message);
	
		var xmlHttp = GetXmlHttpObject();
		    
	    if (xmlHttp == null) {
	        alert("Browser does not support HTTP Request");
	        return;
	    }
	   
	    var url = "script/queryDB.php";
	    url = url + "?f=sendContactEmail&to=" + to + "&from=" + from + "&subject=" + subject + "&message=" + message + "&rm=" + rm + "&em=" + em;
	    url = url + "&sid=" + Math.random();
	    
		xmlHttp.onreadystatechange = function(){
			stateChanged(xmlHttp,display_result_area);
			sendContactEmail_reset_fields();
		}
		
	    xmlHttp.open("GET", url, true);
	    xmlHttp.send(null);
		return;
	}else{
		document.getElementById('rcars').style.backgroundColor = "#FFd2d2";
		return;
	}
}


 function sendContactEmail_reset_fields(){
 	document.getElementById('sendContactEmail_result').style.display="";
 	document.getElementById('sendContactEmail_result').style.visibility="visible";
 	document.getElementById('email_from').value="";
 	document.getElementById('email_subject').value="";
 	document.getElementById('email_message').value="";
 	document.getElementById('rcars').style.backgroundColor="#FFFFFF";
 	document.getElementById('send_button').disabled=true;
	return;
 }

function resetEmailFields(){
	var mail_area_id = document.getElementById('sendContactEmail_result');
	mail_area_id.style.display='none';
	mail_area_id.style.height = "500px";
	document.getElementById('send_button').disabled=false;
	document.getElementsById("page_body").style.height="100px";
	return;
}



function chooseEventStartDate(season_id,datetime_start,datetime_finish,trip_length,result_id){
	var o = GetXmlHttpObject();
		    
	if (o == null) {
		alert("Browser does not support HTTP Request");
		return;
	}
	
	var url = "cms/class/chooseSeason.php";
	url = url + "?f=buildCalendars&season_id="+season_id+"&datetime_start="+datetime_start+"&datetime_finish="+datetime_finish+"&trip_length="+trip_length;
	url = url + "&sid=" + Math.random();
	
	o.onreadystatechange = function(){
		stateChangedWithCon(o,result_id);
	}
	
	o.open("GET", url, true);
	o.send(null);
	return;
}

selected_day_id="";
function pickStartDateColor(day_id){
	if(!selected_day_id){
		selected_day_id=day_id;
		document.getElementById(selected_day_id).style.color="#008800";
		return;
	}else{
		document.getElementById(selected_day_id).style.color="#000000";
		document.getElementById(day_id).style.color="#008800";
		selected_day_id = day_id;
		return;
	}
}

function insertDBPeopleStepOne(){
	showAddBox('200','50');
	document.getElementById('addPeopleMessageArea').innerHTML = '';
	var email_address = document.getElementById('up_email_address').value;
	var r_val = document.getElementById('rcars').value;
	if(imageValidation(r_val) == true) {
		if (email_address != '') {
			return checkForExistingInDB('main', 'up', 'up_email_address', email_address, 'insertDBPeopleStepOne');
		}else{
			hideAddBox();
			document.getElementById('create_account').disabled = false;
			alert('You must complete all required fields before continuing...');
			return;
		}
	}else{
		hideAddBox();
		document.getElementById('create_account').disabled = false;
		alert('You have not entered the correct code from the validation box.  Please try again.  If you are having trouble reading the text, please refresh your page to get a new image.');
		return;
	}
	return;
}

function insertDBPeopleStepTwo(){
	var username = document.getElementById('username').value;
	if (username != '') {
		return checkForExistingInDB('main', 'up', 'username', username, 'insertDBPeopleStepTwo');
	}else{
		hideAddBox();
		document.getElementById('create_account').disabled = false;
		alert('You must complete all required fields before continuing...');
		return;
	}
}

function insertDBPeople(){
	var salutation = document.getElementById('salutations_id').options[document.getElementById('salutations_id').selectedIndex].value;
	var first_name = document.getElementById('first_name').value;
	var middle_name = document.getElementById('middle_name').value;
	var last_name = document.getElementById('last_name').value;
	var email_address = document.getElementById('up_email_address').value;
	var username = document.getElementById('username').value;
	
	if(first_name!='' && last_name!='' && email_address!='' && username!=''){
		document.getElementById('create_account').disabled=true;
		var pw = getPassword('12');
		var table = 'people--MA--up--MA--p_people_shipping_billing_addresses--MA--biographies';
		var field_names = 'first_name--SSA--middle_name--SSA--last_name--SSA--salutations_id--MA--username--SSA--password--SSA--access_level_id--SSA--people_id--SSA--up_email_address--MA--people_id--MA--people_id';
		var field_values = first_name+'--SSA--'+middle_name+'--SSA--'+last_name+'--SSA--'+salutation+'--MA--'+username+'--SSA--'+pw+'--SSA--5--SSA--FiRsT..Id..InSeRtEd!--SSA--'+email_address+'--MA--FiRsT..Id..InSeRtEd!--MA--FiRsT..Id..InSeRtEd!';
		return insertDB(false,'main','insertDBSetSession',table,field_names,field_values,'createAccountEmail1','');
	}else{
		document.getElementById('create_account').disabled=false;
		hideAddBox();
		alert('You must complete all required fields before continuing...');
		return;
	}
	return;
}

function changeAccountPassword(old_password_id,new_password_id){
	document.getElementById('message_center').innerHTML = '';
	showAddBoxLoading();
	var old_password = document.getElementById(old_password_id).value;
	var person_id = document.getElementById('account_person_id').value;
	
	return checkAccountPW(person_id,old_password,'changeAccountPassword-'+person_id+'-'+new_password_id+'-'+old_password_id);
}

function changeAccountPasswordStep2(person_id,new_password_id){
	var new_password = document.getElementById(new_password_id).value;
	
	return updateDB(false,'main','updateDB','up',person_id,'password',new_password,'changeAccountPasswordStep2-'+person_id+'-'+new_password_id,'');
}

function sendEmail(method,toArray,emailSubject,emailBody,display_result_area){
	var xmlHttp = GetXmlHttpObject();

    if (xmlHttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
	
    var url = "script/sendEmail.php";
	
    url = url + "?m="+method+"&to="+toArray+"&sub="+emailSubject+"&bod="+emailBody;
    url = url + "&sid=" + Math.random();
	
    xmlHttp.open("GET", url, true);
    xmlHttp.onreadystatechange = function(){
		stateChanged(xmlHttp,display_result_area);
	}
    xmlHttp.send(null);
	return;
}

function centerWindow(myitemid){
	var w = findWindowSize().width;
	var h = findWindowSize().height;
	var area = document.getElementById(myitemid);
	
	var mywidth = area.offsetWidth;
	var myheight = area.offsetHeight;
	
	var l_pad = ((w-mywidth)/2)+"px";
	var t_pad = ((h-myheight)/2)+"px";
	
	area.style.left = l_pad;
	area.style.top = t_pad;
	return;
}

//ADD BOX ADD FUNCTIONS ====================================================================================================================
function showAddBox(width,height){
	document.getElementById('opaque_div').style.visibility = 'visible';
	document.getElementById('add_box').style.width = width+'px';
	document.getElementById('add_box').style.height = height+'px';
	document.getElementById('add_box_loading').style.width = width+'px';
	document.getElementById('add_box_loading').style.height = height+'px';
	centerWindow('add_box_loading');
	centerWindow('add_box');
	showAddBoxLoading();
	document.getElementById('add_box').style.visibility = 'visible';
	return;
}

function hideAddBox(){
	document.getElementById('add_box').style.visibility = 'hidden';
	document.getElementById('add_box_loading').style.visibility = 'hidden';
	document.getElementById('opaque_div').style.visibility = 'hidden';
	document.getElementById('add_box').innerHTML = '';
	return;
}

function showAddBoxLoading(){
	document.getElementById('add_box_loading_icon').style.verticalAlign = 'middle';
	document.getElementById('add_box_loading').style.visibility = 'visible';
	return;
}

function hideAddBoxLoading(){
	document.getElementById('add_box_loading').style.visibility = 'hidden';
	return;
}

////////////////////////////////////////////////////////////////////////////////
///////////////////PASSWORD GENERATION/////////////////////////////////////////
function getRandomNum(lbound, ubound) {
	return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
				
function getRandomChar(number, lower, upper, other) {
	var numberChars = "0123456789";
	var lowerChars = "abcdefghijklmnopqrstuvwxyz";
	var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
	var charSet = '';
	
	
	
	if (number == true)
	charSet += numberChars;
	if (lower == true)
	charSet += lowerChars;
	if (upper == true)
	charSet += upperChars;
	if (other == true)
	charSet += otherChars;
	
	return charSet.charAt(getRandomNum(0, charSet.length));
}
				
function getPassword(length) {
	var rc = "";
	firstNumber=true;
	firstLower=true;
	firstUpper=true;
	firstOther=false;
	
	latterNumber=true;
	latterLower=true;
	latterUpper=true;
	latterOther=false;
	
	
	
	if (length > 0)
	rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther);
	
	for (var idx = 1; idx < length; ++idx) {
		rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther);
	}
	return rc;
}

function createEventDB(){
	showAddBox('75','75');
	document.getElementById('addEventMessageArea').innerHTML = '';
	var r_val = document.getElementById('rcars').value;
	if(imageValidation(r_val) == true) {
		//document.getElementById('submit_my_event').submit();
		var d = new Date();
		var year = d.getFullYear();
		var month = (d.getMonth()-0)+1;
			if(month<10){
				var month = '0'+month;
			}
		var day = d.getDate();
			if(day<10){
				var day = '0'+day;
			}
		var hour = d.getHours();
			if(hour<10){
				var hour = '0'+hour;
			}
		var minute = d.getMinutes();
			if(minute<10){
				var minute = '0'+minute;
			}
		var second = d.getSeconds();
			if(second<10){
				var second = '0'+second;
			}
		
		var datetime = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;
		
		var field_namesArray = 'objects_id--SSA--labels_id--SSA--people_id--SSA--color_id--SSA--access_level_id--SSA--datetime_start--SSA--datetime_finish--SSA--all_day_event--SSA--title--SSA--location--SSA--date_added--SSA--approval_status--SSA--itineraries_id--SSA--captain_id--SSA--season_names_dates_id';
		var field_valuesArray = document.getElementById('objects_id').value+"--SSA--21--SSA--"+document.getElementById('event_person_id').value+"--SSA--"+document.getElementById('event_color_id').value+"--SSA--5--SSA--"+document.getElementById('event_datetime_start').value+"--SSA--"+document.getElementById('event_datetime_finish').value+"--SSA--"+document.getElementById('all_day_event').value+"--SSA--Chartered Event--SSA--BVI--SSA--"+datetime+"--SSA--pending--SSA--"+document.getElementById('itineraries_id').value+"--SSA--"+document.getElementById('captain_id').value+"--SSA--"+document.getElementById('season_id').value;
		return insertDB(false,'main','insertDB','events',field_namesArray,field_valuesArray,'add_an_event','');
	}else{
		hideAddBox();
		document.getElementById('next_button').disabled = false;
		alert('You have not entered the correct code from the validation box.  Please try again.  If you are having trouble reading the text, please refresh your page to get a new image.');
		return;
	}
	return;
}

function changeWindow(the_page){
	window.location = the_page;
	return;
}

//AJAX CALLING FUNCTIONS
//STATE CHANGED FUNCTIONS======================================================================================
function stateChangedWithCon(o,result_id){
    if (o.readyState == 4 || o.readyState == "complete") {
		if(o.status==200){
			document.getElementById(result_id).innerHTML = o.responseText;
			o.setRequestHeader("Connection", "close");
			o.close;
			return;
		}else{
			alert(o.responseText);
		}
    }
}
function stateChangedRcarsValue(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
       	alert(xmlHttp.responseText);
    }
}

function stateChangedConfirmBox(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById('add_box').innerHTML = xmlHttp.responseText;
		document.getElementById('add_box_loading').style.visibility = 'hidden';
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.close;	
		return;
    }
}

trueTransaction = "TrAnSaCtIoN..TrUe!";
falseTransaction = "TrAnSaCtIoN..FaLsE!";
errorMessage = "There was an error. Please try again later.";

function stateChanged(xmlHttp,display_result_area){
    if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
		var responseText = xmlHttp.responseText;
		var display_result_areaArray = display_result_area.split("-");
		if(display_result_areaArray[0]=="change_page"){
			if(responseText.match(trueTransaction)==trueTransaction){
				var change_page_location=display_result_areaArray[1];
				return changeWindow(change_page_location);
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match(falseTransaction)==falseTransaction){
				showSystemMessage("false");
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='insertDBPeopleStepOne'){
			if(responseText=='Available'){
				return insertDBPeopleStepTwo();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText=='Already Exists'){
				document.getElementById('create_account').disabled=false;
				hideAddBox();
				document.getElementById('addPeopleMessageArea').innerHTML = "Email Address Already Exists in Database. Please Choose Another For This Account.";
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='insertDBPeopleStepTwo'){
			if(responseText=='Available'){
				return insertDBPeople();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText=='Already Exists'){
				document.getElementById('create_account').disabled=false;
				hideAddBox();
				document.getElementById('addPeopleMessageArea').innerHTML = "Username Already Exists in Database. Please Choose Another For This Account.";
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='add_an_event'){
			if(responseText.match(trueTransaction)==trueTransaction){
				return changeWindow('event_success.php');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match(falseTransaction)==falseTransaction){
				alert('You event was not uploaded correctly.  Please try again later.');
				hideAddBox();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='createAccountEmail1'){
			if(responseText.match(trueTransaction)==trueTransaction){
				return sendEmail('accountCreated','','','','createAccountEmail2-success.php');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match(falseTransaction)==falseTransaction){
				hideAddBox();
				alert('Your Account was not created.  Please try again later.');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='createAccountEmail2'){
			if(responseText.match('EmAiL_SeNt!')=='EmAiL_SeNt!'){
				var change_page_location=display_result_areaArray[1];
				return changeWindow(change_page_location);
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match('EmAiL_NoT_SeNt!')=='EmAiL_NoT_SeNt!'){
				hideAddBox();
				alert(responseText+' Account was created, but an email was not sent.  Please contact site administrator to retrieve your login information');
				return changeWindow('index.php');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='changeAccountPassword'){
			if(responseText.match('--Match--')=='--Match--'){
				return changeAccountPasswordStep2(display_result_areaArray[1],display_result_areaArray[2]);
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match('--No Match--')=='--No Match--'){
				document.getElementById(display_result_areaArray[3]).value='';
				document.getElementById(display_result_areaArray[3]).focus();
				document.getElementById('add_box_password_match').innerHTML = "Your Old Password was not correct.<br>  Please try again.";
				hideAddBoxLoading();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='changeAccountPasswordStep2'){
			if(responseText.match(trueTransaction)==trueTransaction){
				var the_password = document.getElementById(display_result_areaArray[2]).value;
				alert(the_password);
				return sendEmail('userResetPasswordEmail',display_result_areaArray[1],'',the_password,'userResetPasswordEmail')
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match(falseTransaction)==falseTransaction){
				document.getElementById('message_center').innerHTML = "Your password failed to update.  Please try again later";
				hideAddBox();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='userResetPasswordEmail'){
			if(responseText.match('EmAiL_SeNt!')=='EmAiL_SeNt!'){
				document.getElementById('message_center').innerHTML = "Your password has successfully been updated. An email has been sent to you for your records.";
				hideAddBox();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}else if(responseText.match('EmAiL_NoT_SeNt!')=='EmAiL_NoT_SeNt!'){
				document.getElementById('message_center').innerHTML = "Your password has successfully been updated. Make sure to write it down for future reference.";
				hideAddBox();
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				return;
			}
		}else if(display_result_areaArray[0]=='sendContactEmail_result'){
			alert('your message was sent');	
			var result_id = display_result_areaArray[0];
			document.getElementById(result_id).innerHTML = xmlHttp.responseText;
		}else{
			if(responseText.match(trueTransaction)==trueTransaction){
				showSystemMessage('Changes Saved');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;
				hideAddBox();
				return;
			}else if(responseText.match(falseTransaction)==falseTransaction){
				showSystemMessage('Changes not saved.  Please try again later.');
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.close;						 
				hideAddBox();
				return;
			}
		}
	}
}


function stateChanged2(id,id2){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
       	document.getElementById(id).innerHTML = xmlHttp.responseText;
		document.getElementById('mailinglist'+id2).disabled = false;
    }
}

function stateChangedTwoResults(output_location1,result_message2,output_location2){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
       	document.getElementById(output_location1).innerHTML = xmlHttp.responseText;
		document.getElementById(output_location2).innerHTML = result_message2;
    }
}

function GetXmlHttpObject(){
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } 
    catch (e) {
        //Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

//AJAX FUNCTION//////////////////////////////////
function queryDB(level,ajaxFunction,theQuery,display_result_area){
	var xmlHttp = GetXmlHttpObject();

    if (xmlHttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    
	if(level=="main"){
		var url = "script/queryDB.php";
	}else if(level=="widget"){
		var url = "../script/queryDB.php";
	}
	
    url = url + "?f="+ajaxFunction+"&"+ajaxQuery;
    url = url + "&sid=" + Math.random();
	
    xmlHttp.open("GET", url, true);
	
		xmlHttp.onreadystatechange = function(){
			stateChanged(xmlHttp,display_result_area);
		}
    xmlHttp.send(null);
	
	return;
}

function createConfirmBox(method,message,confirm_button,js_function,js_variables,cancel_button){
	
	xmlHttp = GetXmlHttpObject();

    if (xmlHttp == null) {
        alert("Browser does not support HTTP Request");
        return;
    }
	
	var url = "script/createConfirmBox.php";
	
    url = url + "?m="+method+"&mes="+message+"&conf="+confirm_button+"&jsf="+js_function+"&jsv="+js_variables+"&canc="+cancel_button;
    url = url + "&sid=" + Math.random();
    
    xmlHttp.open("GET", url, true);
	
	xmlHttp.onreadystatechange = function(){
			stateChangedConfirmBox();
	}
	
    xmlHttp.send(null);
	return;
}

function checkAccountPW(person_id,old_password,display_result_area){
	ajaxQuery = "ID="+person_id+"&value="+old_password;
	return queryDB('main','checkAccountPW',ajaxQuery,display_result_area);
}

function checkForExistingInDB(level,table,field_name,field_value,display_result_area){
	ajaxQuery = "table="+table+"&field_name="+field_name+"&field_value="+field_value;
	return queryDB(level,'checkForExistingInDB',ajaxQuery,display_result_area);
}

function insertDB(verify,level,ajaxFunction,tablesArray,field_namesArray,field_valuesArray,display_result_area,confirm_message){
	if(verify==false){
		ajaxQuery = "tables="+tablesArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
		return queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
	}else{
		if(confirm(confirm_message)){
			ajaxQuery = "tables="+tablesArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
			return queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
		}else{
			//alert("Item Not Added.");
			return;
		}
	}
}

function updateDB(verify,level,ajaxFunction,tablesArray,idsArray,field_namesArray,field_valuesArray,display_result_area,confirm_message){
	if(verify==false){
		ajaxQuery = "tables="+tablesArray+"&ids="+idsArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
		queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
		return;
	}else{
		if(confirm(confirm_message)){
			ajaxQuery = "tables="+tablesArray+"&ids="+idsArray+"&field_names="+field_namesArray+"&field_values="+field_valuesArray;
			queryDB(level,ajaxFunction,ajaxQuery,display_result_area);
			return;
		}else{
			//alert("Item Not Updated.");
			return;
		}
	}
}


/***********************************************
* Ultimate Fade-In Slideshow (v1.51): � Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var fadebgcolor="white"

////NO need to edit beyond here/////////////
 
var fadearray=new Array() //array to cache fadeshow instances
var fadeclear=new Array() //array to cache corresponding clearinterval pointers
 
var dom=(document.getElementById) //modern dom browsers
var iebrowser=document.all
 
function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder){
this.pausecheck=pause
this.mouseovercheck=0
this.delay=delay
this.degree=10 //initial opacity degree (10%)
this.curimageindex=0
this.nextimageindex=1
fadearray[fadearray.length]=this
this.slideshowid=fadearray.length-1
this.canvasbase="canvas"+this.slideshowid
this.curcanvas=this.canvasbase+"_0"
if (typeof displayorder!="undefined")
theimages.sort(function() {return 0.5 - Math.random();}) //thanks to Mike (aka Mwinter) :)
this.theimages=theimages
this.imageborder=parseInt(borderwidth)
this.postimages=new Array() //preload images
for (p=0;p<theimages.length;p++){
this.postimages[p]=new Image()
this.postimages[p].src=theimages[p][0]
}
 
var fadewidth=fadewidth+this.imageborder*2
var fadeheight=fadeheight+this.imageborder*2
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers (ie: Firefox)
document.write('<div id="master'+this.slideshowid+'" style="position:relative;width:'+fadewidth+'px;height:'+fadeheight+'px;overflow:hidden;"><div id="'+this.canvasbase+'_0" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div><div id="'+this.canvasbase+'_1" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div></div>')
else
document.write('<div><img name="defaultslide'+this.slideshowid+'" src="'+this.postimages[0].src+'"></div>')
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers such as Firefox
this.startit()
else{
this.curimageindex++
setInterval("fadearray["+this.slideshowid+"].rotateimage()", this.delay)
}
}

function fadepic(obj){
if (obj.degree<100){
obj.degree+=5
if (obj.tempobj.filters&&obj.tempobj.filters[0]){
if (typeof obj.tempobj.filters[0].opacity=="number") //if IE6+
obj.tempobj.filters[0].opacity=obj.degree
else //else if IE5.5-
obj.tempobj.style.filter="alpha(opacity="+obj.degree+")"
}
else if (obj.tempobj.style.MozOpacity)
obj.tempobj.style.MozOpacity=obj.degree/101
else if (obj.tempobj.style.KhtmlOpacity)
obj.tempobj.style.KhtmlOpacity=obj.degree/100
else if (obj.tempobj.style.opacity&&!obj.tempobj.filters)
obj.tempobj.style.opacity=obj.degree/101
}
else{
clearInterval(fadeclear[obj.slideshowid])
obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0")? obj.canvasbase+"_0" : obj.canvasbase+"_1"
obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas)
obj.populateslide(obj.tempobj, obj.nextimageindex)
obj.nextimageindex=(obj.nextimageindex<obj.postimages.length-1)? obj.nextimageindex+1 : 0
setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", obj.delay)
}
}
 
fadeshow.prototype.populateslide=function(picobj, picindex){
var slideHTML="";
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML='<a href="'+this.theimages[picindex][1]+'" target="'+this.theimages[picindex][2]+'">';
slideHTML+='<img src="'+this.postimages[picindex].src+'" border="'+this.imageborder+'px">';
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML+='</a>';
picobj.innerHTML=slideHTML;
}
 
 
fadeshow.prototype.rotateimage=function(){

if (this.pausecheck==1) //if pause onMouseover enabled, cache object
var cacheobj=this
if (this.mouseovercheck==1)
setTimeout(function(){cacheobj.rotateimage()}, 100)
else if (iebrowser&&dom||dom){
this.resetit()
var crossobj=this.tempobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
crossobj.style.zIndex++
fadeclear[this.slideshowid]=setInterval("fadepic(fadearray["+this.slideshowid+"])",50)
this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
}
else{
var ns4imgobj=document.images['defaultslide'+this.slideshowid]
ns4imgobj.src=this.postimages[this.curimageindex].src
}
this.curimageindex=(this.curimageindex<this.postimages.length-1)? this.curimageindex+1 : 0
}
 
fadeshow.prototype.resetit=function(){
this.degree=10
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
if (crossobj.filters&&crossobj.filters[0]){
if (typeof crossobj.filters[0].opacity=="number") //if IE6+
crossobj.filters(0).opacity=this.degree
else //else if IE5.5-
crossobj.style.filter="alpha(opacity="+this.degree+")"
}
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=this.degree/101;
else if (crossobj.style.KhtmlOpacity)
crossobj.style.KhtmlOpacity=this.degree/100;
else if (crossobj.style.opacity&&!crossobj.filters)
crossobj.style.opacity=this.degree/101;
}
 
 
fadeshow.prototype.startit=function(){
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
this.populateslide(crossobj, this.curimageindex)
if (this.pausecheck==1){ //IF SLIDESHOW SHOULD PAUSE ONMOUSEOVER
var cacheobj=this
var crossobjcontainer=iebrowser? iebrowser["master"+this.slideshowid] : document.getElementById("master"+this.slideshowid)
crossobjcontainer.onmouseover=function(){cacheobj.mouseovercheck=1}
crossobjcontainer.onmouseout=function(){cacheobj.mouseovercheck=0}
}
this.rotateimage()
}


////////////USERNAME VALIDATION SCRIPT//////////////////////////////////////////////
function validateUsernameField(input_id,strength_id,enable_id){
	var strength_invalid = new Image;
	var strength_none = new Image;
	var strength_01 = new Image;
	var strength_02 = new Image;
	var strength_03 = new Image;
	var strength_04 = new Image;
	
	strength_invalid.src="images/strength_meter/strength_invalid.gif";
	strength_none.src="images/strength_meter/strength_none.gif";
	strength_01.src="images/strength_meter/strength_01.gif";
	strength_02.src="images/strength_meter/strength_02.gif";
	strength_03.src="images/strength_meter/strength_03.gif";
	strength_04.src="images/strength_meter/strength_04.gif";
	
	var strength = document.getElementById(strength_id);
	
	var superstrongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var validRegex = new RegExp("^(?=.{8,})(((?=.*[A-Z])||(?=.*[a-z])||(?=.*[0-9])||(?=[._-])))(?!.*\\W).*$", "g");
	var enoughRegex = new RegExp("(?=.{8,}).*", "g");
	var enoughbadcharRegex = new RegExp("(?=.{8,})(?=.*\\W).*", "g");
	
	var input_id = document.getElementById(input_id);
	
	if (input_id.value.length==0) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_none.gif" style="border-width:0px;">&nbsp;&nbsp;Password Validation Meter';
	}else if(false == enoughRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_01.gif" style="border-width:0px;">&nbsp;&nbsp;You need at least '+(8-input_id.value.length)+' more characters</span>';
	}else if(validRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=false;
		strength.innerHTML = '<img src="images/strength_meter/strength_04.gif" style="border-width:0px;">&nbsp;&nbsp;Approved';
	}else if(enoughbadcharRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;Invalid Character(s) Found';
	}else{
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;Not Valid';
	}
}


function validatePasswordField(input_id,strength_id,enable_id){
	var strength_invalid = new Image;
	var strength_none = new Image;
	var strength_01 = new Image;
	var strength_02 = new Image;
	var strength_03 = new Image;
	var strength_04 = new Image;
	
	strength_invalid.src="images/strength_meter/strength_invalid.gif";
	strength_none.src="images/strength_meter/strength_none.gif";
	strength_01.src="images/strength_meter/strength_01.gif";
	strength_02.src="images/strength_meter/strength_02.gif";
	strength_03.src="images/strength_meter/strength_03.gif";
	strength_04.src="images/strength_meter/strength_04.gif";
	
	var strength = document.getElementById(strength_id);
	
	var superstrongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var validRegex = new RegExp("^(?=.{8,})(((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])))(?!.*\\W).*$", "g");
	var noNumberOrCapitalRegex = new RegExp("^(?=.{8,})((?!.*[0-9])(?!.*[A-Z]))(?!.*\\W).*$", "g");
	var noNumberRegex = new RegExp("^(?=.{8,})(?!.*[0-9])(?!.*\\W).*$", "g");
	var noCapitalRegex = new RegExp("^(?=.{8,})(?!.*[A-Z])(?!.*\\W).*$", "g");
	var noLowerRegex = new RegExp("^(?=.{8,})(?!.*[a-z])(?!.*\\W).*$", "g");
	var enoughRegex = new RegExp("(?=.{8,}).*", "g");
	var enoughbadcharRegex = new RegExp("(?=.{8,})(?=.*\\W).*", "g");
	
	var input_id = document.getElementById(input_id);
	
	if (input_id.value.length==0) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_none.gif" style="border-width:0px;">&nbsp;&nbsp;Username Validation Meter';
	}else if(false == enoughRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_01.gif" style="border-width:0px;">&nbsp;&nbsp;You need at least '+(8-input_id.value.length)+' more characters</span>';
	}else if(validRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=false;
		strength.innerHTML = '<img src="images/strength_meter/strength_04.gif" style="border-width:0px;">&nbsp;&nbsp;Approved';
	}else if(noNumberOrCapitalRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;No Capital Letter or Number Included';
	}else if(noNumberRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;No Number Included';
	}else if(noCapitalRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;No Capital Letter Included';
	}else if(noLowerRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;No Lowercase Letters Included';
	}else if(enoughbadcharRegex.test(input_id.value)) {
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;Invalid Character(s) Found';
	}else{
		document.getElementById(enable_id).disabled=true;
		strength.innerHTML = '<img src="images/strength_meter/strength_invalid.gif" style="border-width:0px;">&nbsp;&nbsp;Not Valid';
	}
}