function validateStep1() {
	var username = document.regform.desired_username;
	var email = document.regform.email_address;
	xajax_validate_registration_step1(username.value, email.value);
}

function validateStep2() {
	//TODO : Nick - Build this function
	document.regform.submit();
}

function validateStep3() {
	//TODO : Ben - Build this function
	var error = false;
	var error_msg = '';
	if(document.regform.password.value != document.regform.password_confirm.value) {
		error = true;
		error_msg += 'Password and Confirm Password Do Not Match.';
	}
	if (error == true){
		alert(error_msg);
	}
	else {
		document.regform.submit();
	}
}

function validateChangePaymentMethod() {
	document.edit_payment_method.submit();
}

function validateEditUserAddresses() {
	document.edit_user_addresses.submit();
}

function verifyCancelReasons() {
	var error = false;
	
	if ((document.getElementById('why_leaving_1').value == 0) ||
			(document.getElementById('why_leaving_2').value == 0)){
		error = true;
		error_txt = 'Please select two reasons for stopping your membership.\n'
	}
	
	if(error) {
		alert(error_txt);
	}
	else {
		document.step1.submit();
	}
}

function changeTB(newTbUrl) {
	tb_remove();
	setTimeout("tb_show('','"+newTbUrl+"',null)", 400);
}

/* 
Function: validateCancelForm()
validate the cancel membership form to make sure at least 1 reason was selected and that 50 or more characters were entered in the text box 
also validate that the user has agreed to the cancellation terms.
*/
function validateCancelForm() {
	var error = false;

	if(document.cancel_membership_form['where_to'][2].checked == true) { //dont need reasons if you're not actually cancelling
		var isFilled = false;
		var reasons = document.cancel_membership_form['reason[]'];
		for(var i=0; i < reasons.length; i++) {
			if(reasons[i].checked) isFilled = true;
		}
		if(!isFilled) {
			alert("You must select at least 1 reason");
			error = true;
		}
	}
	if (!error) {
		xajax_submitCancelForm(xajax.getFormValues('cancel_membership_form'));
	}
}

function addToPool(title_id, source) {
	xajax_addToPool(title_id, source);
}

function removeFromPool(title_id,position) {
	xajax_removeFromPool(title_id, position);
}

function addToFavoriteAuthors(author_id) {
	xajax_addToFavoriteAuthors(author_id);
}

function removeFromFavoriteAuthors(author_id) {
	xajax_removeFromFavoriteAuthors(author_id);
}

/*
	Function: confirmThenRedirect
	Nick Ruffilo
	Displays a confirmation box with "confirm_box_text"  If the user confirms, redirect to the passed URL
*/

function confirmThenRedirect(confirm_box_text, url, new_window) {
	if (confirm(confirm_box_text)) {
		if (new_window === undefined) {
			window.location.href = url;
		} else if (new_window == true) {
			window.open(url);
		}
	}
}	

function showHideDesc(title_id) {
	var desc_div = document.getElementById('desc_'+title_id);
	if (desc_div.style.maxHeight == 'none') {
		desc_div.style.maxHeight = '250px';
	}
	else {
		desc_div.style.maxHeight = 'none';
	}
}

/*
	jQuery set up code for sliding panels
*/

$(document).ready(function(){
	
	//Fixes an animation glitch caused by the
	//div's dynamic height.  Need to set the
	//height style so the slide functions work
	//correctly.
	$("div.slideBody").each(function(){
		$(this).css("height", $(this).height() + "px");
		$(this).css('display','none');
    });

	$(".tooltip").tooltip();
	//hook the mouseup events to each header
	$("div.slidePanel").children(
    	"div.slideHeader").mouseup(function(){
     		//find the body whose header was clicked
    		var body = $(this).parent().children("div.slideBody");

    		//slide the panel
    		if(body.is(":hidden"))
    			body.slideDown();
    		else
    			body.slideUp();
    	});
	});

/*
Function: showSuspendTerms
Ben Schuster
hides the cancellation terms and shows the suspension terms on cancellation page 2
*/
function showSuspendTerms (hold_terms, hold_length){
	document.getElementById('suspensionTerms').style.display = 'block';
	document.getElementById('unsubsciptionTerms').style.display = 'none';
	document.getElementById('agree_to_cancel_terms').checked = false;
	xajax_editHoldTerms(hold_terms, hold_length);
}

/*
Function: showCancelTerms
Ben Schuster
hides the cancellation terms and shows the suspension terms on cancellation page 2
*/
function showCancelTerms (){
	document.getElementById('suspensionTerms').style.display = 'none';
	document.getElementById('unsubsciptionTerms').style.display = 'block';
	document.getElementById('agree_to_suspend_terms').checked = false;
}

function setUserRating(user_id, title_id) {
	var options = document.getElementById('rating_'+title_id).options;
	var option_length = options.length;
	for (var i =0; i < option_length; i++) {
		if (options[i].selected) {
			xajax_setUserRating(user_id, title_id, options[i].value);
			return;
		}
	}
}

/* 
Function: validateCancelForm2()
validate the cancel membership form to make sure at least 1 reason was selected and that 50 or more characters were entered in the text box 
also validate that the user has agreed to the cancellation terms.
*/
function validateCancelForm2() {
	var error = false;
	if ((document.member_on_hold_form.how_long[0].checked == false) && (document.member_on_hold_form.how_long[1].checked == false) && (document.member_on_hold_form.how_long[2].checked == false) && (document.member_on_hold_form.how_long[3].checked == false)) {
		alert("You must choose how long to stop your membership for");
		error = true;
	}
	if ((document.member_on_hold_form.agree_to_cancel_terms.checked == false) && (document.member_on_hold_form.how_long[3].checked == true)) {
		alert("You must agree to the terms of cancellation");
		error = true;
	}
	if ((document.member_on_hold_form.agree_to_suspend_terms.checked == false) && ((document.member_on_hold_form.how_long[0].checked == true) || (document.member_on_hold_form.how_long[1].checked == true) || (document.member_on_hold_form.how_long[2].checked == true))) {
		alert("You must agree to the suspension terms");
		error = true;
	}
	
	if ((document.member_on_hold_form.how_long[3].checked == true) && (document.member_on_hold_form.cancel_reason.value.length < 50)) {
		alert("You must enter at least 50 characters in the more details area");
		error = true;
	}
	alert('1');
	if (!error) {
		xajax_finalStopMembership(xajax.getFormValues('member_on_hold_form'));
	}
}

function continueRegistration(email) {
	xajax_continueIncompleteRegistrations(email);
}

function createAccountWithDupeEmail(first_name, last_name, email, username) {
	xajax_createAccountWithDupeEmail(first_name, last_name, email, username);
}

function logSearchResult(title_id) {
	xajax_logSearchResult(title_id);
}

$(document).ready(
		function () {
			$('td#poolsort').Sortable(
				{
					accept : 		'sortableitem',
					helperclass : 	'sorthelper',
					activeclass : 	'sortableactive',
					hoverclass : 	'sortablehover',
					opacity: 		0.8,
					revert:			true,
					floats:			true,
					tolerance:		'pointer',
					onStop:	function() {
						serial = $.SortSerialize('poolsort');
						//alert(serial.hash);
						xajax_rearrangePoolPage(serial.hash, this.dragElem.id);
					}
				}
			);
		}
	);



function removeElement(divNum) {
	  var d = document.getElementById('poolholder');
	  var olddiv = document.getElementById(divNum);
	  d.removeChild(olddiv);
}

function setGiftValue() {
	
	var rental_plan_radio = document.getElementsByName("rental_plans");
	for(var i =0; i < rental_plan_radio.length; i++) {
		if(rental_plan_radio[i].checked) {
			var selected = rental_plan_radio[i];
			break;
		}
	}
	
	var time_span_select = document.getElementById('time_span');
	var timespan = time_span_select[time_span_select.selectedIndex].value;
	
	if (timespan == 0) {
		var cost = '';
	}
	else {
		if (timespan < 0) {
			var cost_per_cycle = document.getElementById('hide_'+selected.id).value;
			timespan = -1 * timespan;
		}
		else {
			var cost_per_cycle = selected.value;
			timespan = timespan;
		}
		var cost = timespan * cost_per_cycle;
		cost ='$' + Math.round(cost) + '.00';
	}
	
	document.getElementById('gift_value').value = cost
}

function editDeliveryTip() {
	var tip_name = document.getElementById('recpt_name');
	var name = document.getElementById('recipient_name').value;
	tip_name.innerHTML = name;
}

function showDeliveryTip() {
	var deliveryMethod = document.getElementById('delivery_method');
	var email_tip = document.getElementById('delivery_tip_email');
	var print_tip = document.getElementById('delivery_tip_print');
	var delivery_date = document.getElementById('delivery_tr');
	var email = document.getElementById('email_tr');
	var confirm = document.getElementById('confirm_tr');
	
	
	if (deliveryMethod.value == 'email') {
		email_tip.style.display = 'block';
		print_tip.style.display = 'none';
		
		email.style.display = '';
		confirm.style.display = '';
		delivery_date.style.display = '';		
	}
	else if (deliveryMethod.value == 'print') {
		email_tip.style.display = 'none';
		print_tip.style.display = 'block';
		
		email.style.display = 'none';
		confirm.style.display = 'none';
		delivery_date.style.display = 'none';
	}
	else if (deliveryMethod.value == 'both') {
		email_tip.style.display = 'block';
		print_tip.style.display = 'block';

		email.style.display = '';
		confirm.style.display = '';
		delivery_date.style.display = '';
	}
	else {
		email_tip.style.display = 'none';
		print_tip.style.display = 'none';
		email.style.display = '';
		confirm.style.display = '';
		delivery_date.style.display = '';
	}
}

function changeCreditDisplay() {
	var use_card_on_file = document.getElementById('use_card_on_file');
	
	var credit_tr_1 = document.getElementById('credit_tr_1');
	var credit_tr_2 = document.getElementById('credit_tr_2');
	var credit_tr_3 = document.getElementById('credit_tr_3');
	var credit_tr_4 = document.getElementById('credit_tr_4');
	var credit_tr_5 = document.getElementById('credit_tr_5');
	
	var card_on_file_tr = document.getElementById('card_on_file_tr');
	
	if(use_card_on_file.checked) {
		credit_tr_1.style.display = 'none';
		credit_tr_2.style.display = 'none';
		credit_tr_3.style.display = 'none';
		credit_tr_4.style.display = 'none';
		credit_tr_5.style.display = 'none';
		
		card_on_file_tr.style.display = '';
	}
	else {
		credit_tr_1.style.display = '';
		credit_tr_2.style.display = '';
		credit_tr_3.style.display = '';
		credit_tr_4.style.display = '';
		credit_tr_5.style.display = '';
		
		card_on_file_tr.style.display = 'none';	
	}
}

function showTermsOfService() {
	var terms_of_service = document.getElementById('terms_of_service');
	if(terms_of_service.style.display == 'none') terms_of_service.style.display = '';
	else terms_of_service.style.display = 'none';
}

function registrationAccountTypeRedirect() {
	var whofor = document.getElementById('whofor');
	if (whofor.options[whofor.selectedIndex].value == '3') {
		document.location.href = '/purchasegift.html';
	}
}

function setSelectedPlan(plan_id) {
	if(document.getElementById('td_1') != null) {
		document.getElementById('td_1').setAttribute('class','');
		document.getElementById('td_1').setAttribute('className','');
	}
	if(document.getElementById('td_2') != null) {
		document.getElementById('td_2').setAttribute('class','');
		document.getElementById('td_2').setAttribute('className','');
	}
	if(document.getElementById('td_3') != null) {
		document.getElementById('td_3').setAttribute('class','');
		document.getElementById('td_3').setAttribute('className','');
	}
	if(document.getElementById('td_4') != null) {
		document.getElementById('td_4').setAttribute('class','');
		document.getElementById('td_4').setAttribute('className','');
	}
	if(document.getElementById('td_5') != null) {
		document.getElementById('td_5').setAttribute('class','');
		document.getElementById('td_5').setAttribute('className','');
	}
	if(document.getElementById('td_6') != null) {
		document.getElementById('td_6').setAttribute('class','');
		document.getElementById('td_6').setAttribute('className','');
	}
	
	document.getElementById('td_'+plan_id).setAttribute('class','selected');
	document.getElementById('td_'+plan_id).setAttribute('className','selected');
}


function confirmUpgradedShipping() {
	var confirmation = confirm("A charge of $6.99 will be added to your next bill for upgraded shipping.\nConfirm shipping upgrade?");
	if (confirmation) {
		document.upgrade_ship_form.submit();
		return;
	}
	else {
		return;
	}
}

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} 
}

