﻿var current_pkg = 0;
var current_selected_perf_list = [];
var current_selected_perf_list_index = 0;
var current_performance = 0;
var count_selected_groups = 0;
var NFSPkgSummary = null;
var selectedZone = 0;
var currentRadioBtn = null;

var currentPackageDescription = "";
var currentReqContribAmount = 0;
var currentZoneDescription = "";
var currentZoneNumber = 0;


function doGetPackageDetail(iSeasonNo, oRadioBtn, sPkgDescription)
{
	var req = null;
	var iPkgNo = oRadioBtn.value;

	currentPackageDescription = sPkgDescription;
	current_pkg = iPkgNo;
	currentReqContribAmount = 0;
	currentZoneDescription = "";
	currentZoneNumber = 0;
	
	
	handler = function()
	{
		if (req.readyState == 4)
		{
			document.body.style.cursor = "default";
			oRadioBtn.style.cursor = "pointer";

			if (req.status == 200)
			{
				var rslt = JSON.parse(req.responseText);
				try
				{
					rslt = rslt.d;
				}
				catch (err) { alert(err); }

				if (rslt.Success)
				{
					selectedFlexZoneDescription = "";
					current_selected_perf_list = [];

					currentPerfGroupPerfs = [];
					currentPerfGroupPerfsIndex = 0;

					current_selected_perf_list_index = 0;

					$("#placeholder-package-detail").html(rslt.FormattedHTML);
					$("#placeholder-package-detail").fadeIn("slow");

					NFSPkgSummary = rslt.NFSPkgSummary;
					if (NFSPkgSummary != null)
					{
						// determine if there are boxes already checked
						try
						{
							count_selected_groups = parseInt($('#count_selected_groups').html());
						}
						catch (e) { }
					}

					try
					{
						// rslt.Message only exists when there's only 1 zone
						if (rslt.Message.length > 0)
						{

							var perfzone = rslt.Message.split(",");
							var tobj = getpackagehandler();
							tobj.zone = parseInt(perfzone[1]);
							quantities["pkg" + perfzone[0]] = tobj;
							selectedFlexZoneDescription = perfzone[2];
							var selectedRadio = document.getElementById("perfzone" + perfzone[0] + "_" + perfzone[1]);
							if (selectedRadio)
								selectedRadio.checked = true;
						}
						else
						{
							var zone_table = document.getElementById("zone_table");
							if (zone_table)
							{
								var zoneInputs = zone_table.getElementsByTagName("input");
								if (zoneInputs.length == 1)
								{
									zoneInputs[0].checked = true;
									selectedZone = zoneInputs[0].value;
								}
							}
						}
						location.hash = "rdo_pkg_no_" + iPkgNo;
						update_status_panel();
					}
					catch (err) { }

					// showRequiredContributions(iPkgNo);

				}
				else { $("#placeholder-package-detail").html(""); }
			}
		}
	}
    
    try
    {
        req = getreq();
        
        if (req)
        {
        	document.body.style.cursor = "wait";
        	oRadioBtn.style.cursor = "wait";
        	req.open("POST", (srvr + ROOT + WEBSERVICE + "GetPackage"), true);
			req.setRequestHeader("Content-Type", "application/json");
			req.onreadystatechange = this.handler;
			var qs = "{pkg_no:" + iPkgNo + "}";
			req.send(qs);
		}    
    }
    catch(e){ alert("Error: " + e); }
}

function setPriceTypeQuantity(howmany, iPkgNo, iPriceType, ptindex)
{
	previousPTINDEX = ptindex;
    var tobj;
    if (quantities["pkg" + iPkgNo] == null)
        tobj = getpackagehandler();
    else
        tobj = quantities["pkg" + iPkgNo];

    for (var x = 0; x <= ptindex; x++) 
    {
        if (tobj.qty[x] == null) 
        {
            tobj.qty[x] = 0;
            tobj.pt[x] = 0;
        }
    }
    tobj.qty[ptindex] = howmany
    tobj.pt[ptindex] = iPriceType

    if (selectedZone > 0)
        tobj.zone = selectedZone; // we only do this when there's only 1 zone to select and [hopefully] it's preselected
    else if (NFSPkgSummary) 
    {
        if (selectedPerfNo == 0) 
        {
            for (var x = (current_selected_perf_list_index - 1); x > -1; x--) {
                selectedPerfNo = current_selected_perf_list[x].PerfNumber;
                if (selectedPerfNo > 0)
                    break;
            }
        }
        tobj.zone = GetZoneIDForPerformance(selectedPerfNo)
    }
    else
        tobj.zone = getZone();

    quantities["pkg" + iPkgNo] = tobj;
    // update_status_panel();
    if (!checkPackage(iPkgNo))
    {
        var ddl = document.getElementById("p_" + iPkgNo + "pt_" + iPriceType);
        if (ddl)
            ddl.selectedIndex = 0; // will this generate an on-change event?
    }
}

function getZone() {
    var zone_no = 0;
    var zone_table = document.getElementById("zone_table");
    if (zone_table) {
        var zone_radio_buttons = zone_table.getElementsByTagName("input");
        for (var x = 0; x < zone_radio_buttons.length; x++)
            if (zone_radio_buttons[x].checked) {
            zone_no = parseInt(zone_radio_buttons[x].value);
            break;
        }
    }
    return zone_no;
}

var div_req_contrib_visible = false;

function recordRequiredContribution(iValue)
{

}

function setRequiredContribution(iPkgNo, iZoneNo)
{
	var ddl_reqcontrib = document.getElementById("ddl_reqcontrib");
	if (ddl_reqcontrib != null)
	{
		var addedItems = false;
		
		for (var x = ddl_reqcontrib.length; x > 0; x--)
			ddl_reqcontrib.remove(x - 1);

		for (var x = 0; x < required_contribution.length; x++)
		{

			if (required_contribution[x].pkg_no == iPkgNo && required_contribution[x].zone_no == iZoneNo)
			{
				addedItems = true;
				var newopt = document.createElement('option');
				newopt.text = required_contribution[x].description + ": $" + Math.floor(required_contribution[x].contrib_amt);
				newopt.value = required_contribution[x].contrib_amt;
				try
				{
					ddl_reqcontrib.add(newopt, null);
				}
				catch (e)
				{
					ddl_reqcontrib.add(newopt);
				}
			}
		}
		if (addedItems && !div_req_contrib_visible)
			$('#div_req_contrib').slideDown("normal");
		if ( ! addedItems && div_req_contrib_visible )
			$('#div_req_contrib').slideUp("normal");
		div_req_contrib_visible = addedItems;
	}
}

function showRequiredContributions(iPkgNo)
{
	/*
	for (var x = 0; x < required_contribution.length; x++)
	{
		if (required_contribution[x].pkg_no == iPkgNo)
		{
			var existingText = $('#req_contrib' + required_contribution[x].zone_no).html();
			if (existingText != null && existingText.length >1)
				$('#req_contrib' + required_contribution[x].zone_no).html(existingText + "<br/>" + required_contribution[x].description + ": $" + Math.floor(required_contribution[x].contrib_amt));
			else
				$('#req_contrib' + required_contribution[x].zone_no).html( required_contribution[x].description + ": $" + Math.floor(required_contribution[x].contrib_amt));
		}
	}
	*/
}

var previousDDL = null;
var previousPTINDEX = -1;
var quantities = [];
function setZoneFGO(iPkgNo, iZoneNo, dReqContribAmount, sZoneDescription )
{
	if (previousDDL != null)
	{
		$(previousDDL).hide();
		if (previousPTINDEX > -1)
		{
			quantities["pkg" + iPkgNo].qty[previousPTINDEX] = 0;
		}
			
	}
	$("#ddl_z" + iZoneNo + "_rc" + dReqContribAmount).show();
	previousDDL = "#ddl_z" + iZoneNo + "_rc" + dReqContribAmount;

    var tobj;
    if (quantities["pkg" + iPkgNo] == null)
        tobj = getpackagehandler();
    else
        tobj = quantities["pkg" + iPkgNo];
    tobj.zone = iZoneNo;
    quantities["pkg" + iPkgNo] = tobj;
    checkPackage(iPkgNo);
    currentReqContribAmount = dReqContribAmount;
    currentZoneDescription = sZoneDescription;
    currentZoneNumber = iZoneNo;
    // zone_table_toggle(document.getElementById("span_seating_section_toggle"));
    try
    {
    	var venue_id_holder_content = $('#venue_id_holder').html()
    	var venue_id = parseInt(venue_id_holder_content);
    	var seat_chart = document.getElementById("seat_chart");
    	seat_chart.src = "/lib/images/venues/V" + venue_id + "_" + iZoneNo + ".jpg";
    }
    catch (e) { }
    // update_status_panel();
    // setRequiredContribution(iPkgNo, iZoneNo);
}

function getpackagehandler() 
{
    var tobj = {};
    tobj.qty = [];
    tobj.pt = [];
    tobj.zone = 0;
    return tobj;
}

function checkPackage(iPkgNo) 
{
    this.setEnable = function(bVal) 
    {
        var btn = document.getElementById("btn_purchase" + pkg_no);
        if (btn)
            btn.disabled = bVal;
    }

    var result = false;
    if (NFSPkgSummary != null) 
    {
        result = validateNFSPackage();
        if (!result) 
        {
            this.setEnable(true);
            return result;
        }
    }

    var pkg_no = iPkgNo;
    tobj = quantities["pkg" + iPkgNo];    
    if (tobj != null) 
    {
        if (tobj.zone > 0) 
        {
        
            var howmany = 0;
            for (var x = 0; x < tobj.qty.length; x++)
                howmany += parseInt(tobj.qty[x]);

            result = (howmany > 0);            
            if (howmany > 0)
                this.setEnable(false);
        }
        else
            this.setEnable(false);
    }
    return result;
}

function cancel_select_perf_group(pg_no) 
{
    close_pg(pg_no);
}

function purchase_subs(iPkgNo) 
{
    var target = quantities["pkg" + iPkgNo];
    var req = getreq();
    var qty = 0;
    // var subs_unseated = true; moved to index.aspx

    getptlist = function() 
    {
        var retval = "";
        for (var x = 0; x < target.qty.length; x++) 
        {
            qty += parseInt(target.qty[x]);
            if (target.qty[x] > 0)
            for (var y = 0; y < target.qty[x]; y++) 
            {
                if (retval.length > 0) retval += ",";
                retval += target.pt[x];
            }
        }
        return retval;
    }

    this.handler = function() 
    {
    if (req.readyState == 4) 
        {
            document.body.style.cursor = "default";
            if (req.status == 200) 
            {
                rslt = JSON.parse(req.responseText);
                try {
                    rslt = rslt.d;
                }
                catch (err) { }
                if (rslt.Success) 
                {
                    location.href = "/tickets/cart.aspx";
                }
                else
                    alert(rslt.ErrorMessage);
            }
            else
                alert(req.responseText);
        }
    }

    this.errorMessage = "";

    this.validate = function(bUnseated)
    {
    	var pt = getptlist();
    	if (bUnseated)
    	{
    		// var ddl_reqcontrib = document.getElementById("ddl_reqcontrib");
    		var amt = currentReqContribAmount;
    		// try { amt = parseInt(ddl_reqcontrib.options[ddl_reqcontrib.selectedIndex].value); } catch (e) { }
    		return { parent_pkg_no: 0, pricetype: pt, pkg_no: iPkgNo, quantity: qty, zone: target.zone, perseatcontribamt: amt };
    	}
    	else
    		return { pricetype: pt, pkg_no: iPkgNo, quantity: qty, zone: target.zone, requestedseats: "", leavesingleseats: false };
    }

    if (req && NFSPkgSummary != null) 
    {
        var flexObj = { pkg_no: iPkgNo, performances: [] };
        if (validateNFSPackage()) {
            var ptlist = getptlist();

            var current_performance_index = 0;
            for (var x = 0; x < current_selected_perf_list_index; x++)
                if (current_selected_perf_list[x] != null) {
                var zone_no = current_selected_perf_list[x].ZoneNumber;
                var flexitem = { perf_group_no: current_selected_perf_list[x].GroupNumber, perf_no: current_selected_perf_list[x].PerfNumber, pricetype: ptlist, quantity: qty, zone: zone_no };
                flexObj.performances[current_performance_index++] = flexitem;
            }

            document.body.style.cursor = "wait";
            req.open(HTTP_VERB, (srvr + WEBSERVICE + "AddFlexPackage"), true);
            req.setRequestHeader(CONTENT_TYPE, APP_JSON);
            req.setRequestHeader(ORGANIZATION_CODE_KEY, ORGANIZATION_CODE);
            req.onreadystatechange = this.handler;
            // alert(JSON.serialize(flexObj));
            req.send(JSON.serialize(flexObj));
        }
        else
            alert("Flex package validation error: " + this.errorMessage);
    }
    else {
        var sendObj = this.validate(subs_unseated);
        if (req && sendObj) {
            var target_method = subs_unseated ? "AddPackageItemFGO" : "AddPackageItemSeated"
            document.body.style.cursor = "wait";
            req.open(HTTP_VERB, (srvr + WEBSERVICE + target_method), true);
            req.setRequestHeader(CONTENT_TYPE, APP_JSON);
            req.setRequestHeader(ORGANIZATION_CODE_KEY, ORGANIZATION_CODE);
            req.onreadystatechange = this.handler;
            req.send(JSON.serialize(sendObj));
            // alert(JSON.serialize(sendObj));
        }
    }
}

function buildSelectedPerfs() 
{
    var newHTML = "<table cellspacing='0' width='100%' id='perf_list_table'>";
    for (var x = 0; x < current_selected_perf_list.length; x++) 
    {
        if (current_selected_perf_list[x] != null) {
            newHTML += "<tr><td style='width: 100%'>";
            newHTML += current_selected_perf_list[x].Title;
            newHTML += "&nbsp;&ndash;&nbsp;<span class='action' onclick='remove_perf_item(" + x + ")'>Remove</span>";
            newHTML += "</td></tr>";
        }
    }
    newHTML += "</table>";
    $('#selected_performances').html(newHTML);
}

function remove_perf_item(iIndexId) {
    // alert( "remove_perf_item " + iIndexId );
    var item = current_selected_perf_list[iIndexId];
    $('#splink' + current_pkg + '_' + item.GroupNumber).show();
    current_selected_perf_list[iIndexId] = null;
    buildSelectedPerfs();
}

var selectedPerfDescription = null;
var selectedPerfNo = 0


function select_perf_group(oChkbx, pkg_no, pg_no, pkg_min, pkg_max) 
{    
    current_pkg = pkg_no;
    if (oChkbx.checked) 
    {
        if (count_selected_groups < pkg_max) 
        {
            count_selected_groups++;
            $('#splink' + pkg_no + "_" + pg_no).show(); 		// Show the "Select Performance" link
        }
        else 
        {
            // too many selected: display error message and uncheck box
            oChkbx.checked = false;
            alert("Please deselect another package group, then try making this selection again.");
        }
    }
    else {
        // user unchecked current box
        count_selected_groups--;
        $('#splink' + pkg_no + "_" + pg_no).hide();
        for (var x = 0; x < current_selected_perf_list.length; x++) {
            if (current_selected_perf_list[x] != null && current_selected_perf_list[x].GroupNumber == pg_no) {
                current_selected_perf_list[x] = null;
                break;
            }
        }
        buildSelectedPerfs();
    }
    // alert( "pkg_no, pg_no, pkg_min, pkg_max = " + pkg_no + ", " + pg_no + ", " + pkg_min + ", " + pkg_max );
}


var last_pkg_no = 0;
var targetrect;
var splinkxy;

function select_performances_for_perf_group(pkg_no, pg_no) {
    last_pkg_no = pkg_no;
    splinkxy = getxy("splink" + pkg_no + "_" + pg_no);
    var divToShow = document.getElementById("pgdetail" + pg_no);
    if (divToShow) {
        divToShow.style.left = "" + (splinkxy.x + 40) + "px";
        divToShow.style.top = "" + (splinkxy.y - 125) + "px";
        targetrect = { left: (splinkxy.x + 40), top: (splinkxy.y - 125), width: 300, height: 250 };
        var zoom_rect = document.getElementById("zoom_rect");
        
        if (zoom_rect)
            animate.open(divToShow, function() { divToShow.style.display = "block"; $("select.ie6select").hide(); }, null, splinkxy, targetrect);
        else
            divToShow.style.display = "block";
    }
    // alert("display perfrmances for group #" + pg_no );
}

var currentPerfGroupPerfs = [];
var currentPerfGroupPerfsIndex = 0;
function selectPerformanceInGroup(iGroupNo, iPerfNo, iSelected, sDescription) {
    var perf_no = iPerfNo;
    try {
        perf_no = parseInt(iPerfNo);
    }
    catch (e) { }
    if (iSelected) {
        if (perf_no > 0) {
            var current_perf_group = getGroupInfo(iGroupNo);
            var current_perf_count_for_group = countPerformancesInPerfGroup(iGroupNo);
            if (current_perf_count_for_group > 0) {
                if (current_perf_group.num_perf_max == 1) {
                    // this perf group only wants one performance at a time, so remove anything else
                    currentPerfGroupPerfs = [];
                    currentPerfGroupPerfsIndex = 0;
                }
            }
            var item = {}
            item.perf_no = perf_no;
            item.desc = sDescription;
            currentPerfGroupPerfs[currentPerfGroupPerfsIndex++] = item;
        }
    }
    else {
        for (var x = 0; x < currentPerfGroupPerfsIndex; x++) {
            if (currentPerfGroupPerfs[x].perf_no == perf_no) {
                currentPerfGroupPerfs[x].perf_no = 0;
                break;
            }
        }
    }
    evaluateCurrentPackageGroup(iGroupNo);
}

function getGroupInfo(iGroupNo) {
    for (var x = 0; x < NFSPkgSummary.Groups.length; x++) {
        if (NFSPkgSummary.Groups[x].perf_group_no == iGroupNo)
            return NFSPkgSummary.Groups[x];
    }
    return null;
}

function evaluateCurrentPackageGroup(iGroupNo) {
    if (NFSPkgSummary != null) {
        for (var x = 0; x < NFSPkgSummary.Groups.length; x++) {
            if (NFSPkgSummary.Groups[x].perf_group_no == iGroupNo) {
                var perf_count = 0;
                for (var y = 0; y < currentPerfGroupPerfsIndex; y++) {
                    if (currentPerfGroupPerfs[y].perf_no > 0)
                        perf_count++;
                }
                var btn = document.getElementById("btn_select_pg" + iGroupNo);

                if (btn && perf_count >= NFSPkgSummary.Groups[x].num_perf_min && perf_count <= NFSPkgSummary.Groups[x].num_perf_max)
                    btn.disabled = false;
                else if (btn)
                    btn.disabled = true;

                break;
            }
        }
    }
}

function append_selected_perf_group(iGroupNo, sAltDescription, iAltPerfNo) {
    for (var x = 0; x < NFSPkgSummary.Groups.length; x++) {
        if (NFSPkgSummary.Groups[x].perf_group_no == iGroupNo) {
            for (var y = 0; y < currentPerfGroupPerfsIndex; y++) {
                if (currentPerfGroupPerfs[y] && currentPerfGroupPerfs[y].perf_no > 0) {
                    var selectedObj = {};
                    /*
                    var menu = document.getElementById("ddl_perf_group" + iGroupNo);
                    if (menu)
                    {
                    if (menu.options)
                    selectedObj.Title = menu.options[menu.selectedIndex].text;
                    else
                    selectedObj.Title = selectedPerfDescription;
                    selectedObj.PerfNumber = selectedPerfNo;
                    }
                    else
                    {
                    selectedObj.Title = sAltDescription;
                    selectedObj.PerfNumber = iAltPerfNo;
                    }
                    */

                    selectedObj.Title = currentPerfGroupPerfs[y].desc;
                    selectedObj.PerfNumber = currentPerfGroupPerfs[y].perf_no;
                    selectedObj.GroupNumber = iGroupNo;
                    selectedObj.ZoneNumber = GetZoneIDForPerformance(selectedObj.PerfNumber);
                    current_selected_perf_list[current_selected_perf_list_index++] = selectedObj;
                }
            }

            $('#splink' + current_pkg + '_' + iGroupNo).hide(); // hides the "Select Performance" text
            buildSelectedPerfs(); 							// displays the currently selected performances
            break;
        }
    }
    currentPerfGroupPerfs = [];
    currentPerfGroupPerfsIndex = 0;
}

function submit_pg(iGroupNo) {
    // have the animation vanishing point seem to go to the selected performances box;
    splinkxy = getxy("selected_performances");
    var perf_list_table = document.getElementById("perf_list_table"); // dynamic table containing selected performances
    var rowcount = 0;
    if (perf_list_table)
        rowcount = perf_list_table.rows.length;
    splinkxy.x += 120;
    splinkxy.y += 10 + (rowcount * 18);
    close_pg(iGroupNo);
    // alert("submit performance group");
    append_selected_perf_group(iGroupNo);

}

var selectedFlexZoneDescription = "";

function selectFlexZone(sZoneDesc) {
    selectedFlexZoneDescription = sZoneDesc;
    for (var x = 0; x < current_selected_perf_list.length; x++) {
        if (current_selected_perf_list[x]) {
            current_selected_perf_list[x].ZoneNumber = GetZoneIDForPerformance(current_selected_perf_list[x].PerfNumber);
        }
    }
}

function GetZoneIDForPerformance(iPerfNo) {
    if (selectedFlexZoneDescription == "")
        return 0;

    var pzi = null;
    try {
        pzi = NFSPkgSummary.ZonesForNFSPackage.NFSPackageZoneItems;
    }
    catch (er) { }
    if (pzi != null) {
        for (var x = 0; x < pzi.length; x++)
            if (pzi[x].perf_no == iPerfNo && pzi[x].zone_desc == selectedFlexZoneDescription) {
            return pzi[x].zone_no;
        }
    }
    return 0;
}

function countPerformancesInPerfGroup(iGroupNo) {
    var perf_count = 0;
    for (var y = 0; y < currentPerfGroupPerfsIndex; y++) {
        if (currentPerfGroupPerfs[y].perf_no > 0)
            perf_count++;
    }
    return perf_count;
}

function close_pg(pg_no) {
    var divToShow = document.getElementById("pgdetail" + pg_no);
    if (divToShow) {
        $("select.ie6select").show();
        divToShow.style.display = "none";
        var zoom_rect = document.getElementById("zoom_rect");
        if (zoom_rect)
            animate.close(divToShow, null, null, splinkxy, targetrect);
    }
}

function validateNFSPackage() 
{
    if (count_selected_groups < NFSPkgSummary.num_perf_min || count_selected_groups > NFSPkgSummary.num_perf_max) 
    {
        alert("Insufficient number of Performance Groups selected.");
        return false;
    }
    else 
    {
        // for ( var y = 0; y < current_selected_perf_list.length; y++ )
        // 	if ( current_selected_perf_list[y] != null )
        // 		current_selected_perf_list[y].zone = zone_no;

        for (var x = 0; x < NFSPkgSummary.Groups.length; x++) {
            var curr_perf_group = NFSPkgSummary.Groups[x];

            var curr_perf_group_perf_count = 0;

            for (var y = 0; y < current_selected_perf_list_index; y++) {
                if (current_selected_perf_list[y] != null && current_selected_perf_list[y].GroupNumber == curr_perf_group.perf_group_no) {
                    curr_perf_group_perf_count++;
                }
            }

            if (curr_perf_group_perf_count == 0 && curr_perf_group.num_perf_min > 0 && curr_perf_group.SinglePerfNumber > 0) {
                var selectedObj = {};
                selectedObj.PerfNumber = curr_perf_group.SinglePerfNumber;
                selectedObj.GroupNumber = curr_perf_group.perf_group_no;
                selectedObj.ZoneNumber = GetZoneIDForPerformance(selectedObj.PerfNumber);
                current_selected_perf_list[current_selected_perf_list_index] = selectedObj;
                current_selected_perf_list_index++;
                curr_perf_group_perf_count++;
            }

            if (curr_perf_group_perf_count < curr_perf_group.num_perf_min || curr_perf_group_perf_count > curr_perf_group.num_perf_max) {
                alert("Performance Group #" + curr_perf_group.perf_group_no + " requires a minimum of " + curr_perf_group.num_perf_min + " and a maximum of " + curr_perf_group.num_perf_max + ". You've selected " + curr_perf_group_perf_count + ".");
                return false;
            }
        }
    }
    return true;
}

var zone_table_visible = true;

function zone_table_toggle(o_togglespan)
{
	if (zone_table_visible)
	{
		$('#zone_table').slideUp('slow');
		$('#span_seating_section_toggle').html("+");
		o_togglespan.title = "Show";
		zone_table_visible = false;
	}
	else
	{
		$('#zone_table').slideDown('slow');
		$('#span_seating_section_toggle').html("-");
		o_togglespan.title = "Hide";
		zone_table_visible = true;
	}
}


var status_panel_holder_visible = false;

function format_amt(dAmt)
{
	var amt = dAmt * 100;
	var cents = amt % 100;
	amt -= cents;
	if (!cents)
		cents = ".00";
	else if (cents < 10)
		cents = ".0" + cents;
	else
		cents = "." + cents;
	return '$' + amt / 100 + cents;

}

function update_status_panel()
{
	var QtyNotSetErrMsg = "<i>Awaiting your selection</i></p>";

	var status_panel_holder = document.getElementById("status_panel_holder");
	if (!status_panel_holder_visible)
	{
		var ws = getwindowsize();
		var st = getscrolltop();
		var left = Math.floor(ws.x * .6);
		var top = st.x + 20;
		status_panel_holder.style.left = "" + left + "px";
		$(status_panel_holder).fadeIn('fast', function() { addShadow("status_panel") });
		status_panel_holder_visible = true;
	}

	var status_panel_content_html = "<p><b>Package:</b> " + currentPackageDescription + "</p>";
	if (currentZoneDescription != "")
		status_panel_content_html += "<p><b>Section:</b> " + currentZoneDescription + "</p>";
	else
		status_panel_content_html += "<p><b>Section:</b> " + QtyNotSetErrMsg;
	if (currentReqContribAmount > 0)
	{
		status_panel_content_html += "<p><b>Required Contribution:</b> " + format_amt(currentReqContribAmount) + " per seat.</p>";
	}
	status_panel_content_html += "<p><b>Pricing:</b> ";

	if (quantities != null && quantities["pkg" + current_pkg] != null)
	{
		var pricetable = null;
		for (var x = 0; x < quantities["pkg" + current_pkg].qty.length; x++)
		{
			if (quantities["pkg" + current_pkg].qty[x] > 0)
			{
				if (pricetable == null)
					pricetable = "<table cellspacing='0' class='subpricegrid'><tr><th>Quantity</th><th>Price Each</th><th>Total</th></tr>";
				pricetable += "<tr><td style='text-align: right;'>" + quantities["pkg" + current_pkg].qty[x] + "</td>";
				var unitprice = $('#Z' + quantities["pkg" + current_pkg].zone + '_PT' + quantities["pkg" + current_pkg].pt[x] + '_' + currentReqContribAmount ).html();
				pricetable += "<td style='text-align: right;'>" + unitprice + "</td>";
				var unitpricefloat = parseFloat(unitprice.replace(/[^0-9\.]/g, ""));
				pricetable += "<td style='text-align: right;'>" + format_amt(unitpricefloat * quantities["pkg" + current_pkg].qty[x]) + "</td></tr>";
			}
		}
		if (pricetable != null)
			pricetable += "</table>";
		status_panel_content_html += (pricetable == null ? QtyNotSetErrMsg + "</p>" : "</p>" + pricetable);
	}
	else
		status_panel_content_html += QtyNotSetErrMsg;
	$('#status_panel_content').html(status_panel_content_html);
}