
$(document).ready( function() {
	
	$(".pay-monthly #selectable-plans input.radio-button").click(
		function() {
		var pcs = this.value.split(":");
		if(pcs.length > 1) {
			var term=pcs[1];
			if(term == '24') {
				fbbShow();
			} else {
				fbbHide();
			}
		}
		}
	);
	
	fbbHide();
	
	/* show the fixed broadband radio buttons? */
	var checkedPlanTerm = $("#selectable-plans input:checked");
	var fbbShowFlag=false;
	if(checkedPlanTerm.length > 0) {
		var pcs= checkedPlanTerm[0].value.split(":");
		var term=pcs[1];
		if(term == '24') {
			checkedPlanTerm[0].click();
		}
	}

	/* show the fixed broadband number fields? */
	var fbbYes = $("#fixed-broadband-select #fixedBroadband1:checked");
	if(fbbYes.length > 0) {
		fbbYes[0].click();
		$("#fixedBroadbandTel").removeClass("hide");
	}
	
	

	// Postpaid Plan builder
	if (ie6) {
		$("#select-a-plan .item:eq(0) .replaced").addClass("first");
	}
	else {
		$("#select-a-plan .item:eq(0)").addClass("first"); // mark first plan in list
	}
	$(".pay-monthly .plans-page form, .pay-monthly .details-page form").resetForm(); // clear the form on reload or first visit. 
	$("#review-your-plan .link").hide();
	$("#minicart-button .edit-your-cart").hide();
	$("#minicart-button .checkout").hide();
	$("#review-your-plan .phone .subsidy").hide();
	$("#select-a-plan .item .replaced :radio") // radio button replacement
		.addClass("ui-helper-hidden-accessible")
		.after("<span class=\"ui-radio\"></span>");
	$("#select-a-plan .item > .check-controls").hover(
		function(){
			$(this).addClass("hover");
			$(this).find(".ui-radio").addClass("ui-radio-state-hover");
		},
		function(){
			$(this).removeClass("hover");
			$(this).find(".ui-radio").removeClass("ui-radio-state-hover");
		}
	);

	$("#review-your-plan #form-action :image").attr("disabled","disabled").css("opacity","0.15"); //disable action button. 
	$("#logo-box #form-action-logo :image").attr("disabled","disabled").css("opacity","0.15"); //disable action button. 
	
	$("#plans-pricing.has-voucher #select-a-plan .item .terms label").addClass("disabled"); // if eligible for a voucher, add the class to #plans-pricing
	$("#select-a-plan .item.unselected > .check-controls").livequery("click", function() {
		displayPlan($(this));
	});
	$("#select-a-plan .item.selected > .terms .check-controls").livequery("click", 
		function(){
			var term=$(this).find("label").html().split("<")[0].toLowerCase();
			$("#review-your-plan #r1").text($(this).parent().parent().parent().find("#plan-name").text()+", "+term+" term");
			$("#review-your-plan-logo #r1-logo").text($(this).parent().parent().parent().find("#plan-name").text()+", "+term+" term");
			$(".plan-summary-term").text(term);
			updateOneOffPrice();
		}
	);

	$("#selectable-extras .item ").livequery("click", 
			function(){
				var item = $(this); // the option selected
				item.find(":radio").attr("checked",true);
				// mark item above with class to remove border
				if (item.find(":radio").val() == 'yes') {
					$("#fixedBroadbandTel").removeClass("hide");
					$("#r4").text("Yes, apply discount");
					$("#fixed-discount").text("-$10.00");
				} else {
					$("#fixedBroadbandTel").addClass("hide");
					$("#r4").text("No, doesn't apply");
					$("#fixed-discount").text("");
				}
				updateMonthlyPrice();
			}
		);
	$("#select-a-plan .item.selected > .check-controls").livequery("click", 
		function(){
			var item = $(this).parents(".item"); // the plan selected
			var terms = $(this).siblings(".terms"); // the terms associated with the plan		
			var radio = $(this).find(":radio"); //the associated radio button
			$("#plan-00 :radio").attr("checked",true); // select the hidden "none" radio button
			radio.siblings("span").removeClass("ui-radio-state-checked");
			item.addClass("unselected").removeClass("selected"); //close the box
			terms.clearForm().find(":radio").attr("disabled","disabled"); // disable the terms radio buttons
			$("#select-a-plan .item").removeClass("previous"); // add the above border back in
			$("#review-your-plan #form-action :image").attr("disabled","disabled").css("opacity","0.15");
			$("#logo-box #form-action-logo :image").attr("disabled","disabled").css("opacity","0.15");
			$("#plan-summary .content-inner").children("h3, ul").addClass("hide");
			$("#review-your-plan .link").hide();
			$("#minicart-button .edit-your-cart").hide();
			$("#minicart-button .checkout").hide();
			$("#review-your-plan .phone .subsidy").hide();
			$("#plan-price").text("$0.00");
			$("#review-your-plan td[headers=r0 r1]").text("");
			$("#review-your-plan #r1").text("None selected");
			$("#review-your-plan-logo #r1-logo").text("None selected");
			fbbHide();
			updateMonthlyPrice();
		}
	);
	
	// hide/show Bolt-ons and Plans details
	// popups - terms & conditions and plan summary
	// adding javascript-only components to box
	$("#plan-summary .content-inner").after("<div class=\"close\"><a href=\"#\">Close</a></div>");
	$("#plan-summary-wrapper .close").after("<div class=\"print\"><a href=\"#\">Print page</a></div>");
	$(".print a").click(function(){
		window.print();
		return false;
	});

// opening and closing the popup box
	if (ie6) {
		$("#plan-summary-wrapper-ie6").addClass("hide");
		$("#select-a-plan a").click(
			function(){
				$("#plan-summary-wrapper-ie6").bgiframe().addClass("show").removeClass("hide");
				$("#plan-summary").addClass("show").removeClass("hide").vCenter();
				$("body").addClass("plan-summary-print");
				return false;
			}
		);
		$("#plan-summary .close a").click(
			function(){
				$("#plan-summary-wrapper-ie6").addClass("hide").removeClass("show");
				$("body").removeClass("plan-summary-print");
				return false;
			}
		);
	} else {
		$("#plan-summary-wrapper, #plan-summary").addClass("hide");
		$("#select-a-plan a").click(
			function(){
				$("#plan-summary-wrapper").addClass("show").removeClass("hide");
				$("#plan-summary").addClass("show").removeClass("hide").vCenter();
				$("body").addClass("plan-summary-print");
				return false;
			}
		);
		$("#plan-summary .close a").click(
			function(){
				$("#plan-summary-wrapper").addClass("hide").removeClass("show");
				$("body").removeClass("plan-summary-print");
				return false;
			}
		);
	}

	// add extra markup for IE6 display issues
	if (ie6) {
		$(".pay-monthly #fixed-broadband fieldset").wrap("<div></div>");
	}

	$("#select-a-plan .item .terms :radio").attr("disabled","disabled"); //disable all form controls on reload or first visit. 
	if ($("#select-a-plan .item .terms :radio:checked").length > 0) {
		displayPlan($("#select-a-plan .item .terms :radio:checked").parents(".terms").siblings(".check-controls"));
	} else {
		$("#select-a-plan .item").addClass("unselected"); // unselect and close all 
		updateMonthlyPrice();
		updateOneOffPrice();
	}
});

// Calculate the total monthly price (plan + bolt-ons).
function calculateTotalPrice() {
	var planPrice = parseFloat($("#plan-price").text().split("$")[1]);
	var fixedDiscount = $("#fixed-discount").text();
	if (fixedDiscount != '')
		planPrice = planPrice - parseFloat(fixedDiscount.split("$")[1]);
	var ret = "$" + planPrice;
	if (ret.split(".").length == 1) ret += ".00";
	return ret; 
}

function displayPlan(planControl) {
	var item = $(planControl).parents(".item"); // the plan selected
	var id = $(item).attr("id");
	var terms = $(planControl).siblings(".terms"); // the terms associated with the plan
	var radio = $(planControl).find(":radio"); //the associated radio button
	item.removeClass("unselected").addClass("selected"); // open the selected box
	item.siblings(".item").addClass("unselected").removeClass("selected"); // close any opened boxes
	radio.attr("checked",true);
	radio.siblings("span").addClass("ui-radio-state-checked");
	item.siblings(".item").find("span.ui-radio").removeClass("ui-radio-state-checked");
	terms.find(":disabled").removeAttr("disabled"); // enable the terms controls for the selected box
	if (terms.find(":radio:checked").length==0) {
		terms.find(":radio:first").attr("checked","checked"); // default check the first control
	}
	item.siblings().find(".terms :input").attr("disabled","disabled"); // disable any enabled terms controls in closed boxes
	item.siblings().clearForm(); //clears any choices in closed boxes
	// mark item above with class to remove border
	$("#select-a-plan .item").removeClass("previous");
	item.prev(".item").addClass("previous");
	$("#review-your-plan #form-action :image").removeAttr("disabled").css("opacity","1");
	$("#logo-box #form-action-logo :image").removeAttr("disabled").css("opacity","1");
	$("#review-your-plan .link").show();
	$("#minicart-button .edit-your-cart").show();
	$("#minicart-button .checkout").show();
	$("#review-your-plan .phone .subsidy").show();

	$("#plan-price, .plan-summary-price, td[headers=r0 r1]").text(planValues[id]["price"]);
	var term=terms.find(":radio:checked").siblings("label").html().split("<")[0];
	$("#review-your-plan #r1").text($(planControl).find("#plan-name").text()+", "+term+" term");
	//$("#review-your-plan-logo #r1-logo").text("on " + $(planControl).find("#plan-name").text()+", "+term+" term");
	$("#plan-summary .content-inner").children("h3, ul").removeClass("hide");
	$(".plan-summary-term").text(term);
	$(".plan-summary-name").text(planValues[id]["name"]);
	$(".plan-summary-notes").text(planValues[id]["notes"]);
	updateMonthlyPrice();
	updateOneOffPrice();
}

function updateMonthlyPrice() {
	$("#total-price").text(calculateTotalPrice());			
	$("#review-your-plan .total td[headers=r7]").text(calculateTotalPrice());
}

// Updates the one-off phone price section if on the plans & pricing tab.
function updateOneOffPrice() {
	if ($("[headers*=r8]").length>0) {
		var html=$("#select-a-plan .item.selected > .terms .check-controls :radio:checked").siblings("label").html();
		var term=html!=null?html.split("<")[0]:'';
		var subsidyLineTokens=$("#select-a-plan .item.selected > .terms .check-controls :radio:checked").siblings("label").find("span").text().split(" ");
		var subsidy = subsidyLineTokens[0];
		var origHandsetPrice = $("td[headers=r8 r9] .price").text();
	    var origHandsetPriceValue = parseFloat(origHandsetPrice);
		if (subsidy == "Up") subsidy = subsidyLineTokens[2];
		var specialPrice=$("#select-a-plan .item.selected > .terms .check-controls :radio:checked").siblings("label").find("span").text().split("Special");
		if (specialPrice.length > 1) {
			$("th#r10[headers=r8]").text("Special offer discount");
			$("td[headers=r8 r10]").text("-$"+(origHandsetPrice-specialPrice[1].split("$")[1]).toFixed(2));
			$("td[headers=r11]").text("$"+specialPrice[1].split("$")[1]);
		} else {   
			var subsidyValue = parseFloat(subsidy.split("$")[1]);
			var handsetPriceValue = origHandsetPriceValue;
			if (subsidyValue > 0)
				 handsetPriceValue = handsetPriceValue - subsidyValue;
			var handsetFormatted = handsetPriceValue > 0 ? "$" + handsetPriceValue : "FREE";
			if (handsetFormatted.split(".").length==1 && handsetFormatted != "FREE") handsetFormatted += ".00";

			if (subsidy == '') {
			    subsidy="$0.00";
			} else if (subsidyValue >= origHandsetPriceValue) {
			    subsidy = "$" + origHandsetPrice;
			}

			if (term == '' || term == 'Open') {
			    $("th#r10[headers=r8]").text('');
			    $("td[headers=r8 r10]").text('');
			} else {
			    $("th#r10[headers=r8]").text(term+" term discount");
			    $("td[headers=r8 r10]").text("-"+subsidy);
			}

			$("td[headers=r11]").text(handsetFormatted);
		}
	}
}

function fbbShow() {
	$("#fixed-broadband-select").show();
	var fbbYes = $("#fixed-broadband-select #fixedBroadband1:checked");
	if(fbbYes.length > 0) {
		fbbYes[0].click();
		$("#fixedBroadbandTel").removeClass("hide");
	}	
} 

function fbbHide() {
	$("#fixed-broadband-select").hide();
	$("#fixedBroadbandTel").addClass("hide");
}

