// JavaScript Document LearnToSurfLA promo code functions and data
<!--

/******************************************************************************
Policy is: 5% commission to referring agent, 3% discount for student.
For returning students (if instructor gets a student to book additional lessons), there is no discount, but there
is a 5% commission for instructors that get students to book additional lessons.

	note that each entry except the last one needs to be followed by a comma
	
	an example of each, in the same order:
	new promoObj("test10percent", "promo", "percent", "all", "all", 0.1, "", ""),
	new promoObj("test5bucks", "promo", "dollar", "all", "DW_only", 5, "", ""),
	new promoObj("test3per", "type"=>"per_person", 3)

	Not Active:
	new promoObj("Mark", "referral", "percent", "all", "all", .03, "", ""),
	new promoObj("Jackson", "referral", "percent", "all", "all", .03, "", ""),
	
	The format is:
	(name, promoClass, type, program, usage, amount, emailSubject, notes)

	promoClass   = either promo or referral
	type    = dollar or percent
	program = camp, lesson or all
	usage   = DW_only, SM_only, VEN_only or all
******************************************************************************/

function promoObj (name, promoClass, type, program, usage, amount, emailSub, notes)
{
	this.name = name;
	this.promoClass = promoClass;
	this.discountType = type;
	this.program = program;
	this.usage = usage;
	this.amount = amount;
	this.emailSubject = emailSub;
	this.validationNotice = notes;
}


function calculateDiscount (registrationForm)
{
	promoArray = [
		new promoObj("YELPKICKSBUTT", "promo", "percent", "lesson", "2_3_4_ppl", .5, "", ""),
		new promoObj("gotchoo", "promo", "percent", "lesson", "all", .2, "", ""),
		new promoObj("CAMP", "promo", "dollar", "camp", "DW_only", 75, "", ""),
		new promoObj("test10percent", "promo", "percent", "all", "all", 0.1, "", ""),
		new promoObj("test5bucks", "promo", "dollar", "all", "DW_only", 5, "", ""),
		new promoObj("test5DW", "promo", "dollar", "camp", "DW_only", 5, "", ""),
		new promoObj("So10", "promo", "percent", "camp", "all", .05, "", ""),
		new promoObj("So11", "promo", "percent", "camp", "all", .05, "", ""),
		new promoObj("SMDPcamp", "promo", "dollar", "camp", "all", 40, "", ""),
		new promoObj("SMDP", "promo", "dollar", "lesson", "all", 0, "drawing for free lesson", ""),
		new promoObj("VERSM", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("VERWLA", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("VERBH", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("VERMBU", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("VERAM", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("VERVM", "promo", "dollar", "all", "all", 2, "", ""),
		new promoObj("EarlyBird", "promo", "percent", "camp", "all", .20, "", ""),
		new promoObj("Greenroom", "referral", "dollar", "all", "all", 3, "", ""),
		new promoObj("Bobby", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Bradley", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Chris", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Colby", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Cybele", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Dan", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Donnie", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Emmy", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Glenn", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Glen", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Grimm", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Henry", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Ian", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("JG", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Joseph", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Jonathan", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Kelly", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Ken", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Kevin", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Kingsley", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Laine", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Masa", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Michael", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Neill", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Rocky", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Rory", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Sabrina", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Salzman", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Sanchez", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Sandy", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Thea", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Tim", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Tom", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Val", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Will", "referral", "percent", "all", "all", .03, "", ""),
		new promoObj("Pat", "referral", "percent", "all", "all", .03, "", "")];

	discountValid = false;
	discount = 0;
	couponStr = "";
	eSubject = "";
	valNotice = "";
	locStr = registrationForm.Location_of_Lesson.value;
	promoCode = registrationForm.Referral_Coupon.value;
	headCount = parseInt (registrationForm.Number_of_Students.selectedIndex) + 1;
	typeStr = ""; 

	formTypeStr = document.getElementsByName ("Form_Type")[0].value;
	
	if (formTypeStr == "surf_camp") typeStr = registrationForm.Type_of_Camp.value;
	else typeStr = registrationForm.Type_of_Lesson.value;
	
	if ((formTypeStr.search ("gotchoo") >= 0) && (promoCode != "")) promoCode = "gotchoo";

	for (index in promoArray)
	{
		if (promoArray[index].name.toLowerCase() == promoCode.toLowerCase())
		{
			if (promoArray[index].discountType == "percent")
			{
				discount = (registrationForm.Full_Price.value * promoArray[index].amount).toFixed (2);
				couponStr = String (promoArray[index].amount * 100) + "%";
			}
			else if (promoArray[index].discountType == "dollar")
			{
				discount = promoArray[index].amount.toFixed (2);
				couponStr = "$" + String (promoArray[index].amount);

			}
			else if (promoArray[index].discountType == "per_person")
			{
				discount = (headCount * promoArray[index].amount).toFixed (2);
				couponStr = "$" + String (promoArray[index].amount) + "/person";
			}

			couponStr += "; " + promoArray[index].promoClass;
			eSubject = promoArray[index].emailSubject;
			valNotice = promoArray[index].validationNotice;
			
			discountValid = (((promoArray[index].program.search ("all") >= 0) || 
							  ((promoArray[index].program.search ("camp") >= 0) && (typeStr.search ("Day") >= 0)) || 
							  ((promoArray[index].program.search ("lesson") >= 0) && (typeStr.search ("Lesson") >= 0))) &&
							  ((promoArray[index].usage.search ("all") >= 0) || 
							  ((promoArray[index].usage.search ("DW_only") >= 0) && (locStr.search ("Manhattan/Dockweiler") >= 0)) ||
							  ((promoArray[index].usage.search ("SM_only") >= 0) && (locStr.search ("Santa Monica") >= 0)) ||
							  ((promoArray[index].usage.search ("NAVY_only") >= 0) && (locStr.search ("NAVY") >= 0)) ||
							  ((promoArray[index].usage.search ("VEN_only") >= 0) && (locStr.search ("Venice") >= 0))) ||
							  ((promoArray[index].usage.search ("2_3_4_ppl") >= 0) && (headCount > 1 && headCount < 5)));
		}
	}

	if ((promoCode.toLowerCase() == "yelpkicksbutt") && (headCount == 2)) discount = (discount * 1.1).toFixed (2);
	if  (promoCode == "gotchoo") discountValid = discountValid && (formTypeStr.search ("gotchoo") >= 0);
	if (promoCode.toLowerCase() == "earlybird")
	{
		todays_date = new Date();
		current_month = parseInt (todays_date.getMonth()) + 1;
		if (current_month >= 6) discount = 0;
		else if (current_month >= 4) discount = (discount * 0.5).toFixed (2);
	}

	registrationForm.Coupon_Type.disabled = !discountValid;
	registrationForm.Coupon_Type.value = couponStr;
	registrationForm.Coupon_Discount.value = discount;
	
	if (discountValid) 
	{
		registrationForm.Email_Subject.value = eSubject;
		registrationForm.Validation_Notice.value = valNotice;
	}
}

-->
