// odaeri/js/addressSelector.js
var workForm="";
var destAddrssFull="";
$(document).ready( function() {
/******************************* 주소-아톰 셀렉터 대응 액션 ********************************/
// Address Atom Selector 클릭시 액션..
// 현재단계에서 선택된 ");
$("#dongRiAtomSelectBox").empty();
$("#pointAtomSelectBox").empty();
// selecrt options 추가
$.each(subAddrArr, function() {
$("#cityKuEupAtomSelectBox")
.append(new Option(this.name,this.geoId ));
});
// $("#deptAddressSelectForm .cityKuEupSelectBox").selectmenu('refresh', true);
// $("#cityKuEupAtomSelectBox").selectmenu('refresh', true);
});
// .cityKuEupSelectBox 변경시 액션..
$(document).off('change', '.cityKuEupSelectBox').on('change', '.cityKuEupSelectBox', function() {
// sessionStorage 에 선택 아톰 보관
sessionStorage.setItem( "destCityKuEupAtomSelected", $("option:selected", this).text() );
sessionStorage.setItem( "destCityKuEupAtomSelectedGeoId", $("option:selected", this).val() );
// AddressSelector 가 독립적으로 작동되므로.. 이런 방법이 통하지 않는다.
// selecrt options 리셋
$("#dongRiAtomSelectBox").empty().append("");
$("#pointAtomSelectBox").empty();
// 서버에 Ajax 요청
// /ajax/subAddr.php?cate=city&geoId=$geoId
var data = "cate=city&geoId="+$(this).val();
$.getJSON("/ajax/subAddr.php?"+data+"&callback=?",
function(jsonObj){
$.each(jsonObj, function() {
$("#dongRiAtomSelectBox").append(new Option(this.name,this.geoId ));
});
// $("#dongRiAtomSelectBox").selectmenu('refresh', true);
}
);
});
// .dongRiSelectBox 변경시 액션..
$(document).off('change', '.dongRiSelectBox').on('change', '.dongRiSelectBox', function() {
// sessionStorage 에 선택 아톰 보관
sessionStorage.setItem( "destDongRiAtomSelected", $("option:selected", this).text() );
sessionStorage.setItem( "destDongRiAtomSelectedGeoId", $("option:selected", this).val() );
$("#pointAtomSelectBox").empty().append("");
// 서버에 Ajax 요청
// /ajax/subAddr.php?cate=dongRi&geoId=$geoId
var data = "cate=dongRi&geoId="+$(this).val();
$.getJSON("/ajax/subAddr.php?"+data+"&callback=?",
function(jsonObj){
$.each(jsonObj, function() {
$("#pointAtomSelectBox").append(new Option(this.name,this.geoId ));
});
// $("#pointAtomSelectBox").selectmenu('refresh', true);
}
);
});
// .pointSelectBox 변경시 액션..
$(document).off('change', '.pointSelectBox').on('change', '.pointSelectBox', function() {
// 직접입력 선택시...
if( $(this).val()=="0" ) {
$("#userInputPointAtom").slideDown('slow');
}
// sessionStorage 에 선택 아톰 보관
else {
$("#userInputPointAtom").slideUp('slow');
sessionStorage.setItem( "destPointAtomSelected", $("option:selected", this).text() );
sessionStorage.setItem( "destPointAtomSelectedPointId", $("option:selected", this).val() );
}
console.log("session storage");
for (i = 0; i < sessionStorage.length; i++) {
console.log(sessionStorage.key(i) + "=[" + sessionStorage.getItem(sessionStorage.key(i)) + "]");
}
});
// 사용자입력 포인트명 blur() 대응 액션..
$("#userInputPointAtom").blur( function() {
sessionStorage.setItem( "destPointAtomSelected", $(this).val() );
});
/******************************* END 주소-아톰 셀렉터 대응 액션 ********************************/
/******************************* "선택완료" 버튼 클릭 대응 액션 ********************************/
// "선택완료" 버튼 클릭시 액션...
$("#addressSelectDoneBtn").click( function(e) {
e.preventDefault();
// 현재 요청중인 부모 Form 을 확인...
workForm = $("#addressSelectorForm").find("input[name='workForm']").val();
console.log("#addressSelectDoneBtn clicked!! for form: "+workForm);
// 디스플레이용 풀 어드레스 스트링을 만든다.
destAddrssFull = sessionStorage.getItem('destProvinceAtomSelected')+' '+ sessionStorage.getItem('destCityKuEupAtomSelected')+' '+ sessionStorage.getItem('destDongRiAtomSelected');
// 폼 요소의 주소 input 필드값들을 업데이트
updateAddressInputsFromStorage();
// 촤면 출력 주소 요소들을 확보된 스트링으로 fill up
fillAddressElementsFromStorage();
// display on
$(".destinationAddress").css("display","block");
$(".destinationPointNameText").text( sessionStorage.getItem('destPointAtomSelected') );
$(".destinationFullAddressText").text(destAddrssFull);
// formA element 들올 formB 로 복사한다... 디저블 됨
//form2form ( $("#addressSelectorForm"), $("#orderMainForm") );
// 부모 Form ID 에 따라 원래 요청했던 페이지로 page 이동
if(workForm=="odaeriTopSeaechForm" ) $.mobile.changePage('#LandingPageMain');
else if(workForm=="OrderMainForm") $.mobile.changePage('#OrderMain');
});
/******************************* END "선택완료" 버튼 클릭 대응 액션 ********************************/
});
// 화면의 주소 요소들을 확보한 주소로 채워넣어준다.
// 역기능이 되는 펑션도 필요할 것 같다.
// 페이지 혹은 Html 문서이동이 발생해도, 검색-작성된 출발/도착지 데이터는 그대로 보존될 수 있도록 배려해주자.
function fillAddressElementsFromStorage() {
// #OrderMain : #destPointSelectedStr
// LandingPage : .destinationPointNameText
$("#destPointSelectedStr", ".destinationPointNameText").text( sessionStorage.getItem('destPointAtomSelected') );
$("#destAddressSelectedStr", ".destinationFullAddressText").text( destAddrssFull );
}
// form 주소 input 필드 값에 확보된 주소 스트링을 할당해준다.
function updateAddressInputsFromStorage() {
if(workForm=="OrderMainForm") {
// #OrderMainForm 값 업데이트
$("#orderMainDestGeoId").val( $("#dongRiAtomSelectBox").val() );
$("#orderMainDestPointName").val( sessionStorage.getItem( "destPointAtomSelected") );
$("#orderMainDestPointId").val( $("#pointAtomSelectBox").val() );
$("#orderMainDestFullAddr").val( destAddrssFull );
}
else if(workForm=="odaeriTopSeaechForm") {
// #odaeriTopSeaechForm 값 업데이트
$("#destInputFullStr").val(destAddrssFull);
$("#destPointNameStr").val(sessionStorage.getItem('destPointAtomSelected'));
// $("#destInputFullStr").val( destAddrssFull );
// $("#destGeoId").val( sessionStorage.getItem('destGeoId') );
$("#destGeoId").val( $("#dongRiAtomSelectBox").val() );
// console.log("updateAddressInputsFromStorage 펑션에서.... "+destAddrssFull);
// console.log("updateAddressInputsFromStorage 펑션에서.... "+sessionStorage.getItem('destGeoId') );
// console.log("updateAddressInputsFromStorage 펑션에서.... "+$("#dongRiAtomSelectBox").val());
}
//console.log("updateAddressInputsFromStorage 펑션에서.... "+workForm);
}
// province 한글을 약속된 영문으로 바꿔 리턴한다.
function engProvince(prov) {
if(prov=="서울") return "seoul";
else if(prov=="경기") return "kyungki";
else if(prov=="인천") return "incheon";
else if(prov=="대전") return "daejeon";
else if(prov=="충북") return "chungbuk";
else if(prov=="충남") return "chungnam";
else if(prov=="세종") return "sejong";
else if(prov=="강원") return "kangwon";
else if(prov=="대구") return "daeku";
else if(prov=="울산") return "ulsan";
else if(prov=="부산") return "busan";
else if(prov=="경북") return "kyungbuk";
else if(prov=="경남") return "kyungnam";
else if(prov=="광주") return "kwangju";
else if(prov=="전북") return "chunbuk";
else if(prov=="전남") return "chunnam";
else if(prov=="제주") return "jeju";
}