function AlterPriceOnStep2(ddl)
{
    var id = ddl.getAttribute('itmID');            
    var quant = ddl[ddl.selectedIndex].value;      
    var costElement = document.getElementById("spCost_"+id);
    var oldCost = costElement.innerHTML;
    var newCost = formatCurrency(quant);
    costElement.innerHTML = newCost;
    //document.getElementById("spCost_"+id).innerHTML = formatCurrency(quant);  
    
    var gDiscThresh = ddl.getAttribute('gDiscThresh');    
    var selQuant =  parseInt(ddl[ddl.selectedIndex].text);
    
    if(selQuant >= gDiscThresh && gDiscThresh > 0)
        document.getElementById("extraMessage").innerHTML = "This ticket type is now eligible for a group discount.";
    else
        document.getElementById("extraMessage").innerHTML = "";

  updateRightPanel(ddl, selQuant, oldCost, newCost); 
}

function AlterPriceOnStep2Special(ddl)
{
    var id = ddl.getAttribute('itmID');  
    var ciid = ddl.getAttribute('ciid');           
    var quant = ddl[ddl.selectedIndex].value; 
    var costElement = document.getElementById("spCost_"+ ciid + "_" + id);
    var oldCost = costElement.innerHTML;               
    costElement.innerHTML = formatCurrency(quant); 
    
    var selQuant =  parseInt(ddl[ddl.selectedIndex].text);
    
    updateRightPanel(ddl, selQuant, oldCost, formatCurrency(quant));
}

function noneSelected(chk)
{
    var ctrls = document.getElementsByTagName("input");
    var iCount = 0;
    if (chk.checked)
    {
        for (var i = 0; i < ctrls.length; i++)
            if (ctrls[i].type == "checkbox")
                ctrls[i].checked = false;
        chk.checked = true;
    }
    else
    {
        for (var i = 0; i < ctrls.length; i++)
            if (ctrls[i].type == "checkbox")
            {
                if (ctrls[i].checked) 
                    return;
            }
        chk.checked = true;
    }
}

function checkNoneSelected(chk)
{
    var ctrls = document.getElementsByTagName("input");
    var iCount = 0;
    for (var i = 0; i < ctrls.length; i++)
        if (ctrls[i].type == "checkbox")
        {
            if (ctrls[i].checked) 
            {
                document.getElementById("cbxSeatingReq1").checked = false;
                return;
            }
        }
    document.getElementById("cbxSeatingReq1").checked = true;
}

function resetChecks(chk)
{

    if (chk == null)
        chk = document.getElementById("cbxSeatingReq1");
   
    if (chk.id == "cbxSeatingReq1")
        noneSelected(chk);
    else 
        checkNoneSelected(chk);

    var spSeating = document.getElementById("spSeatingReqMessage");
    if (spSeating != null) {
        spSeating.innerHTML = chk.getAttribute("msg");
    }
}

function updateRightPanel(ddl, selQuant, oldCost, newCost)
{    
    var cucTickets = document.getElementById("cucTickets_" + ddl.getAttribute('spid'));
    var ticketsText = cucTickets.innerHTML;
    var res = ddl.getAttribute('res'); //reserve
    var tut = ddl.getAttribute('tut'); //ticket user type
    
    var replaceText = "";
    if (selQuant > 0)
        replaceText = selQuant + " " + tut + " - " + res + "<br \/>";

    var testExpr = new RegExp("[0-9]* " + tut + " \\- " + res + "\\<br( \\/)*\\>", "gi")
    var matches = testExpr.exec(ticketsText);
    if (matches != null)
        ticketsText = ticketsText.replace(testExpr, replaceText);
    else
        ticketsText += replaceText;
    cucTickets.innerHTML = ticketsText;
    
    var totalFee = document.getElementById("cartTotalFee");
    var totalCost = totalFee.innerHTML.replace(/\$|\,/g,'') * 1;
    totalCost = totalCost - oldCost.replace(/\$|\,/g,'') * 1 + newCost.replace(/\$|\,/g,'') * 1
    totalFee.innerHTML = '$' + formatCurrency(totalCost);
}

function formatCurrency(num) 
{
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    
    if(cents < 10)
        cents = "0" + cents;
        
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));            
    
    return (((sign)?'':'-')  + num) + '.' + cents;
}
    
function changePerformance(inputValues,availMessage,dontShowAlert)
{
    var valuesArray = inputValues.split(','); 
    

    if (dontShowAlert != 1)
    {
        var ctrls = document.getElementsByTagName('select');
 
        for (var i = 0; i < ctrls.length; i++)
        {
            ctrls[i].selectedIndex = 0;
            AlterPriceOnStep2(ctrls[i]);
        }
                                         
      
    }
    for(i = 1; i <= 100; i++)
    {
		var rowUserTypeLine = document.getElementById("rowUserTypeLine_" + i);
		
		if(rowUserTypeLine != null)
		{
			var rowLine = document.getElementById("rowUserTypeLine_" + i);
			var row = document.getElementById("rowUserType_" + i);
			
			if(rowLine == null)
				break;
				
			rowLine.style.display = "none";
			row.style.display = "none";
	        
			for(x in valuesArray)
			{
				if(i == valuesArray[x])
				{
					document.getElementById("rowUserTypeLine_" + i).style.display = "";
					document.getElementById("rowUserType_" + i).style.display = ""; 
				}         
			}
        }
    }

    document.getElementById("spTicketAvailMessage").innerHTML = availMessage;
    // HACK to disable input based on availMessage.
    availMessage = availMessage.replace(/(&nbsp;|\W)/g, " ");

    $("select[res!='']").removeAttr('disabled');
        //Can't use removeAttr as IE will not allow you to use attr() later to set it to something if it has been removed

    //$("select[res!='']").attr("disabled");
    //NB: cannot use the syntax -> .attr("disabled", "disabled")
    //$("select[res!='']").attr("disabled", "disabled");
    
    if (availMessage == "A Reserve sold out")
        $("select[res='A Reserve']").attr("disabled", "disabled");
    if (availMessage == "B Reserve sold out")
        $("select[res='B Reserve']").attr("disabled", "disabled");
    if (availMessage == "Premium Booth seating sold out")
        $("select[res='Premium Booth']").attr("disabled", "disabled");
    if (availMessage == "Sales are CLOSED for all Tickets to this performance")
        $("select[res != '']").attr("disabled", "disabled");

}

function ValidateInput()
{
        var ctrls = document.getElementsByTagName('select');
        var iCount = 0;
 
        for (var i = 0; i < ctrls.length; i++)
        {
           // alert(ctrls[i].selectedIndex);
            iCount = iCount + ctrls[i].selectedIndex;
        }
        
        if(iCount == 0 && ctrls.length > 0){
            alert('You have not selected any tickets to purchase. ')
            return false;
        }
        else
            return true;
}

function AlterPricesOnStep3(ddl)
{
    var id = ddl.getAttribute('itmID');             
    var origLineValue = getDecValueFromElement("spLineTotal_"+id);
    var origGrandTotal = getDecValueFromElement("spGrandTotal");
    var newLineValue = parseFloat(ddl[ddl.selectedIndex].value);
    var newGrandTotal = origGrandTotal - origLineValue + newLineValue;
                            
    document.getElementById("spLineTotal_"+id).innerHTML = formatCurrency(newLineValue);  
    document.getElementById("spGrandTotal").innerHTML = formatCurrency(newGrandTotal); 
}
        
function getDecValueFromElement(elementName)
{
    return document.getElementById(elementName).innerHTML.substring(0).replace(/\$|\,/g,'') * 1;
}

function AlterOtherDdls(ddl)
{
    var quant = ddl[ddl.selectedIndex].text;   
    
    //update the line cost of each ddl
    for(i = 0; i < 3; i++)
    {
		var j = "";
		
		if(i < 10)
			j = "0" + i;
		else
			j = i;
			
        var ddlId = ddl.id.replace(/SelectedPerformanceControl2_ctl\d*/, "SelectedPerformanceControl2_ctl" + j);
        var newDdl = document.getElementById(ddlId);       

        newDdl.options[quant].selected = true;
        
        var id = newDdl.getAttribute('itmID');
        var ciid = newDdl.getAttribute('ciid');
        var monVal = ddl[ddl.selectedIndex].value;
        var costElement = document.getElementById("spCost_"+ ciid + "_" + id);
        var oldCost = costElement.innerHTML;               
        costElement.innerHTML = formatCurrency(monVal);      
    }
    
    //update the ticket display. Note this has to be done separately to get the price correct.
    for(i = 0; i < 3; i++)
    {
		var j = "";
		
		if(i < 10)
			j = "0" + i;
		else
			j = i;
			
        var ddlId = ddl.id.replace(/SelectedPerformanceControl2_ctl\d*/, "SelectedPerformanceControl2_ctl" + j);
        var newDdl = document.getElementById(ddlId);               
        var id = newDdl.getAttribute('itmID');
        var ciid = newDdl.getAttribute('ciid'); 
        var selQuant =  parseInt(newDdl[newDdl.selectedIndex].text);       
        var monVal = ddl[ddl.selectedIndex].value;
        var costElement = document.getElementById("spCost_"+ ciid + "_" + id);
        var oldCost = costElement.innerHTML;               

        updateRightPanel(newDdl, selQuant, oldCost, formatCurrency(monVal));         
    }
}


 