/***
 * Code for making Ajax calls to the backend for telling users whether
 * or not their username and email are registered as the sign-up.
 */

var numb = /[0-9]/;
var lwr = /[a-z]/;
var upr = /[A-Z]/;
var alphaNum = /[a-zA-Z0-9]/g;

function restrictCharacters(myfield, e, restrictionType) {

    if (!e)
        var e = window.event;
    if (e.keyCode)
        code = e.keyCode;
    else if (e.which) code = e.which;

    var character = String.fromCharCode(code);

	// if they pressed esc... remove focus from field...
	if (code==27) {this.blur();return false;}
	// ignore if they are press other keys
	// strange because code: 39 is the down key AND ' key...
	// and DEL also equals . (code 46)
	if (!e.ctrlKey && code!=9 && code!=8 && code!=36 && code!=37 && code!=38 && code!=39 && code!=40 && code!=46) {
		if (character.match(restrictionType)) {
			return true;
		} else {
			return false;
		}
	}
}

function isAlphanumKey(parm) {return restrictCharacters(parm,alphaNum);}


// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function check_3dchat_signup(type) {

    var span_tag  = $("#" + type + "_taken");
    var input_tag = $("#signup_" + type).val();
    var url = "http://my.3dchat.com/signup_ajax.php?type=" + type
    + "&value=" + input_tag;

    span_tag.html("<iframe id='username_validation' src='"+url+"' height='35px' width='165px' scrolling='no' frameborder='no' allowtransparency='true' style='color: #ffffff; background-color: transparent;' ></iframe>");
}


jQuery.noConflict();
(function($) {

    $(document).ready(function(){
        //SHOW DIV
        $("#fieldWrapper").show();

        $('input#signup_username').bind('keyup', function(){
            check_3dchat_signup('username');
        });

        $('.button_form').click(function() {
            classname = $(this).attr('id');

            if (classname == "step2" && ($('#content_btn_step1 p').text() != '' || $('#username_taken').contents().find("p") == -1 || validatePass1() == false || validatePass2() == false)) {
                if ($("#signup_username").val() == '') {
                    $("#username_taken").text('Choose a username');
                }
                validatePass1();
                validatePass2();

                if (classname == "step2" && $("#signup_password").val() != $("#signup_password2").val()) {
                    $("#signup_password").val('');
                    $("#signup_password2").val('');
                }

                return false;
            } else {
                signup_facebook_url();
            }

            return true;
        });

        /***************************/
        //@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
        //@website: www.yensdesign.com
        //@email: yensamg@gmail.com
        //@license: Feel free to use it, but keep this credits please!
        /***************************/
        //global vars
	var form = $("#signup_form");
	var pass1 = $("#signup_password");
	var pass2 = $("#signup_password2");
        var globInfo = $("#content_btn_step1");

	//On blur
	pass1.blur(validatePass1);
	pass2.blur(validatePass2);

	//On Submitting
	form.submit(function(){
		if(validatePass1() && validatePass2())
			return true
		else
			return false;
	});

	function validatePass1(){
		//it's too short
		if(pass1.val().length < 5){
                    globInfo.children('p').text("Password need to be at least 5 characters");
                    globInfo.addClass("signup_error");
                    return false;
                }
		//correct
		else {
                    globInfo.children('p').text("");
                    globInfo.removeClass("signup_error");
                    return true;
		}
	}

        function validatePass2() {

                if( pass1.val() != pass2.val()){
                        globInfo.children('p').text("Passwords doesn't match!");
                        globInfo.addClass("signup_error");
                        return false;
                }
                else if (pass2.val().length < 5 || pass1.val().length < 5) {
                        globInfo.children('p').text("Password need to be at least 5 characters");
                        globInfo.addClass("signup_error");
                        return false;
                }
                //it's valid
                else {
                        globInfo.children('p').text("");
                        globInfo.removeClass("signup_error");
                        return true;
                }
        }
    });
})(jQuery);
