
if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}


function getBornDate() {
    return $('#reg_year').val() +'-'+ $('#reg_month').val() +'-'+ $('#reg_day').val();
}

function __(string) {
	if (typeof lang == 'undefined') {
		return string;
	}

	return lang[string] ? lang[string] : string;
}

function validateForgottenPass(options) {
	// hide button Submit and show loading bar
	$('.dialogButtons > input').hide();
	$('.dialogButtons > #loading').show();
	$('.dialogButtons > #loading').css('line-height', 2);
	$('.dialogButtons > #loading').css('color', '#FFFFFF');

	if (typeof options != 'undefined' && typeof options.user != 'undefined') {
		var user = $('#'+ options.user).val();
	}
	else {
		var user = $('#forgottenuser').val();
	}

	if (typeof options != 'undefined' && typeof options.email != 'undefined') {
		var email = $('#'+ options.email).val();
	}
	else {
		var email = $('#email').val();
	}

    $.post( "validate.php", {forgottenPass: 1, user: user, email: email}, function(response) {
		if ( response.status == 0 ) {
		    $('#forgottenPassResp').html(response.message);
		    // show again Submit button and hide the loading bar
		    $('.dialogButtons > input').show();
			$('.dialogButtons > #loading').hide();
		} else {
		    $('#sendPass').hide();
		    createAlertBox(response.message);
		}
    }, 'json' );
}

// Check if the (username || email || password) is already in use and/or valid
function validateRegistration() {
	$('.loginFail').hide();

    $.ajax({
	type: "POST",
	url: "validate.php",
	data: {registration: true, username: $('#regUsername').val(), email: $('#reg_email').val(),
		password: $('#regPassword').val(), terms: $('#terms:checked').val()},
	success: function(transport) {
	    if ( transport.status == 0 ) {
			for ( i in transport.errors ) {
			    $('#'+i+'Status').removeClass('error').removeClass('correct').html('').removeClass('loginFail');
				$('#'+i+'Status').hide();
			    $('#'+i+'Status').addClass( transport.errors[i].className ).html( transport.errors[i].msg );
				$('#'+i+'Status').css('display','block');
			}
	    } else if ( transport.status == 1 )
	    	$('.error').removeClass('error');

	    if ( transport.valid == 1 ) {
	    	// hide button Submit and show loading bar
			$('.dialogButtons > input').hide();
			$('.dialogButtons > #loading').show();
			$('.dialogButtons > #loading').css('line-height', 2);
			$('.dialogButtons > #loading').css('color', '#FFFFFF');
			return registerUser();
	    }
	},
	dataType: 'json'
    });
    return false;
}

function validateRegistrationNew() {
	$.ajax({
		type: "POST",
		url: "validate.php",
		data: {
			registration: true,
			username: $('#regUsername').val(),
			email: $('#email').val(),
			password: $('#regPassword').val(),
			terms: $('#terms:checked').val()
		},
		success: function(transport) {
			if ( transport.status == 0 ) {
				for ( i in transport.errors ) {
			    $('#'+i+'Status').removeClass('error').removeClass('correct').html('');
			    $('#'+i+'Status').addClass( transport.errors[i].className ).html( transport.errors[i].msg );
				}
	    } else if ( transport.status == 1 )
				$('.error').removeClass('error');

			if (typeof transport.data['login_url'] != 'undefined') {
				window.location.href = transport.data['login_url'];
				return false;
			}
			
	    if ( transport.valid == 1 ) {
	    	// hide button Submit and show loading bar
				$('.dialogButtons > input').hide();
				$('.dialogButtons > #loading').show();
				$('.dialogButtons > #loading').css('line-height', 2);
				$('.dialogButtons > #loading').css('color', '#FFFFFF');
				
				return registerUser();
	    }
		},
		dataType: 'json'
	});
	
	return false;
}

function registerUser() {
	var regForm = $('#registrationForm');
	$.ajax({
		type: "POST",
		url: "register.php",
		data: regForm.serialize(true),
		success: function(transport) {

			if(transport.status == 1) {
				//We need to login the user
				if (typeof transport.data['login_url'] != 'undefined') {
					window.location.href = transport.data['login_url'];
					return false;
				}
				else {
					$('#username').val($('#regUsername').val());
					$('#password').val($('#regPassword').val());
					$('#loginForm').submit();
					return false;
				}
			}
			else {
				$('.dialogButtons > input').show();
				$('.dialogButtons > #loading').hide();

				for ( i in transport.errors ) {
					$('#'+i+'Status').removeClass('error').removeClass('correct').html('');
					$('#'+i+'Status').addClass( transport.errors[i].className ).html( transport.errors[i].msg );
					$('#'+i+'Status').show();
				}
			}
		},
		dataType: 'json'
	});

	return false;
}

var secondsleft = 40;

end = 0;
requestDate = 0;
timerID = 0;

function countup() {
	now = new Date();
	diff = now - requestDate;
	diff = new Date(diff);
	var msec = diff.getMilliseconds();
	var sec = diff.getSeconds();
	if (sec < 10){
		sec = "0" + sec;
	}

	if (msec < 10){
		msec = "00" +msec;
	}
	else if (msec < 100){
		msec = "0" +msec;
	}

	if (typeof timerID != 'undefined') {
		clearTimeout(timerID);
	}

	if (now >= end){
		window.location.reload();
		return 0;
	}
	else {
		$("#login-timer").text(sec + ":" + msec);
	}

	timerID = setTimeout("countup()", 10);
}

// Checks if the login is valid
function validateLogin() {
	$('#btnLogin').attr('disabled', true);
	$('.hide, .social-login, #fail').hide();
	$('.loaderBox').show();

	end = new Date();
	end.setSeconds(end.getSeconds() + secondsleft);
	requestDate = new Date();
	countup();

    $.ajax({
	type: "POST",
	url: "validate.php",
	data: {login: true, username: $('#username').val(), password: $('#password').val()},
	success: function(r) {
		$('#btnLogin').attr('disabled', false);
		$('#fail').hide().empty();
		$('.loaderBox').hide();
		$('.hide').show();

	    if ( r.status == 0 ) {
			errors = []

			for ( i in r.errors ) {
				if (errors.indexOf(r.errors[i].msg) + 1 > 0) {
					continue;
				}

				errors.push(r.errors[i].msg)

				if (!r.valid) {
					$('#fail').append(r.errors[i].msg +'<br />');
				}
				else {
				    $('#'+i+'Status').removeClass('loginFail').removeClass('loginSuccess');
				    $('#'+i+'Status').addClass( r.errors[i].className ).html( r.errors[i].msg );
				    $('#'+i+'Status').show();
				}
			}

	    } else if ( r.status == 1 ) {
			$('.error').removeClass('loginFail');

			if (typeof r.data['login_url'] != 'undefined') {
				window.location.href = r.data['login_url'];
				return false;
			}
		}

	    if ( r.valid != 0 ) {
			if (typeof r.data['gate_url'] != 'undefined') {
				$('#loginForm').attr('action', 'http://'+ r.data['gate_url'] +'/login.php');
			}

			if (r.valid > 1) {
				$('form#loginForm input[name=res]').val(r.valid);
			} else if (r.valid < 0) {
				$('form#loginForm input[name=res]').val(-r.valid);
			}

	    	// hide button Submit and links Create accound and Forgotten password
	 		// and show loading bar
	 		$('.buttonrow > input').hide();
	 		$('.buttonrow > a').hide();
	 		$('.buttonrow > #loading').show();
			$('.buttonrow > #loading').css('line-height', 2);
			$('.buttonrow > #loading').css('color', '#FFFFFF');
			if (typeof(r.data) != 'undefined') {
				for (var name in r.data) {
					if ($('#loginForm #loginBox	input[name="'+name+'"]').length == 0) {
						$('#loginForm #loginBox').append('<input type="hidden" name="'+name+'" value=""/>');
					}
					$('#loginForm #loginBox	input[name="'+name+'"]').val(r.data[name]);
				}
			}

			$('#loginForm').submit();
		}
		else {
			$('#fail').show();
		}
	},
	dataType: 'json'
    });
    return false;
}

