/*
  Realtime validation using Ajax by masuidrive
*/

/* icons */
var validates_ok    = '<img src="/image/sub_material/contact_ok.gif" style="vertical-align: middle"/>';
var validates_error = '<img src="/image/sub_material/contact_error.gif" style="vertical-align: middle"/>';
var validates_info  = '(?)';
is_valid = {};

function toggle_submit(){
    var hash = $H(is_valid);
    var ret = hash.values(); 
    if(ret.uniq() == "true") {
        $("submit").disabled = false;
        $("submit").style.backgroundPosition = '0 -37px';
    } else {
        $("submit").disabled = true;
    }
}

Validator.register({
    "#email" : {
        "/^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/" : function(element){
            is_valid["email"] = true;
            toggle_submit();
            return validates_ok;
        },
        "/^$/" : function(element){
            is_valid["email"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["email"] = false;
            toggle_submit();
            return validates_error+"正しいメールアドレスを入力してください";
        }
    },
    "#company" : {
        "/^$/" : function(element){
            is_valid["company"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            toggle_submit();
            is_valid["company"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    "#division" : {
        "/^$/" : function(element){
            is_valid["division"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["division"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    "#tel" : {
        "/^$/" : function(element){
            is_valid["tel"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["tel"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    "#freetext" : {
        "/^$/" : function(element){
            is_valid["name"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["name"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    "#name" : {
        "/^$/" : function(element){
            is_valid["name"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["name"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    ".validate_kana" : {
        "/[^ァ-ヶ゛゜ー 　]/" : function(element){
            is_valid["kana"] = false;
            toggle_submit();
            return validates_error+"カタカナ以外は入力できません";
        },
        "/^$/" : function(element){
            is_valid["kana"] = false;
            toggle_submit();
            return validates_error+"必ず入力してください";
        },
        "/.*/" : function(element){
            is_valid["kana"] = true;
            toggle_submit();
            return validates_ok;
        }
    },
    ".eval" : function(element) {
	return eval(element.value);
    }
});
