// JavaScript Document
$(document).ready(function() {

	reloadCaptcha();
	function reloadCaptcha(){
		$('#captchaImg').remove();
		var k = Math.random();
		var dlg = $('#dummy');
		var capthcha = '<img src="JpegImage.aspx?k=' + k + '" id="captchaImg" name="captchaImg" class="captchaImage" />';
		dlg.prepend(capthcha);
	}
	$('#reloadCaptcha').click(function(event){
		reloadCaptcha();
	});
		
	function checkLength(o,n,min,max) {
		if ( o.val().length > max || o.val().length < min ) {
			//o.addClass('ui-state-error');
			//updateTips("Length of " + n + " must be between "+min+" and "+max+".");
			$('#emailError').text( "Email must be >"+min+" AND <"+max);
			return false;
		} 
		else 
			return true;
	}

	function checkRegexp(o,regexp,n) {
		if ( !( regexp.test( o.val() ) ) ) {
			//o.addClass('ui-state-error');
			//updateTips(n);
			$('#emailError').text( "e.g. me@mycompany.com");
			return false;
		} 
		else
			return true;
	}
		
	$('#sendMeConfirmationEmail').click(function(event){
		var email = $('#email');
		var valid = true;
		
		valid = valid && checkCaptcha();
		valid = valid && checkLength(email,"email",6,80);
		valid = valid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. me@mycompany.com");
		
		var userType = $("input[name='userType']:checked").val();
		valid = valid && checkNoDuplicateNoPublicServerEmail(email.val(),userType);
		
		if (valid) {
			var userType = $("input[name='userType']:checked").val();
			//$('#dialog').empty();
			//alert('Registered!');
			$('#dialog').before('<div>An email is sent to provided email address<br/> check it<br/>' + 
								'Redirecting to home after <span id="container">10</span> </div>');
			$('#dialog').remove();
			setInterval(countDown, 1000);
			register(email.val(),userType);
			
		}

	return false;
	});
	
	var timer = 9;
	function countDown(){
		$('#container').text(timer);
		timer--;
		if(timer <= 0 )
			window.location='home.aspx';
	}
	
	function register( email, userType){
		$.ajax({
			url: 'checkLogin.aspx',
			type: 'POST',
			async : true,
			data: {
				'act':'Register',
				'emailAddress':email,
				'userType':userType},
			success: function(data) {
				var valid = $(data).find('Valid').text();
				if ( valid == 'true' ){
					location.href = "home.aspx";
				}
				else{ // True
				}
			}
		});
	}
	
	function checkNoDuplicateNoPublicServerEmail(emailAddress,userType){
		var isNotDuplicateNorPublicMailServer = false;
		$.ajax({
			url: 'checkLogin.aspx',
			type: 'POST',
			async : false,
			data: {
				'act':'CheckNoDuplicateNoPublicServerEmail',
				'emailAddress':emailAddress},
			success: function(data) {
				var valid      = $(data).find('Valid').text();
				var errorText  = $(data).find('Error').text();
				if ( valid == 'false' ){
				    if((errorText == 'Public Mail Server') && (userType=='T')){
					    isNotDuplicateNorPublicMailServer =  true;
					}
					else{
					    $('#emailError').text (errorText);
					    isNotDuplicateNorPublicMailServer =  false;
                    }
				}
				else{ // True
					$('#emailError').text ('');
					isNotDuplicateNorPublicMailServer =  true;
				}
			}
		});
		return isNotDuplicateNorPublicMailServer;
	}
	function checkCaptcha(){
		var captcha = $('#captcha').val();
		var isValid = false;
		$.ajax({
			url: 'checkLogin.aspx',
			type: 'POST',
			async : false,
			data: {
				'act':'CheckCaptcha',
				'captcha':captcha},
			success: function(data) {
				var valid = $(data).find('Valid').text();
				if ( valid == 'false' ){
					$('#captchaError').text ('Incorrect !');
					isValid =  false;
				}
				else{ // True
					$('#captchaError').text ('');
					isValid =  true;
				}
			}
		});
		return isValid;
	}
	
});
