if (document.domain.indexOf("hangame.com") >= 0) {
    document.domain = "hangame.com";
}

function hw_util_getHaniUrl() {
    if(location.href.indexOf("://dev-hani") > 0 )  return "http://dev-hani.hangame.com";
    else if(location.href.indexOf("://dev-") > 0 ) return "http://alpha-hani.hangame.com";
    else if(location.href.indexOf("://alpha") > 0 ) return "http://alpha-hani.hangame.com";
    else if(location.href.indexOf("://fkiller") > 0 ) return "http://alpha-hani.hangame.com";
    else if(location.href.indexOf("://prewww") > 0 || location.href.indexOf("://prejsp") > 0 || location.href.indexOf("://beta") > 0) return "http://beta-hani.hangame.com";
    return "http://hani.hangame.com";
}
var hw_var_hani_url = hw_util_getHaniUrl();
var hw_var_devel = (hw_var_hani_url.indexOf("://hani.") > 0)? false:true;
var hw_var_hani_down_url = "http://" + (hw_var_devel? "alpha-images.hangame.co.kr/static/messenger/hani/dev-setup":"cdn.hangame.com/hangame/messenger/hani/setup") + "/HaniSetup.exe"
var hw_var_ctrl_down_url = "http://" + (hw_var_devel? "alpha-images.hangame.co.kr/static/messenger/hani/dev-webmsg":"cdn.hangame.com/hangame/messenger/hani/webmsg") + "/HanWebMsg.cab"
var hw_var_hani_amp_down_url = "http://" + (hw_var_devel? "alpha-images.hangame.co.kr/static/haniamp":"cdn.hangame.com/hangame/hanmusic/haniamp") + "/HampSetup.exe "
var hw_var_hompy_url = "http://" + (hw_var_devel? "alpha-":"") + "hompy.hangame.com";
var hw_var_enable = (hw_var_hani_url.indexOf("://alpha-hani.")>0 || hw_var_hani_url.indexOf("://dev-hani.")>0 )? true:true;

// object tag
var hw_var_ctrl_version = (hw_var_devel == true)? "1,0,6,0":"1,0,6,0";
var hw_var_objectTagForInstall = '<span style="position:absolute;top:-10px;left:-10px;width:0px;height:0px;"><OBJECT ID="HaniWebCtrlForInstall" CLASSID="CLSID:B9DD5FFF-776D-4E53-93D3-A4463E63AD86" codebase="'
                                   +hw_var_ctrl_down_url +'#version=' + hw_var_ctrl_version + '" width=0 height=0></OBJECT></span>\n';
var hw_var_objectTag = '<span style="position:absolute;top:-10px;left:-10px;width:0px;height:0px;"><OBJECT ID="HaniWebCtrl" CLASSID="CLSID:B9DD5FFF-776D-4E53-93D3-A4463E63AD86" width=0 height=0></OBJECT></span>\n';
var hw_var_objectTagForXP = '<span style="position:absolute;top:-10px;left:-10px;width:0px;height:0px;"><OBJECT ID="HaniWebCtrl" CLASSID="CLSID:B9DD5FFF-776D-4E53-93D3-A4463E63AD86" codebase="'
                                   +hw_var_ctrl_down_url +'#version=' + hw_var_ctrl_version + '" width=0 height=0></OBJECT></span>\n';

function hw_core_insertObjectTag() { //loginµÇ¾îÀÖ´Â °æ¿ì ÀÚµ¿À¸·Î object tag»ðÀÔ
    if ( hw_util_checkWebPageLogin() == true && typeof HaniWebCtrlForInstall != 'object' && typeof HaniWebCtrl != 'object') {
       if(  hw_util_checkXPSP() == true ) { //ÀÓ½ÃÄÚµå
         document.body.insertAdjacentHTML("beforeEnd", hw_var_objectTagForXP);
       }
        else if( hw_util_getVersionCookie() != '0' ) {
            document.body.insertAdjacentHTML("beforeEnd", hw_var_objectTag);
       }
   }
}
addEventHandler("load", hw_core_insertObjectTag);
// attachEvent("onload", hw_core_insertObjectTag);

function hw_core_installObject(enable_flag) { // ¼³Ä¡°¡ ÇÊ¿äÇÑ °æ¿ì(¿¹: ·Î±×ÀÎ½Ã) ¹Ùµð ¾È¿¡¼­ È£Ãâ, enable_flag default: true
    if( hw_var_enable == false) return;
    if( typeof enable_flag != 'undefined' && enable_flag == false) {
        document.cookie = "HaniWebVersion=0; domain=hangame.com; path=/"; 
    }
    else {
        if( typeof HaniWebCtrl != 'object' && typeof HaniWebCtrlForInstall != 'object'){
            document.write(hw_var_objectTagForInstall);
        }
    }
}

function hw_core_installObjectForce() {
  if( typeof HaniWebCtrl != 'object' && typeof HaniWebCtrlForInstall != 'object'){
            document.write(hw_var_objectTagForInstall);
  }
}

function hw_core_insertObjectTagForce() { // À¥ÆäÀÌÁö ·Î±×¾Æ¿ô»óÅÂ¿¡¼­µµ tag¹ß»ý
    if( hw_var_enable == false) return;
    if ( hw_util_getVersionCookie() != '0' && typeof HaniWebCtrl != 'object' ) {
        if ( hw_util_checkWebPageLogin() == false )document.write(hw_var_eventHandlerScript);
        document.write(hw_var_objectTag);
    }
}

function hw_core_checkControl() {//Á¤´çÇÑ HaniWebCtrlÀÌ  Á¸ÀçÇÏ´ÂÁö check
    return ( typeof HaniWebCtrl == 'object' && HaniWebCtrl.object != null)
}
function hw_core_getControl() {
    if( typeof HaniWebCtrl == 'object' && HaniWebCtrl.object != null) return HaniWebCtrl;
    else if( typeof HaniWebCtrlForInstall == 'object' && HaniWebCtrlForInstall.object != null) return HaniWebCtrlForInstall;
    return null;
}
function hw_core_getLoginControl() {
    var ctrl = hw_core_getControl();
    if( ctrl != null && ctrl.IsLogin == true) return ctrl;
    return null;
}

function hw_core_checkLogin() { // HaniWebCtrlÀÌ loginµÇ¾î ÀÖ´ÂÁö check
    var ctrl = hw_core_getControl();
    if( ctrl != null ) return ctrl.IsLogin;
    return false;
}

//event handlers
function hw_event_OnError(cmd, errcode, errmsg) {
    switch(cmd) {
     case  0x10000013: if(errcode == '7') hw_func_popupMsg("", "Ä£±¸ Ãß°¡ °á°ú", "ÇÑ¹ø¿¡ ½ÅÃ»ÇÒ ¼ö ÀÖ´Â ¾çÀ» ÃÊ°úÇÏ¿´½À´Ï´Ù.<br>Àá½Ã ÈÄ ´Ù½Ã ½ÃµµÇØ ÁÖ¼¼¿ä."); 
                       else hw_func_popupMsg("", "Ä£±¸ Ãß°¡ °á°ú", errmsg); 
                       break;
     case  0x10000025: hw_func_popupMsg("", "Ä£±¸ »èÁ¦ °á°ú", errmsg); break;
     case  0x10000011: if(errcode == '2') hw_func_popupMsg("", "ºí·¢¸®½ºÆ® Ãß°¡ °á°ú", "ÀÌ¹Ì µî·ÏµÈ ¾ÆÀÌµðÀÔ´Ï´Ù."); 
                       else hw_func_popupMsg("", "ºí·¢¸®½ºÆ® Ãß°¡ °á°ú", errmsg);
                       break;
     case  0x10000023: hw_func_popupMsg("", "ºí·¢¸®½ºÆ® »èÁ¦ °á°ú", errmsg); break;
     case  0x10000031: hw_func_popupMsg("", "Ä£±¸µî·Ï°ÅºÎ", "Ä£±¸µî·Ï°ÅºÎ½Ã ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù. ¿À·ùÄÚµå=" + errcode); break;
     case  0x10000033: if( typeof hw_callback_onGetNewWatcherList == "function"){hw_callback_onGetNewWatcherList(null);}; break;
     case  0x10000051: if( typeof hw_callback_onGetPref == "function"){hw_callback_onGetPref(false, '','','','','','','','','');}; break;
     case  0x10000053: if( typeof hw_callback_onSetPref == "function"){hw_callback_onSetPref(false);}; break;
     default: hw_func_debug("¾Ë ¼ö ¾ø´Â Á¢¼ÓÇÁ·Î±×·¥ ¿À·ù", "cmd[" + cmd + "]¿À·ùÄÚµå[" + errcode + "]¸Þ½ÃÁö[" +  errmsg + "]"); break;
    }
}
function hw_event_OnDisconnect(errcode){
	hw_func_debug("Á¢¼ÓÇÁ·Î±×·¥ ¼­¹ö¿Í ¿¬°áÀÌ ²÷¾îÁü:" + errcode);
}
function hw_event_OnKickout(errcode,errmsg){
	hw_func_debug("Á¢¼ÓÇÁ·Î±×·¥´Ù¸¥°÷¿¡¼­ ·Î±×ÀÎ:" + errcode + ":" + errmsg);
}
function hw_event_OnAddBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday){
	hw_func_popupMsg("hw_popup_add_buddy_" + hw_util_HexEncode(buddy_id), "Ä£±¸ Ãß°¡ °á°ú", buddy_id + " ´Ô¿¡°Ô Ä£±¸ Ãß°¡¸¦ ½ÅÃ»ÇÏ¿´½À´Ï´Ù.<br><br>»ó´ë¹æÀÌ Ãß°¡ ¿äÃ»À» ¼ö¶ôÇßÀ» °æ¿ì¿¡¸¸ »ó´ë¹æÀÇ »óÅÂ È®ÀÎ,<br>½Ç½Ã°£ ´ëÈ­, °ÔÀÓÇÏ±â µî ´Ù¾çÇÑ ±â´ÉÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.");
}
function hw_event_OnAcceptBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday){
	hw_func_congratulateBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, (buddy_b_female=="true")? "F": "M", buddy_age, buddy_birthday);
}
function hw_event_OnDelBuddy(buddy_id){
    hw_func_popupMsg("hw_popup_delete_buddy_" + hw_util_HexEncode(buddy_id), "Ä£±¸ »èÁ¦ °á°ú", buddy_id + "´ÔÀÌ Ä£±¸¿¡¼­ »èÁ¦ µÇ¾ú½À´Ï´Ù.");
}
function hw_event_OnAddBlackList(black_id){
    hw_func_popupMsg("hw_popup_add_black_" + hw_util_HexEncode(black_id), "ºí·¢¸®½ºÆ® Ãß°¡ °á°ú", black_id + "´ÔÀÌ ºí·¢¸®½ºÆ®¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù.");
}
function hw_event_OnDeleteBlack(black_id){
    hw_func_popupMsg("hw_popup_delete_black_" + hw_util_HexEncode(black_id), "ºí·¢¸®½ºÆ® »èÁ¦ °á°ú", black_id + "´ÔÀÌ ºí·¢¸®½ºÆ®¿¡¼­ »èÁ¦µÇ¾ú½À´Ï´Ù.");
}
function hw_event_OnDelNewWatcher(watcher_id){
	hw_func_popupMsg("hw_popup_accept_buddy_" + hw_util_HexEncode(watcher_id), "Ä£±¸ µî·Ï", watcher_id + "´ÔÀÇ Ä£±¸ ½ÅÃ»À» °ÅÀýÇÏ¿´½À´Ï´Ù.");
}
function hw_event_OnGetBlackList() {
    var black_list = new Array();
    var blackObj;
    var ctrl = hw_core_getLoginControl();
    
    if( ctrl == null || typeof hw_callback_onGetBlackList != 'function') return;
    
    if(typeof ctrl.BlackList != 'object' ) {hw_callback_onGetBlackList(black_list); return;}//ºí·¢¸®½ºÆ®°¡ ¾øÀ¸¸é °´Ã¼°¡ ¾ø´Ù.
    var blackListObj = ctrl.BlackList;  
    
    var cnt = blackListObj.count;
    var i;
    for (i=1; i <= cnt; i++){
        blackObj = blackListObj.item(i);
        black_list[i-1] = new blackInfo(blackObj);
    }
    hw_callback_onGetBlackList(black_list);
}

function hw_event_OnGetPref(my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv){
  if(typeof hw_callback_onGetPref == "function"){
      hw_callback_onGetPref(true, my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv);
  }
}
function hw_event_OnSetPref(){
  if(typeof hw_callback_onSetPref == "function"){
      hw_callback_onSetPref(true);
  }
}

//MsgObj write event handler code. do not use MsgObj.AttachEvent!! ÇØ´ç ¹®Á¦ MS¿¡ ¹®ÀÇÁß...
var hw_var_eventHandlerScript = '\n' 
+'<script language="javascript" for="HaniWebCtrl" event="OnError(cmd, errcode, errmsg)">\n'
+'   hw_event_OnError(cmd, errcode, errmsg);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnDisconnect(errcode)">\n'
+'   hw_event_OnDisconnect(errcode);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnKickout(errcode,errmsg)">\n'
+'   hw_event_OnKickout(errcode,errmsg);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnAddBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday)">\n'
+'	 hw_event_OnAddBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnAcceptBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday)">\n'
+'	 hw_event_OnAcceptBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_b_female, buddy_age, buddy_birthday);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnDelBuddy(buddy_id)">\n'
+'   hw_event_OnDelBuddy(buddy_id);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnAddBlackList(black_id)">\n'
+'   hw_event_OnAddBlackList(black_id);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnDeleteBlack(black_id)">\n'
+'   hw_event_OnDeleteBlack(black_id);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnDelNewWatcher(watcher_id)">\n'
+'	 hw_event_OnDelNewWatcher(watcher_id);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnGetBlackList()">\n'
+'   hw_event_OnGetBlackList();\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnGetPref(my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv)">\n'
+'   hw_event_OnGetPref(my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv);\n'
+'</script>\n'
+'<script language="javascript" for="HaniWebCtrl" event="OnSetPref()">\n'
+'   hw_event_OnSetPref();\n'
+'</script>\n';

if ( hw_var_enable == true && hw_util_checkWebPageLogin() == true && hw_util_getVersionCookie() != '0' ) { //event handler ÄÚµå¸¦ body.insertAdjacentHTML..·Î Ãß°¡ÇÏ¸é ½ÇÇà¾ÈµÊ
    document.write(hw_var_eventHandlerScript);
}
// core functions
function hw_core_login(){
    if( hw_var_enable == false) return true;
    if( hw_util_checkWebPageLogin() == false) return false;
    if(typeof HaniWebCtrlForInstall != 'object' || HaniWebCtrlForInstall.object == null) {
        //document.cookie = "HaniWebVersion=0; domain=hangame.com; path=/"; 
        return false;
    }
    if( !HaniWebCtrlForInstall.IsLogin ) HaniWebCtrlForInstall.Login("", 0);
    document.cookie = "HaniWebVersion="+ hw_var_ctrl_version.split(",").join(".") + "; domain=hangame.com; path=/";     
    
    return true;
}

function hw_core_logout(){
    if( hw_var_enable == false) return true;    
    var ctrl = hw_core_getControl();
    if( ctrl == null ) return false;

    var today = new Date();
    today.setFullYear(today.getFullYear() -10);
    document.cookie = 'HaniWebVersion=0; domain=hangame.com; expires=' + today.toGMTString() + '; path=/';     
    ctrl.Logout();
    return true;
}

function hw_core_runHani(params) {
    var ctrl = hw_core_getControl();
    if( ctrl == null ) {
        if( hw_var_enable == true) {
            if(!hw_util_checkWebPageLogin()) {
                alert("ÇÏ´Ï ½ÇÇàÀº ·Î±×ÀÎÇÏ¼Å¾ß¸¸ °¡´ÉÇÕ´Ï´Ù.");
            }
            else  {
                alert("ÇÏ´Ï ½ÇÇàÀº Á¢¼ÓÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇ¾î¾ß¸¸ °¡´ÉÇÕ´Ï´Ù.");
            }
        }
        else {
            alert("ÇÏ´Ï ½ÇÇàÀº ÁØºñÁßÀÔ´Ï´Ù.");
        }
        return false;
    }
    if(typeof params == 'undefined' || params == '')  {
        if(!hw_util_checkWebPageLogin()) {
            alert("ÇÏ´Ï ½ÇÇàÀº ·Î±×ÀÎÇÏ¼Å¾ß¸¸ °¡´ÉÇÕ´Ï´Ù.");
            return false;
        }
        ctrl.Runhani('');
    }
    else {
        if(!hw_util_checkWebPageLogin()) {
            alert("À½¾ÇÀ» µéÀ¸½Ã·Á¸é ·Î±×ÀÎÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
            return false;
        }
        ctrl.Runhani(params);
    }
    
    return true;
}

function hw_core_downloadHani() {
    document.location.href = hw_var_hani_down_url;
}
function hw_core_installHani() {
    var ctrl = hw_core_getControl();
    if( ctrl == null ) {
        if( confirm("ÇÏ´Ï ¼³Ä¡ ÇÁ·Î±×·¥À» ´Ù¿î·ÎµåÇÏ½Ã°Ú½À´Ï±î?") ) {
            hw_core_downloadHani();
        }
    }
    else  {
        ctrl.Runhani('');
    }
}


function hw_core_runHaniAmp(param){
   var ctrl = hw_core_getControl();
   if( ctrl == null ) {
        if( hw_var_enable == true) {
            if(!hw_util_checkWebPageLogin()) {
                alert("À½¾ÇÀ» µéÀ¸½Ã·Á¸é ·Î±×ÀÎÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
            }
            else  {
                alert("ÇÏ´Ï¾ÚÇÁ ½ÇÇàÀº Á¢¼ÓÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇ¾î¾ß¸¸ °¡´ÉÇÕ´Ï´Ù.");
            }
        }
        else {
            alert("ÇÏ´Ï¾ÚÇÁ ½ÇÇàÀº ÁØºñÁßÀÔ´Ï´Ù.");
        }
        return;
   }
   try {
    ctrl.SetHaniAmpURL(hw_var_hani_amp_down_url);
    ctrl.SendMsgToAOD('HaniAmp v1.0', ( typeof param == 'undefined' )? '': param);
   }
   catch(e) { alert("ÇÏ´Ï¾ÚÇÁ ½ÇÇà½Ã ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.\n" + e.description); } //tmp
}

//buddylist
function buddyInfo(buddyObj){
	this.buddy_id =  buddyObj.buddyID;
	this.buddy_nick_name = buddyObj.buddyNick;
	this.buddy_avatar_id = buddyObj.AvatarID;
	this.buddy_watcher_mode ='?';
	this.buddy_birthday = buddyObj.BirthDay;
	this.buddy_age = buddyObj.Age;
	this.buddy_sex = buddyObj.Female? 'F':'M';
	this.buddy_status = buddyObj.Online? '1': '0';
    this.game_activity = buddyObj.GameActivity;
	if( buddyObj.GameActivity) {
        this.game_id = buddyObj.GameID; 
        this.game_name = buddyObj.GameName;
        this.game_channel_name =  buddyObj.GameChannel;
      	this.game_channel_id = '';
      	this.game_group_id = '';
    }
    else {
        this.game_id = '';
        this.game_name = '';
        this.game_channel_name ='';
      	this.game_channel_id = '';
      	this.game_group_id = '';
    }
    
    this.chat_activity =  buddyObj.ChatActivity;
    if( buddyObj.ChatActivity) {
        this.chat_room_id = buddyObj.ChatRoomID;
        this.chat_category =  buddyObj.ChatCategory;
        this.chat_subcode =  buddyObj.ChatSubCode; 
    }
    else {
        this.chat_room_id = '';
        this.chat_category = '';
        this.chat_subcode = '';
    }
    this.bs_activity = buddyObj.BSActivity;
    if( buddyObj.BSActivitiy) {
	    this.bs_room_id = buddyObj.BSRoomID;
	    this.bs_category =  buddyObj.BSCategory;
    	this.bs_subcode = buddyObj.BSSubCode;
    }
    else {
	    this.bs_room_id = '';
	    this.bs_category = '';
    	this.bs_subcode = '';
   }
}

function hw_core_getAllBuddyList() {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return null;

    var all_buddy_list = new Array();
    var buddyObj;
    var cnt;

    if( typeof ctrl.BuddyList != 'object' ) return all_buddy_list; //¹öµð°¡ ¾øÀ¸¸é °´Ã¼°¡ ¾ø´Ù.

    var buddyListObj = ctrl.BuddyList;  
    cnt = buddyListObj.count;
    for (i=1; i <= cnt; i++) {
        buddyObj = buddyListObj.item(i);
        all_buddy_list[i-1] = new buddyInfo(buddyObj);
    }
    return all_buddy_list;
}

function hw_core_isBuddy(buddy_id) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    if( typeof ctrl.BuddyList != 'object' ) return false;

    try {
        var buddyListObj = ctrl.BuddyList;  
        var cnt = buddyListObj.count;
        for (i=1; i <= cnt; i++) {
            buddyObj = buddyListObj.item(i);
            if(buddyObj.buddyID.toLowerCase() == buddy_id.toLowerCase())  return true;
        }
    }
    catch(e) { return false;}
    return false;
}

//blacklist
function blackInfo(blackObj){
    this.black_id = blackObj.BlackID;
    this.black_memo = blackObj.BlackMemo;
    this.black_time = blackObj.BlackTime.substring(0,10);
}

var hw_callback_onGetBlackList = null;
function hw_core_getBlackList(callback_func) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    hw_callback_onGetBlackList =  callback_func;

	ctrl.GetBlackList();
	return true;
}

var hw_callback_onGetPref = null;
function hw_core_getPref(callback_func ) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    hw_callback_onGetPref =  callback_func;

	ctrl.GetPref();
	return true;
}
var hw_callback_onSetPref = null;
function hw_core_setPref(callback_func, my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    hw_callback_onSetPref =  callback_func;
	ctrl.SetRecvPref(my_hompy_noti, buddy_login_noti, buddy_hompy_noti, hompy_news_noti, memo_save, memo_recv, im_request_recv, game_request_recv, chat_invite_recv);
	return true;
}

function hw_core_acceptBuddy(buddy_id) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

	ctrl.AcceptBuddy(buddy_id, 0, '');
	return true;
}
function hw_core_addBuddy(buddy_id, add_buddy_message) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;


	ctrl.AddBuddy(buddy_id, 0, add_buddy_message);
	return true;
}
function hw_core_acceptBuddy(buddy_id, add_buddy_message) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    ctrl.AcceptBuddy(buddy_id, 0, add_buddy_message);
    return true;
}

function hw_core_deleteBuddy(buddy_id) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

    ctrl.DeleteBuddy(buddy_id);
    return true;
}

function hw_core_addBlack(black_id, memo) {
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

   ctrl.AddBlackList(black_id, memo);
   return true;
}

function hw_core_deleteBlack(black_id){
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;

   ctrl.DeleteBlack(black_id);
   return true;
}

function hw_core_deleteNewWatcher(watcher_id){
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) return false;
    ctrl.DeleteNewWatcher(watcher_id);
    return true;
}
function hw_core_showAlarm(title, message, click_url, open_feature, avatar_id, display_second ){
    var ctrl = hw_core_getControl();
    if( ctrl == null ) return false;

    ctrl.showAlarmWnd(title, message, click_url, open_feature, avatar_id, display_second);
    return true;
}
function hw_core_showAlarm_more(title, message, click_url, open_feature, img_url, display_second, 
	img_use,wnd_width,wnd_height,img_left,img_top,img_width,img_height,icon_img){
    var ctrl1 = hw_core_getControl();
    if( ctrl1 == null ) return false;
    var ctrl = ctrl1.AlarmWndInfo;

	ctrl.bsTitle = title;
	ctrl.bsMsg = message;
	ctrl.bsUrl = click_url;
	ctrl.bsFeatures = open_feature;
	//ÀÌ¹ÌÁö »ç¿ë ¿©ºÎ. bUseImg°¡ 1ÀÏ¶§´Â bsImgSource¿¡ ÀÌ¹ÌÁöurl ¶Ç´Â ·ÎÄÃÆÄÀÏ °æ·Î°¡ ÁÖ¾îÁ®¾ß µÊ
	//bUseImg°¡ 0ÀÌ¸é bsImgSource¿¡ ¾Æ¹ÙÅ¸ ÄÚµå¸¦ ºÎ¿©ÇÔ. bsImgSource°¡ 0ÀÏ °æ¿ì¿¡´Â cxImg,cyImg,ImgWidth,ImgHeight´Â ¹«½ÃµÊ 
	ctrl.bUseImg = img_use;	 
	ctrl.bsImgSource = img_url;
	ctrl.lwndWidth = (wnd_width!="" && wnd_width!=null) ?wnd_width:200;
	ctrl.lwndHeight = (wnd_height!=""&& wnd_height!=null) ?wnd_height:130;
	ctrl.lifeTime = display_second; 
	//¾Ë¸²Ã¢ ³»¿¡¼­ ÀÌ¹ÌÁö À§Ä¡ left, top
	ctrl.cxImg = (img_left!=""&& img_left!=null) ?img_left:10;
	ctrl.cyImg = (img_top!=""&& img_top!=null) ?img_top:40;
	//¾Ë¸²Ã¢¿¡ Ç¥½ÃµÇ´Â ÀÌ¹ÌÁö °¡·Î¿Í ¼¼·Î Å©±â
	ctrl.ImgWidth = (img_width!=""&& img_width!=null) ?img_width:50;
	ctrl.ImgHeight =(img_height!=""&& img_height!=null) ?img_height:60;
	//¾Ë¸²Ã¢ ÁÂÃø »ó´ÜÀÇ ¾ÆÀÌÄÜ Ç¥½Ã, url ¶Ç´Â ·ÎÄÃ ÆÄÀÏ size°íÁ¤, 16*16
	ctrl.bsIconSrc = (icon_img!=""&& icon_img!=null) ?icon_img:"http://sstatic.naver.com/search/mypocket/v2/btn_slct_dn.gif"; 
		
	ctrl.ShowAlarmWnd();
    return true;
}
function hw_core_inviteUser(target_id){	// ±âÁ¸´ëÈ­Ã¢ÀÌ ÀÖÀ¸¸é È°¼ºÈ­ ½ÃÄÑÁÖ°í ¾øÀ¸¸é IMSÁ¤º¸¸¦ °¡Á®¿È.
                                        // ±âÁ¸´ëÈ­Ã¢ ¾øÀ» °æ¿ì OnGetImsInfoÀÌº¥Æ®°¡ ¹ß»ýÇÔ.
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) {
        if( hw_core_getControl() != null ) {
            alert("Á¢¼ÓÇÁ·Î±×·¥ÀÌ ·Î±×¾Æ¿ô »óÅÂ¿©¼­ ´ëÈ­¸¦ ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
        }
        else {
            alert("Á¢¼ÓÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Æ ´ëÈ­¸¦ ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
        }
        return false;
    }
    ctrl.InviteUser(target_id);
    return true;
}
function hw_core_inviteGame(target_id, game_id){	
    var ctrl = hw_core_getLoginControl();
    if( ctrl == null ) {
        if( hw_core_getControl() != null ) {
            alert("Á¢¼ÓÇÁ·Î±×·¥ÀÌ ·Î±×¾Æ¿ô »óÅÂ¿©¼­ °ÔÀÓ½ÅÃ»À» ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
        }
        else {
            alert("Á¢¼ÓÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Æ °ÔÀÓ½ÅÃ»À» ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
        }
        return false;
    }
    if( typeof game_id == 'undefined' ) game_id = '';
    try {
        ctrl.InviteGame(target_id, game_id);
    }
    catch(e) { alert("°ÔÀÓ½ÅÃ»½Ã ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.\n" + e.description); };
    return true;
}
// hw_func prefix: common functions. these are public functions and can be used freely
function hw_func_addBuddy(buddy_id){
    if( hw_core_isBuddy(buddy_id) == true) {
        alert("ÀÌ¹Ì Ä£±¸·Î µî·ÏµÇ¾îÀÖ½À´Ï´Ù.");
        return;
    }
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=addBuddyForm&buddy_id=' + buddy_id;
    window.open( open_url,'hw_popup_add_buddy_'+ hw_util_HexEncode(buddy_id),'width=388, height=340');
}
function hw_func_deleteBuddy(buddy_id){
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=deleteBuddyConfirm&buddy_id=' + buddy_id
    window.open(open_url,'hw_popup_delete_buddy_' + hw_util_HexEncode(buddy_id),'width=388, height=170');
}
function hw_func_acceptBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_sex, buddy_age, add_buddy_message){
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=acceptBuddyConfirm'
                  + '&buddy_id=' + hw_util_URLEncode(buddy_id) + '&buddy_nick_name=' + hw_util_URLEncode(buddy_nick_name) 
                  +'&buddy_avatar_id=' + buddy_avatar_id + '&buddy_sex=' + buddy_sex + '&buddy_age=' + buddy_age 
                  + '&add_buddy_message=' + hw_util_URLEncode(add_buddy_message);
    window.open( open_url, 'hw_popup_accept_buddy_'+ hw_util_HexEncode(buddy_id),'width=388, height=274');
    //window.open( open_url, 'hw_popup_accept_buddy_' ,'width=388, height=274');
}
function hw_func_congratulateBuddy(buddy_id, buddy_nick_name, buddy_avatar_id, buddy_sex, buddy_age, buddy_birthday){
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=congratulateBuddy&buddy_id=' 
                  + buddy_id + '&buddy_nick_name=' + hw_util_URLEncode(buddy_nick_name) 
                  + '&buddy_avatar_id=' + buddy_avatar_id + '&buddy_sex=' + buddy_sex 
                  + '&buddy_age=' + buddy_age + '&buddy_birthday=' + buddy_birthday
    window.open( open_url,'hw_popup_accept_buddy_'+ hw_util_HexEncode(buddy_id),'width=388, height=364');
}
function hw_func_addBlack(black_id){
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=addBlackForm&black_id=' + black_id;
    window.open(open_url, 'hw_popup_add_black_' + hw_util_HexEncode(black_id), 'width=388, height=170');
}
function hw_func_deleteBlack(black_id){
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=deleteBlackConfirm&black_id=' + black_id;
    window.open( open_url, 'hw_popup_delete_black_'+ hw_util_HexEncode(black_id),'width=388, height=170');
}
function hw_func_showAlarm(title, message, click_url, open_feature, avatar_id, display_second){
    hw_core_showAlarm(title, message, click_url, open_feature, avatar_id, display_second);
}
function hw_func_complain(target_id, pos){
    var open_url = hw_var_hani_url + '/hani/haniComplain.nhn?m=input&taget_id=' + target_id + '&pos=' + hw_util_URLEncode(pos);
    window.open( open_url, '','width=388, height=270');
}

function hw_func_sendMemo(target_id){
    openWriteMemoWin(target_id);
}
function hw_func_inviteUser(target_id) {
    return hw_core_inviteUser(target_id);
}
function hw_func_inviteGame(target_id, game_id) {
    return hw_core_inviteGame(target_id, game_id);
}
function hw_func_popupMsg(window_name, title, msg) {
    var open_url = hw_var_hani_url + '/hani/haniMain.nhn?m=msgPopup&msg=' + hw_util_URLEncode(msg) + '&title=' + hw_util_URLEncode(title);
    window.open( open_url, window_name, 'width=388, height=170');
}

function hw_func_debug(msg) {
    return;
    if( hw_var_devel ) hw_func_popupMsg("","°³¹ßÈ¯°æ-Á¢¼ÓÇÁ·Î±×·¥µð¹ö±×Á¤º¸", msg);
}

function hw_func_goHompy(userid){
	window.open(hw_var_hompy_url + '/index.nhn?userid='+userid, '_blank','resizable=yes,width=920,height=620, status=yes');
}

// hw_util prefix : util functions
function hw_util_HTMLEncode(t) {
  var t = t.toString();
  var h = new Array("&","\"","<",">");
  var d = ""; var hl = h.length;
  var e = new Array("&amp;","&quot;","&lt;","&gt;")
  if (t) {
    for (var i=0; i<t.length; ++i) {
      var c = t.charAt(i);
      var r = 0;
      for (j=0; j<hl; ++j) {
        if (c == h[j]) {
          d += e[j]; r = 1; break;
        }
      }
      if (!r) d += c;
    };
  };
  return d;
}
function hw_util_URLEncode(str) {
	if( str == null || str.length == 0 ) return "";
	var result = "";
	var reserved = ";/?:@&=+$,";
	var ch = "";
	for(i = 0; i < str.length; i++)
	{
		ch = str.charAt(i);
		if( reserved.indexOf(ch) != -1 )
			result += "%"+ ch.charCodeAt(0).toString(16);
		else if( ch == " " )
			result += "+";
		else
			result += ch;
	}
	return result;
}

function hw_util_HexEncode(str) {
	if( str == null || str.length == 0 ) return "";
	var result = "";
	for(i = 0; i < str.length; i++) result += str.charCodeAt(i).toString(16);
	return result;
}

function hw_util_getOptionValue(element) {
  var i;
  for(i=0; i < element.length; i++) if( element[i].selected) return element[i].value;
  return '';
}
function hw_util_setOptionValue(element, value){
  var i;
  for(i=0; i < element.length; i++) if( element[i].value == value) element[i].selected = true;
}

function hw_util_checkWebPageLogin()
{
    return (document.cookie.indexOf("hangame")>= 0 &&  document.cookie.indexOf("login=")>=0);
}

function hw_util_getVersionCookie()
{
	arrCookies = document.cookie.split("; ");
  	for (i=0; i<arrCookies.length; ++i) {
		arrCookie=arrCookies[i].split("=");
		if (arrCookie[0]=="HaniWebVersion") {
			return arrCookie[1].split(".").join(",");
		}
	}
	return '0';
}

function hw_util_checkXPSP() { 
  var tmp_MSIE = window.navigator.userAgent.indexOf("MSIE");
  if(tmp_MSIE && (window.navigator.userAgent.indexOf("SV") > tmp_MSIE || window.navigator.userAgent.indexOf("MSIE 7.0"))) return true;
    return false;
}

/* ÂÊÁö °ü·Ã...Ã¢... */

function openMemoWin(strURL, winname, width, height)
{
	window.open(strURL, winname, "all=no, top=" + (window.screen.availHeight - height)/2 + ", left=" + (window.screen.availWidth - width)/2 + ", width=" + width + ", height=" + height);
}

function openWriteMemoWin(sendid)
{
	openMemoWin(hw_var_hani_url + "/hani/memopopup.nhn?m=writeMemoForm&sendid=" + sendid, "writememo", 388, 290);
}

function openViewMemoMessengerWin(strURL)
{
	openMemoWin(strURL, "", 388, 290);
}
