//************************************************************************
var AttendeeFormFunctions = {
	
	Costs: ProductCosts.products, //created from php
	
	calculateAttendeeCost: function(attendeeIndex) {
		
		//set hidden field with the cost for this attendee
		//check whether they get a member or student discount
		var isMember = this.isMember(attendeeIndex);
		var isStudent = this.isStudent(attendeeIndex);
		var hasFreeTicket = this.hasFreeTicket(attendeeIndex);		
		var invalidCalculation = false;
		//console.log(isStudent);
		//loop through the available products and get cost for each selected product and calculate total
		var attendeeCost = 0;
		var attendeeDiscount = 0;		
		var productSelections = jQuery("input[name='productCostID"+attendeeIndex+"[]']");
		//console.log(productSelections);
		
		for (var i=0;i<productSelections.length;i++)
		{	
			if (productSelections[i].checked == true)
			{
				var costObj = this.getCostObj(productSelections[i].value);
				if (!costObj) {
					invalidCalculation = true;
					break;
				} else {
					//get costs for this product
					var fullCost = this.getFullCost(costObj);
					//console.log(costObj);
					var discount = this.getDiscount(costObj,isMember,isStudent,hasFreeTicket);
					var finalCost = Money.subtract(fullCost,discount); 
					/* console.log("full cost: " + fullCost);
					console.log("final cost: " + finalCost);
					console.log("discount: " + discount);*/
					
					//add to attendee totals
					var attendeeCost = Money.add(attendeeCost,finalCost);
					var attendeeDiscount = Money.add(attendeeDiscount,discount);
				}
			}			
		}
		if (invalidCalculation)
		{
			jQuery("#attendeeCost"+attendeeIndex).val("invalid");
			jQuery("#attendeeDiscount"+attendeeIndex).val("invalid");
			jQuery("#attendeeCostDisplay"+attendeeIndex).html("");						
		} else {
			//set hidden fields used in total cost calculation
			jQuery("#attendeeCost"+attendeeIndex).val(attendeeCost);
			jQuery("#attendeeDiscount"+attendeeIndex).val(attendeeDiscount);			
			jQuery("#attendeeCostDisplay"+attendeeIndex).html(Money.dollarFormat(attendeeCost));
			
		}	
		//console.log(attendeeCost);
		this.displayAttendeeDiscount(attendeeIndex);	
	
	},
	displayAttendeeDiscount: function(attendeeIndex)
	{
		discountValue = jQuery("#attendeeDiscount"+attendeeIndex).val();
		//if there is no discount hide field
		if (isNaN(discountValue) || parseFloat(discountValue) == 0)
		{
			jQuery("#attendeeDiscountLabel"+attendeeIndex).html("");
			jQuery("#attendeeDiscountDisplay"+attendeeIndex).html("");		
			
		} else { //display
			jQuery("#attendeeDiscountLabel"+attendeeIndex).html("Discount:");
			jQuery("#attendeeDiscountDisplay"+attendeeIndex).html("-" + Money.dollarFormat(discountValue));
		}		
	},	
	
	/* displayTotalDiscount: function()
	{
		discountValue = jQuery("#totalDiscount").val();
		//if there is no discount hide field
		if (isNaN(discountValue) || parseFloat(discountValue) == 0)
		{
			jQuery("#totalDiscountLabel").html("");
			jQuery("#totalDiscountDisplay").html("");
			
		} else { //display
			jQuery("#totalDiscountLabel").html("Discount:");
			jQuery("#totalDiscountDisplay").html("-" + Money.dollarFormat(discountValue));
		}		
	}, */
	
	calculateTotalCost: function () {
		
		var totalCost = 0;
		var totalDiscount = 0;
		var invalidCalculation = false;
		//loop through all hidden fields and add up attendee totals
		for (var attendeeIndex=1; attendeeIndex<=10;attendeeIndex++)
		{
			if (attendeeIndex==1 || jQuery("#isActive"+attendeeIndex).val() == "1")
			{	
				var attendeeCost = jQuery("#attendeeCost"+attendeeIndex).val();
				var attendeeDiscount = jQuery("#attendeeDiscount"+attendeeIndex).val();
				//console.log("attendee discount: " + attendeeDiscount);
				//console.log("attendee cost: " + attendeeCost);
				if (isNaN(attendeeCost) || isNaN(attendeeDiscount)) {
					invalidCalculation = true;
					break;				
				}
				totalCost = Money.add(totalCost,attendeeCost);
				totalDiscount = Money.add(totalDiscount,attendeeDiscount);
			}	
		}
		if (invalidCalculation == true)
		{
			jQuery("#totalCost").val("invalid");
			//jQuery("#totalDiscount").val("invalid");
			jQuery("#totalCostDisplay").val("");				
		} else {
			jQuery("#totalCost").val(totalCost);
			//jQuery("#totalDiscount").val(totalDiscount);
			jQuery("#totalCostDisplay").html(Money.dollarFormat(totalCost));						
		}	
		//this.displayTotalDiscount();
	},
	
	removeAttendeeCosts: function (attendeeIndex) {

		jQuery("#attendeeCost"+attendeeIndex).val(0);
		jQuery("#attendeeDiscount"+attendeeIndex).val(0);
		jQuery("#attendeeCostDisplay"+attendeeIndex).html("");
		this.displayAttendeeDiscount(attendeeIndex);		
		
	},
	getFullCost: function(costObj) {
		
		return costObj.cost;
		
	},
	getDiscount: function(costObj,isMember,isStudent,hasFreeTicket) {
				
		if (hasFreeTicket === true && (!isNaN(costObj.freeTicketDiscount) && parseFloat(costObj.freeTicketDiscount) > 0))
		{
			return costObj.freeTicketDiscount;			
		} else if (isStudent == true && (!isNaN(costObj.studentDiscount) && parseFloat(costObj.studentDiscount) > 0))
		{
			return costObj.studentDiscount;
		} else if (isMember == true && (!isNaN(costObj.memberDiscount) && parseFloat(costObj.memberDiscount) > 0))
		{
			return costObj.memberDiscount;
		}
		return 0;
	},
	isMember: function (attendeeIndex) {
		
		if (jQuery("input[name='memberTypeID"+attendeeIndex+"']") && jQuery("input[name='memberTypeID"+attendeeIndex+"']").attr('type') == "hidden")
		{
			if (jQuery("input[name='memberTypeID"+attendeeIndex+"']").val() == "1")
			{
				return true;
			}	
		} else {
			if (jQuery("input[name='memberTypeID"+attendeeIndex+"']:checked")) {			
				if (jQuery("input[name='memberTypeID"+attendeeIndex+"']:checked").val() != "")
				{
					return true;
				}
			}	
		}	
		return false;			
	},
	getAttendeeIndexFromChoiceID: function(idString,baseName) {
		
		var selected = idString.replace(baseName,"");
		selected = selected.replace("[]","");
		var arSelected = selected.split("_");
		var attendeeIndex = arSelected[0];
		return attendeeIndex;
		
		var clickedIndex = arSelected[1];
		
	},	
	getChoiceIndexFromChoiceID: function(idString,baseName) {
		
		var selected = idString.replace(baseName,"");
		selected = selected.replace("[]","");
		var arSelected = selected.split("_");
		var clickedIndex = arSelected[1];
		return clickedIndex;	
	},
	
	isStudent: function (attendeeIndex) {
		
		if (jQuery("input[name='isStudent"+attendeeIndex+"']") && jQuery("input[name='isStudent"+attendeeIndex+"']").attr('type') == "hidden")
		{
			if (jQuery("input[name='isStudent"+attendeeIndex+"']").val() == "1")
			{
				return true;
			}	
		} else {
			if (jQuery("input[name='isStudent"+attendeeIndex+"']:checked"))
			{
				if (jQuery("input[name='isStudent"+attendeeIndex+"']:checked").val() == "1")
				{
					return true;
				} 
			}				
		}
		return false;
	},
	hasFreeTicket: function (attendeeIndex) {
		
		if (jQuery("input[name='hasFreeTicket"+attendeeIndex+"']") && jQuery("input[name='hasFreeTicket"+attendeeIndex+"']").attr('type') == "hidden")
		{
			if (jQuery("input[name='hasFreeTicket"+attendeeIndex+"']").val() == "1")
			{
				return true;
			}
		} else {
			if (jQuery("input[name='hasFreeTicket"+attendeeIndex+"']:checked"))
			{
				if (jQuery("input[name='hasFreeTicket"+attendeeIndex+"']:checked").val() == "1")
				{
					return true;
				}
			}	
		}		
		return false;
	},
	getCostObj: function (productCostID) {
		
		for (var i=0; i<this.Costs.length;i++)
		{
			if (this.Costs[i].productCostID == productCostID) {
				return this.Costs[i];				
			}
		}		
	}
}
//************************************************************************
