function changeImage(img_src) {
	document['main_image'].src = img_src;
}
jQuery.fn.log = function (msg) {
	if ($.browser.mozilla) {
		console.log("%s: %o", msg, this);
	}
	return this;
};

Shadowbox.init({
	skipSetup: true, 
	clearCache: function() {
		each(S.cache, function(obj) {
			if( obj.el) {
				S.lib.removeEvent(obj.el, 'click', handleClick);
				try {
					delete obj.el.shadowboxCacheKey;
				} catch(e) {
					if (obj.el.removeAttribute) {
						obj.el.removeAttribute('shadowboxCacheKey');
					}
				}
			}
		});
		S.cache = [];
	}
});

function echeck(str) {

	var at = "@";
	var dot = ".";
	var lat = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);
	
	if (str.indexOf(at) ==- 1) { return false; }
	if (str.indexOf(at) ==- 1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) { return false; }
	if (str.indexOf(dot) ==- 1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) { return false; }
	if (str.indexOf(at, (lat + 1)) !=- 1) { return false; }
	if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) { return false; }
	if (str.indexOf(dot, (lat + 2)) ==- 1) { return false; }
	if (str.indexOf(" ") !=- 1 ) { return false; }
	 
	return true;
}

timeDifference = function(startDate, endDate) {
	
	date2 = startDate;
	date1 = endDate;
	
	laterdate = date1.split("-");
	laterD = laterdate[0];
	laterM = laterdate[1];
	laterY = laterdate[2];
	
	earlierdate = date2.split("-");
	earlierD = earlierdate[0];
	earlierM = earlierdate[1];
	earlierY = earlierdate[2];
	
	var laterdate = new Date(laterY,laterM,laterD);
	var earlierdate = new Date(earlierY,earlierM,earlierD);
	
	var difference = laterdate.getTime() - earlierdate.getTime();
	
	var daysDifference = Math.floor(difference / 1000 / 60/ 60 / 24);
	difference -= daysDifference * 1000 * 60 * 60 * 24
	var hoursDifference = Math.floor(difference / 1000 / 60 / 60);
	difference -= hoursDifference * 1000 * 60 * 60
	var minutesDifference = Math.floor(difference / 1000 / 60);
	difference -= minutesDifference * 1000 * 60
	var secondsDifference = Math.floor(difference / 1000);
	
	return daysDifference;

}

function renderNumbers(startNumber, endNumber, selectedNumber) {
	while (startNumber <= endNumber) {
		if (startNumber == selectedNumber) {
			document.write('<option value="' + startNumber + '" selected>' + startNumber + '</option>');
		} else {
			document.write('<option value="' + startNumber + '">' + startNumber + '</option>');
		}
		startNumber = startNumber + 1;
	}
}

function key(number) {
	return Math.floor(Math.random() * number);
}

function isInteger (s) {
  var i;

  if (isEmpty(s))
  if (isInteger.arguments.length == 1) return 0;
  else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++) {
	 var c = s.charAt(i);

	 if (!isDigit(c)) return false;
  }

  return true;
}

function isEmpty(s) {
  return ((s == null) || (s.length == 0))
}

function isDigit (c) {
  return ((c >= "0") && (c <= "9"))
}

function validateEnquire() {
		
	// enquire_type
	if (document.getElementById("enquire_type").value == 'select') {
		alert("Please select an enquire type.");
		document.getElementById("enquire_type_label").style.color = "red";
		document.getElementById("enquire_type").focus();
		return false;
	} else {
		document.getElementById("enquire_type_label").style.color = "black";
	}
	
	// title
	if (document.getElementById("title").value == 'select') {
		alert("Please select a title.");
		document.getElementById("title_label").style.color = "red";
		document.getElementById("title").focus();
		return false;
	} else {
		document.getElementById("title_label").style.color = "black";
	}
	
	// first_name
	if (document.getElementById("first_name").value.length < 1) {
		alert("Please enter a valid first name.");
		document.getElementById("first_name_label").style.color = "red";
		document.getElementById("first_name").focus();
		return false;
	} else {
		document.getElementById("first_name_label").style.color = "black";
	}
	
	// last_name
	if (document.getElementById("last_name").value.length < 1) {
		alert("Please enter a valid last name.");
		document.getElementById("last_name_label").style.color = "red";
		document.getElementById("last_name").focus();
		return false;
	} else {
		document.getElementById("last_name_label").style.color = "black";
	}
	
	// email_1 (validate)
	if (echeck(document.getElementById("email_1").value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById("email_1_label").style.color = "red";
		document.getElementById("email_1").focus();
		return false;
	} else {
		document.getElementById("email_1_label").style.color = "black";
	}
	
	// email_2
	if (document.getElementById("email_2").value != document.getElementById("email_1").value) {
		alert("Please make sure the email addresses are the same.");
		document.getElementById("email_2_label").style.color = "red";
		document.getElementById("email_2").focus();
		return false;
	} else {
		document.getElementById("email_2_label").style.color = "black";
	}
	
	// adult_number
	if (document.getElementById("adult_number").value == 0) {
		alert("Please select the number of adults.");
		document.getElementById("adult_number_label").style.color = "red";
		document.getElementById("adult_number").focus();
		return false;
	} else {
		document.getElementById("adult_number_label").style.color = "black";
	}
	
	// arrival_date
	if (document.getElementById("arrival_date").value.length < 10) {
		alert("Please enter a valid arrival date.");
		document.getElementById("arrival_date_label").style.color = "red";
		document.getElementById("arrival_date").focus();
		return false;
	} else {
		document.getElementById("arrival_date_label").style.color = "black";
	}
	
	// departure_date
	if (document.getElementById("departure_date").value.length < 10) {
		alert("Please enter a valid departure date.");
		document.getElementById("departure_date_label").style.color = "red";
		document.getElementById("departure_date").focus();
		return false;
	} else {
		document.getElementById("departure_date_label").style.color = "black";
	}
	
	// departure_date
	if (timeDifference(document.getElementById("arrival_date").value, document.getElementById("departure_date").value) < 1) {
		alert('Please make sure that your departure date is correct.');
		document.getElementById("departure_date_label").style.color = "red";
		document.getElementById("departure_date").focus();
		return false;
	} else {
		document.getElementById("departure_date_label").style.color = "black";
	}
	
	// contact_by
	if (document.getElementById("contact_by").value == 'select') {
		alert("Please select how we should contact you.");
		document.getElementById("contact_by_label").style.color = "red";
		document.getElementById("contact_by").focus();
		return false;
	} else {
		document.getElementById("contact_by_label").style.color = "black";
	}
	
	// work_phone
	if (document.getElementById("work_phone").value.length < 10) {
		alert("Please enter a valid work phone number.");
		document.getElementById("work_phone_label").style.color = "red";
		document.getElementById("work_phone").focus();
		return false;
	} else {
		document.getElementById("work_phone_label").style.color = "black";
	}
	
	// chalet_type
	if (document.getElementById("chalet_type").value == 'select') {
		alert("Please select a chalet type.");
		document.getElementById("chalet_type_label").style.color = "red";
		document.getElementById("chalet_type").focus();
		return false;
	} else {
		var meal_total = ($('#food_1').val() * 1) + 
						 ($('#food_2').val() * 1) + 
						 ($('#food_3').val() * 1) + 
						 ($('#food_4').val() * 1) + 
						 ($('#food_5').val() * 1) + 
						 ($('#food_6').val() * 1) + 
						 ($('#food_7').val() * 1);
						 
		//if ($('#chalet_type').val() != 'Superior (Self Catering)' && meal_total > 0) {
		if ($('#chalet_type').val() != 'Superior (Self Catering)') { // remove meal requirement
			document.getElementById("chalet_type_label").style.color = "black";
		} else {
			alert("Please choose at least one of the meal options.");
			//document.getElementById("chalet_type_label").style.color = "red";
			$('#food_1').focus();
			return false;
		}
	}
	
	// prebook
	if (document.getElementById("prebook").value == 'select') {
		alert("Please select an option.");
		document.getElementById("prebook_label").style.color = "red";
		document.getElementById("prebook").focus();
		return false;
	} else {
		var activity_total = ($('#activity_1').val() * 1) + 
						 	 ($('#activity_2').val() * 1) + 
						 	 ($('#activity_3').val() * 1) + 
						 	 ($('#activity_4').val() * 1) + 
						 	 ($('#activity_5').val() * 1) + 
						 	 ($('#activity_6').val() * 1) + 
							 ($('#activity_7').val() * 1) + 
							 ($('#activity_8').val() * 1) + 
							 ($('#activity_9').val() * 1) + 
							 ($('#activity_10').val() * 1) + 
							 ($('#activity_11').val() * 1) + 
							 ($('#activity_12').val() * 1) + 
							 ($('#activity_13').val() * 1) + 
						 	 ($('#activity_14').val() * 1);
		
		if ($('#prebook').val() != 'no' && activity_total > 0) {
			document.getElementById("prebook_label").style.color = "black";
		} else {
			alert("Please choose at least one of the activity options.");
			//document.getElementById("chalet_type_label").style.color = "red";
			$('#activity_1').focus();
			return false;
		}
	}
	
	// found_by
	if (document.getElementById("found_by").value == 'select') {
		alert("Please select how you found us.");
		document.getElementById("found_by_label").style.color = "red";
		document.getElementById("found_by").focus();
		return false;
	} else {
		document.getElementById("found_by_label").style.color = "black";
	}
	
	if (document.getElementById("txtCaptcha").value.length == 5) {
		
		$.ajax({
			type	: "POST",
			url		: "captcha.php",
			data	: "txtCaptcha=" + document.getElementById("txtCaptcha").value + "&key=" + key(10000),
			success	: function(html){
				$("#result").empty();
				$("#result").append(html);
				
				if (html == "FAIL") {
					alert("The code you entered was incorrect. Please try again.");
					$("#imgCaptcha").attr("src", "create_image.php?key=" + key(10000));
				} else {
					document.enquire_form.submit();
				}
			}
		});
		return false;
	} else {
		alert("Please enter the exact code on the image into the text box and try again.");
		document.getElementById("txtCaptcha").focus();
		return false;
	}
	
	// agree
	//if (!document.getElementById("agree").checked) {
		//alert("Please read our terms and conditions and check that you agree with them.");
		//return false;
	//}		
}