// subscription form js
// subscriptions options
function checkOption(){
	var fname = document.getElementById('contact_fname').value;
	var lname = document.getElementById('contact_lname').value;
	var phone = document.getElementById('contact_phone').value;
	var email = document.getElementById('contact_email').value;
	
	var error = false;
	var alert_text = 'Missing field required:\n\n';
	if(fname == ''){
		alert_text += '- First name is required.\n';
		error = true;
	}
	if(lname == ''){
		alert_text += '- Last name is required.\n';
		error = true;
	}
	if(phone == '' && email == ''){
		alert_text += '- Either a phone number or an email address must be included.\n';
		error = true;
	}
	
	if(error == false){
		document.getElementById('subscription1').submit();
	} else {
		alert(alert_text);
	}
}

function form_checker(){
	var form_check =  document.getElementById('form_check').name;
	var from_form = form_check.split('[');
	return from_form[1].substr(0, (from_form[1].length - 1));
}


// subscription form
function updateWine(){
	/* uncomment to allow $50 rebate 
	var change = false;
	var saverSelect = document.getElementsByName('saver[selection]');
	var wineChange = document.getElementById('wineChange');
	var hiddenValue = document.getElementsByName('saver[hiddenValue]')[0];
	
	
	for(var i = 0; i < saverSelect.length; i++){
		if(saverSelect[i].checked && saverSelect[i].value == 2){
			change = true;
		}
	}
	if(change){
		hiddenValue.value = 139;
		wineChange.innerHTML = '($139)';
		wineChange.style.color = '#A40009';
	} else {
		if(hiddenValue.value != 189){
			hiddenValue.value = 189;
			wineChange.innerHTML = '($189)';
			wineChange.style.color = '#363636';
		}
	}
	*/
	if(document.getElementsByName('saver[adult]')[0].value > 0){
		updatePackageSubtotal();
	}
}


function updatePackageSubtotal(){
	var selectionAlert = '';
	
	// get premium
	var premium = premium_total();
	
	var pre_radio = document.forms[0].elements['premium[selection]'];
	var pre_value = getRadioValue(pre_radio);
	if(premium > 0 && pre_value == ''){
		selectionAlert += "Please choose a day and time for your Premium tickets.\n";
	}
	
	// get discount
	var discount = discount_total();
	
	var dis_radio = document.forms[0].elements['discount[selection]'];
	var dis_value = getRadioValue(dis_radio);
	if(discount > 0 && dis_value == ''){
		selectionAlert += "Please choose a day and time for your Discount tickets.\n";
	}
	
	// get supersaver
	var saver = saver_total();
	
	var sav_radio = document.forms[0].elements['saver[selection]'];
	var sav_value = getRadioValue(sav_radio);
	if(saver > 0 && sav_value == ''){
		selectionAlert += "Please choose a day and time for your SuperSaver tickets.\n";
	}
	
	// get preview
	var preview = preview_total();
	
	var prev_radio = document.forms[0].elements['preview[selection]'];
	var prev_value = getRadioValue(prev_radio);
	if(preview > 0 && prev_value == ''){
		selectionAlert += "Please choose a day and time for your Preview tickets.\n";
	}
	
	if(selectionAlert != ''){
		alert(selectionAlert);
	}
	
	// package subtotal
	var package_subtotal = (premium + discount + saver + preview);
	// update page
	var packSub = document.getElementById('packageSubtotal');
	packSub.innerHTML = package_subtotal + '.00';
	// update hidden field
	var hiddenPackageSubtotal = document.getElementById('hiddenPackageSubtotal');
	hiddenPackageSubtotal.value = package_subtotal;
	// update total
	updateTotal();
}

function premium_total(){
	var form_check = form_checker();
	var check_price = (form_check == 'renewal') ? 303 : 297;
	var pre_adult = parseInt(((document.getElementsByName('premium[adult]')[0].value == '') ? 0 : document.getElementsByName('premium[adult]')[0].value)) * check_price;
	var pre_student = parseInt(((document.getElementsByName('premium[student]')[0].value == '') ? 0 : document.getElementsByName('premium[student]')[0].value)) * 107;
	var premium = (pre_adult + pre_student);
	return premium;
}

function discount_total(){
	var form_check = form_checker();
	var check_price = (form_check == 'renewal') ? 249 : 243;
	var dis_adult = parseInt(((document.getElementsByName('discount[adult]')[0].value == '') ? 0 : document.getElementsByName('discount[adult]')[0].value)) * check_price;
	var dis_senior = parseInt(((document.getElementsByName('discount[senior]')[0].value == '') ? 0 : document.getElementsByName('discount[senior]')[0].value)) * 189;
	var dis_student = parseInt(((document.getElementsByName('discount[student]')[0].value == '') ? 0 : document.getElementsByName('discount[student]')[0].value)) * 107;
	var discount = (dis_adult + dis_senior + dis_student);
	return discount;
}

function saver_total(){
	var saverAdultValue = document.getElementsByName('saver[hiddenValue]')[0].value;
	var sav_adult = parseInt(((document.getElementsByName('saver[adult]')[0].value == '') ? 0 : document.getElementsByName('saver[adult]')[0].value)) * saverAdultValue;
	var sav_student = parseInt(((document.getElementsByName('saver[student]')[0].value == '') ? 0 : document.getElementsByName('saver[student]')[0].value)) * 107;
	var saver = (sav_adult + sav_student);
	return saver;
}

function preview_total(){
	var prev_adult = parseInt(((document.getElementsByName('preview[adult]')[0].value == '') ? 0 : document.getElementsByName('preview[adult]')[0].value)) * 125;
	var prev_student = parseInt(((document.getElementsByName('preview[student]')[0].value == '') ? 0 : document.getElementsByName('preview[student]')[0].value)) * 107;
	var preview = (prev_adult + prev_student);
	return preview;
}

function updateAddonSubtotal(){
	// get christmas carol
	var addon1_adult = parseInt(((document.getElementsByName('addon[1][adult]')[0].value == '') ? 0 : document.getElementsByName('addon[1][adult]')[0].value)) * 40;
	var addon1_student = parseInt(((document.getElementsByName('addon[1][student]')[0].value == '') ? 0 : document.getElementsByName('addon[1][student]')[0].value)) * 20;
	var addon1 = (addon1_adult + addon1_student);
	
	// get the giver
	var addon2_adult = parseInt(((document.getElementsByName('addon[2][adult]')[0].value == '') ? 0 : document.getElementsByName('addon[2][adult]')[0].value)) * 25;
	var addon2_student = parseInt(((document.getElementsByName('addon[2][student]')[0].value == '') ? 0 : document.getElementsByName('addon[2][student]')[0].value)) * 15;
	var addon2 = (addon2_adult + addon2_student);
	
	// addon subtotal + package subtotal
	var addon_subtotal = (addon1 + addon2);
	// update page
	var addonSub = document.getElementById('addonSubtotal');
	addonSub.innerHTML = (addon_subtotal) + '.00';
	// update hidden field
	var hiddenAddonSubtotal = document.getElementById('hiddenAddonSubtotal');
	hiddenAddonSubtotal.value = addon_subtotal;
	// update total
	updateTotal();
}

function updateDonationSubtotal(){
	var donation = parseInt(((document.getElementsByName('donation[amount]')[0].value == '') ? 0 : document.getElementsByName('donation[amount]')[0].value));
	
	// donation subtotal + addon subtotal +  package subtotal
	var don_subtotal = donation;
	// update page
	var donSub = document.getElementById('donationSubtotal');
	donSub.innerHTML = (don_subtotal) + '.00';
	// update hidden field
	var hiddenDonationSubtotal = document.getElementById('hiddenDonationSubtotal');
	hiddenDonationSubtotal.value = donation;
	// update total
	updateTotal();
}

function updateTotal(){
	var total = parseInt(document.getElementById('hiddenAddonSubtotal').value);
		total += parseInt(document.getElementById('hiddenPackageSubtotal').value);
		total += parseInt(document.getElementById('hiddenDonationSubtotal').value);
	// update page
	var totalSub = document.getElementById('total');
	totalSub.innerHTML = (total) + '.00';
	// update hidden field
	var hiddenTotal = document.getElementById('hiddenTotal');
	hiddenTotal.value = total;
}

function checkPremium(){
	var gotRadio = document.forms[0].elements['premium[selection]'];
	var pre_select = getRadioValue(gotRadio);
	var opening_night = document.getElementById('opening_night');
	if(pre_select == 1){
		opening_night.disabled = false;
	} else {
		opening_night.disabled = true;
		opening_night.checked = false;
	}
}

function checkDiscount(){
	var gotRadio = document.forms[0].elements['discount[selection]'];
	var dis_select = getRadioValue(gotRadio);
	var wed_baby = document.getElementById('wed_baby');
	var thu_baby = document.getElementById('thu_baby');
	var tea_talk = document.getElementById('tea_talk');
	var asl_int = document.getElementById('asl_int');
	var audio_des = document.getElementById('audio_des');
	var baby_sitter = document.getElementById('baby_sitter_rebate');
	
	
	if(wed_baby.checked == false || thu_baby.checked == false){
		baby_sitter.style.display = 'none';
	}
	switch(dis_select){
		case "2":
			wed_baby.disabled = false;
			
			thu_baby.disabled = true;
			tea_talk.disabled = true;
			asl_int.disabled = true;
			audio_des.disabled = true;
			thu_baby.checked = false;
			tea_talk.checked = false;
			asl_int.checked = false;
			audio_des.checked = false;
			break;
		case "4":
			thu_baby.disabled = false;
			
			wed_baby.disabled = true;
			tea_talk.disabled = true;
			asl_int.disabled = true;
			audio_des.disabled = true;
			wed_baby.checked = false;
			tea_talk.checked = false;
			asl_int.checked = false;
			audio_des.checked = false;
			break;
		/*
		case "5":			
			wed_baby.disabled = true;
			thu_baby.disabled = true;
			tea_talk.disabled = true;
			asl_int.disabled = true;
			audio_des.disabled = true;
			wed_baby.checked = false;
			thu_baby.checked = false;
			tea_talk.checked = false;
			asl_int.checked = false;
			audio_des.checked = false;
			break;
		*/
		case "6":
			tea_talk.disabled = false;
			asl_int.disabled = false;
			audio_des.disabled = false;
			
			wed_baby.disabled = true;
			thu_baby.disabled = true;
			wed_baby.checked = false;
			thu_baby.checked = false;
			break;
		default:
			wed_baby.disabled = true;
			thu_baby.disabled = true;
			tea_talk.disabled = true;
			asl_int.disabled = true;
			audio_des.disabled = true;
			wed_baby.checked = false;
			thu_baby.checked = false;
			tea_talk.checked = false;
			asl_int.checked = false;
			audio_des.checked = false;
			break;
	}
}

function showExtra(selection,div){
	var extra = document.getElementById(div);

	if(selection.checked == true){
		extra.style.display = 'block';
	} else {
		extra.style.display = 'none';
	}
}

function checkSubscriptionForm(){
	var error = false;
	var alert_text = 'Missing required fields:\n\n';
	
	// check package for input
	var pre_radio = document.forms[0].elements['premium[selection]'];
		var pre_value = getRadioValue(pre_radio);
	var premium = premium_total();
	
	var dis_radio = document.forms[0].elements['discount[selection]'];
		var dis_value = getRadioValue(dis_radio);
	var discount = discount_total();
	
	var sav_radio = document.forms[0].elements['saver[selection]'];
		var sav_value = getRadioValue(sav_radio);
	var saver = saver_total();
	
	var prev_radio = document.forms[0].elements['preview[selection]'];
		var prev_value = getRadioValue(prev_radio);
	var preview = preview_total();
	
	var hiddenPackageSubtotal = document.getElementById('hiddenPackageSubtotal').value;
	
	if(pre_value == '' && dis_value == '' && sav_value == '' && prev_value == '' && hiddenPackageSubtotal == 0){
		alert_text += '- You must make a package selection';
		if(hiddenPackageSubtotal == 0){
			alert_text += ' and add at least one ticket';
		}
		alert_text += '.\n';
		error = true;
	} else {
		if(hiddenPackageSubtotal == 0){
			alert_text += '- You must add at least one ticket to your package selection.\n';
			error = true;
		}
	}
	
	if(premium != 0 && pre_value == ''){
		alert_text += '- You must choose a day and time for your Premium tickets.\n';
		error = true;
	}
	if(discount != 0 && dis_value == ''){
		alert_text += '- You must choose a day and time for your Discount tickets.\n';
		error = true;
	}
	if(saver != 0 && sav_value == ''){
		alert_text += '- You must choose a day and time for your SuperSaver tickets.\n';
		error = true;
	}
	if(preview != 0 && prev_value == ''){
		alert_text += '- You must choose a day and time for your Preview tickets.\n';
		error = true;
	}
	
	// check seat selection
	var seat_select = document.forms[0].elements['seat[selection]'];
	var seat = getRadioValue(seat_select);
	
	if(seat == ''){
		alert_text += '- You must make a seat selection.\n';
		error = true;
	}
	
	// check add-on additions
	var addon1_adult = document.getElementsByName('addon[1][adult]')[0].value;
	var addon1_student = document.getElementsByName('addon[1][student]')[0].value;
	
	var addon2_adult = document.getElementsByName('addon[2][adult]')[0].value;
	var addon2_student = document.getElementsByName('addon[2][student]')[0].value;
	
	if(parseInt(addon1_adult) == 'NaN' || parseInt(addon1_student) == 'NaN' || parseInt(addon2_adult) == 'NaN' || parseInt(addon2_student) == 'NaN'){
		alert_text = '- An add-on ticket count is not a number.\n';
		error = true;
	}
		
	// check donation for integer
	var donation = document.getElementsByName('donation[amount]')[0].value;
	if(parseInt(donation) == 'NaN'){
		alert_text += '- The donation amount is not a number.\n';
		error = true;
	}
	
	// check personal information
	var fname = document.getElementsByName('personal[fname]')[0].value;
	var lname = document.getElementsByName('personal[lname]')[0].value;
	var email = document.getElementsByName('personal[email]')[0].value;
	var email_check = document.getElementsByName('personal[email_check]')[0].value;
	var address = document.getElementsByName('personal[address]')[0].value;
	var city = document.getElementsByName('personal[city]')[0].value;
	var state = document.getElementsByName('personal[state]')[0].value;
	var zip = document.getElementsByName('personal[zip]')[0].value;
	var phone = document.getElementsByName('personal[phone]')[0].value;
	var cell = document.getElementsByName('personal[cell]')[0].value;
	
	if(fname == '' || fname == ' '){
		alert_text += '- First name is required.\n';
		error = true;
	}
	if(lname == '' || lname == ' '){
		alert_text += '- Last name is required.\n';
		error = true;
	}
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	if (email.search(emailRegEx) == -1) {
    	alert_text += '- Email address is not valid.\n';
		error = true;
	} else if(email != email_check){
		alert_text += '- Emails do not match.\n';
		error = true;
	}
	if(address == '' || address == ' '){
		alert_text += '- Address is required.\n';
		error = true;
	}
	if(city == '' || city == ' '){
		alert_text += '- City is required.\n';
		error = true;
	}
	if(state == '' || state == ' '){
		alert_text += '- State is required.\n';
		error = true;
	}
	if(zip == '' || zip == ' '){
		alert_text += '- Zip is required.\n';
		error = true;
	}
	if((phone == '' || phone == ' ') && (cell == '' || cell == '')){
		alert_text += '- A home phone or cell phone number is required.\n';
		error = true;
	}
	
	// additional requests
	var add_requests = document.getElementsByName('personal[requests]')[0].value;
	
	if(error == false){
		setTimeout("document.getElementById('subscription_form').submit();",500);
	} else {
		alert(alert_text);
		return false;
	}
}

function getRadioValue(radioObj) {
	if(!radioObj)
		return '';
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return '';
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return '';
}


function limit_num(t){
	var numb = "0123456789";
	var w = '';
	for(i=0; i < t.value.length; i++){
		x = t.value.charAt(i);
		if(numb.indexOf(x,0) != -1){
			w += x;
		}
	}
	t.value = w;
}

function popupInfo(page){
	var height = "740px";
	var width = "917px";
	var window_options = "menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,height=" + height + ",width=" + width + ",resizable=yes,fullscreen=no";
	window.open("/forms/extras/" + page + ".php","_new_info",window_options);
}

<!-- hidden info Pop Up -->
var hidden_div_x = 0;
var hidden_div_y = 0;

function getPosition(e){
	if(!e){
		var e = window.event;
	}
	var cursor = {x:0, y:0};
	if(e.pageX || e.pageY){
		cursor.x = e.pageX;
		cursor.y = e.pageY;
	} else if(e.clientX || e.clientY){
		cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
	hidden_div_y = (cursor.y + 15) + 'px';
	hidden_div_x = (cursor.x - 150) + 'px';
}

function toggleDetails(div){
	var hidden = document.getElementById(div + "1");
	
	if(hidden.style.display == 'none' || hidden.style.display == ''){
		hidden.style.left = hidden_div_x;
		hidden.style.top = hidden_div_y;
		hidden.style.display = 'block';
	} else {
		hidden.style.display = 'none';
	}
}

detail_hover = function() {
	if(document.getElementById){
		var a_elems = document.getElementById('holder').getElementsByTagName('A');
		var sup_elems = new Array();
		var count = 0;
		for(var a = 0; a < a_elems.length; a++){
			if(a_elems[a].className == 'detail'){
				sup_elems[count] = a_elems[a];
				count++;
			}
		}
	} else if (document.all){
		var sup_elems = document.all['holder'].all.className('detail');
	} else {
		return;
	}
	for(var i = 0; i < sup_elems.length; i++) {
		sup_elems[i].onmouseover=function() {
			toggleDetails(this.name);
		}
		sup_elems[i].onmouseout=function() {
			toggleDetails(this.name);
		}
	}
}
if(window.attachEvent) {
	window.attachEvent('onload', detail_hover);
	document.attachEvent('onmousemove', getPosition);
} else {
	window.addEventListener('load', detail_hover, false);
	document.addEventListener('mousemove', getPosition, false);
}
