$(document).ready(function(){
    new ElementMaxHeight();
    $("ul.sf-menu").superfish();

    /*
    $("#slide").show('drop',null,'slow',function(){
        setTimeout("slideSwitch()", 3000);
    });
    */
    
    var menus = $(".sf-menu > li > a");
    
    menus.removeClass("hover");
    menus.each(function(index){
        if($(this).attr("ref") == ref){
            $(this).addClass("hover");
        }
    });
    
    if(ref == "Login"){
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:login()\" id=\"triangle\">ログイン</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
        $(".forgot").bind("click",function(){
            $("#login").css("height","220px");
            $("#passsender").show("blind");
        });
        if($.cookie('KNOWLEDGE_E') !== null){
            $("#email").val($.cookie('KNOWLEDGE_E'));
            $(".check").attr("checked","checked");
        }
    }
    
    if(ref == "Knowledge"){
        opencategory('1');
        
        $("#tabs").bind("tabsselect",function(event,ui){
            if(ui.panel.id=='tabs-3'){
                $("#search_word").val("");
                $.getJSON("knowledge/keywords.php",{rand:parseInt(Math.random()*1000)},function(json){
                    if(json.status != 0){
                        $("#suggest").empty();
                        for(i = 0; i < json.keywords.length; ++i){
                            $("#suggest").append("<a href=\"javascript:searchkey('"+json.keywords[i]+"')\">"+json.keywords[i]+"</a>");
                        }
                    }
                });
            }
        });
    }
    
    if(ref == "TelephoneConsulting"){
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:telephoneApply()\" id=\"triangle\">アプライ</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
        
        $("#datetime").datetime();
        
        $("#dialog").dialog({autoOpen:false,modal:true,width:'600px',buttons:[{text:'申し込む',click:telephoneApplyConfirm},{text:'閉じる',click:function(){$(this).dialog("close")}}]});
    }
    
    if(ref == "WebConsulting"){
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:webApply()\" id=\"triangle\">アプライ</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
        
        $("#dialog").dialog({autoOpen:false,modal:true,width:'600px',buttons:[{text:'申し込む',click:webApplyConfirm},{text:'閉じる',click:function(){$(this).dialog("close")}}]});
    }
    
    if(ref == "Account"){
        $("#unread").show();
        $("#read").hide();
        $("[name='agree']:nth-child(1)").attr("checked","checked");
    
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:checkRegistry()\" id=\"triangle\">登録</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
        $("input[name='belongs']").bind("click",function(){
            if($(this).val() == "企業"){
                $("#company_dept").show("blind",function(){
                    $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
                });
            }else if($("#company_dept").css("display") == "block"){
                $("#company_dept").hide("blind",function(){
                    $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
                });
            }
        });
    }
    
    if(ref == "Profile"){
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:checkProfile()\" id=\"triangle\">登録</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
        $("input[name='belongs']").bind("click",function(){
            if($(this).val() == "企業"){
                $("#company_dept").show("blind",function(){
                    $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
                });
            }else if($("#company_dept").css("display") == "block"){
                $("#company_dept").hide("blind",function(){
                    $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
                });
            }
        });
    }
    
    if(ref == "Confirm"){
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:confirmRegistry()\" id=\"triangle\">登録</a>");
        $("#triangle").css('margin-top',"10px");
    }
    
    if(ref == "Writing" || ref == "Consulting" || ref == "Training" || ref == "Translation"){
        $(".Services > a").addClass("hover");
    }
    
    if(ref == "Facebook"){
        $("#unread").show();
        $("#read").hide();
        $("[name='agree']:nth-child(1)").attr("checked","checked");
    
        $(".rightfield").append("<a class=\"triangle\" href=\"javascript:fbRegistry()\" id=\"triangle\">登録</a>");
        $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
    }
    
    if(ref == "Charge"){
        $(".charge_form").bind("submit",displayTerms);

        $.getJSON("functions/check_read.php",{read:'2011-10-01',rand:parseInt(Math.random()*1000)},function(json){
            if(json.status != 0){
                $(".charge_form").unbind("submit");
            }
        });
    
        $("#charge1").bind("blur",function(){
            $("#charge1").val($.trim($("#charge1").val()));
            if($("#charge1").val().match(/^[0-9]+$/)){
                if(parseInt($("#charge1").val()) > 0){
                    $("#charge1").val((parseInt($("#charge1").val())));
                    $("#point1").val(parseInt($("#charge1").val()));
                }else {
                    $("#charge1").val("1");
                    $("#point1").val("1");
                }
            }else {
                $("#charge1").val("1");
                $("#point1").val("1");
            }
        });
        $("#tabs").bind("tabsselect",function(event,ui){
            if(ui.panel.id=='tabs-6'){
                status();
            }
        });
    }
    
    if(ref == "OnlineConsult"){
        $.getJSON("functions/tasks.php",{rand:parseInt(Math.random()*1000)},function(json){
            if(json.status != 0){
                for(i = 0; i < json.history.length; ++i){
                    $("#history").append("<div class=\"apply\">"+json.history[i].apply+"</div><div class=\"info\"><span class=\"method\">"+json.history[i].method+"</span><span>"+json.history[i].status+(json.history[i].status=="完了：" ? ("<a href=\"complete.php?id="+json.history[i].id+"\">内容</a>／<a href=\"download.php?id="+json.history[i].id+"\">ダウンロード</a>"):(json.history[i].status=="完了" ? "：<a href=\"complete.php?id="+json.history[i].id+"\">内容</a>":""))+"</span></div>");
                }
            }
        });
    }
});

function slideSwitch() {
    var $active = $('#slide img.active');
    var $next = $('#slide img.last-active');
    
    //$active.addClass('last-active');
    $active.removeClass('active');
    $next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, 1000, function() {
        
        $active.addClass('last-active');
        $next.removeClass('last-active');
        setTimeout( "slideSwitch()", 3000 );
    });
}

function c1showAll(){
	//document.getElementById('c1link').style.display = "none";
	//document.getElementById('c1hidden').style.display = "block";
    $("#c1link").hide();
    $("#c1hidden").show('fast',function(){
        new ElementMaxHeight();
    });
}

function c2showAll(){
	//document.getElementById('c2link').style.display = "none";
	//document.getElementById('c2hidden').style.display = "block";
    $("#c2link").hide();
    $("#c2hidden").show('fast',function(){
        new ElementMaxHeight();
    });
}

function playYouTube(doc,hsobj) {
    return hsobj.htmlExpand(doc, { objectType:'iframe', width: 640, height:390, objectWidth: 640, objectHeight: 390, preserveContent:false,objectLoadTime:'after'});
}

function cancel(id){
    if(confirm("本当にキャンセルしますか？")){
        $.getJSON("functions/cancel.php",{id:id,rand:parseInt(Math.random()*1000)},function(json){
            if(json.status != 0){
                status();
            }else {
                alert(json.error);
            }
        });
    }
}

function status(){
    $("#tabs-6in").empty();
    $.getJSON("functions/status.php",{rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $("#tabs-6in").append("<table class=\"bordered-table\"><tbody id=\"profile_body\"></tbody></table>");
            for(i = 0; i < json.profile.length; ++i){
                if(json.profile[i] != false){
                    $("#profile_body").append("<tr><th>"+json.profile[i].label+"</th><td colspan=\"3\">"+json.profile[i].value+"</td></tr>");
                }
            }
            
            if(json.subscription == false){
                $("#profile_body").append("<tr><th>サブスクリプション</th><td colspan=\"3\">なし</td></tr>");
            }else {
                for(i = 0; i < json.subscription.length; ++i){
                    $("#profile_body").append("<tr><th>サブスクリプション</th><td colspan=\"2\">期限：<span style=\"font-family:cg; font-size:0.9em;\">"+json.subscription[i].apply+"-<b>"+json.subscription[i].expire+"</b></span></td><th>"+json.subscription[i].payment+"</th></tr>");
                }
            }
            
            if(json.point == false){
                $("#profile_body").append("<tr><th>ポイント購入</th><td colspan=\"3\">なし</td></tr>");
            }else {
                for(i = 0; i < json.point.length; ++i){
                    $("#profile_body").append("<tr><th>ポイント購入</th><td colspan=\"2\">期限：<span style=\"font-family:cg; font-size:0.9em;\">"+json.point[i].apply+"-<b>"+json.point[i].expire+"</b></span><br>残存ポイント：<span style=\"font-family:cg; font-size:0.9em;\"><b>"+json.point[i].remain+"</b>/"+json.point[i].point+"</span></td><th>"+json.point[i].payment+"</th></tr>");
                }
            }
            
            if(json.consult == false){
                $("#profile_body").append("<tr><th>相談履歴</th><td colspan=\"3\">なし</td></tr>");
            }else {
                for(i = 0; i < json.consult.length; ++i){
                    $("#profile_body").append("<tr><th>"+json.consult[i].method+"</th><td colspan=\"2\">申し込み日時：<span style=\"font-family:cg; font-size:0.9em;\">"+json.consult[i].apply+"</span><br>消費ポイント：<span style=\"font-family:cg; font-size:0.9em;\"><b>"+json.consult[i].point+"</b></span></td><th>"+json.consult[i].status+"</th></tr>");
                }
            }
        }
    });
}

function readTerms(){
    $("#terms").empty();
    $("#terms").append("<h4>（スクロールすると確認ボタンが表示されます）</h4>");
    $("#terms").append("<iframe style=\"height:300px; width:430px; margin-left:10px; padding:0 5px; border:#276099 1px solid;\" frameborder=\"0\" scrolling=\"yes\" src=\"terms_iframe.php\"></iframe>");
    $("#terms").append("<div class=\"clear\" id=\"unread\"><div style=\"height:1.45em; padding:6px 0 0 0; margin:0 0 0 15px; color:#ff00ab;\">上記利用規定を最下端までスクロールしてお読み下さい。</div></div>");
    $("#terms").append("<div class=\"clear\" style=\"display:none;\" id=\"read\"><div align=\"center\"><a href=\"javascript:confirmTerms()\"><img src=\"images/read_terms.gif\"></a></div></div>");
    new ElementMaxHeight();
}

function displayTerms(){
    alert("利用規定をお読みになり、確認ボタンを押してください。");
    readTerms();
    return false;
}

function confirmTerms(){
    $.getJSON("functions/check_read.php",{read:'unread',rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $(".charge_form").unbind("submit");
            $("#read").empty();
            $("#read").append("<div style=\"height:1.45em; padding:6px 0 0 0; margin:0 0 0 15px;\">ご確認頂きありがとうございました</div>");
        }
    });
}

function telephoneApply(){
    if($("#datetime").val() == ""){
        alert("相談希望日時をDATETIMEへ入力してください。");
        return;
    }else {
        dd = new Date($("#datetime").val());
        today = new Date();
        if(dd.getTime() <= today.getTime()){
            alert("無効な時間指定（過去）");
        }
    }

    $.getJSON("functions/point.php",{p:$("#length option:selected").val(),rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $("#content_consultation").val($.trim($("#content_consultation").val()));
            if($("#content_consultation").val() == ""){
                alert("CONTENTに相談内容を記入してください。");
                return;
            }
            
            $("#dialog").dialog("option","title","電話相談："+$("#length > option:selected").text());
            $("#dialog").children("p").empty();
            $("#dialog").children("p").append($("#content_consultation").val().replace(/\n/g,"<br>"));
            $("#dialog").dialog("open");
        }else {
            alert(json.error);
        }
    });
}

function telephoneApplyConfirm(){
    $("#dialog").dialog("close");
    
    var l = $("#length option:selected").val() == "60" ? 30 : 60;
            
    mtop = $("#triangle").css('margin-top');
    $(".rightfield").empty();
    $(".rightfield").append("<img style=\"margin-top:"+mtop+";\" src=\"images/ajax-loader.gif\">");
            
    $.getJSON("functions/calendar.php",{sdt:($("#datetime").val().replace(/\s/,"T")+':00+09:00'),l:l,rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $.getJSON("functions/apply.php",{p:$("#length > option:selected").val(),w:$("#length > option:selected").text(),c:$("#content_consultation").val(),ck:$("#ConsultKey").val(),t:"TEL",sdt:($("#datetime").val().replace(/\s/,"T")+':00+09:00'),l:l,rand:parseInt(Math.random()*1000)},function(json){
                if(json.status != 0){
                    alert("相談内容と相談希望日時を送信しました。\n内容を検討させていただいた上で、受付確認メールを返信いたします。");
                    window.location.href="./consult.php";
                }else {
                    alert("相談内容と相談希望日時の送信ができませんでした。\n通信が途中で切断された可能性があります。");
                    $(".rightfield").empty();
                    $(".rightfield").append("<a class=\"triangle\" href=\"javascript:telephoneApply()\" id=\"triangle\">アプライ</a>");
                    $("#triangle").css('margin-top',mtop);
                }
            });
        }else {
            alert(json.error);
            $(".rightfield").empty();
            $(".rightfield").append("<a class=\"triangle\" href=\"javascript:telephoneApply()\" id=\"triangle\">アプライ</a>");
            $("#triangle").css('margin-top',mtop);
        }
    });
}

function webApply(){
    $.getJSON("functions/point.php",{p:$("#speed > option:selected").val(),rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $("#content_consultation").val($.trim($("#content_consultation").val()));
            if($("#content_consultation").val() == ""){
                alert("CONTENTに相談内容を記入してください。");
                return;
            }
            //alert($("#speed > option:selected").text());
            $("#dialog").dialog("option","title","ウェブ相談："+$("#speed > option:selected").text());
            $("#dialog").children("p").empty();
            $("#dialog").children("p").append($("#content_consultation").val().replace(/\n/g,"<br>"));
            $("#dialog").dialog("open");
        }else {
            alert(json.error);
        }
    });
}

function webApplyConfirm(){
    $("#dialog").dialog("close");

    mtop = $("#triangle").css('margin-top');
    $(".rightfield").empty();
    $(".rightfield").append("<img style=\"margin-top:"+mtop+";\" src=\"images/ajax-loader.gif\">");
            
    $.getJSON("functions/apply.php",{p:$("#speed > option:selected").val(),w:$("#speed > option:selected").text(),c:$("#content_consultation").val(),ck:$("#ConsultKey").val(),t:"WEB",rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            alert("相談内容を送信しました。\n内容を検討させていただいた上で、受付確認メールを返信いたします。");
            window.location.href="./consult.php";
        }else {
            alert("相談内容の送信ができませんでした。\n通信が途中で切断された可能性があります。");
            $(".rightfield").empty();
            $(".rightfield").append("<a class=\"triangle\" href=\"javascript:webApply()\" id=\"triangle\">アプライ</a>");
            $("#triangle").css('margin-top',mtop);
        }
    });
}

function upload(){
    $("#uploader").hide();
    $("#progressbar").show();
}

function uploaded(fn){
    $("#progressbar").hide();
    $("#uploader").show();
    $("#progressbar").after("<div class=\"upfile\">"+fn+"</div>");
    $("#consult").css('height',($("#consult").height()+22)+"px");
    $("#triangle").css('margin-top',($(".leftfield").innerHeight()-76)+"px");
    new ElementMaxHeight();
}

function uploadfail(){
    alert("アップロードできませんでした。");
    $("#progressbar").hide();
    $("#uploader").show();
}

function search(){
    $("#search_word").val($.trim($("#search_word").val()));
    if($("#search_word").val() != ""){
        searchkey($("#search_word").val());
    }
}

function searchkey(word){
    $("#tabs-1").empty();
    $.getJSON("knowledge/category.php",{word:word,rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            $("#tabs-1").append("<div class=\"knowledge_search_category\">キーワード［"+json.keyword+"］の検索結果</div>");
            $("#tabs-1").append("<div id=\"knowledge_search_result\"></div>");

            for(i = 0; i < json.knowledges.length; ++i){
                $("#knowledge_search_result").append("<div class=\"search_result\"><a href=\"javascript:showknowledge('"+json.knowledges[i].key+"')\">"+json.knowledges[i].question+"</a></div>");
            }
            $("#tabs").tabs("select",0);
            new ElementMaxHeight();
        }else {
            $("#tabs-1").append("<div>このキーワードを含むナレッジはありません。</div>");
            $("#tabs").tabs("select",0);
        }
    });
}

function login(){
    $("#email").val($.trim($("#email").val()));
    if($("#email").val() == ""){
        alert("E-MAILを入力してください。");
        $("#email").focus();
        return;
    }
    
    $("#pass").val($.trim($("#pass").val()));
    if($("#pass").val() == ""){
        alert("PASSWORDを入力してください。");
        $("#pass").focus();
        return;
    }
    
    md5 = MD5($("#email").val()+":"+$("#pass").val());
    $.getJSON("functions/login.php",{id:md5,rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            if($("input:checked").length == 1){
                exd = new Date();
                exd.setTime(exd.getTime()+(9999*24*60*60*1000));
                $.cookie('KNOWLEDGE_E',$("#email").val(),{expires:exd});
            }else {
                $.cookie('KNOWLEDGE_E',null,{expires:-1});
            }
        
            window.location.href=('./knowledge.php?'+json.status);
        }else {
            alert(json.error);
        }
    });
}

function logout(){
    if(confirm("ログアウトします")){
        $.getJSON("functions/login.php",{rand:parseInt(Math.random()*1000)},function(json){
            window.location.reload();
        });
    }
}

function fbout(){
    if(confirm("ログアウトします")){
        $.cookie('FB',null,{expires:-1});
        window.location.reload();
    }
}

function getPass(){
    $("#email").val($.trim($("#email").val()));
    if($("#email").val() == ""){
        alert("E-MAILを入力してください。");
        $("#email").focus();
        return;
    }
    
    md5 = MD5($("#email").val());
    $.getJSON("functions/login.php",{getpw:md5,rand:parseInt(Math.random()*1000)},function(json){
        if(json.status != 0){
            alert("パスワードを送りました");
        }else {
            alert(json.error);
        }
    });
}

function fbRegistry(){
    if($("input[name='agree']:checked").val() == "同意しない"){
        alert("会員規約をお読みになってください。同意されない場合は登録できません。")
        return;
    }
    
    mtop = $("#triangle").css('margin-top');
    $(".rightfield").empty();
    $(".rightfield").append("<img style=\"margin-top:"+mtop+";\" src=\"images/ajax-loader.gif\">");
    
    $.getJSON("functions/fbconfirm.php",{rand:parseInt(Math.random()*1000)},function(json){
        if(json.status == 1){
            alert("登録しました。");
            window.location.href='./charge.php';
        }else if(json.status == 2){
            alert("既に登録されています。");
            window.location.href='./charge.php';
        }else {
            alert("不正なアクセス");
        }
    });
}

function confirmRegistry(){
    $("#num").val($.trim($("#num").val()));
    if($("#num").val() == "" || $("#h").val() == ""){
        alert("承認番号を入力してください。");
        $("#num").focus();
        return;
    }else {
        md5 = MD5($("#h").val()+":"+$("#num").val());
        $.getJSON("functions/confirm.php",{c:md5,rand:parseInt(Math.random()*1000)},function(json){
            if(json.status == 1){
                alert("承認しました。");
                window.location.href='./login.php';
            }else if(json.status == 2){
                alert("既に承認されています。");
                window.location.href='./login.php';
            }else {
                alert("承認番号が間違っています。");
            }
        });
    }
}

function checkProfile(){
    var postData = new Object();
    
    if(fbuser == false){
        $("#pass").val($.trim($("#pass").val()));
        $("#npass").val($.trim($("#npass").val()));
    
        if($("#pass").val() != "" || $("#npass").val() != ""){
            if($("#pass").val() == ""){
                alert("パスワードを入力してください。");
                $("#pass").focus();
                return;
            }else if(!$("#pass").val().match(/[a-z,A-Z,0-9]{8}/i)){
                alert("パスワードは英数字８文字で入力してください。");
                $("#pass").focus();
                return;
            }
            postData.PASS = $("#pass").val();

            if($("#npass").val() == ""){
                alert("新しいパスワードを入力してください。");
                $("#npass").focus();
                return;
            }else if(!$("#npass").val().match(/[a-z,A-Z,0-9]{8,15}/i)){
                alert("パスワードは英数字８〜１５文字で入力してください。");
                $("#npass").focus();
                return;
            }
            postData.NPASS = $("#npass").val();
        
            postData.PASSCHANGE = "Y";
        }else {
            postData.PASSCHANGE = "N";
        }
    }else {
        postData.PASSCHANGE = "N";
    }
    
    postData.BELONGS = $("input[name='belongs']:checked").val();
    if($("input[name='belongs']:checked").val() == "企業"){
        $("#company").val($.trim($("#company").val()));
        if($("#company").val() == ""){
            alert("会社名を入力してください。");
            $("#company").focus();
            return;
        }
        postData.COMPANY = $("#company").val();
        
        $("#dept").val($.trim($("#dept").val()));
        if($("#dept").val() == ""){
            alert("部署・役職を入力してください。");
            $("#dept").focus();
            return;
        }
        postData.DEPT = $("#dept").val();
    }
    
    
    if($("#prefecture").val() == 0){
        alert("都道府県を入力してください。");
        return;
    }
    postData.PREFECTURE = $("#prefecture option:selected").val();
    
    $("#address").val($.trim($("#address").val()));
    if($("#address").val() == ""){
        alert("住所を入力してください。");
        $("#address").focus();
        return;
    }
    postData.ADDRESS = $("#address").val();
    
    $("#telephone").val($.trim($("#telephone").val()));
    if($("#telephone").val() == ""){
        alert("電話番号を入力してください。");
        $("#telephone").focus();
        return;
    }else if(!$("#telephone").val().match(/^[0-9,+][0-9,-]{8,20}[0-9]$/)){
        alert("電話番号は半角数字、および半角ハイフン、プラス記号で入力してください。電話番号の形式も確認してください。");
        $("#telephone").focus();
        return;
    }
    postData.TELEPHONE = $("#telephone").val();
    
    $("#teleadd").val($.trim($("#teleadd").val()));
    if($("#teleadd").val() != ""){
        postData.TELEIN = $("#teleadd").val();
    }
    
    mtop = $("#triangle").css('margin-top');
    $(".rightfield").empty();
    $(".rightfield").append("<img style=\"margin-top:"+mtop+";\" src=\"images/ajax-loader.gif\">");
    
    
    var jqxhr = $.post("functions/registry.php",postData,function(data){
        $("#registry").empty();
        $("#registry").html(data);
    });
    
    jqxhr.error(function(){
        alert("エラー：ネットワークの状況を確認してください。");
    });
}

function checkRegistry(){
    var postData = new Object();

    $("#fullname").val($.trim($("#fullname").val()));
    if($("#fullname").val() == ""){
        alert("氏名を入力してください。");
        $("#fullname").focus();
        return;
    }
    postData.NAME = $("#fullname").val();
    
    $("#email").val($.trim($("#email").val()));
    if($("#email").val() == ""){
        alert("E-MAILを入力してください。");
        $("#email").focus();
		return;
	}else if(!$("#email").val().match(/^[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+@[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+\.(af|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|ac|au|at|az|bh|bd|bb|by|bj|bm|bt|bo|ba|bw|br|io|bn|bg|bf|bi|kh|cm|ca|cv|cf|td|gg|je|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|tp|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|fx|ga|gm|ge|de|gh|gi|gd|gp|gu|gt|gn|gw|gy|ht|hm|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|kn|lc|vc|ws|sm|st|sa|sn|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sh|pm|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|bs|ky|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|uk|us|um|uy|uz|vu|va|ve|vn|vg|vi|wf|eh|ye|yu|zm|zw|com|net|org|gov|edu|int|mil|biz|info|name|pro|jp)$/i)){
		alert("無効なE-MAILです");
		$("#email").focus();
		return;
	}
    postData.EMAIL = $("#email").val();
    
    $("#birthday").val($.trim($("#birthday").val()));
    if($("#birthday").val().length == 8){
        if($("#birthday").val().match(/^[1,2][0-9]{3}[0,1]{1}[0-9]{1}[0-3]{1}[0-9]{1}$/)){
            var y = $("#birthday").val().substr(0,4);
            var m = $("#birthday").val().substr(4,2);
            var d = $("#birthday").val().substr(6,2);
            var dd = new Date(parseInt(y,10),parseInt(m,10)-1,parseInt(d,10));
            if(y != dd.getFullYear().toString() || parseInt(m,10)-1 != dd.getMonth() || parseInt(d,10) != dd.getDate()){
                //alert(y+" "+m+" "+d+"/"+parseInt(m));
                alert("生年月日の形式が間違っています。");
                $("#birthday").focus();
                return;
            }
            
            var d2 = new Date(parseInt(y)+20,parseInt(m)-1,parseInt(d));
            if(new Date().getTime() < d2.getTime()){
                alert("未成年者は登録できません");
                $("#birthday").focus();
                return;
            }else {
                postData.BIRTHDAY = y+'-'+m+'-'+d;
            }
        }else {
            alert("生年月日の形式が間違っています。");
            $("#birthday").focus();
            return;
        }
    }else {
        alert("生年月日は半角数字８文字で入力してください。");
        $("#birthday").focus();
        return;
    }
    
    $("#pass").val($.trim($("#pass").val()));
    if($("#pass").val() == ""){
        alert("パスワードを入力してください。");
        $("#pass").focus();
		return;
	}else if(!$("#pass").val().match(/[a-z,A-Z,0-9]{8,15}/i)){
		alert("パスワードは英数字８〜１５文字で入力してください。");
		$("#pass").focus();
		return;
	}
    postData.PASS = $("#pass").val();
    
    postData.BELONGS = $("input[name='belongs']:checked").val();
    if($("input[name='belongs']:checked").val() == "企業"){
        $("#company").val($.trim($("#company").val()));
        if($("#company").val() == ""){
            alert("会社名を入力してください。");
            $("#company").focus();
            return;
        }
        postData.COMPANY = $("#company").val();
        
        $("#dept").val($.trim($("#dept").val()));
        if($("#dept").val() == ""){
            alert("部署・役職を入力してください。");
            $("#dept").focus();
            return;
        }
        postData.DEPT = $("#dept").val();
    }
    
    if($("#prefecture").val() == ""){
        alert("都道府県を入力してください。");
        return;
    }else if($("#prefecture").val() == 0){
        alert("都道府県を入力してください。");
        return;
    }
    postData.PREFECTURE = $("#prefecture option:selected").val();
    
    $("#address").val($.trim($("#address").val()));
    if($("#address").val() == ""){
        alert("住所を入力してください。");
        $("#address").focus();
        return;
    }
    postData.ADDRESS = $("#address").val();
    
    $("#telephone").val($.trim($("#telephone").val()));
    if($("#telephone").val() == ""){
        alert("電話番号を入力してください。");
        $("#telephone").focus();
        return;
    }else if(!$("#telephone").val().match(/^[0-9,+][0-9,-]{8,20}[0-9]$/)){
        alert("電話番号は半角数字、および半角ハイフン、プラス記号で入力してください。電話番号の形式も確認してください。");
        $("#telephone").focus();
        return;
    }
    postData.TELEPHONE = $("#telephone").val();
    
    $("#teleadd").val($.trim($("#teleadd").val()));
    if($("#teleadd").val() != ""){
        postData.TELEIN = $("#teleadd").val();
    }
    
    if($("input[name='agree']:checked").val() == "同意しない"){
        alert("会員規約をお読みになってください。同意されない場合は登録できません。")
        return;
    }
    
    mtop = $("#triangle").css('margin-top');
    $(".rightfield").empty();
    $(".rightfield").append("<img style=\"margin-top:"+mtop+";\" src=\"images/ajax-loader.gif\">");
    
    
    var jqxhr = $.post("functions/registry.php",postData,function(data){
        $("#registry").empty();
        $("#registry").html(data);
        window.scroll(0,0);
    });
    
    jqxhr.error(function(){
        alert("エラー：ネットワークの状況を確認してください。");
    });
    
}

var MD5 = function (string) {
 
	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}
 
	function AddUnsigned(lX,lY) {
		var lX4,lY4,lX8,lY8,lResult;
		lX8 = (lX & 0x80000000);
		lY8 = (lY & 0x80000000);
		lX4 = (lX & 0x40000000);
		lY4 = (lY & 0x40000000);
		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4) {
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 0x40000000) {
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
 	}
 
 	function F(x,y,z) { return (x & y) | ((~x) & z); }
 	function G(x,y,z) { return (x & z) | (y & (~z)); }
 	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }
 
	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function ConvertToWordArray(string) {
		var lWordCount;
		var lMessageLength = string.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	};
 
	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	};
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	};
 
	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;
 
	string = Utf8Encode(string);
 
	x = ConvertToWordArray(string);
 
	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 
	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA);
		b=AddUnsigned(b,BB);
		c=AddUnsigned(c,CC);
		d=AddUnsigned(d,DD);
	}
 
	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 
	return temp.toLowerCase();
}

