$(document).ready(function() {
    $.metadata.setType("attr", "test");
    changeClick();
    dhtmlHistory.initialize();
    dhtmlHistory.addListener(historyChange);
    var path = new String(location);
    if(path.indexOf("#") > 0){
        path = path.substring(path.indexOf("#") + 1);
        if(path != "index()"){
            eval(path);
        }
        dhtmlHistory.add(path);
    }else{
        dhtmlHistory.add("index()");
    }
    $("#loadingTag").hide().ajaxStart(function(){
        $(this).show();
    }).ajaxComplete(function(){
        $(this).hide();
        correctPNG();
    });
    correctPNG();
});

function logout(){
    alert("fuck");
    $.get("../logout.do");
}

function changeClick(){
    $("a").click(resolveURL);
}

function changeTdColor(td, color) {
    $(td).css("background-color", color);
}

function prepareForm(formId, callback) {
    var v = $("#" + formId).validate({
        submitHandler : function(form) {
            $(form).ajaxSubmit({
                success : callback
            });
        }
    });
}

function syncFCK(formId, fieldName){
    var fv = document.getElementById(formId);
    var val = FCKeditorAPI.GetInstance(fieldName).GetXHTML(true);
    for(var i = 0; i < fv.length; i++){
        if(fv[i].name == fieldName){
            fv[i].value = val;
            break;
        }
    }
}

function historyChange(newLocation, historyData) {
    if(newLocation.length > 2){
        eval(newLocation);
    }
}

function resolveURL() {
    if(this.href.indexOf("#") < 0)
        return true;
    var location = this.href.substring(this.href.indexOf("#") + 1);
    if(location.length == 0){
        return false;
    }else{
        dhtmlHistory.add(location);
        eval(location);
        return false;
    }
}

function viewRecruitment(category, menu, pageNum) {
    $("#content").load("recruitment.do", {method : "page", categoryString : cat.category[category], category : category, menu : menu, pageNum : pageNum}, changeClick);
}

function detailRecruitment(id) {
    $("#content").load("recruitment.do", {method : "detail", uuid : id}, changeClick);
}

function viewJob(category, menu, pageNum) {
    $("#content").load("job.do", {method : "page", categoryString : cat.category[category], category : category, menu : menu, pageNum : pageNum}, changeClick);
}

function detailJob(id) {
    $("#content").load("job.do", {method : "detail", uuid : id}, changeClick);
}

function viewArticle(category, menu, pageNum) {
    $("#content").load("article.do", {method : "page", categoryString : cat.category[category], category : category, menu : menu, pageNum : pageNum}, changeClick);
}

function detailArticle(id) {
    $("#content").load("article.do", {method : "detail", id : id}, changeClick);
}

function viewActivity(category, menu, pageNum) {
    $("#content").load("activity.do", {method : "page", categoryString : cat.category[category], category : category, menu : menu, pageNum : pageNum}, changeClick);
}

function detailActivity(id) {
    $("#content").load("activity.do", {method : "detail", id : id}, changeClick);
}

function addToCalendar(id) {
    $.post("activity.do", {method : "addToCalendar", id : id}, function(data) {
        alert(data);
        detailActivity(id);
    });
}

function removeFromCalendar(id) {
    $.post("activity.do", {method : "removeFromCalendar", id : id}, function(data) {
        alert(data);
        detailActivity(id);
    });
}

function selectCity(city, schoolSelectName) {
    $.post("qzzb/education.do", {method : "citySelect", cityId : city.value}, function(data) {
        $("#" + schoolSelectName).empty();
        $("#" + schoolSelectName).append(data);
        prepareEducation();
    });
}

function cascadeSelect(action, method, master, slaveId, callback){
    $.post(action, {method : method, masterValue : master.value}, function(data) {
        $("#" + slaveId).empty();
        $("#" + slaveId).append(data);
        callback;
    });
}

function index() {
    $("#lframe").load("menu.jsp", {}, JT_init);
    $("#content").load("main.jsp", {}, pixViewer.init);
}

function calendarSetup(field,format,button){
    Calendar.setup({
        inputField     :    field,
        ifFormat       :    format,
        button         :    button,
        align          :    "bR"
    });
}

var ggxx = {
    main : function() {
        $("#lframe").load("ggxx/menu.jsp", {}, changeClick);
        viewArticle(0,1,0);
    }
}

var zpxx = {
    main : function() {
        $("#lframe").load("zpxx/menu.jsp", {}, changeClick);
        zpxx.searchJob();
    },
    searchJob : function() {
        $("#content").load("zpxx/search.jsp", {}, function(){
            $("#jobSearchForm").ajaxForm({
                target : "#searchResult"
            });
            changeClick();
        });
    },
    applyJob : function(id) {
        $("#content").load("zpxx/resumeChoice.jsp", {uuid : id}, changeClick);
    },
    sendResume : function(jobUUID, resumeUUID) {
        $.post("qzzb/resume.do", {method : "sendResume", jobUUID : jobUUID, resumeUUID : resumeUUID}, function(data) {
            alert(data);
            zpxx.main();
        })
    }
}

function topArticle(category, begin, end) {
    $("#content").load("article.do", {
        method : "top",
        categoryString : cat.category[category],
        category : category,
        menu : 0,
        menuString : cat.newItem,
        pageNum : 0,
        begin : begin,
        end : end
    }, changeClick);
}

function picArticle() {
    $("#content").load("article.do", {
        method : "pic",
        categoryString : cat.category[6],
        category : 6,
        menu : 0,
        menuString : cat.category[6],
        pageNum : 0
    }, changeClick);
}

var zdb = {
    main : function() {
        $("#lframe").load("zdb/menu.jsp", {}, changeClick);
        topArticle(2, 9, 17);
    }
}
var gzs = {
    main : function() {
        $("#lframe").load("gzs/menu.jsp", {}, changeClick);
        topArticle(3, 17, 23);
    }
}
//var zycp = {
//    main : function() {
//        $("#lframe").load("zycp/menu.jsp", {}, changeClick);
//        $("#content").load("null.jsp", {}, changeClick);
//    }
//}
//
//var zyzx = {
//    main : function() {
//        $("#lframe").load("zyzx/menu.jsp", {}, changeClick);
//        $("#content").load("null.jsp", {}, changeClick);
//    }
//}


//简历管理
var qzzb = {
    main : function() {
        $("#lframe").load("qzzb/menu.jsp", {}, changeClick);
        viewArticle(4,3,0);
    },
    resume : function() {
        $("#content").load("qzzb/resume.jsp", {}, changeClick);
    },
    createResume : function(isEnglish) {
        if(isEnglish){
            $("#content").load("qzzb/resume.do", {method : "createResume", isEnglish: isEnglish, title : prompt(cat.resumeTitle_en_US, cat.defaultResumeTitle_en_US)}, changeClick);
        }else{
            $("#content").load("qzzb/resume.do", {method : "createResume", isEnglish: isEnglish, title : prompt(cat.resumeTitle_zh_CN, cat.defaultResumeTitle_zh_CN)}, changeClick);
        }
    },
    copyResume : function(uuid,locale) {
        if(locale == "en_US"){
            $("#content").load("qzzb/resume.do", {method : "copyResume", uuid: uuid, title : prompt(cat.resumeCopyTitle_en_US, cat.defaultResumeTitle_en_US)}, changeClick);
        }else{
            $("#content").load("qzzb/resume.do", {method : "copyResume", uuid: uuid, title : prompt(cat.resumeCopyTitle_zh_CN, cat.defaultResumeTitle_zh_CN)}, changeClick);
        }
    },
    deleteResume : function(uuid,locale) {
        if(locale == "en_US"){
            if(confirm(cat.confirmDelete_en_US)){
                $("#content").load("qzzb/resume.do", {method : "deleteResume", uuid : uuid}, changeClick);
            }
        }else{
            if(confirm(cat.confirmDelete_zh_CN)){
                $("#content").load("qzzb/resume.do", {method : "deleteResume", uuid : uuid}, changeClick);
            }
        }
    },
    editResume : function(uuid) {
        qzzb.profile(uuid);
    },
    profile : function(uuid) {
        $("#content").load("qzzb/profile.jsp", {uuid : uuid}, qzzb.prepareProfile);
    },
    prepareProfile : function() {
        changeClick();
        prepareForm("profileForm", function(data){
            alert(data);
        });
    },
    education : function(uuid) {
        $("#content").load("qzzb/education.jsp", {uuid : uuid}, qzzb.prepareEducation);
    },
    prepareEducation : function() {
        changeClick();
        prepareForm("educationForm", function(data){
            qzzb.education();
            alert(data);
        });
        $("input:submit").click(function(){
            syncFCK("educationForm", "courses");
        });
    },
    toNow : function(checkbox) {
        if(checkbox.checked){
            $("#endTime").attr("value", cat.toNow);
        }else{
            $("#endTime").attr("value", "");
        }
    },
    deleteEducation : function(uuid, internalId) {
        if(confirm(cat.confirmDeleteEducation)){
            $("#content").load("qzzb/education.do", {method : "delete", uuid : uuid, internalId : internalId}, qzzb.education);
        }
    },
    editEducation : function(uuid, internalId) {
        $("#content").load("qzzb/education.do", {method : "edit", uuid : uuid, internalId : internalId}, qzzb.prepareEducation);
    },
    award : function(uuid) {
        $("#content").load("qzzb/award.jsp", {uuid : uuid}, qzzb.prepareAward);
    },
    prepareAward : function() {
        changeClick();
        prepareForm("awardForm",function(data){
            alert(data);
        });
    },
    certificate : function(uuid) {
        $("#content").load("qzzb/certificate.jsp", {uuid : uuid}, qzzb.prepareCertificate);
    },
    prepareCertificate : function() {
        changeClick();
        prepareForm("certificateForm",function(data){
            qzzb.certificate();
            alert(data);
        });
    },
    deleteEnglishCert : function(uuid,type) {
        if(confirm(cat.confirmDeleteEnglishCert)){
            $.post("qzzb/certificate.do", {method : "deleteEnglishCert", uuid : uuid, type : type}, function(data) {
                qzzb.certificate(uuid);
            });
        }
    },
    experience : function(uuid) {
        $("#content").load("qzzb/experience.jsp", {uuid : uuid}, qzzb.prepareExperience);
    },
    prepareExperience : function() {
        changeClick();
        prepareForm("experienceForm", function(data){
            qzzb.experience();
            alert(data);
        });
    },
    deleteExperience : function(uuid, internalId) {
        if(confirm(cat.confirmDeleteExperience)){
            $("#content").load("qzzb/experience.do", {method : "delete", uuid : uuid, internalId : internalId}, qzzb.prepareExperience);
        }
    },
    editExperience : function(uuid, internalId) {
        $("#content").load("qzzb/experience.do", {method : "edit", uuid : uuid, internalId : internalId}, qzzb.prepareExperience);
    },
    extension : function(uuid) {
        $("#content").load("qzzb/extension.jsp", {uuid : uuid}, qzzb.prepareExtension);
    },
    prepareExtension : function() {
        changeClick();
        prepareForm("extensionForm",function(data){
            alert(data);
        });
    }
}
//活动日程
var hdrc = {
    main : function() {
        $("#lframe").load("hdrc/menu.jsp", {}, changeClick);
        viewActivity(5,0,0);
    },
    calendar : function(year, month) {
        $("#content").load("hdrc/calendar.jsp", {year : year, month : month}, function(){
            $("td.dayCell").hover(function(){
                $(this).css("background-color", $(this).attr("bgcolorFocus"));
                $("div", this).show().css("cursor", "hand");
            }, function(){
                $(this).css("background-color", $(this).attr("bgcolor"));
                $("div", this).hide();
            });
        });
    },
    simpleCalendar : function(year, month) {
        $("#calendar").load("hdrc/simpleCalendar.jsp", {year : year, month : month}, JT_init);
    },
    addStudentEvent : function(img) {
        var form = document.getElementById("studentEventForm");
        var year = form.year.value;
        var month = form.month.value;
        var day = $(img).parents(".dayCell").attr("day");
        form.day.value = day;
        var title = prompt(cat.studentEventTitle);
        if(title != null && title != undefined && title.length > 0){
            form.title.value= title;
            $("#studentEventForm").ajaxSubmit(function(data){
                hdrc.calendar(year, month);
            });
        }
    }
}
//个人中心
var grzx = {
    main : function() {
        $("#lframe").load("grzx/menu.jsp", {}, changeClick);
        qzzb.resume();
    },
    message : function(type) {
        $("#content").load("grzx/message.do", {method : "list", type : type == undefined ? "in" : type}, changeClick);
    },
    detailMessage : function(id) {
        $("#content").load("grzx/message.do", {method : "detail", id : id}, changeClick);
    },
    createMessage : function(msgId, recId) {
        $("#content").load("grzx/message.do", {method : "create", refMessageId : msgId, receiverId : recId}, function(){
            changeClick();
            prepareForm("messageForm", grzx.message);
        });
    },
    deleteMessage : function(id) {
        $("#content").load("grzx/message.do", {method : "delete", id : id}, grzx.message);
    },
    info : function() {
        $("#content").load("grzx/info.do", {method : "detail"}, function() {
            changeClick();
            prepareForm("infoForm", grzx.info);
        });
    },
    offer : function() {
        $("#content").load("grzx/offer.do", {method : "list"}, changeClick);
    },
    detailOffer : function(id) {
        $("#content").load("grzx/offer.do", {method : "detail", id : id == undefined ? 0 : id}, function(){
            changeClick();
            prepareForm("offerForm", grzx.offer);
        });
    },
    graduateInfo : function() {
        $("#content").load("grzx/graduateInfo.do", {method : "detail"}, function(){
            changeClick();
            prepareForm("graduateInfoForm", function(data){
                alert(data);
                grzx.offer();
            });
        });
    },
    applyJob : function() {
        $("#content").load("grzx/applyJob.do", {method : "list"}, changeClick);
    },
    survey : function() {
        $("#content").load("survey/survey.do", {method : "list"}, changeClick);
    },
    previewSurvey : function(id) {
        $("#content").load("survey/survey.do", {method : "viewByTemplate", surveyId : id}, changeClick);
    },
    detailSurvey : function(id) {
        $("#content").load("survey/survey.do", {method : "detail", surveyId : id}, function(){
            changeClick();
            prepareForm("surveyForm", function(data){
                alert(data);
                grzx.survey();
            });
        });
    }
}