cms_timer		= null;		// Intiates the CMS timer - GLOBAL: can be used for any function
ajax_response	= '';		// Global value to store the respose from Ajax so that it can be used in other functions

/**
 * Submits a query via Ajax and runs a success function if required
 *
 * @return				void
 * @author				Nigel Wells
 * @version				1.0.07.11.09
 * @param function_name			The function that will be called in lib_ajaxrequest.php
 * @param criteria				Criteria to be sent to the php function
 * @param success_function		If set then this function will be called after the Ajax request has been successful
						- The response from Ajax will be stored in a global virable "ajax_response" which can then be accessed from function_name()
 * @param boolAlert			If true then it will alert the response returned from Ajax - Can be useful for debuging
 */
function loadAjaxFunctionWITB(function_name, criteria, success_function, boolAlert) {
	var strResponse = '';
	var status = false;

	if (criteria != '' && criteria != null && criteria != undefined) {
		criteria = "&" + criteria;
	} else {
		criteria = "";
	}
	AjaxRequest.get(
		{
		  'url':'/includes/ajax.php?ajax_function=' + function_name + criteria
		  ,'onSuccess':function(req){
			  var status = true;
			  strResponse = req.responseText; 
			  if (boolAlert === true) alert(strResponse);
			  if (success_function != '' && success_function != null && success_function != undefined) {
				  ajax_response = strResponse;
				  success_function += '()';
				  setTimeout(success_function, 1);
			  }
			  return strResponse;
		  }
		}
	);
}

/**
 * Submits a form via Ajax and runs a success function if required
 *
 * @return					void
 * @author					Nigel Wells
 * @version					1.0.08.07.03
 * @param form				Form object - NOTE: This must be the object and not just the name of the form
 * @param function_name		The function that will be called in lib_ajaxrequest.php
 * @param success_function	If set then this function will be called after the Ajax request has been successful
							- The response from Ajax will be stored in a global virable "ajax_response" which can then be accessed from function_name()
 * @param boolAlert			If true then it will alert the response returned from Ajax - Can be useful for debuging
 */
function submitAjaxForm(form, function_name, success_function, boolAlert) {
	AjaxRequest.submit(
		form
		,{
			'url' : '/includes/ajax.php?ajax_function=' + function_name
			,'onSuccess' : function (req) {
				if (boolAlert === true) alert(req.responseText);
				if (success_function != '') {
					ajax_response = req.responseText;
					success_function += '()';
					setTimeout(success_function, 1);
				}
			}
			,'onError' : function (req) {form.submit()}
		}
	);
}

function changeVariation(i, variationid) {
	var criteria = 'variationid=' + variationid + '&i=' + i;
	loadAjaxFunctionWITB('changeVariation', criteria, 'changeVariationImage', false);
}

function changeVariationImage() {
	arrResp = ajax_response.split('|');
	document.getElementById('witb_' + arrResp[0]).src = '/images/witb/s_' + arrResp[1];
}

function addFoodBasket(form) {
	submitAjaxForm(form, 'addFoodBasket', 'displayCart', false);
}

function addFoodBasketNames(form) {
	var boolProceed = true;
	var a = 0;
	// Make sure all names and genders have been added before adding the order
	while(document.getElementById('box_name_' + a)) {
		if(document.getElementById('box_name_' + a).value == '' || (document.getElementById('gender_girl_' + a).checked == false && document.getElementById('gender_boy_' + a).checked == false)) boolProceed = false;
		a++;
	}
	if(!boolProceed) {
		alert('You must enter all the child names and genders');
		return false;
	} else {
		return true;
	}
}

function returnFoodBoxes() {
	window.location.href = 'foodboxes.php';
}

function addTreasureBasket(form) {
	submitAjaxForm(form, 'addTreasureBasket', 'displayCart', false);
	if(document.getElementById('qty_girls')) document.getElementById('qty_girls').value = '';
	if(document.getElementById('qty_boys')) document.getElementById('qty_boys').value = '';
}

function addActivityBasket(form) {
	submitAjaxForm(form, 'addActivityBasket', 'displayCart', false);
}

function displayCart() {
	resp = ajax_response.split('|');
	document.getElementById('basket_contents').innerHTML = resp[0];
	// Display any message from being added to the cart
	if(resp[1] && resp[2]) {
		document.getElementById(resp[2]).innerHTML = resp[1];
		document.getElementById(resp[2]).style.display = 'block';
	} else if(resp[1] && document.getElementById('basket_update_text')) {
		document.getElementById('basket_update_text').innerHTML = resp[1];
		document.getElementById('basket_update_text').style.display = 'block';
	}
	// Display the continue shopping box or checkout if it is on the current page
	if(document.getElementById('basket_update')) {
		var html = '<table cellspacing="0" cellpadding="0"><tr><td valign="top"><img src="images/title_continueshopping.png" alt="" /></td>' +
			'<td style="padding-left: 8px;"><a href="foodboxes.php"><img src="images/button_foodboxes.png" alt="" /></a>' + 
			'<td style="padding-left: 8px;"><a href="treasurebags.php"><img src="images/button_treasurebag.png" alt="" /></a></td>' +
			'<td style="padding-left: 8px;"><a href="activityboxes.php"><img src="images/button_activityboxes.png" alt="" /></a></td>' +
			'<td style="padding-left: 8px;"><a href="games.php"><img src="images/button_games.png" alt="" /></a></td>' +
			'<td style="padding-left: 13px;"><a href="checkout.php"><img src="images/gotocheckout.png" alt="" /></a></td>' + 
			'</tr></table>';
		document.getElementById('basket_update').innerHTML = html;
		document.getElementById('basket_update').style.display = 'block';
	}
}

function changeActivityImage(image, w, h) {
	var size = '';
	var img_dim = 0;
	var max_w = 250;
	var max_h = 181;
	//if(w > h && w > 250) size = ' style="width: 250px;"';
	//else if(h > 181) size = ' style="height: 181px;"';
	
	var img_ratio = w / h;
	if(w > h) {
		if(w > max_w) {
			img_dim = max_w;
		} else {
			img_dim = w;
		}
		if((img_dim / img_ratio) > max_h && (max_h / img_ratio) < max_w) {
			size = ' style="height: ' + max_h + 'px;"';
		} else {
			size = ' style="width: ' + img_dim + 'px;"';
		}
	} else {				
		if(h > max_h) {
			img_dim = max_h;
		} else {
			img_dim = h;
		}
		if((img_dim / img_ratio) > max_w && (max_w / img_ratio) < max_h) {
			size = ' style="width: ' + max_w + 'px;"';
		} else {
			size = ' style="height: ' + img_dim + 'px;"';
		}
	}
	document.getElementById('thumb_image').innerHTML = '<table cellspacing="0" cellpadding="0"><tr><td style="width: 250px; height: 185px; text-align: center;"><img src="/images/witb/' + image + '" alt="" ' + size + ' /></td></tr></table>';
	document.getElementById('default_image').style.display = 'none';
	document.getElementById('thumb_image').style.display = 'block';
}

function resetActivityImage() {
	document.getElementById('default_image').style.display = 'block';
	document.getElementById('thumb_image').style.display = 'none';
}

function updateActivityCustomBasket() {
	var qty = parseInt(document.getElementById('quantity').value);
	if(!qty) qty = 0;
	var starter = parseFloat(document.getElementById('starter_price').value);
	if(!starter) starter = 0;
	var total = 0;
	var variationid = 0;
	var intSelection = 0;
	
	// Starter Quantity
	document.getElementById('basket_starter').innerHTML = qty;
	
	// Products Checked
	form = document.getElementById('activity_custom');
	var loop = form.elements.length;
	for(i = 0; i < loop; i++) {
		if(form.elements[i].type == "checkbox") {
			if(form.elements[i].checked == true) {
				variationid = form.elements[i].value;
				// Skip out any check boxes that don't have a valid price
				if(document.getElementById('price_' + variationid)) {
					price = parseFloat(document.getElementById('price_' + variationid).value);
					total = total + (price * qty);
					intSelection++;
				}
			}
		}
	}
	
	// Selection Quantity
	document.getElementById('basket_selection').innerHTML = intSelection;
	
	// Sub Total
	total = total + (starter * qty);
	document.getElementById('basket_total').innerHTML = '$' + formatNumber(total);
}

function updateActivityBasket() {
	var qty = parseInt(document.getElementById('quantity').value);
	if(!qty) qty = 0;
	var boxPrice = parseFloat(document.getElementById('box_price').value);
	if(!boxPrice) boxPrice = 0;
	var total = 0;;
	
	// Box Quantity
	document.getElementById('basket_boxes').innerHTML = qty;
	
	// Sub Total
	total = total + (boxPrice * qty);
	document.getElementById('basket_total').innerHTML = '$' + formatNumber(total);
}

function updateActivityOverFiveBasket(boxid) {
	var qty = parseInt(document.getElementById('quantity_' + boxid).value);
	if(!qty) qty = 0;
	var boxPrice = parseFloat(document.getElementById('box_price_' + boxid).value);
	if(!boxPrice) boxPrice = 0;
	var total = 0;;
	
	// Box Quantity
	document.getElementById('basket_boxes_' + boxid).innerHTML = qty;
	
	// Sub Total
	total = total + (boxPrice * qty);
	document.getElementById('basket_total_' + boxid).innerHTML = '$' + formatNumber(total);
}

function formatNumber(value) {
	lowValue=Math.floor(value);
	var p=100*(value-lowValue)+0.6;
	
	if(p>99.99) {
		returnNumber = lowValue + 1;
		returnNumber +=".00";
	} else {
		returnNumber=lowValue+".";
		returnNumber+=Math.floor(p/10);
		returnNumber+=Math.floor(p%10);
	}
	return returnNumber;
}

function checkFoodNames(boxid, check) {
	if(check) {
		document.getElementById('add_basket_' + boxid).style.display = 'none';
		document.getElementById('enter_names_' + boxid).style.display = 'block';
	} else {
		document.getElementById('add_basket_' + boxid).style.display = 'block';
		document.getElementById('enter_names_' + boxid).style.display = 'none';
	}
}

function foodEnterNames(boxid) {
	var qty = '';
	if(document.getElementById('qty_pink_' + boxid).value != '') qty += '&p=' + parseInt(document.getElementById('qty_pink_' + boxid).value);
	if(document.getElementById('qty_blue_' + boxid).value != '') qty += '&b=' + parseInt(document.getElementById('qty_blue_' + boxid).value);
	if(document.getElementById('qty_yellow_' + boxid).value != '') qty += '&y=' + parseInt(document.getElementById('qty_yellow_' + boxid).value);
	if(document.getElementById('qty_red_' + boxid).value != '') qty += '&r=' + parseInt(document.getElementById('qty_red_' + boxid).value);
	if(qty) {
		window.location.href = 'foodboxes.php?view=names&boxid=' + boxid + qty;
	} else {
		alert('Please enter an amount of boxes in stage 1 before proceeding to stage 2');
		document.getElementById('personal_yes').checked = false;
	}
}

function foodCustomOptions(boxid) {
	var qty = '';
	if(document.getElementById('qty_pink_' + boxid).value != '') qty += '&p=' + parseInt(document.getElementById('qty_pink_' + boxid).value);
	if(document.getElementById('qty_blue_' + boxid).value != '') qty += '&b=' + parseInt(document.getElementById('qty_blue_' + boxid).value);
	if(document.getElementById('qty_yellow_' + boxid).value != '') qty += '&y=' + parseInt(document.getElementById('qty_yellow_' + boxid).value);
	if(document.getElementById('qty_red_' + boxid).value != '') qty += '&r=' + parseInt(document.getElementById('qty_red_' + boxid).value);
	if(document.getElementById('personal_no').checked == true) qty += '&personal=no';
	window.location.href = 'foodboxes.php?view=custom&boxid=' + boxid + qty;
}

function updateGameCustomBasket(boxid) {
	var qty = parseInt(document.getElementById('quantity').value);
	if(!qty) qty = 0;
	var add = parseInt(document.getElementById('additional').value);
	if(!add) add = 0;
	var boxPrice = parseFloat(document.getElementById('box_price').value);
	if(!boxPrice) boxPrice = 0;
	var addPrice = parseFloat(document.getElementById('additional_price').value);
	if(!addPrice) addPrice = 0;
	var total = 0;;
	
	// Box Quantity
	document.getElementById('basket_starter').innerHTML = qty;
	
	// Additional
	document.getElementById('basket_additional').innerHTML = add;
	
	// Sub Total
	total = total + (boxPrice * qty) + ((addPrice * add) * qty);
	document.getElementById('basket_total').innerHTML = '$' + formatNumber(total);
}

function addGameBasket(form) {
	submitAjaxForm(form, 'addGameBasket', 'displayCart', false);
}

function removeFromCart(boxid, cartid) {
	var criteria = 'boxid=' + boxid + '&cartid=' + cartid + '&deletecart=true';
	loadAjaxFunctionWITB('removeFromCart', criteria, 'displayCart', false);
}

function foodClickPersonal(boxid, boolCustom) {
	foodSteps(boxid);
	if(boolCustom) {
		foodEnterNames(boxid);
	} else {
		if(document.getElementById('personal_yes').checked) {
			document.getElementById('personal_no').checked = false;
			// Remember the quantity
			var qty = '';
			if(document.getElementById('qty_pink_' + boxid).value != '') qty += '&p=' + parseInt(document.getElementById('qty_pink_' + boxid).value);
			if(document.getElementById('qty_blue_' + boxid).value != '') qty += '&b=' + parseInt(document.getElementById('qty_blue_' + boxid).value);
			if(document.getElementById('qty_yellow_' + boxid).value != '') qty += '&y=' + parseInt(document.getElementById('qty_yellow_' + boxid).value);
			if(document.getElementById('qty_red_' + boxid).value != '') qty += '&r=' + parseInt(document.getElementById('qty_red_' + boxid).value);
			window.location.href = 'foodboxes.php?boxid=' + boxid + '&removefoodnames=true' + qty;
		} else {
			document.getElementById('personal_yes').checked = false;
			document.getElementById('personal_no').checked = true;
		}
	}
}

function foodClickCustom(boxid, boolCustom) {
	foodSteps(boxid);
	if(boolCustom) {
		foodCustomOptions(boxid);
	} else {
		if(document.getElementById('custom_yes').checked) {
			document.getElementById('custom_no').checked = false;
			window.location.href = 'foodboxes.php?boxid=' + boxid + '&removecustomfood=true';
		} else {
			document.getElementById('custom_yes').checked = false;
			document.getElementById('custom_no').checked = true;
		}
	}
}

function foodSteps(boxid) {
	// Step one
	if(document.getElementById('qty_pink_' + boxid).value == '' && document.getElementById('qty_blue_' + boxid).value == '' && document.getElementById('qty_yellow_' + boxid).value == '' && document.getElementById('qty_red_' + boxid).value == '') {
		document.getElementById('step2').src = 'images/step2_fade.png';
		document.getElementById('step3').src = 'images/step3_fade.png';
		document.getElementById('step4').src = 'images/step4_fade.png';
	} else {
		document.getElementById('step2').src = 'images/step2.png';
		// Step two
		if(document.getElementById('personal_yes').checked == false && document.getElementById('personal_no').checked == false) {
			document.getElementById('step3').src = 'images/step3_fade.png';
			document.getElementById('step4').src = 'images/step4_fade.png';
		} else {
			document.getElementById('step3').src = 'images/step3.png';
			// Step three
			if(document.getElementById('custom_yes').checked == false && document.getElementById('custom_no').checked == false) {
				document.getElementById('step4').src = 'images/step4_fade.png';
			} else {
				document.getElementById('step4').src = 'images/step4.png';
			}
		}
	}
}

function paymentMethod() {
	if(document.getElementById('payment_credit').checked == true) {
		document.getElementById('cc_comment').style.display = 'block';
		document.getElementById('debit_comment').style.display = 'none';
	} else if(document.getElementById('payment_debit').checked == true) {
		document.getElementById('cc_comment').style.display = 'none';
		document.getElementById('debit_comment').style.display = 'block';
	}
}

function treasureClickPersonal(boxid, boolCustom) {
	if(boolCustom) {
		treasureEnterNames(boxid);
	} else {
		if(document.getElementById('personal_yes').checked) {
			document.getElementById('personal_no').checked = false;
			// Remember the quantity
			var qty = '';
			if(document.getElementById('qty_girls') && document.getElementById('qty_girls').value != '') qty += '&f=' + parseInt(document.getElementById('qty_girls').value);
			if(document.getElementById('qty_boys') && document.getElementById('qty_boys').value != '') qty += '&m=' + parseInt(document.getElementById('qty_boys').value);
			window.location.href = getFilename() + '?boxid=' + boxid + '&removetreasurenames=true&' + qty;
		} else {
			document.getElementById('personal_yes').checked = false;
			document.getElementById('personal_no').checked = true;
		}
	}
}

function treasureEnterNames(boxid) {
	var qty = '';
	if(document.getElementById('qty_girls') && document.getElementById('qty_girls').value != '') qty += '&f=' + parseInt(document.getElementById('qty_girls').value);
	if(document.getElementById('qty_boys') && document.getElementById('qty_boys').value != '') qty += '&m=' + parseInt(document.getElementById('qty_boys').value);
	if(qty) {
		window.location.href = getFilename() + '?view=names&boxid=' + boxid + qty;
	} else {
		alert('Please enter an amount of bags first before personalising');
		document.getElementById('personal_yes').checked = false;
	}
}

function activityClickPersonal(boxid, boolCustom) {
	if(boolCustom) {
		activityEnterNames(boxid);
	} else {
		if(document.getElementById('personal_yes').checked) {
			document.getElementById('personal_no').checked = false;
			// Remember the quantity
			var gender = document.getElementById('gender').value;
			var qty = '';
			if(document.getElementById('quantity').value != '') {
				qty += '&' + gender + '=' + parseInt(document.getElementById('quantity').value);
			}
			window.location.href = getFilename() + '?boxid=' + boxid + '&removeactivitynames=true' + qty;
		} else {
			document.getElementById('personal_yes').checked = false;
			document.getElementById('personal_no').checked = true;
		}
	}
}

function activityEnterNames(boxid) {
	var qty = '';
	var gender = document.getElementById('gender').value;
	if(document.getElementById('quantity').value != '') {
		qty += '&' + gender + '=' + parseInt(document.getElementById('quantity').value);
	}
	if(qty) {
		window.location.href = getFilename() + '?view=names&boxid=' + boxid + qty;
	} else {
		alert('Please enter an amount of boxes first before personalising');
		document.getElementById('personal_yes').checked = false;
	}
}

function activityClickCustomPersonal(boxid, boolCustom) {
	if(boolCustom) {
		activityCustomEnterNames(boxid);
	} else {
		if(document.getElementById('personal_yes').checked) {
			document.getElementById('personal_no').checked = false;
			// Remember the quantity
			var gender = document.getElementById('gender').value;
			var qty = '';
			if(document.getElementById('quantity').value != '') {
				qty += '&' + gender + '=' + parseInt(document.getElementById('quantity').value);
			}
			// Remember products checked
			form = document.getElementById('activity_custom');
			var loop = form.elements.length;
			for(i = 0; i < loop; i++) {
				if(form.elements[i].type == "checkbox") {
					if(form.elements[i].checked == true) {
						variationid = form.elements[i].value;
						// Skip out any check boxes that don't have a valid price
						if(document.getElementById('price_' + variationid)) qty += '&ids[]=' + variationid;
					}
				}
			}
			window.location.href = getFilename() + '?boxid=' + boxid + '&removeactivitynames=true' + qty;
		} else {
			document.getElementById('personal_yes').checked = false;
			document.getElementById('personal_no').checked = true;
		}
	}
}

function activityCustomEnterNames(boxid) {
	var qty = '';
	var gender = document.getElementById('gender').value;
	if(document.getElementById('quantity').value != '') {
		qty += '&' + gender + '=' + parseInt(document.getElementById('quantity').value);
	}
	if(qty) {
		// Remember products checked
		form = document.getElementById('activity_custom');
		if(form) {
			var loop = form.elements.length;
			for(i = 0; i < loop; i++) {
				if(form.elements[i].type == "checkbox") {
					if(form.elements[i].checked == true) {
						variationid = form.elements[i].value;
						// Skip out any check boxes that don't have a valid price
						if(document.getElementById('price_' + variationid)) qty += '&ids[]=' + variationid;
					}
				}
			}
		} else if(document.getElementById('variationid')) {
			qty += '&ids[]=' + document.getElementById('variationid').value;
		}
		window.location.href = getFilename() + '?view=names&boxid=' + boxid + qty;
	} else {
		alert('Please enter an amount of boxes first before personalising');
		document.getElementById('personal_yes').checked = false;
	}
}

function addSpecialBasket(form) {
	submitAjaxForm(form, 'addSpecialBasket', 'displayCart', false);
}

function getFilename() {
	var filename = window.location.href;
	if(filename.indexOf('?')) filename = filename.substring(0, filename.indexOf('?'));
	return filename;
}