function swapImg(id){
	var cSrc = id.src;
	if (cSrc.indexOf("_off") > 0){cSrc = cSrc.replace("_off","_on");}
	else if (cSrc.indexOf("_on") > 0){cSrc = cSrc.replace("_on","_off");}
	id.src = cSrc;
}

function checkCode(e){
	if(glow.dom.get("#code").val().length >= 3){
		var request = glow.net.get("_cfc/helper.cfc?method=checkCode&event=" + glow.dom.get("#id").val() + "&code=" + glow.dom.get("#code").val() + "&t=" + glow.dom.get("#t").val() ,{
			onLoad:function(response){
				try{
					var json = glow.data.decodeJson(response.text());
					if(json.status){
						glow.dom.get(".code-status").css("background-image","url(_img/icon_check.gif)");
						glow.dom.get(".code-status").text("Your code has been accepted");
						glow.dom.get("#price").val(json.data);
						updateGuests();
					}else{
						glow.dom.get(".code-status").css("background-image","url(_img/icon_x.gif)");
						glow.dom.get(".code-status").text("Sorry, your code is not valid");
						glow.dom.get("#price").val(glow.dom.get("#price2").val());
						updateGuests();
						}
				}catch(e){alert("An error occured");}
			}, onError:function(response){
				alert("An error occured.");
				updateGuests();
			}
		});
	}else{
		glow.dom.get(".code-status").css("background-image","url(_img/icon_i.gif)");
		glow.dom.get(".code-status").text("If you received a code, enter it here");
		glow.dom.get("#price").val(glow.dom.get("#price2").val());
		updateGuests();
	}
}

function updateGuests(){
	var g = glow.dom.get("#guests").val();
	for(var i=1; i<=5; i++){glow.dom.get(".guest_"+i).css("display","none");}
	for(var i=1; i<=g; i++){glow.dom.get(".guest_"+i).css("display","block");}
	var price = parseFloat(glow.dom.get("#price").val());
	var total = ((price * parseInt(g)) + price);
	var totalString = "<small>Total:</small> $" + total.toFixed(2);
	glow.dom.get(".total").html(totalString);
}

function isEmail(email){
	if((!/^\s*[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}\s*$/i.test(email))){return false;}
	return true;
}

function initEvents(){
	glow.events.addListener("#code", "keyup", checkCode);
	glow.events.addListener("#code", "blur", checkCode);
	glow.events.addListener("#guests", "change", updateGuests);
	
	var verifyForm = new glow.forms.Form(".event form");
	verifyForm.addTests("firstname",["required",{message:"Required"}]);
	verifyForm.addTests("lastname",["required",{message:"Required"}]);
	
	verifyForm.addTests("email",
		["required",{message:"Required"}],
		["isEmail",{message:"Please enter a valid email"}]);
	
	verifyForm.addTests("address",["required",{message:"Required"}]);
	
	verifyForm.addTests("city",["required",{message:"Required"}]);
	
	verifyForm.addTests("state",["required",{message:"Required"}]);
	
	verifyForm.addTests("zipcode",
		["required",{message:"Required"}],
		["isNumber",{message:"Please enter a 5-digit zipcode"}],
		["minLen",{arg:"5",message:"Please enter a 5-digit zipcode"}]);
	
	verifyForm.addTests("phone",
		["required",{message:"Required"}],
		["minLen",{arg:"10"}]);
	
	verifyForm.addTests("creditcard",
		["required",{message:"Required"}],
		["isNumber"],
		["minLen",{arg:"15"}]);
	
	verifyForm.addTests("cvv2",
		["required",{message:"Required"}],
		["isNumber"],
		["minLen",{arg:"3"}]);
		
	verifyForm.addTests("firstname_1",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 1 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("lastname_1",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 1 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("email_1",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 1 && !isEmail(values[0])){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	
	verifyForm.addTests("firstname_2",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 2 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("lastname_2",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 2 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("email_2",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 2 && !isEmail(values[0])){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	
	verifyForm.addTests("firstname_3",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 3 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("lastname_3",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 3 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("email_3",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 3 && !isEmail(values[0])){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	
	verifyForm.addTests("firstname_4",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 4 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("lastname_4",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 4 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("email_4",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 4 && !isEmail(values[0])){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	
	verifyForm.addTests("firstname_5",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 5 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	verifyForm.addTests("lastname_5",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 5 && !values[0].length){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);		
	verifyForm.addTests("email_5",["custom",{arg:function(values, opts, callback, formData){if (glow.dom.get("#guests").val() >= 5 && !isEmail(values[0])){callback(glow.forms.FAIL, "Required");return;}callback(glow.forms.PASS, "Not Required");}}]);
	
	verifyForm.addTests("confirm",["required",{message:"Please confirm your details and check this box before processing your order."}]);
}
