// JavaScript Document

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function getHTTPObject(){
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}

function popup(url, width, height, name) {
	if (!name) {
		name = '_popup';
	}

	window.open(url.replace(/&amp;/g, '&' ), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width);
	return false;
}

function changeFontSize(action) {

	var minFontSize   = 10;
	var maxFontSize   = 18;
	var fontSize      = document.getElementById('article_content').style.fontSize;
	var lineHeight    = document.getElementById('article_content').style.lineHeight;

	fontSize.replace("px","") ;
	lineHeight.replace("px","") ;

	if(fontSize == "") {
		fontSize = parseInt(13);
	}

	if(lineHeight == "") {
		lineHeight = parseInt(18);
	}

	// decrease font size //
	if(action == "-" && parseInt(fontSize) >= minFontSize) {
		document.getElementById('article_content').style.fontSize   = (parseInt(fontSize) - 2) + "px";
		document.getElementById('article_content').style.lineHeight = (parseInt(lineHeight) - 2) + "px";
	}

	// increase font size //
	if(action == "+" && parseInt(fontSize) <= maxFontSize) {
		document.getElementById('article_content').style.fontSize   = (parseInt(fontSize) + 2) + "px";
		document.getElementById('article_content').style.lineHeight = (parseInt(lineHeight) + 2) + "px";
	}

}


function checkUser() {
	var username = document.registerForm.r_username.value;

	httpObject = getHTTPObject();

	if (httpObject != null) {

		httpObject.open("GET", "/includes/ajax/checkuser.php?username=" + username, true);
		httpObject.send(null);
		httpObject.onreadystatechange = verifyUser;

	}
}

function verifyUser() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;

		// if the users browser is Internet Explorer //
		if(navigator.appName == "Microsoft Internet Explorer") {
			document.getElementById("availability").style.display = 'inline';
		} else {
			document.getElementById("availability").style.display = 'table-row';
		}

		// if username is available
		if(getResponse == "true") {
			document.getElementById("availability").innerHTML = '<br />Yes! the name is available';
		// if username is taken
		} else if(getResponse == "false") {
			document.getElementById("availability").innerHTML = '<br />Sorry, that Screen Name is already taken.<br />Please select another.';
		// if username field is empty
		} else if(getResponse == "empty") {
			document.getElementById("availability").innerHTML = '<br />Please enter a Screen Name';
		}
	}
}

function verifyRegisterForm() {
	r_username = document.getElementById('r_username').value;
	r_email    = document.getElementById('r_email').value;
	r_password = document.getElementById('r_password').value;
	r_confirm  = document.getElementById('r_confirm').value;
	var errors = false;

	// determines browser and what status change based on that browser
	if(navigator.appName == "Microsoft Internet Explorer") {
		type = 'inline';
	} else {
		type = 'table-row';
	}

	// preg_match email address chars
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

	// if email isn't valid
	if(reg.test(r_email) == false) {
		// set error fields
		errors = true;
		document.getElementById('ast_r_email').style.display = type;
		document.getElementById('ast_r_email').innerHTML = "<br />In-Valid E-Mail";
	} else {
		// unset error fields
		document.getElementById('ast_r_email').style.display = 'none';
		document.getElementById('ast_r_email').innerHTML = "&nbsp;";
	}

	// if values are less than 7 characters
	if(document.getElementById('r_password').value.length < 7 || document.getElementById('r_confirm').value.length < 7) {

		errors = true;

		// if password value is less than 7 characters
		if(document.getElementById('r_password').value.length < 7) {
			document.getElementById('ast_r_password').style.display = type;
			document.getElementById('ast_r_password').innerHTML = "<br />Min. 7 Characters Needed";
		} else {
			document.getElementById('ast_r_password').style.display = 'none';
			document.getElementById('ast_r_password').innerHTML = "&nbsp;";
		}

		// if confirm value is less than 7 characters
		if(document.getElementById('r_confirm').value.length < 7) {
			document.getElementById('ast_r_confirm').style.display = type;
			document.getElementById('ast_r_confirm').innerHTML = "<br />Min. 7 Characters Needed";
		} else {
			document.getElementById('ast_r_confirm').style.display = 'none';
			document.getElementById('ast_r_confirm').innerHTML = "&nbsp;";
		}

	// otherwise
	} else {

		// if passwords don't match
		if(r_password != r_confirm) {
			document.getElementById('ast_r_password').style.display = type;
			document.getElementById('ast_r_confirm').style.display = type;
			document.getElementById('ast_r_password').innerHTML = "*";
			document.getElementById('ast_r_confirm').innerHTML = "*";
			errors = true;
		} else {
			document.getElementById('ast_r_password').style.display = 'none'
			document.getElementById('ast_r_confirm').style.display = 'none';
			document.getElementById('ast_r_password').innerHTML = "&nbsp;";
			document.getElementById('ast_r_confirm').innerHTML = "&nbsp;";
		}

	}

	// check if user has read terms and conditions
	if(document.getElementById('readterms').checked == true) {
		document.getElementById('termsAgree').innerHTML = "&nbsp;";
		document.getElementById('termsAgree').style.display = 'none';
	} else {
		document.getElementById('termsAgree').innerHTML = "You must agree to the Terms &amp; Conditions";
		document.getElementById('termsAgree').style.display = type;
		errors = true;
	}

	if(errors == false) {
		document.registerForm.submit();
	}

}

function logout() {
	var answer = confirm("ALERT!!!\nAre you sure you want to Logout?");

	if(answer) {
		document.getElementById('logout').value = 'yes';
		document.logoutForm.submit();
	}
}

function forgotpassword() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById('passwordfield').innerHTML = getResponse;
	}
}

function resetPassword() {
	var r_email = document.getElementById("f_email").value;

	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null) {
		httpObject.open("GET", "/includes/ajax/forgotpassword.php?email=" + r_email, true);
		httpObject.send(null);
		httpObject.onreadystatechange = forgotpassword;			
	}
}

function postComments(asset_type) {
	var commentBox = escape(document.getElementById('commentBox').value);
	var asset_id   = document.getElementById('asset_id').value;
	var error = false;

	if(commentBox == "") {
		alert('Please enter a comment');
		error = true;
	}

	if(error == false) {
		httpObject = getHTTPObject();

		if (httpObject != null) {
			httpObject.open("GET", "/includes/ajax/postComment.php?asset_type=" + asset_type + "&asset_id=" + asset_id + "&commentBox=" + commentBox, true);
			httpObject.send(null);
			httpObject.onreadystatechange = updateComments;
		}
	}
}

function updateCommentPage(page, asset_type, asset_id) {

	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null) {
		httpObject.open("GET", "/includes/common/showcomments.inc.php?page=" + page + "&asset_type=" + asset_type + "&asset_id=" + asset_id, true);
		httpObject.send(null);

		httpObject.onreadystatechange = updateComments;			
	}

}
function updateComments() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById("showcomments").innerHTML = getResponse;
	}
}

function changePostDate(url) {
	popup(url, 500, 600, '_date');
	return false;
}

function reccomendArticleEmail() {
	var yourname	   = document.getElementById('yourname').value;
	var youremail  	   = document.getElementById('youremail').value;
	var recepientname  = document.getElementById('recepientname').value;
	var recepientemail = document.getElementById('recepientemail').value;
	var errors		   = false;

	// determines browser and what status change based on that browser
	if(navigator.appName == "Microsoft Internet Explorer") {
		type = 'inline';
	} else {
		type = 'table-row';
	}

	// preg_match email address chars
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

	// if user's name is empty
	if(yourname == "") {
		errors = true;
		document.getElementById('r_yourname').style.display = type;
		document.getElementById('r_yourname').innerHTML = "&nbsp;Enter Name";
	} else {
		document.getElementById('r_yourname').style.display = 'none';
		document.getElementById('r_yourname').innerHTML = "&nbsp;";
	}

	// if user email isn't valid
	if(reg.test(youremail) == false) {
		errors = true;
		document.getElementById('r_youremail').style.display = type;
		document.getElementById('r_youremail').innerHTML = "&nbsp;Invalid E-Mail";
	} else {
		document.getElementById('r_youremail').style.display = 'none';
		document.getElementById('r_youremail').innerHTML = "&nbsp;";
	}

	// if recepient name is empty
	if(recepientname == "") {
		errors = true;
		document.getElementById('r_recepientname').style.display = type;
		document.getElementById('r_recepientname').innerHTML = "&nbsp;Enter Name";
	} else {
		document.getElementById('r_recepientname').style.display = 'none';
		document.getElementById('r_recepientname').innerHTML = "&nbsp;";
	}

	// if recepient email isn't valid
	if(reg.test(recepientemail) == false) {
		errors = true;
		document.getElementById('r_recepientemail').style.display = type;
		document.getElementById('r_recepientemail').innerHTML = "&nbsp;Invalid E-Mail";
	} else {
		document.getElementById('r_recepientemail').style.display = 'none';
		document.getElementById('r_recepientemail').innerHTML = "&nbsp;";
	}

	if(errors == false) {
		document.sendEmail.submit();
	}
}

function changePage(page, multimedia_type, limit, divid) {

	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null) {
		httpObject.open("GET", "/includes/ajax/multimedia.php?page=" + page + "&multimedia_type=" + multimedia_type + "&limit=" + limit, true);
		httpObject.send(null);

		if(divid == "displayMedia") {
			httpObject.onreadystatechange = updateMultiMedia;			
		}
	}

}

function updateMultiMedia() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById('displayMedia').innerHTML = getResponse;
	}
}

function quicksearch_selection(option) {

	// check if the checkbox is for all
	if(option == 'all') {
		if(document.getElementById('all').checked == true) {
			document.getElementById('option1').checked = true;
			document.getElementById('option2').checked = true;
			document.getElementById('option3').checked = true;
			document.getElementById('option4').checked = true;
			document.getElementById('option5').checked = true;
		} else {
			document.getElementById('option1').checked = false;
			document.getElementById('option2').checked = false;
			document.getElementById('option3').checked = false;
			document.getElementById('option4').checked = false;
			document.getElementById('option5').checked = false;
		}
	} else {
		if(document.getElementById(option).checked == false) {
			document.getElementById('all').checked = false;
		}
	}

	// activate search requirements
	activate_search_results();
}

function quicksearch_selection_img(option) {

	// check if the checkbox is for all
	if(option == 'all') {
		// if all is checked
		if(document.getElementById('all').checked == true) {
			document.getElementById('all').checked = false;
			document.getElementById('option1').checked = false;
			document.getElementById('option2').checked = false;
			document.getElementById('option3').checked = false;
			document.getElementById('option4').checked = false;
			document.getElementById('option5').checked = false;
		} else {
			document.getElementById('all').checked = true;
			document.getElementById('option1').checked = true;
			document.getElementById('option2').checked = true;
			document.getElementById('option3').checked = true;
			document.getElementById('option4').checked = true;
			document.getElementById('option5').checked = true;
		}
	} else {
		if(document.getElementById(option).checked == true) {
			document.getElementById('all').checked = false;
			document.getElementById(option).checked = false;
		} else {
			document.getElementById(option).checked = true;
		}
	}

	// activate search requirements
	activate_search_results();
}

function activate_search_results() {
	// if any of the options are selected
	if(document.getElementById('option1').checked == true || document.getElementById('option2').checked == true || document.getElementById('option3').checked == true || document.getElementById('option4').checked == true || document.getElementById('option5').checked == true) {

		// start variable output
		var output = "/";

		if(document.getElementById('option1').checked == true) {
			output += document.getElementById('option1').value;
		}

		if(document.getElementById('option2').checked == true) {
			output += document.getElementById('option2').value;
		}

		if(document.getElementById('option3').checked == true) {
			output += document.getElementById('option3').value;
		}

		if(document.getElementById('option4').checked == true) {
			output += document.getElementById('option4').value;
		}

		if(document.getElementById('option5').checked == true) {
			output += document.getElementById('option5').value;
		}

		// enable drop downs
		document.getElementById('makes').disabled  = false;
		document.getElementById('model').disabled  = false;
		document.getElementById('length').disabled = false;
		document.getElementById('price').disabled  = false;

		// open ajax connection
		httpObject = getHTTPObject();

		// check if user is available
		if (httpObject != null) {
			httpObject.open("GET", "/includes/boatguide/quicksearch_make.inc.php?boat_types=" + output, true);
			httpObject.send(null);

			httpObject.onreadystatechange = updateBoatGuideMake;			
		}

	} else {
		// reset boat guide form
		resetBoatGuideForm();
	}
}

function changeModelSelection(value) {

		// open ajax connection
		httpObject = getHTTPObject();

		// check if user is available
		if (httpObject != null) {
			httpObject.open("GET", "/includes/boatguide/quicksearch_model.inc.php?boat_make=" + value, true);
			httpObject.send(null);

			httpObject.onreadystatechange = updateBoatGuideModel;			

		}
}

function updateBoatGuideMake() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById('quicksearch_make').innerHTML = getResponse;
	}
}

function updateBoatGuideModel() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById('quicksearch_model').innerHTML = getResponse;
	}
}

function verifyBoatGuideForm(form) {

	// errors
	errors = false;

	if(document.getElementById('option1').checked == false && document.getElementById('option2').checked == false && document.getElementById('option3').checked == false && document.getElementById('option4').checked == false && document.getElementById('option5').checked == false) {
		// errors
		errors = true;
	}

	if(errors == true) {
		alert("Sorry, you must select a Boat Type");
	} else {

		// start variable output
		var output = "/";

		if(document.getElementById('option1').checked == true) {
			output += document.getElementById('option1').value;
		}

		if(document.getElementById('option2').checked == true) {
			output += document.getElementById('option2').value;
		}

		if(document.getElementById('option3').checked == true) {
			output += document.getElementById('option3').value;
		}

		if(document.getElementById('option4').checked == true) {
			output += document.getElementById('option4').value;
		}

		if(document.getElementById('option5').checked == true) {
			output += document.getElementById('option5').value;
		}

		// if form is #1
		if(form == 'form1') {
			document.getElementById('boat_type_option1').value = output;
		} else if(form == 'form2') {
			document.getElementById('boat_type_option2').value = output;
		}

		document.getElementById(form).submit();
	}

}

function resetBoatGuideForm() {
	// un check selections
	document.getElementById('all').checked = false;
	document.getElementById('option1').checked = false;
	document.getElementById('option2').checked = false;
	document.getElementById('option3').checked = false;
	document.getElementById('option4').checked = false;
	document.getElementById('option5').checked = false;

	// set values
	document.getElementById('makes').value  = 'all';
	document.getElementById('model').value  = 'all';
	document.getElementById('length').value = 'all';
	document.getElementById('price').value  = 'all';

	// disable drop downs
	document.getElementById('makes').disabled  = true;
	document.getElementById('model').disabled  = true;
	document.getElementById('length').disabled = true;
	document.getElementById('price').disabled  = true;

	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null) {
		httpObject.open("GET", "/includes/boatguide/quicksearch_model.inc.php?reset=true", true);
		httpObject.send(null);

		httpObject.onreadystatechange = updateBoatGuideModel;			
	}
}

function updateWeatherCity(province) {
		// open ajax connection
		httpObject = getHTTPObject();

		// check if user is available
		if (httpObject != null) {
			httpObject.open("GET", "/includes/weather/selectCity.inc.php?province=" + province, true);
			httpObject.send(null);

			httpObject.onreadystatechange = updateWeatherField;			

		}	
}

function updateWeatherField() {
	if(httpObject.readyState == 4) {
		var getResponse = httpObject.responseText;
		document.getElementById('selCity').innerHTML = getResponse;
	}
}

function updateBoatMake(updater, field, type) {
	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null && type != "NULL") {
		httpObject.open("GET", "/includes/boatguide/compare_makes.inc.php?type=" + type + "&field=" + field + "&enabled=true", true);
		httpObject.send(null);

		httpObject.onreadystatechange = function updateBoatMakeField() {
			if(httpObject.readyState == 4) {
				var getResponse = httpObject.responseText;
				var dropdown    = document.getElementById(field);

				// if the menu exists
				if(dropdown != null) {
					dropdown.disabled = false;
				}

				document.getElementById(updater).innerHTML = getResponse;
			}
		}

		// column number
		var length = field.length;
		resetBoatDetails(field.charAt(length - 1));
		var column = "boat_models" + field.charAt(length - 1);
		var newSel = document.getElementById(column);

		// reset model if needed
		if(newSel != null) {
			newSel.value 	= 'NULL';
			newSel.disabled = true;
		}
	}	
}

function updateBoatModel(updater, field, make, type) {
	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null && type != "NULL") {
		httpObject.open("GET", "/includes/boatguide/compare_models.inc.php?make=" + make + "&type=" + type + "&field=" + field + "&enabled=true", true);
		httpObject.send(null);

		httpObject.onreadystatechange = function updateBoatModelField() {
			if(httpObject.readyState == 4) {
				var getResponse = httpObject.responseText;
				var dropdown    = document.getElementById(field);

				// if the menu exists
				if(dropdown != null) {
					dropdown.disabled = false;
				}

				document.getElementById(updater).innerHTML = getResponse;
			}
		}

		// column number
		var length = field.length;
		var column = field.charAt(length - 1);
		resetBoatDetails(column);
	}	
}

function selectQuickSearchBoat(directory_id, column) {
	// open ajax connection
	httpObject = getHTTPObject();

	// check if user is available
	if (httpObject != null) {
		httpObject.open("GET", "/includes/boatguide/compare_details.inc.php?directory_id=" + directory_id + "&enabled=true", true);
		httpObject.send(null);

		httpObject.onreadystatechange = function updateBoatDetailsField() {
			if(httpObject.readyState == 4) {
				var getResponse = httpObject.responseText;

				document.getElementById("details" + column).innerHTML = getResponse;
			}
		}
	}	
}

function resetBoatDetails(column) {
	document.getElementById("details" + column).innerHTML = "&nbsp;";
}
