/**
 *  Register JS
 **/
Register = {
	nick: '',
	email: '',

	// Interval for nick check queries
	interval: 1000,

	waiting: false,

	checkNick: function(nick) {

		if( this.nick != nick )
		{
			this.nick = nick;
		}
		else
		{
			return true;
		}

		if( nick.length > 0 && nick.length < 16 && this.waiting == false )
		{
			setTimeout( 'Register.queryNick()', this.interval );
			this.waiting = true;
			return true;
		}
		return false;
	},

	queryNick: function() {
		this.waiting = false;
		var req = new Ajax.Updater( 'regNickStatus', '/misc/ajax.php?ajax=user&do=checkNick&do-nick=' + escape(this.nick) );
		var topPos = getTop($('regNickStatus')) + $('regNickStatus').offsetHeight + 20;
		return true;
		// IE fix
		if( $('regNickStatus').runtimeStyle && $('usernameinfo').runtimeStyle.display != "" )
		{
			//alert( $('usernameinfo').runtimeStyle.display ); //DEBUG
			$("usernameinfo").hide();
			$('usernameinfo').runtimeStyle.top = topPos;
			$("usernameinfo").show();
		}
		else if( $('usernameinfo').style && $('usernameinfo').style.display != "none" )
		{
			$("usernameinfo").setStyle( { 'top': topPos } );
		}

		return true;
	},

	checkEmail: function(email) {

		if( this.email != email )
		{
			this.email = email;
		}
		else
		{
			return true;
		}

		if( email.length > 0 && this.waiting == false && this.email.indexOf("@") > 0 && this.email.indexOf(".") > 0 )
		{
			setTimeout( 'Register.queryEmail()', this.interval );
			this.waiting = true;
			return true;
		}
		return false;
	},

	queryEmail: function() {
		this.waiting = false;
		var req = new Ajax.Updater( 'regEmailStatus', '/misc/ajax.php?ajax=user&do=checkEmail&do-email=' + escape(this.email) );
		var topPos = getTop($('regEmailStatus')) - $('emailinfo').offsetHeight;
		
		// IE fix
		if($('regEmailStatus').runtimeStyle && $('emailinfo').runtimeStyle.display != "" )
		{
			$("emailinfo").hide();
			$('emailinfo').runtimeStyle.top = topPos;
			$("emailinfo").show();
		}
		else if( $('emailinfo').style && $('emailinfo').style.display != "none" )
		{
			$("emailinfo").setStyle( { 'top': topPos } );
		}

		return true;
	},
			
	checkPw: function(pw) {
		var rege = /[0-9]/
				
		if( !rege.test( pw ) )
		{
			$('regPwStatus').update( '<div class="regError"><img src="http://img.petsie.org/html/images/icons/ni0023-16.gif" class=icon> ' + lang.get("mustcontainatleastonenumber") + '</div>' );
		}
		else if( pw.length < 6 )
		{
			$('regPwStatus').update( '<div class="regError"><img src="http://img.petsie.org/html/images/icons/ni0023-16.gif" class=icon> ' + lang.get("tooshort") + '</div>' );
		}
		else
		{
			$('regPwStatus').update( '' );
		}
	},
			
	checkPwConf: function(pw_conf) {
		if( $('passwd').value != pw_conf )
		{
			$('regPwConfStatus').update( '<div class="regError"><img src="http://img.petsie.org/html/images/icons/ni0023-16.gif" class=icon> ' + lang.get("passwordsdontmatch") + '</div>' );
		}
		else
		{
			$('regPwConfStatus').update( '' );
		}
	},

	checkTerms: function() {
		var terms = $('terms');
		if( !terms.checked )
		{
			$('regTermsStatus').update( '<div class="regError"><img src="http://img.petsie.org/html/images/icons/ni0023-16.gif" class=icon> ' + lang.get("acceptusageterms") + '!</div>' );
			return false;
		}
		else
		{
			$('regTermsStatus').update( '' );
			return true;
		}

	},
	
	checkAge: function() {
		
		if($('dateSel').value == "" || $('monthSel') == "" || $('yearSel').value == "") {
			return false;
		}
		
		var date = $('dateSel').value;
		var month = $('monthSel').value - 1;
		var year = $('yearSel').value;				
		
		var dob = new Date(year, month, date);
		var today = new Date();
		var one_year = 1000*60*60*24*365;
		
		var age = Math.floor((today.getTime()-dob.getTime())/(one_year));
		
		if(age >= 18) {
			$('outerDiv').show();
		}
		else {
			$('outerDiv').hide();
		}
	},

	checkSpecialCode: function(specialcode) {

		if( specialcode.length > 0 && this.waiting == false )
		{
			setTimeout( 'Register.querySpecialCode()', this.interval );
			this.waiting = true;
			return true;
		}
		return false;
	},


	querySpecialCode: function() {
		this.waiting = false;
		var specialCode = $('specialcode').value;
		new Ajax.Updater('regSpecialCodeStatus', '/misc/ajax.php?ajax=register_informationform&do=checkSpecialCode&do-specialCode=' + escape(specialCode));
	},
	
	posEmailHelp: function(emailfield) {
		if( !$('emailinfo').runtimeStyle )
		{
			// Proper browsers
			$('emailinfo').style.top = getTop(emailfield) - 80 + 'px';
			$('emailinfo').style.left = getLeft(emailfield) + 140 + 'px';
		}
		else
		{
			// IE
			$('emailinfo').runtimeStyle.top = ( getTop(emailfield) - 80 );
			$('emailinfo').runtimeStyle.left = ( getLeft(emailfield) + 140 );
		}
	},
	
	posNickHelp: function(emailfield) {
		if( !$('usernameinfo').runtimeStyle )
		{
			// Proper browsers
			var cor_top = getTop(emailfield) - 80 + 'px';
			var cor_left = getLeft(emailfield) + 140 + 'px';
			$('usernameinfo').style.top = cor_top;
			$('usernameinfo').style.left = cor_left;
		}
		else
		{
			// IE
			$('usernameinfo').runtimeStyle.top = ( getTop(emailfield) - 80 );
			$('usernameinfo').runtimeStyle.left = ( getLeft(emailfield) + 140 );
		}
	}
}

