$(document).ready(function() {
jQuery.historyInit(actionHandler);
$("a[rel='history_stdguide']").live("click", function() {
dvf_historyHandler(this.href);
return false;
});
$("#nat_etc_item")
.live("mouseover", function() {
$("#nat_etc_list").removeClass("hidden");
})
.live("mouseout", function() {
if (!$("#nat_etc_list").hasClass("hidden"))
{
$("#nat_etc_list").addClass("hidden");
}
});
$("#nat_etc_list > li")
.live("mouseover", function() {
$(this).css("background-color", "#999999");
})
.live("mouseout", function() {
$(this).css("background-color", "#ffffff");
})
.live("click", function() {
dvf_historyHandler("#CHNAT_" + this.value);
$("#nat_etc_list").addClass("hidden");
});
// // 국가별 주요도시정보 지도 click event 핸들러 설정.
// $("div.nat_city_map li.linklike").live("click", function() {
// dvf_historyHandler("#CHDTL_" + $("#natCd").val() + "_" + $("#hgcseq").val() + "_" + this.value);
// });
$("#news_more_lnk").click(function() {
location.href = this.href + "?mth=" + $("#search_method").val() + "&natCd=" + $("#natCd").val();
return false;
});
if (0 > location.href.indexOf("#"))
{
dvf_pushHistory("#CHNAT_" + $("#req_natCd").val());
}
else
{
dvf_pushHistory(location.href);
}
});
function actionHandler(p_hash)
{
var arrToken;
if(p_hash)
{
arrToken = p_hash.split("_");
}
else
{
arrToken = $("#init_param").val().split("_");
}
if (0 < arrToken.length)
{
switch(arrToken[0])
{
case "CHNAT":
// Hash format: CHNAT_국가코드
if (arrToken[1] != $("#natCd").val())
{
// 현재 선택된 국가가 아닌 경우 메뉴 재구성
$("#natCd").val(arrToken[1]);
$("#hgcseq").val("");
$("#hgdseq").val("");
changeNation(arrToken[1]);
read_news_list(arrToken[1]);
}
break;
case "CHCTYPE":
// Hash format: CHCTYPE_국가코드_대분류코드(hgc_seq)
if (arrToken[1] != $("#natCd").val())
{
// 현재 선택된 국가가 아닌 경우 메뉴 재구성
$("#natCd").val(arrToken[1]);
$("#hgcseq").val(arrToken[2]);
$("#hgdseq").val("");
changeNation(arrToken[1]);
read_news_list(arrToken[1]);
}
else if (arrToken[2] != $("#hgcseq").val())
{
// 현재 선택된 대분류가 아닌 경우 소분류 메뉴 재구성
$("#hgcseq").val(arrToken[2]);
$("#hgdseq").val("");
changeHGCat(arrToken[2]);
}
break;
case "CHDTL":
// Hash format: CHDTL_국가코드_대분류코드(hgc_seq)_상세분류코드(hgd_seq)
if (arrToken[1] != $("#natCd").val())
{
// 현재 선택된 국가가 아닌 경우 메뉴 재구성
$("#natCd").val(arrToken[1]);
$("#hgcseq").val(arrToken[2]);
$("#hgdseq").val(arrToken[3]);
changeNation(arrToken[1]);
read_news_list(arrToken[1]);
}
else if (arrToken[2] != $("#hgcseq").val())
{
// 현재 선택된 대분류가 아닌 경우 소분류 메뉴 재구성
$("#hgcseq").val(arrToken[2]);
$("#hgdseq").val(arrToken[3]);
changeHGCat(arrToken[2]);
}
else if (arrToken[3] != $("#hgdseq").val())
{
// 현재 선택된 상세분류를 클릭한 경우 skip
$("#hgdseq").val(arrToken[3]);
changeHGDtl(arrToken[3]);
}
break;
}
}
}
// 국가변경 처리
function changeNation(p_natCd)
{
clearCatTypelist();
$("#img_loading").show();
var natIdEnd = p_natCd;
// 기타국가에 속한 국가는 국가코드가 Tab 메뉴의 li tag id값에 포함되어있지 않으므로
// li id 형태로 찾으면 일치하는 개체가 없다.
// 기타국가 li의 id 뒷부분에 해당하는 "etc"로 바꿔준다.
if (0 >= $("#nat_tab_" + natIdEnd).length)
natIdEnd = "etc";
if (("#nat_tab_" + natIdEnd) != $("#nat_tab > li.on").attr("id"))
{
$("#nat_tab > li.on").removeClass("on");
$("#nat_tab_" + natIdEnd).addClass("on");
if ("etc" == natIdEnd)
{
etcNats = $("#nat_etc_list > li");
for (var idx = 0; idx < etcNats.length; idx++)
{
if (etcNats[idx].value == p_natCd)
{
$("#nat_etc_item > strong").text("기타국가(" + $(etcNats[idx]).text() + ")");
break;
}
}
}
}
read_guide_type_list($("#menu_type").val(), p_natCd);
}
// 현지생활백과 대분류 read
function read_guide_type_list(p_menuType, p_natCd)
{
var param = "menu_type=" + p_menuType + "&natCd=" + p_natCd;
$.ajax({
url: '/service/study_info/svc_guide_cattype_list.asp',
type: 'POST',
data: param,
dataType: 'json',
//timeout: 3000,
error: function() {
alert("Error loading Guide Details Menu");
},
success: function(p_data) {
if (p_data.catTypeList)
{
if ("" == $("#hgcseq").val())
$("#hgcseq").val(p_data.catTypeList[0].hgc_seq);
var guideTypeList = $("#hg_cat_list");
$(p_data.catTypeList).each(function(i) {
var liObj = $("
" + f_recievedDataToServiceByDecode(this.type_name) + "");
guideTypeList.append(liObj);
if (this.hgc_seq == $("#hgcseq").val())
{
liObj.find("a").addClass("on");
//read_guide_list($("#hgcseq").val());
changeHGCat($("#hgcseq").val());
}
});
guideTypeList.show();
}
}
});
}
// HG Category 변경
function changeHGCat(p_hgcSeq)
{
clearCatList();
$("#img_loading").show();
$("#hg_cat_list > li > a.on").removeClass("on");
$("#hg_cat_" + p_hgcSeq).addClass("on");
//alert("hg_cat_name:" + $("#hg_cat_" + p_hgcSeq).text());
if ( 0 <= $("#hg_cat_" + p_hgcSeq).text().indexOf("주요 도시 정보") )
{
read_guide_imgTemplet($("#natCd").val());
}
else
{
read_guide_list(p_hgcSeq);
}
}
function sortByOrder(a, b){
var arrToken = a.attr("href").replace(/^.*#/, '').split("_");
var x = parseInt(arrToken[3]);
arrToken = b.attr("href").replace(/^.*#/, '').split("_");
var y = parseInt(arrToken[3]);
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function read_guide_imgTemplet(p_nationCd)
{
var defHgdSeq = $("#hgdseq");
$("#hg_dtl_img")
.load("/scripts/templet/life_guide_nation_map_"+ p_nationCd +".asp?natCd=" + p_nationCd + "&hgcseq=" + $("#hgcseq").val(),
function() {
var nat_NAMESPACE = "#nation_"+ p_nationCd;
var mapContainer = $(nat_NAMESPACE);
if ("" == defHgdSeq.val())
{
// 소분류가 설정되지 않았으면 각 도시의 코드들을 소팅순으로 재배열하여 가장 작은 값을 기본 컨텐츠로 보여준다.
var arr_group = new Array();
var cityList = $("#nation_"+ p_nationCd + " li a");
for (var idx = 0; idx < cityList.length ; idx++)
{
arr_group.push(cityList.eq(idx));
}
arr_group.sort(sortByOrder);
var arrToken = arr_group[0].attr("href").replace(/^.*#/, '').split("_");
defHgdSeq.val(arrToken[3]);
}
changeHGDtl(defHgdSeq.val());
})
.show();
}
//컨텐츠 타이틀
function read_guide_list(p_hgcSeq)
{
var param = 'details_cd='+ p_hgcSeq;
$.ajax({
url: '/service/study_info/svc_stdguide_cat_list.asp',
type: 'POST',
data: param,
dataType: 'json',
//timeout: 3000,
error: function() {
alert("Error loading Guide Details Menu");
},
success: function(p_data) {
show_guide_list(p_data, "#guide_cat");
}
});
}
//컨텐츠 타이틀 배치 및
function show_guide_list(p_data, p_gCatSelector)
{
var natCd = $("#natCd").val();
var hgcSeq = $("#hgcseq").val();
var defHgdSeq = $("#hgdseq");
var catList = $(p_gCatSelector + " > #hg_dtl_list");
if (p_data.detailsMenuList != undefined){
if ("" == defHgdSeq.val())
defHgdSeq.val(p_data.detailsMenuList[0].hgd_seq);
$(p_data.detailsMenuList).each(function(i) {
var liObj = $("" + f_recievedDataToServiceByDecode(this.title) + "");
catList.append(liObj);
if (defHgdSeq.val() == this.hgd_seq)
{
liObj.find("a").addClass("on");
changeHGDtl(defHgdSeq.val());
}
});
catList.show();
}else{
//dataClear();
}
}
// HG Detail 변경
function changeHGDtl(p_hgdSeq)
{
clearGuideContents();
$("#img_loading").show();
$("#hg_dtl_list > li > a.on").removeClass("on");
$("#hg_dtl_" + p_hgdSeq).addClass("on");
read_guide_contents($("#hgdseq").val());
}
function read_guide_contents(p_hgdSeq)
{
var param = 'detail_cd='+ p_hgdSeq;
$.ajax({
url: '/service/study_info/svc_stdguide_content.asp',
type: 'POST',
data: param,
dataType: 'json',
//timeout: 3000,
error: function() {
alert("Error loading Guide Content");
},
success: function(p_data) {
var tDiv = $("#guide_desc");
if (p_data != undefined){
var title = f_recievedDataToServiceByDecode(p_data.hgd_title);
var hgdText = f_recievedDataToServiceByDecode(p_data.hgd_text);
var htmlYN = p_data.hgd_html_yn;
$("#guide_title").html(title);
if(htmlYN == 'y'){
tDiv.html(hgdText);
}else{
tDiv.html(hgdText.replace(/\r\n/ig, "
"));
}
}
$("#guide_title").show();
tDiv.show();
$("#img_loading").hide();
}
});
}
function f_recievedDataToServiceByDecode(str){
str = unescape(str);
return str.replace(/+/ig, "+");
}
function clearCatTypelist()
{
$("#hg_cat_list").empty().hide();
clearCatList();
}
function clearCatList()
{
$("#hg_dtl_list").empty().hide();
$("#hg_dtl_img").empty().hide();
clearGuideContents();
}
function clearGuideContents()
{
$("#guide_title").empty().hide();
$("#guide_desc").empty().hide();
}
function read_news_list(p_natCd)
{
var param = {ntype: $("#news_type").val(),
natCd: p_natCd,
page_no: "1",
page_size:"8"};
$.ajax({
url: "/service/news/svc_news_list.asp",
type: 'POST',
data: param,
dataType: 'json',
async: true,
//timeout: 3000,
error: function(p_req, p_status, p_err) {
//alert('ERR1');
alert("학교뉴스를 읽는 중 오류가 발생하였습니다. 잠시 후 이용바랍니다.");
},
success: function(p_data) {
var newsList = $("#sidebar_b div.correspondent_cont");
newsList.empty();
if (p_data.newsCnt <= 0)
{
newsList.append("등록된 뉴스가 없습니다.");
}
else
{
var fstCssClass = " class=\"first\"";
$("#news_nat_name").text(p_data.nat_name);
for (var idx = 0; idx < p_data.newsList.length; idx++)
{
var datarec = p_data.newsList[idx];
newsList.append("" +
"- [" + datarec.nat_name + "] " + dvf_html2entity(dvf_ellipsisStr(unescape(datarec.title),38)) + "
" +
"- " + dvf_html2entity(dvf_ellipsisStr(unescape(datarec.summary),80)) + "
" +
"
");
fstCssClass = "";
}
}
}
});
}