function isSet(value) {
  value += "";
  if (value == 'undefined' || value == 'null') {
    return false;
  }

  return true;
}

function openWindow(url, name, parameters) {
  if (!isSet(name)) {
    name = 'newWindow';
  }

  if (!isSet(parameters)) {
    parameters = '';
  }

  window.open(url, name, parameters).focus();
  return false;
}

function openProviderWindow(url, providerId) {
   return openWindow(url, providerId, 'width=782,height=600,scrollbars=yes');
}

function showHide() {
	var ids = showHide.arguments;
	for (var i = 0; i < ids.length; i++) {
		var elem = document.getElementById(ids[i]);
		if (isSet(elem)) {
			if (elem.style.display == "block") {
				elem.style.display = "none";
			} else {
				elem.style.display = "block";
			}
		}
	}

	return(false);
}

function isEmail(str) {
  /** are regular expressions supported? **/
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported){
    return ((str.indexOf(".") > 2) && (str.indexOf("@") > 0));
  }
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function test(id){
	var obj = document.getElementById(id);
	return obj.value == "" ? false : true;
}

function testEmail(id){
	return isEmail(document.getElementById(id).value);
}

function testRadio(id){
	var arr = document.getElementsByName(id);

	for (var i=0; i<arr.length; i++){
		if (arr[i].checked){
			return true;
		}
	}

	return false;
}


function validateRegForm(){
	var message = "";

	if (!test("username")){
		message+="Please enter a username\n";
	}

	if (!test("password")){
		message+="Please enter a password\n";
	}

	if (!test("password2")){
		message+="Please retype your password\n";
	}else if (document.getElementById("password").value != document.getElementById("password2").value){
		message+="Passwords do not match, please ensure your password has been entered correctly in both fields\n";
	}

	if (!test("title")){
		message+="Please enter a title\n";
	}

	if (!test("first_name")){
		message+="Please enter a first name\n";
	}

	if (!test("surname")){
		message+="Please enter a surname\n";
	}

	if (!test("address1")){
		message+="Please enter your address\n";
	}

	if (!test("town")){
		message+="Please enter a town\n";
	}

	if (!test("postcode")){
		message+="Please enter a postcode\n";
	}

	if (!test("country")){
		message+="Please enter a country\n";
	}

	if (!test("email") || !testEmail("email")){
		message+="Please enter a valid email\n";
	}else if (document.getElementById("email").value != document.getElementById("email2").value){
		message+="Emails do not match, please ensure your email address has been entered correctly in both fields\n";
	}

	if (!testRadio("crm_short_break_frequency")){
		message+="Please enter how often you take a short break in Scotland\n";
	}

	if (!testRadio("crm_uk_holiday")){
		message+="Please select whether you agree or disagree that a holiday in the UK can be every bit as good as one abroad.\n";
	}

	if (!testRadio("dp_spam_from_vs")){
		message+="Would you like to receive special offers from VisitScotland/visitscotland.com?\n";
	}

	if (!testRadio("dp_spam_from_3rd_party")){
		message+="Would you like to receive information from other tourism organisations?\n";
	}

	if (message == ""){
		return true;
	}else{
		alert(message);
		return false;
	}

}