var objRegistration = {
	init: function() {},
	
	
	//Calling function for Ajax object
	registerUser: function(formID, contentWrapper, ajaxURL){
		var ajaxString = ajaxURL;
	
		document.getElementById(contentWrapper).style.display = "";
 		objAjax.filterDataSet(formID, ajaxString , contentWrapper);
	},
	
	//Calling function for Ajax object
	//sendPassword: function(formID, contentWrapper, ajaxURL){
	sendPassword: function(formID, URL, toEmail){
		var userEmail = document.getElementById('username').value;
		//alert(formID);
		//var ajaxString = ajaxURL + "&UserEmail=" + userEmail+ "&rid=" + objRegistration.randRange(1,9999999);
	
		//document.getElementById(contentWrapper).style.display = "";
 		//objAjax.filterDataSet(formID, ajaxString , contentWrapper);
 		window.open(URL + '&UserEmail=' + userEmail + '&toEmail=' + toEmail, 'sendPasswordWin','width=900,height=300,resizable=yes,scrollbar=yes');
	},	
	
	// Show the registration form is user clicks appropriate link on the login form
	showRegistration: function(){
		if(document.getElementById('registrationForm').style.display == 'none')
		{
			document.getElementById('registrationForm').style.display = '';
			document.getElementById('loginForm').style.display = 'none';
			document.getElementById('loginText1').innerHTML = 'If not, please register using the form below.';
			document.getElementById('loginText2').innerHTML = 'login by using the form here.';
		}
		else
		{
			document.getElementById('registrationForm').style.display = 'none';
			document.getElementById('loginForm').style.display = '';
			document.getElementById('loginText1').innerHTML = 'If so please login using your username and password below.';
			document.getElementById('loginText2').innerHTML = 'register using the form here.';
		}		
	},
	
	setUserType: function(businessType, businessTypeID){
		
		/*
		 * If user has ticked the Manufacturer radio button, display the extra information text box
		 * and hide the extra information text box for Other and Supplier
		*/
		if(businessType == 'Manufacturer')
		{
			document.getElementById('ManufacturerDetailText').style.display = '';
			document.getElementById('ManufacturerDetailTextBox').style.display = '';
			
			document.getElementById('SupplierDetail').value = '';
			document.getElementById('SupplierDetailText').style.display = 'none';
			document.getElementById('SupplierDetailTextBox').style.display = 'none';
			
			
			document.getElementById('OtherDetail').value = '';
			document.getElementById('OtherDetailText').style.display = 'none';
			document.getElementById('OtherDetailTextBox').style.display = 'none';
			
			
			//document.getElementById('businessTypeChosen').value = businessTypeID;
		}
		
		/*
		 * If user has ticked the Supplier radio button, display the extra information text box
		 * and hide the extra information text box for Manufacturer and Other
		 */
		else if(businessType == 'Supplier')
		{
			document.getElementById('ManufacturerDetail').value = '';
			document.getElementById('ManufacturerDetailText').style.display = 'none';
			document.getElementById('ManufacturerDetailTextBox').style.display = 'none';
			
			
			document.getElementById('SupplierDetailText').style.display = '';
			document.getElementById('SupplierDetailTextBox').style.display = '';
			
			document.getElementById('OtherDetail').value = '';
			document.getElementById('OtherDetailText').style.display = 'none';
			document.getElementById('OtherDetailTextBox').style.display = 'none';
			
			
			//document.getElementById('businessTypeChosen').value = businessTypeID;
		}
		
		/*
		 * If user has ticked the 'Other' radio button, display the extra information text box
		 * and hide the extra information text box for Manufacturer and Supplier
		 */
		else if(businessType == 'Other')
		{
			document.getElementById('ManufacturerDetail').value = '';
			document.getElementById('ManufacturerDetailText').style.display = 'none';
			document.getElementById('ManufacturerDetailTextBox').style.display = 'none';
			
			
			document.getElementById('SupplierDetailText').style.display = 'none';
			document.getElementById('SupplierDetailTextBox').style.display = 'none';
			
			document.getElementById('OtherDetail').value = '';
			document.getElementById('OtherDetailText').style.display = '';
			document.getElementById('OtherDetailTextBox').style.display = '';
			
		}
		
		//document.getElementById('businessTypeChosen').value = businessTypeID;
	},
	
	checkUsername: function(formID, contentWrapper, ajaxURL){
		var message = '';
		
		if (document.getElementById('emailAddress').value != document.getElementById('confirmEmailAddress').value ) {
			message = message + ' Please check the email addresses you have entered as they do not match';
			document.getElementById(contentWrapper).style.display='';
			document.getElementById(contentWrapper).style.color='red';
			document.getElementById(contentWrapper).innerHTML = message;
			document.getElementById('emailAddress').focus();
		}	
		
		if ( document.getElementById('emailAddress').value == document.getElementById('confirmEmailAddress').value ) 
		{
			var email = document.getElementById('emailAddress').value;
			if (objRegistration.validEmail(email) == false) 
			{
				message = message + ' The email you have entered is invalid. Please check and try again';
				document.getElementById(contentWrapper).style.display='';
				document.getElementById(contentWrapper).style.color='red';
				document.getElementById(contentWrapper).innerHTML = message;
			}
			else
			{
				document.getElementById(contentWrapper).style.display='';
				objAjax.filterDataSet(formID, ajaxURL , contentWrapper);
				objRegistration.checkMessage(contentWrapper);
			}
		}
	},
	
	checkMessage: function(contentWrapper){
		var response = document.getElementById(contentWrapper).innerHTML;
			
		if(response.indexOf("Sorry") != -1)
		{
			return false;
		}
		else
		{
			return true;
		}
	},
	
	validEmail: function(email) 
	{
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(email)) 
			return true;
		else
			return false;
		
	},
	// validate the registration form
	validateRegistration: function(formID, contentWrapper)
	{
		var success = true;
		var message = 'To continue with your registration, please: \n';
			
		if ( document.getElementById('emailAddress').value == '' ) 
		{
			success = false;
			message = message + ' - enter your email address.\n';
		}	
		if ( document.getElementById('confirmEmailAddress').value == '' ) 
		{
			success = false;
			message = message + ' - confirm your email address.\n';
		}				
		if ( document.getElementById('forename').value == '' ) 
		{
			success = false;
			message = message + ' - enter your first name.\n';
		}
		if ( document.getElementById('surname').value == '' ) 
		{
			success = false;
			message = message + ' - enter your second name.\n';
		}
		if ( document.getElementById('jobTitle').value == '' ) 
		{
			success = false;
			message = message + ' - enter your job title.\n';
		}
		if ( document.getElementById('companyName').value == '' ) 
		{
			success = false;
			message = message + ' - enter your company name.\n';
		}
		if ( document.getElementById('address1').value == '' ) 
		{
			success = false;
			message = message + ' - enter your address.\n';
		}
		if ( document.getElementById('town').value == '' ) 
		{
			success = false;
			message = message + ' - enter your town.\n';
		}
		if ( document.getElementById('postcode').value == '' ) 
		{
			success = false;
			message = message + ' - enter your postcode.\n';
		}
		if (document.getElementById('country_id').options.selectedIndex == "")
		{
			success = false;
			message = message + ' - choose the country of your address.\n' ;
		}
		if ( document.getElementById('telephone').value == '' ) 
		{
			success = false;
			message = message + ' - enter a telephone number.\n';
		}
		if ( document.getElementById('emailAddress').value != document.getElementById('confirmEmailAddress').value ) 
		{
			success = false;
			message = message + ' - check the email addresses you have entered as they do not matchup.\n';
		}
		if( document.getElementById('emailAddress').value == document.getElementById('confirmEmailAddress').value ) 
		{
			var emailAddress = document.getElementById('emailAddress').value;
			if (objRegistration.validEmail(emailAddress) == false) 
			{
				success = false;
				message = message + ' - a valid email address.\n'
			}
			else
			{
				var checkUsername = objRegistration.checkMessage('emailCheckMessage');
				if(checkUsername == false)
				{
					success = false;
					message = message + ' - Sorry but that email address has already been registered. Please try another address.\n';
				}
			}
		}
					
		if (success) 
		{	 
			//alert("ok");
			//register user
			document.frmRegisterUser.submit();
		} 
		else 
		{
			alert( message );
		}	
	},
	
	// Validate the update user details form
	validateEditUser: function(){
		
		var editSuccess = true;
		var message= 	'The following errors need to be fixed before saving your changes: \n';
		
		//alert(document.getElementById('newPassword'));
		//Check that if a new password has been entered, they both match
		if (document.getElementById('newPassword') ){
		
			if (document.getElementById('newPassword').value != '' || document.getElementById('newPassword2').value != '') {
				if(document.getElementById('newPassword').value != document.getElementById('newPassword2').value)
				{
					editSuccess = false;
					message = message + ' - The new password you have entered does not match.Please check and try again.\n';
				}
			}
		}
										
		if (document.getElementById('forename').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your first name.\n';
		}
		if (document.getElementById('surname').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your second name.\n';
		}
		if (document.getElementById('jobTitle').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your job title.\n';
		}
		if (document.getElementById('companyName').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your company name.\n';
		}
		if (document.getElementById('address1').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your address.\n';
		}
		if (document.getElementById('town').value == '' ) {
			editSuccess = false;
			message = message + ' - Please enter your town.\n';
		}
		if (document.getElementById('postcode').value == '' ) 
		{
			editSuccess = false;
			message = message + ' - Please enter your postcode.\n';
		}
		if (document.getElementById('country_id').options.selectedIndex == "")
		{
			editSuccess = false;
			message = message + ' - Please choose the country of your address.\n';
		}
		if (document.getElementById('telephone').value == '' ) 
		{
			editSuccess = false;
			message = message + ' - Please enter a telephone number.\n';
		}
						
		if (editSuccess)
		{
			document.frmEditUser.submit();
			//alert("ok");
		} 
		else 
		{
			alert( message );
		}

	},
	
	//Calling function for Ajax object
	endSession: function(formID, contentWrapper, ajaxURL){
		var ajaxString = ajaxURL;
		
 		objAjax.filterDataSet(formID, ajaxString , contentWrapper);
 		document.getElementById(contentWrapper).innerHTML = '<span style="color:red;">User Session Ended</span>';
 		document.getElementById('endSessionMessage').style.display = "none";
	},
	
	randRange: function(from, to, seed){
		// Make sure that we have integers.
		from 	= Math.floor( from );
		to 	= Math.floor( to );
		// Return the random number.
		return(Math.floor(from + ((to - from + 1) * Math.random((seed != null) ? seed : 0 ))));
	}

}

addLoadEvent(objRegistration.init);