

function sign() {
//    this.clearError();
}

sign.prototype.clearErrorSignin = function() {
    if ($('signin_err_whole')) {
        $('signin_err_whole').style.display = "none";
        $('signin_err_whole').innerHTML = "";
    }
    if ($('signin_err_email')) {
        $('signin_err_email').style.display = "none";
        $('signin_err_email').innerHTML = "";
    }
    if ($('signin_err_nickname')) {
        $('signin_err_nickname').innerHTML = "";
        $('signin_err_nickname').style.display = "none";
    }
    if ($('signin_err_password')) {
        $('signin_err_password').innerHTML = "";
        $('signin_err_password').style.display = "none";
    }
}
sign.prototype.clearErrorSignup = function() {
    if ($('signup_err_whole')) {
        $('signup_err_whole').style.display = "none";
        $('signup_err_whole').innerHTML = "";
    }
    if ($('signup_err_email')) {
        $('signup_err_email').style.display = "none";
        $('signup_err_email').innerHTML = "";
    }
    if ($('signup_err_nickname')) {
        $('signup_err_nickname').innerHTML = "";
        $('signup_err_nickname').style.display = "none";
    }
    if ($('signup_err_password')) {
        $('signup_err_password').innerHTML = "";
        $('signup_err_password').style.display = "none";
    }
}


// check email format
sign.prototype.checkEmail = function(type_func) {
	var target     = type_func + "_email";
	var target_err = type_func + "_err_email";

	if (!$F(target)){
        $(target_err).innerHTML = dkStr.ERR_NO_EMAIL;
        $(target_err).style.display = "block";
        return null;
    }

    var _e = $F(target);
    var fmt=/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
//    fmt =/[!#-9A-~]+@([!#-9A-~].)+[a-z]{2,3}$/i;
    var regObj = new RegExp(fmt);
    if (!_e.match(regObj)) {
        $(target_err).innerHTML = dkStr.ERR_INVALID_EMAIL;
        $(target_err).style.display = "block";
        return null;
    }
    return $F(target);
}    

// check password format
sign.prototype.checkPassword = function(type_func){
	var target     = type_func + "_password";
	var target_err = type_func + "_err_password";

	if (!$F(target)) {
        $(target_err).innerHTML = dkStr.ERR_NO_PASSWORD;
        $(target_err).style.display = "block";
        return null;
    }
    var _e = $F(target);
    var fmt=/[a-zA-z0123456789#@\-_+]{4,10}$/i;
    var regObj = new RegExp(fmt);
    if (!_e.match(regObj)) {
        $(target_err).innerHTML = dkStr.ERR_INVALID_PASSWORD;
        $(target_err).style.display = "block";
        return null;
    }
    return $F(target);
}    

// check password format
sign.prototype.checkNickname = function(type_func) {
	var target     = type_func + "_nickname";
	var target_err = type_func + "_err_nickname";

    if (!$F(target)) {
        $(target_err).innerHTML = dkStr.ERR_NO_NICKNAME;
        $(target_err).style.display = "block";
        return null;
    }

    var _e = $F(target);
    var fmt=/[a-zA-z0123456789#@\-_+ ]{4,15}$/i;
    // var fmt=/^[^\t\n\d\r\s]{4,15}$/i;
    var regObj = new RegExp(fmt);
    if (!_e.match(regObj)) {
        $(target_err).innerHTML = dkStr.ERR_INVALID_NICKNAME;
        $(target_err).style.display = "block";
        return null;
    }

    return $F(target);
}    

// sign in result
sign.prototype.showWholeErr = function(str) {
        $('signup_err_whole').innerHTML = str;
        $('signup_err_whole').style.display = "block";
}



// sign in
sign.prototype.signin = function(type, commit_url, target_url) {
	var type_func = "signin";

	this.clearErrorSignin();
    var email    = this.checkEmail(type_func);
    var password = this.checkPassword(type_func);
    if (!email || !password) return;

    var redirect = $F('redirect');

    var self = this;
    var pars =  pars = 'email=' + email + '&password=' + password;
    var opt = {
        method: 'post',
        parameters: pars,
        asynchronous: false,
        onComplete: function(req, json){
            if(json.ret == 1){
                if (type == 'screen') {
					var url = deckkrConst.urls.PAGE_MYPAGE + '?onScreen=1';
                    if (commit_url) url += '&url=' + commit_url;
                    if (target_url) url = target_url;
                }else{
					if(redirect){
						var url = redirect;
					}else{
						var url = deckkrConst.urls.PAGE_MYPAGE;
                        if (commit_url) {
                            pars += '?url=' + commit_url;
                        }
					}
				}
                window.location.href = url;
				exit;
            }
            else {
                $('signin_err_whole').innerHTML = dkStr.ERR_SIGNIN_FAIL;
                $('signin_err_whole').style.display = "block";
            }
        }
    };
    // BUGS: change  Updater to request

    var myAjax = new Ajax.Request(deckkrConst.urls.SET_SIGN_IN, opt);
}

// sign in
sign.prototype.signup = function(standerd) {
	var type_func = "signup";
    if (standerd != 1) standerd = 0;

    this.clearErrorSignup();
    var email    = this.checkEmail(type_func);
    var password = this.checkPassword(type_func);
    var nickname = this.checkNickname(type_func);
    if (!email || !password || !nickname) return;
        
    var redirect = encodeURIComponent($F('redirect'));

    var self = this;
    var pars =  pars = 'email=' + email + '&password=' + password + '&nickname=' + nickname + '&redirect=' + redirect;
    var opt = {
        method: 'post',
        parameters: pars,
        asynchronous: false,
        onComplete: function(req, json) {
            if (json.ret == 1) {
                self.showSuccessSignup(standerd);
            }
            else {
                self.showWholeErr(dkStr.ERR_EXIST_EMAIL);
            }
        }
    };
    // BUGS: change  Updater to request
    var myAjax = new Ajax.Request(deckkrConst.urls.SET_SIGN_UP, opt);
}

sign.prototype.showSuccessSignup = function(standerd){
    if (standerd != 1) standerd = 0;

    if (standerd) {
        location.href = deckkrConst.urls.CREATE_STANDERD;
    }
    else {
        location.href = deckkrConst.urls.CREATE_DONE;
    }
}

sign.prototype.toggleRemainder = function() {
	this.clearErrorSignin();

	var _t = $('remainder_button').style.display;
    if (_t == 'none') {
        $('remainder_button').style.display = 'block';
        $('signin_button').style.display = 'none';
        $('signin_passbox').style.display = 'none';
    }
    else {
        $('remainder_button').style.display = 'none';
        $('signin_button').style.display = 'block';
        $('signin_passbox').style.display = 'block';
    }   
}

sign.prototype.remainder = function() {
    var type_func = "signin";

    this.clearErrorSignin();
    var email    = this.checkEmail(type_func);
    if (!email) return;
 
    var _e = encodeURIComponent(email);
    location.href=deckkrConst.urls.SEND_REMAINDER + '?email=' + _e;
    //location.href=deckkrConst.urls.SEND_REMAINDER + '?email=' + email;
}
