
// POPUPS
// ----------------------------------------------------------------------------------------------------------

function isUndefined(v) {
    var undef;
    return v===undef;
}

// These defaults should be changed the way it best fits your site
var _POPUP_FEATURES = 'location=0,statusbar=0,menubar=0,width=400,height=300,top=120';

var _POPUP_FEATURES_TUTORIALS = 'location=0,statusbar=0,menubar=0,resizable=1,scrollbars=1,width=800,height=480,top=120';

function raw_popup(url, target, features) {
    // pops up a window containing url optionally named target, optionally having features
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target  )) target   = '_blank';
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

function link_popup_tut(src, features) {
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', _POPUP_FEATURES_TUTORIALS);
}

// SHOW AND HIDE
// ----------------------------------------------------------------------------------------------------------

var isIE = false;
var isOther = false;
var isNS4 = false;
var isNS6 = false;

if(document.getElementById) {
	if(!document.all) {
		isNS6=true;
	}
	if(document.all) {
		isIE=true;
	}
}
else {
	if(document.layers)	{
		isNS4=true;
	}
	else {
		isOther=true;
	}
}

function myLayer(layerID) {
var returnLayer;
	if(isIE) {
		returnLayer = eval("document.all." + layerID);
	}
	if(isNS6) {
		returnLayer = eval("document.getElementById('" + layerID + "')");
	}
	if(isNS4) {
		returnLayer = eval("document." + layerID);
	}
	if(isOther) {
		returnLayer = "null";
	}
return returnLayer;
}

function change(thisRow) {
	var thisMessage = (thisRow + "_info"); 
	var thisImage = (thisRow + "_plus"); 

	if(myLayer(thisRow).className != "opened") {
		myLayer(thisRow).className = "opened";
		myLayer(thisMessage).className = "blank";
	}
	else {
		myLayer(thisRow).className = "closed";
		myLayer(thisMessage).className = "hide";
	}
}

function domain_searching(thisSearch) {
	if(myLayer(thisSearch).className != "hide") {
		myLayer(thisSearch).className = "hide";
	}
	else {
		myLayer(thisSearch).className = "blank";
	}
}

// FORM VALIDATION
// ----------------------------------------------------------------------------------------------------------

var form = "";
var submitted = false;
var error = false;
var error_message = "";

function check_input(field_name, field_size, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;
    if (field_value == '' || field_value.length < field_size) {
      error_message = error_message + " " + message + "\n";
      error = true;
    }
  }
}

function check_email(email_address, message) {
	var x = form.elements[email_address].value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!(filter.test(x))) {
      error_message = error_message + " " + message + "\n";
      error = true;
	}
}

function check_radio(field_name, message) {
  var isChecked = false;
	
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var radio = form.elements[field_name];

    for (var i=0; i<radio.length; i++) {
      if (radio[i].checked == true) {
        isChecked = true;
        break;
      }
    }

    if (isChecked == false) {
      error_message = error_message + " " + message + "\n";
      error = true;
    }
  }
}

function check_checkbox(field_name, message) {
  var isChecked = false;

  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var checkbox = form.elements[field_name].checked;
	
    if (checkbox == true) {
      isChecked = true;
    }

    if (isChecked == false) {
      error_message = error_message + " " + message + "\n";
      error = true;
    }
  }
}

function check_select(field_name, field_default, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == field_default) {
      error_message = error_message + " " + message + "\n";
      error = true;
    }
  }
}

function check_password(field_name_1, field_name_2, field_size, message_1, message_2) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password = form.elements[field_name_1].value;
    var confirmation = form.elements[field_name_2].value;

    if (password == '' || password.length < field_size) {
      error_message = error_message + " " + message_1 + "\n";
      error = true;
    } else if (password != confirmation) {
      error_message = error_message + " " + message_2 + "\n";
      error = true;
    }
  }
}

function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password_current = form.elements[field_name_1].value;
    var password_new = form.elements[field_name_2].value;
    var password_confirmation = form.elements[field_name_3].value;

    if (password_current == '' || password_current.length < field_size) {
      error_message = error_message + " " + message_1 + "\n";
      error = true;
    } else if (password_new == '' || password_new.length < field_size) {
      error_message = error_message + " " + message_2 + "\n";
      error = true;
    } else if (password_new != password_confirmation) {
      error_message = error_message + " " + message_3 + "\n";
      error = true;
    }
  }
}

function check_form(form_name) {

  error = false;
  form = form_name;
  error_message = "Please make the following corrections to your form and try again:\n\n\n";

	if (form.name == "your_order") {
	  check_radio("hosting", "Please choose from one of the hosting packages available");
	}

	if (form.name == "customer_login") {
	  check_email("email_address", "Please check your E-mail Address - it does not appear to be valid.");
	  check_input("password", 5, "Your Password must contain a minimum of 5 characters.");
	}

	if (form.name == "customer_registration") {
	  check_input("firstname", 2, "Your First Name must contain a minimum of 2 characters.");
	  check_input("lastname", 2, "Your Last Name must contain a minimum of 2 characters.");
	  check_input("dob", 10, "Your Date of Birth must be in this format: DD/MM/YYYY (eg 21/05/1970)");
	  check_input("telephone", 9, "Your Telephone Number must contain a minimum of 9 characters.");
	  check_email("email_address", "Please check your E-mail Address - it does not appear to be valid.");
	  check_password("password", "confirmation", 5, "Your Password must contain a minimum of 5 characters.", "The Password Confirmation must match your Password.");
	  check_password_new("password_current", "password_new", "password_confirmation", 5, "Your Password must contain a minimum of 5 characters.", "Your new Password must contain a minimum of 5 characters.", "The Password Confirmation must match your new Password.");
	  check_input("street_address", 5, "Your Address must contain a minimum of 5 characters.");
	  check_input("postcode", 4, "Your Postode / Zipcode must contain a minimum of 4 characters.");
	  check_input("city", 3, "Your Town / City must contain a minimum of 3 characters.");
	  check_input("county", 2, "Your County / State must contain a minimum of 2 characters.");
	  check_select("country", "", "You must select a country from the Countries pull down menu.");
	  check_checkbox("terms", "To join HostandControl, you must agree with the terms and conditions.");
	}

  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }

}