
function openpopup_userdet(page)
{
    window_handle = window.open(page,'popupretrieve','width=350,height=185,scrollbars=no,resizable=no,screenX=100,screenY=100,toolbar=no,menubar=no,titlebar=no,top=260,left=300');
    window_handle.focus();
    return false;
}

function checkRegistrationForm()
{
	// check first name
	if (document.forms['registerationform'].FirstName.value == "")
	{
		alert('Please enter a first name.');
		document.getElementById('firstnamelabel').className = "formlabelerror";
		document.forms['registerationform'].FirstName.focus();
		return false;
	}
	
	// check last name
	if (document.forms['registerationform'].LastName.value == "")
	{
		alert('Please enter a last name.');
		document.getElementById('lastnamelabel').className = "formlabelerror";
		document.forms['registerationform'].LastName.focus();
		return false;
	}
	
	// check address
	if (document.forms['registerationform'].Address1.value == "")
	{
		alert('Please enter an address.');
		document.getElementById('address1label').className = "formlabelerror";
		document.forms['registerationform'].Address1.focus();
		return false;
	}
	
	// check town
	if (document.forms['registerationform'].Town.value == "")
	{
		alert('Please enter a town.');
		document.getElementById('townlabel').className = "formlabelerror";
		document.forms['registerationform'].Town.focus();
		return false;
	}
	
	// check country
	if (document.forms['registerationform'].Country.value == "" || document.forms['registerationform'].Country.value == "Please Choose")
	{
		alert('Please select a country.');
		document.getElementById('countrylabel').className = "formlabelerror";
		document.forms['registerationform'].Country.focus();
		return false;
	}
	
	// check email address
	if (!checkemail(document.forms['registerationform'].Email.value))
	{
		alert('Please enter a valid email address.');
		document.getElementById('emaillabel').className = "formlabelerror";
		document.forms['registerationform'].Email.focus();
		return false;
	}
	
	// check occupation
	if (document.forms['registerationform'].Occupation.value == "")
	{
		alert('Please select an occupation.');
		document.getElementById('occupationlabel').className = "formlabelerror";
		document.forms['registerationform'].Occupation.focus();
		return false;
	}
	
	// check organization state
	if (document.forms['registerationform'].Country.value=="United States")
	{
		if (document.forms['registerationform'].OrgState.value == "")
		{
			alert("Please enter the school state.");
			document.getElementById('statelabel').className = "formlabelerror";
			document.forms['registerationform'].OrgState.focus();
			return false;
		}
	}
	
	// check organization school
	if (document.forms['registerationform'].Country.value=="United States")
	{
		if (document.forms['registerationform'].OrgSchool.value == "PC")
		{
			alert("Please enter the school name.");
			document.getElementById('schoolnamelabel').className = "formlabelerror";
			document.forms['registerationform'].OrgSchool.focus();
			return false;
		}
	}
	
	// check school/organisation
	if(document.forms['registerationform'].Country.value != "United States" || (document.forms['registerationform'].Country.value == "United States" && document.forms['registerationform'].OrgSchool.value == "Other"))
	{
		if (document.forms['registerationform'].OrgText.value == '') 
		{
			alert('Please enter the School/Organisation');
			document.getElementById('schooltextlabel').className = 'formlabelerror';
			document.forms['registerationform'].OrgText.focus();
			return false;
		}
	}
	
	// check passwords
	if (document.forms['registerationform'].Password1.value == "")
	{
		alert('Please enter a password.');
		document.getElementById('password1label').className = "formlabelerror";
		document.forms['registerationform'].Password1.focus();
		return false;
	}
	
	if (document.forms['registerationform'].Password2.value == "")
	{
		alert('Please enter a password confirmation.');
		document.getElementById('password2label').className = "formlabelerror";
		document.forms['registerationform'].Password2.focus();
		return false;
	}
	
	if (document.forms['registerationform'].Password1.value != document.forms['registerationform'].Password2.value)
	{
		alert('The passwords you entered do not match.');
		document.getElementById('password2label').className = "formlabelerror";
		document.forms['registerationform'].Password2.focus();
		return false;
	}

	// check pin
	if (document.forms['registerationform'].PIN.value == "")
	{
		alert('Please enter the PIN.');
		document.getElementById('pincodelabel').className = "formlabelerror";
		document.forms['registerationform'].PIN.focus();
		return false;
	}
	
	// check tc
	if (document.forms['registerationform'].AcceptTC.checked == false)
	{
		alert('You must accept the terms and conditions to register for Netter.');
		document.forms['registerationform'].AcceptTC.focus();
		return false;
	}
	
	checkDupEmail();
	checkValidPin();
	
	// check for duplicate email id and valid pin
	if (checkDupEmailValidPin() == false)
		return false;
	
	// update organisation hidden field
	document.forms['registerationform'].Organisation.value = document.forms['registerationform'].OrgText.value;
	
	// update institution hidden field
	if (document.forms['registerationform'].OrgSchool.value == "Other")
		document.forms['registerationform'].InstituteID.value = 0;
	else
		document.forms['registerationform'].InstituteID.value = document.forms['registerationform'].OrgSchool.value;
	
	// everything's ok - submit the form.
	return true;
}

function changeInstitutionField()
{
	if (document.forms['registerationform'].Country.value == "United States")
	{
		document.getElementById('schooltext').style.display = "none";
		document.getElementById('schooltext').style.visibility = "hidden";
		document.getElementById('schoolstate').style.visibility = "visible";
		document.getElementById('schoolstate').style.display = "inline";
		document.getElementById('schoolname').style.visibility = "visible";
		document.getElementById('schoolname').style.display = "inline";
		document.registerationform.Subscription[0].checked = true;
		document.registerationform.Subscription[1].checked = true;
		document.registerationform.Subscription[2].checked = true;
	}
	else
	{
		document.getElementById('schoolstate').style.display = "none";
		document.getElementById('schoolstate').style.visibility = "hidden";
		document.getElementById('schoolname').style.display = "none";
		document.getElementById('schoolname').style.visibility = "hidden";
		document.getElementById('schooltext').style.visibility = "visible";
		document.getElementById('schooltext').style.display = "inline";
		document.registerationform.Subscription[0].checked = false;
		document.registerationform.Subscription[1].checked = false;
		document.registerationform.Subscription[2].checked = false;
	}
}

function changeSchool()
{
	if (document.forms['registerationform'].OrgSchool.value == "Other")
	{
		document.getElementById('schooltext').style.visibility = "visible";
		document.getElementById('schooltext').style.display = "inline";
	}
	else
	{
		document.getElementById('schooltext').style.display = "none";
		document.getElementById('schooltext').style.visibility = "hidden";
	}
}

function changeSchoolList(mailstatecode)
{
	var url = "/register/regform_inter.cfm";
	var params = "bGetSchools=1&bValidPin=0&bDupEmail=0&Mailstatecode=" + mailstatecode + "&hash=" + Math.random();
	
	var ajax = new Ajax.Updater({success: 'schoolselect'},url,{method: 'get', parameters: params, onFailure: reportErrorSchool});
}

function reportErrorSchool(request)
{
	alert("Error! Retrieving school names");
}

function reportErrorEmail(request)
{
	alert("Error! Validating Email");
}

function reportErrorPin(request)
{
	alert("Error! Validating PIN");
}

// check pin existence from database
function checkValidPin()
{
	if(document.forms['registerationform'].PIN.value != "")
   {
		var url = "/register/regform_inter.cfm";
		var params = "bValidPin=1&bDupEmail=0&Pin=" + document.forms['registerationform'].PIN.value + "&Email=" + document.forms['registerationform'].Email.value + "&UserID=" + document.forms['registerationform'].UserID.value + "&bGetSchools=0";
		
		var ajax = new Ajax.Updater({success: 'resultPIN'},url,{method: 'get', parameters: params, onFailure: reportErrorPin});
	}
}

// check email existence from database
function checkDupEmail()
{
	if(document.forms['registerationform'].Email.value != "")
	{
		var url = "/register/regform_inter.cfm";
		var params = "bvalidPin=0&bDupEmail=1&Email=" + document.forms['registerationform'].Email.value + "&UserID=" + document.forms['registerationform'].UserID.value + "&bGetSchools=0";
	
		var ajax = new Ajax.Updater({success: 'resultEmail'},url,{method: 'get', parameters: params, onFailure: reportErrorEmail});
	}
}

function checkDupEmailValidPin()
{
	if(document.forms['registerationform'].chkDupEmail.value == 2 || document.forms['registerationform'].chkDupEmail.value == "")
	{
		alert("The email address you provided is already in use. Please try another one.");
		document.getElementById('emaillabel').className = "formlabelerror";
		document.forms['registerationform'].Email.focus();
		return false;
	}

	if(document.forms['registerationform'].chkValidPin.value == 3 || document.forms['registerationform'].chkValidPin.value == "")
	{
		alert("The PIN you entered is invalid - please check it carefully and try again.");
		document.getElementById('pincodelabel').className = "formlabelerror";
		document.forms['registerationform'].PIN.focus();
		return false;
	}
	
	return true;
}