function svc_login(fo_obj) {
    if(typeof(fo_obj)=='undefined') fo_obj = xGetElementById('fo_login');
    var response_tags = new Array('error','message','member_srl','auth_type','logged','as_key','as_expired');
    var check_list = new Array('user_id','passwd');
    var params = get_form_elements(fo_obj);
    var args = new Array();
    args['fo_obj_id'] = fo_obj.id;

    if(!check_empty(params,fo_obj,check_list)) return false;

    request_xml('member','do_login',params,svc_login_proc,response_tags,args);

    return false;
}

function svc_login_proc(ret_obj,response_tags,args) {

    if(ret_obj.logged=='false') {
        if(ret_obj.auth_type == 1) {
            if(confirm(ret_obj.message)) {
                svc_request_auth_mail(ret_obj.member_srl); 
            }
            return;
        } 
        alert(alert_msg['login_fail']);
        var fo_obj = xGetElementById(args['fo_obj_id']);
        fo_obj.user_id.value = '';
        fo_obj.passwd.value = '';
        fo_obj.user_id.focus();
        return;
    } else {
        var as_key = ret_obj.as_key;
        var as_expired = ret_obj.as_expired;
        if(as_key&&as_expired) {
            var d = new Date();
            d.setTime(d.getTime()+as_expired*1000);
            xSetCookie('ZBSESSID',as_key,d);
        }
        location.reload();
    }
}

function svc_logout() {
    var response_tags = new Array('error','message');
    var params = new Array();
    request_xml('member','do_logout',params,svc_logout_proc);
}

function svc_logout_proc(ret_obj,response_tags) {
    xDeleteCookie('ZBSESSID');
    xDeleteCookie('PHPSESSID');
    location.reload();
}

function svc_request_auth_mail(member_srl) {
    var response_tags = new Array('error','message');
    var params = new Array();
    params['member_srl'] = member_srl;
    request_xml('member','request_auth_mail',params,svc_request_auth_mail_proc, response_tags);
}

function svc_request_auth_mail_proc(ret_obj, response_tags) {
    alert(ret_obj.message);
}

function svc_find_password(fo_obj) {
    var response_tags = new Array('error','message');
    var params = new Array();
    params['user_id'] = fo_obj.user_id.value;
    params['email'] = fo_obj.email.value;
    request_xml('member','find_password',params,svc_find_password_proc, response_tags);
    return false;
}

function svc_find_password_proc(ret_obj, response_tags) {
    alert(ret_obj.message);
}

var check_svc_write = false;
function svc_write(fo_obj, check_list) {
    var regx_strip_tags = /<(.[^>]+)>/g;

    if(uploading_binary_file) {
        alert(alert_msg['file_uploading']);
        return;
    }

    var response_tags = new Array('error','message','sid','article_srl');
    if(check_svc_write) return false;
    check_svc_write = true;

    fo_obj.article.value = zEditGetHTML();

    if(typeof(check_list)=='undefined') check_list = new Array('writer','passwd','title','article');

    var params = get_form_elements(fo_obj);
    if(!check_empty(params,fo_obj,check_list)) {
        check_svc_write = false;
        return false;
    }

    var upload_obj = fo_obj.upload_file;
    if(typeof(upload_obj)!='undefined' && upload_obj.options.length>0) {
        var file_list = new Array();
        for(var i=0;i<upload_obj.options.length;i++) {
            file_list[file_list.length] = upload_obj.options[i].value;
        }
        params['file_list'] = file_list.join(',');
    }

    if(params['send_to_center']=='Y' && !params['tag']) {
        check_svc_write = false;
        alert(alert_msg['tag']);
        return false;
    }

    if(typeof(fo_obj.image_number)!='undefined'&&!params['image_number']) {
        fo_obj.image_number.focus();
        alert(alert_msg['image_number']);
        return false;
    }

    if(!request_confirm('msg_confirm')) {
        check_svc_write = false;
        return false;
    }

    if(params['use_trackback']=='Y' && params['trackback_address']) {
        var html = fo_obj.article.value;
        var text = html.replace(regx_strip_tags,'').substr(0,255);
        params['short_text'] = text.substr(0,255);
    }

    request_xml('module_manager','do_insert_article',params,svc_write_proc,response_tags);
    check_svc_write = false;

    return false;
}

function svc_write_proc(ret_obj, response_tags) {
    var sid = ret_obj['sid'];
    var article_srl = ret_obj['article_srl'];
    check_svc_write = false;
    var href = "./?sid="+sid+"&article_srl="+article_srl;
    location.href = href;
}

function svc_comment_write(fo_obj) {
    var response_tags = new Array('error','message','module_srl','article_srl');

    if(check_svc_write) return false;
    check_svc_write = true;

    var richtext_content = zEditGetHTML(fo_obj.article_srl.value);

    fo_obj.article.value = richtext_content;

    if(typeof(check_list)=='undefined') check_list = new Array('writer','passwd','article');

    var params = get_form_elements(fo_obj);
    if(!check_empty(params,fo_obj,check_list)) {
        check_svc_write = false;
        return false;
    }

    if(typeof(fo_obj.image_number)!='undefined'&&!params['image_number']) {
        fo_obj.image_number.focus();
        alert(alert_msg['image_number']);
        return false;
    }

    if(!request_confirm('msg_confirm')) {
        check_svc_write = false;
        return false;
    }

    request_xml('module_manager','do_insert_comment',params,svc_write_comment_proc,response_tags);
    check_svc_write = false;

    return false;
}

function svc_write_comment_proc(ret_obj, response_tags) {
    var module_srl = ret_obj['module_srl'];
    var article_srl = ret_obj['article_srl'];
    svc_show_comment(module_srl, article_srl, true);
    check_svc_write = false;
}

function svc_show_comment(module_srl, article_srl, reload) {
    var zone = xGetElementById('zone_comment_'+article_srl);
    if(!zone) return;

    if(typeof(reload)=='undefined' || reload == false) {
        if(zone.style.display != 'none') {
            zone.style.display = 'none';
            return;
        }

        if(zone.style.display == 'none' && xInnerHtml(zone)) {
            zone.style.display = 'block';
            setTimeout(function() { zEditInit('', article_srl); return; } , 50)
            return;
        }
    }

    var response_tags = new Array('error','message','tpl','article_srl');
    var params = new Array();
    params['module_srl'] = module_srl;
    params['article_srl'] = article_srl;
    request_xml('module_manager','get_comment_list',params,svc_show_comment_proc,response_tags);
}

function svc_show_comment_proc(ret_obj, response_tags) {
    var tpl = ret_obj['tpl'];
    var article_srl = ret_obj['article_srl'];

    var zone = xGetElementById('zone_comment_'+article_srl);
    xInnerHtml(zone, tpl); 
    zone.style.display = 'block';
    setTimeout(function() { zEditInit('', article_srl); return; } , 50)
}

function svc_show_trackback(module_srl, article_srl, reload) {
    var zone = xGetElementById('zone_trackback_'+article_srl);
    if(!zone) return;

    if(typeof(reload)=='undefined' || reload == false) {
        if(zone.style.display != 'none') {
            zone.style.display = 'none';
            return;
        }

        if(zone.style.display == 'none' && xInnerHtml(zone)) {
            zone.style.display = 'block';
            return;
        }
    }

    var response_tags = new Array('error','message','tpl','article_srl');
    var params = new Array();
    params['module_srl'] = module_srl;
    params['article_srl'] = article_srl;
    request_xml('module_manager','get_trackback_list',params,svc_show_trackback_proc,response_tags);
}

function svc_show_trackback_proc(ret_obj, response_tags) {
    var tpl = ret_obj['tpl'];
    var article_srl = ret_obj['article_srl'];
    var zone = xGetElementById('zone_trackback_'+article_srl);
    xInnerHtml(zone, tpl); 
    zone.style.display = 'block';
}

function svc_vote(module_srl,article_srl) {
    var response_tags = new Array('error','message','msg');
    var params = new Array();
    params['module_srl'] = module_srl;
    params['article_srl'] = article_srl;
    request_xml('module_manager','do_vote',params,svc_vote_proc,response_tags);
}

function svc_vote_proc(ret_obj, response_tags) {
    alert(ret_obj.msg);
}

function svc_check_password(fo_obj) {
    var params = new Array();
    params['article_srl'] = fo_obj.article_srl.value;
    params['comment_srl'] = fo_obj.comment_srl.value;
    params['mode'] = fo_obj.mode.value;
    params['passwd'] = fo_obj.passwd.value;

    if(!params['article_srl'] || !params['mode']) return false;

    if(!params['passwd']) {
        alert(alert_msg['passwd']);
        fo_obj.passwd.focus();
        return false;
    }

    request_xml('module_manager','do_check_password',params,svc_check_password_proc);

    return false;
}

function svc_check_password_proc(ret_obj, response_tags) {
    location.replace(location.href);
}

function svc_delete(fo_obj) {
    var respose_tags = new Array('error','message');
    var args = new Array();
    args['list_url'] = fo_obj.list_url.value;
    var params = new Array();
    params['article_srl'] = fo_obj.article_srl.value;
    params['comment_srl'] = fo_obj.comment_srl.value;
    params['mode'] = fo_obj.mode.value;
    if(params['mode']=='delete'&&!params['article_srl']) return false;
    if(params['mode']=='delete_comment'&&!params['comment_srl']) return false;
    
    var action = 'do_delete_article';
    if(params['mode'] == 'delete_comment') action = 'do_delete_comment';
    request_xml('module_manager',action,params,svc_delete_proc,respose_tags,args);
    return false;
}

function svc_delete_proc(ret_obj, response_tags,args) {
    var list_url = args['list_url'];
    location.replace(list_url);
}

function svc_check_exists_user_id() {
    var response_tags = new Array('error','messgae','result','msg');
    var params = new Array();
    var fo_obj = xGetElementById('fo_insert_member');
    params['user_id'] = fo_obj.user_id.value;
    if(!params['user_id']) {
        alert(alert_msg['user_id']);
        fo_obj.user_id.focus();
        return;
    }
    if(!is_valid_user_id(params['user_id'])) {
        alert(alert_msg['invalid_user_id']);
        fo_obj.user_id.focus();
        return;
    }
    request_xml('member','check_exists_user_id',params,svc_check_exists_user_id_proc,response_tags);
}

function svc_check_exists_user_id_proc(ret_obj, response_tags) {
    var result = ret_obj['result'];
    var msg = ret_obj['msg'];
    alert(msg);
    if(result == '1') xGetElementById('fo_insert_member').user_id.focus();
}

function svc_check_exists_nick_name() {
    var response_tags = new Array('error','messgae','result','msg');
    var params = new Array();
    var fo_obj = xGetElementById('fo_insert_member');
    params['member_srl'] = fo_obj.member_srl.value;
    params['nick_name'] = fo_obj.nick_name.value;
    if(!params['nick_name']) {
        alert(alert_msg['nick_name']);
        return;
    }
    request_xml('member','check_exists_nick_name',params,svc_check_exists_nick_name_proc,response_tags);
}

function svc_check_exists_nick_name_proc(ret_obj, response_tags) {
    var result = ret_obj['result'];
    var msg = ret_obj['msg'];
    alert(msg);
    if(result == '1') xGetElementById('fo_insert_member').nick_name.focus();
}

function svc_check_exists_email_address() {
    var response_tags = new Array('error','messgae','result','msg');
    var params = new Array();
    var fo_obj = xGetElementById('fo_insert_member');
    params['member_srl'] = fo_obj.member_srl.value;
    params['email_address'] = fo_obj.email.value+'@'+fo_obj.email_host.value;
    if(!fo_obj.email.value||!fo_obj.email_host.value) {
        fo_obj.email.focus();
        alert(alert_msg['email']);
        return;
    }
    if(!is_valid_email(params['email_address'])) {
        fo_obj.email.focus();
        alert(alert_msg['invalid_email']);
        return;
    }
    request_xml('member','check_exists_email_address',params,svc_check_exists_email_address_proc,response_tags);
}

function svc_check_exists_email_address_proc(ret_obj, response_tags) {
    var result = ret_obj['result'];
    var msg = ret_obj['msg'];
    alert(msg);
    if(result == '1') xGetElementById('fo_insert_member').email_address.focus();
}

function svc_member_form_init() {
  svc_upload_print_btn('image_mark','zone_image_mark','zone_image_mark_btn',member_info['image_mark']);
  svc_upload_print_btn('image_nick','zone_image_nick','zone_image_nick_btn',member_info['image_nick']);
  svc_upload_print_btn('profile_image','zone_profile_image','zone_profile_image_btn',member_info['profile_image']);
  var sign = xGetElementById('fo_insert_member').sign.value;
  zEditInit(sign,'','100px');
}

function svc_member_insert(fo_obj) {
    var response_tags = new Array('error','message','msg','member_srl');
    var check_list = null;
    var args = new Array();
    args['back_url'] = fo_obj.back_url.value;

    var richtext_content = zEditGetHTML();
    if(typeof(richtext_content)!='undefined'&&richtext_content) fo_obj.sign.value = richtext_content;

    var params = get_form_elements(fo_obj);

    if(typeof(fo_obj.check_agreement)!='undefined' && !fo_obj.check_agreement.checked) {
        alert(alert_msg['check_agreement']);
        fo_obj.check_agreement.focus();
        return false;
    }

    if(params['member_srl']>0) check_list = new Array('nick_name','email','email_host');
    else check_list = new Array('user_id','passwd_1','passwd_2','user_name','nick_name','email','email_host');

    if(!params['member_srl'] && !is_valid_user_id(params['user_id'])) {
        alert(alert_msg['invalid_user_id']);
        fo_obj.user_id.focus();
        return false;
    }

    if(!check_empty(params, fo_obj, check_list)) return false;
	
    if(params['passwd_1'] && params['passwd_2']) {
        if(!is_valid_password(params['passwd_1'])) {
            alert(alert_msg['invalid_passwd']);
            fo_obj.passwd_1.value = fo_obj.passwd_2.value = '';
            fo_obj.passwd_1.focus();
            return false;
        }
    }
    
    if( !params['passwd_1']||params['passwd_1']!=params['passwd_2'] ) {
        var msg = alert_msg['diff_passwd'];
        alert(msg);
        fo_obj.passwd_1.value = fo_obj.passwd_2.value = '';
        fo_obj.passwd_1.focus();
        return false;
    }

    if(!is_valid_email(params['email']+'@'+params['email_host'])) {
        fo_obj.email.focus();
        alert(alert_msg['invalid_email']);
        return false;
    }

    params['passwd'] = params['passwd_1'];
    if(params['mailing']!='Y') params['mailing']='N';

    if(typeof(fo_obj.image_number)!='undefined'&&!params['image_number']) {
        fo_obj.image_number.focus();
        alert(alert_msg['image_number']);
        return false;
    }

    if(!request_confirm('msg_register')) return false;

    var action = 'insert_member';
    if(params['member_srl']>0) action = 'update_member';

    request_xml('member',action,params,svc_member_insert_proc,response_tags,args);
    return false;
}

function svc_member_insert_proc(ret_obj, response_tags, args) {
    if(svc_upload_file_selected()) {
        var fo_obj = xGetElementById('fo_insert_member');
        var obj_method = fo_obj._methodname;
        var obj_msg = fo_obj._msg;

        obj_method.value = 'member';
        obj_msg.value = ret_obj['msg'];
        fo_obj.member_srl.value = ret_obj['member_srl'];
        fo_obj.submit();
    } else {
        var msg = ret_obj['msg'];
        var url = args['back_url'];
        alert(msg);
        location.replace(url);
    }
}

function svc_leave_out(fo_obj) {
    var response_tags = new Array('error','message');
    var check_list = new Array('user_id','passwd','email','email_host');
    var params = get_form_elements(fo_obj);

    if(!check_empty(params, fo_obj, check_list)) return false;

    if(!is_valid_email(params['email']+'@'+params['email_host'])) {
        fo_obj.email.focus();
        alert(alert_msg['invalid_email']);
        return false;
    }

    if(!confirm(alert_msg['msg_leave_out'])) return false;

    request_xml('member','leave_out',params,svc_leave_out_proc,response_tags);
    return false;
}

function svc_leave_out_proc(ret_obj,response_tags) {
    alert(ret_obj['message']);
    location.replace("./");
}

var z_upload_file_selected = false;
var z_upload_btn_html = new Array();
var z_tmp_iframe_id = '___tmp_iframe';

function svc_upload_get_html(mode, field_name, zone_id) {
    var upload_btn_display = 'block';
    var delete_btn_display = 'none';
    var checkbox_checked = '';
    if(mode == 'exists') {
        upload_btn_display = 'none';
        delete_btn_display = 'block';
    }

    var html = "";
    if(xIE4Up) {
        html = ""+
         "<input style='position:absolute;top:0px;left:0px;visibility:hidden' type='checkbox' value='Y' name='_delete_"+field_name+"' id='_delete_"+field_name+"' "+checkbox_checked+" />"+
        "<div id='zone_upload_btn_"+field_name+"' style='display:"+upload_btn_display+";width:102px;height:22px;'>"+
            "<div style='position:relative;left:-8px;'><button class='common_upload_image'></button></div>"+
            "<div id='zone_file_upload_inner_"+field_name+"' style='position:relative;width:102px;margin-bottom:-25px;left:-6px;top:-22px;height:22px;filter:alpha(opacity=0);'><table border='0' cellspacing='0' cellpadding='0' style='table-layout:fixed;width:102px;height:22px'><tr><td><input type='file' name='"+field_name+"' id='"+field_name+"' onchange=\"svc_file_upload_image(this,'"+zone_id+"')\" size='1' style='width:1px;height:22px;'></td></tr></table></div>"+
        "</div>"+
        "<div id='zone_delete_btn_"+field_name+"' style='position:relative;left:-8px;display:"+delete_btn_display+";width:102px;height:22px;'><button class='common_delete_image' onClick=\"svc_file_delete_image('"+field_name+"','"+zone_id+"');\"></button></div>";
    } else {
        html = ""+
         "<input style='position:absolute;top:0px;left:0px;visibility:hidden' type='checkbox' value='Y' name='_delete_"+field_name+"' id='_delete_"+field_name+"' "+checkbox_checked+" />"+
        "<div id='zone_upload_btn_"+field_name+"' style='position:relative;left:-10px;display:"+upload_btn_display+";width:102px;height:22px;'>"+
            "<button class='common_upload_image'></button>"+
            "<div id='zone_file_upload_inner_"+field_name+"' style='position:relative;left:-05px;top:-22px;height:22px;-moz-opacity:0;'><input type='file' name='"+field_name+"' id='"+field_name+"' onchange=\"svc_file_upload_image(this,'"+zone_id+"')\" size='1' style='width:1px;height:22px;'></div>"+
        "</div>"+
        "<div id='zone_delete_btn_"+field_name+"' style='position:relative;left:-8px;display:"+delete_btn_display+"'><button class='common_delete_image' onClick=\"svc_file_delete_image('"+field_name+"','"+zone_id+"');\"></button></div>";
    }
    return html;
}

function svc_upload_print_btn(field_name, image_zone_id, btn_zone_id, image_url, upload_btn, delete_btn, width, height) {
    var ext_pattern = /\.(gif|jpg|png|jpeg)$/i

    if(typeof(upload_btn)=='undefined') upload_btn = 'Upload';
    if(typeof(delete_btn)=='undefined') delete_btn = 'Delete';

    if(ext_pattern.test(upload_btn)) upload_btn= "<img src=\""+upload_btn+"\" border='0' />";
    if(ext_pattern.test(delete_btn)) delete_btn= "<img src=\""+delete_btn+"\" border='0' />";

    width=typeof(width)=='undefined'?80:width;
    height=typeof(height)=='undefined'?20:height;

    z_upload_btn_html[field_name] = new Array();
    z_upload_btn_html[field_name]['none'] = svc_upload_get_html('none', field_name, image_zone_id, upload_btn, delete_btn, width, height);
    z_upload_btn_html[field_name]['exists'] = svc_upload_get_html('exists', field_name, image_zone_id, upload_btn, delete_btn, width, height);

    var mode = 'none';
    var obj_image_zone = xGetElementById(image_zone_id);
    if(typeof(image_url)!='undefined' && image_url) {
        xInnerHtml(obj_image_zone, "<img src=\""+image_url+"\" border='0' />");
        mode = 'exists';
    } else {
        xInnerHtml(obj_image_zone, '');
        mode = 'none';
    }

    var obj_btn_zone = xGetElementById(btn_zone_id);
    if(!obj_btn_zone) obj_btn_zone = xGetElementById('zone_upload_'+field_name);
    else obj_btn_zone.id = 'zone_upload_'+field_name;
    xInnerHtml(obj_btn_zone, z_upload_btn_html[field_name][mode]);

    svc_upload_change_form_target(field_name);
}

function svc_upload_change_form_target(field_name) {
    if(xGetElementById(z_tmp_iframe_id)) return;

    if(xIE4Up) {
        window.document.body.insertAdjacentHTML("afterEnd", "<iframe name=\""+z_tmp_iframe_id+"\" style='display:none;width:1px;height:1px;position:absolute;top:-10px;left:-10px'></iframe>");
    } else {
        var obj_iframe = xCreateElement('IFRAME');
        obj_iframe.name = obj_iframe.id = z_tmp_iframe_id;
        obj_iframe.style.display = 'none';
        obj_iframe.style.width = '1px';
        obj_iframe.style.height = '1px';
        obj_iframe.style.position = 'absolute';
        obj_iframe.style.top = '-10px';
        obj_iframe.style.left = '-10px';
        window.document.body.appendChild(obj_iframe);
    }

    var field_obj = xGetElementById(field_name);
    if(!field_obj) return;
    var fo_obj = field_obj.parentNode;
    while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
    fo_obj.target = z_tmp_iframe_id;
}

function svc_file_upload_image(input_obj, zone_id) {
    var ext_pattern = /\.(gif|jpg|png|jpeg)$/i

    var zone_obj = xGetElementById(zone_id);
    var src = input_obj.value;

    var upload_btn_obj = xGetElementById("zone_upload_btn_"+input_obj.name);
    var delete_btn_obj = xGetElementById("zone_delete_btn_"+input_obj.name);
    var delete_checkbox = xGetElementById("_delete_"+input_obj.name);

    if(!ext_pattern.test(src)) {
        alert(alert_msg['image_only']);
        return;
    }

    xInnerHtml(zone_obj,'');

    if(xIE4Up) {
        var img_obj = new Image();
        img_obj.src = input_obj.value;
        img_obj.style.border = '0px';
        zone_obj.appendChild(img_obj);
    } else {
        var idx = src.lastIndexOf("\\");
        if(idx<0) idx = src.lastIndexOf("/");
        var filename = src.substr(idx+1,src.length);
        xInnerHtml(zone_obj, filename);
    }

    upload_btn_obj.style.display = 'none';
    delete_btn_obj.style.display = 'block';
    delete_checkbox.checked = true;
    z_upload_file_selected = true;
}

function svc_file_delete_image(field_name, zone_id) {
    var zone_obj = xGetElementById(zone_id);
    var upload_zone_obj = xGetElementById('zone_upload_'+field_name);
    xInnerHtml(zone_obj,'');
    xInnerHtml(upload_zone_obj, z_upload_btn_html[field_name]['none']);
    var delete_checkbox = xGetElementById("_delete_"+field_name);
    delete_checkbox.checked = true;
    z_upload_file_selected = true;
}

function svc_upload_file_selected() {
    return z_upload_file_selected;
}

var uploading_binary_file = false;
function svc_print_binary_btn(upload_btn, delete_btn, insert_btn, width, height) {
    var ext_pattern = /\.(gif|jpg|png|jpeg)$/i

    if(ext_pattern.test(upload_btn)) upload_btn= "<img src=\""+upload_btn+"\" border='0' />";
    if(ext_pattern.test(delete_btn)) delete_btn= "<img src=\""+delete_btn+"\" border='0' />";
    if(ext_pattern.test(insert_btn)) insert_btn= "<img src=\""+insert_btn+"\" border='0' />";
    width=typeof(width)=='undefined'?80:width;
    height=typeof(height)=='undefined'?20:height;

    var margin_bottom = 0;
    if(xIE4Up) margin_bottom = -22;

    var html = ""+
        "<div id='zone_upload_btn' style='float:left;margin:0px 0px "+margin_bottom+"px 0px;width:"+width+"px;height:"+height+"px;'>"+
        upload_btn+
            "<div id='zone_file_upload_inner' style='position:relative;top:-22px;left:-15px;width:"+width+"px;height:"+height+"px;overflow:hidden;filter:alpha(opacity=0);-moz-opacity:0;'>"+
                "<input type='file' name='_upload_file' id='_upload_file' onchange=\"svc_file_upload_binary(this)\" size='1' style='width:1px;height:40px;'>"+
            "</div>"+
        "</div>"+
        "<div style='float:left;width:"+width+"px;height:"+height+"px;'>"+
        "<a href='#' onClick='svc_remove_file();return false;'>"+delete_btn+"</a>"+
        "</div>"+
        "<div style='float:left'>"+
        "<a href='#' onClick='svc_insert_file();return false;'>"+insert_btn+"</a>"+
        "</div>";

    document.write(html);

    xAddEventListener(window,'load',function _change_form_target() {svc_upload_change_form_target('_upload_file');} );
}

function svc_file_upload_binary(field_obj) {
    if(uploading_binary_file) {
        alert(alert_msg['file_uploading']);
        return;
    }

    var fo_obj = field_obj.parentNode;
    while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }

    var seq_obj = xGetElementById('_seq');
    if(!seq_obj) {
        seq_obj = xCreateElement('INPUT');
        seq_obj.name = seq_obj.id = '_seq';
        seq_obj.value = '';
        seq_obj.type = 'hidden';
        fo_obj.appendChild(seq_obj);
    } 

    var seq = seq_obj.value;
    if(!seq || typeof(seq)=='undefined') {
        var response_tags = new Array('error','message','seq');
        var params = new Array();
        request_xml('member','get_new_seq',params,svc_get_new_seq_proc,response_tags, field_obj);
        return;
    }

    var method_obj = xGetElementById('_methodname');
    if(!method_obj) {
        method_obj = xCreateElement('INPUT');
        method_obj.name = method_obj.id = '_methodname';
        method_obj.value = 'module';
        method_obj.type = 'hidden';
        fo_obj.appendChild(method_obj);
    } 
    uploading_binary_file = true;
    fo_obj.submit();
}

function svc_get_new_seq_proc(ret_obj, response_tags, args) {
    var seq = ret_obj['seq'];
    if(!seq) return;
    var seq_obj = xGetElementById('_seq');
    seq_obj.value = seq;
    svc_file_upload_binary(args);
}

function svc_file_upload_finish(str, value) {
    var opt = new Option(str, value, false, false);
    var fo_obj = xGetElementById('fo_insert');
    var file_list_obj = fo_obj.upload_file;
    file_list_obj.options[file_list_obj.options.length] = opt;
    uploading_binary_file = false;
}

function svc_remove_file() {
    var fo_obj = xGetElementById('fo_insert');
    var file_list_obj = fo_obj.upload_file;
    if(file_list_obj.selectedIndex<0) return;

    var filename = file_list_obj.options[file_list_obj.selectedIndex].value;

    var response_tags = new Array('error','message','filename');
    var params = new Array();
    params['filename'] = filename;

    request_xml('member','delete_file',params,svc_remove_file_proc,response_tags);
}

function svc_remove_file_proc(ret_obj, response_tags) {
    var filename = ret_obj['filename'];
    if(!filename || typeof(filename)=='undefined') return;

    var fo_obj = xGetElementById('fo_insert');
    var file_list_obj = fo_obj.upload_file;
    
    for(var i=0; i<file_list_obj.options.length; i++) {
        if(file_list_obj.options[i].value == filename) {
            file_list_obj.remove(i);
            break;
        }
    }
    uploading_binary_file = false;
}

function svc_insert_file() {
    var img_ext_pattern = /\.(gif|jpg|png|jpeg)$/i
    var media_ext_pattern = /\.(wmv|mpeg|mpg|avi|wmf|swf)$/i

    var fo_obj = xGetElementById('fo_insert');
    var file_list_obj = fo_obj.upload_file;
    if(file_list_obj.selectedIndex<0) return;

    var filename = file_list_obj.options[file_list_obj.selectedIndex].value;
    var file_str = file_list_obj.options[file_list_obj.selectedIndex].text;

    var pos = file_str.lastIndexOf(' ');
    file_str = file_str.substr(0,pos);

    var file_server = fo_obj.action.replace('file_upload.php','file_download.php');
    var file_url = file_server+'?filename='+filename;
    if(!img_ext_pattern.test(file_str)) {
        if(media_ext_pattern.test(file_str)) {
            var html = zEditGetMultimediaHtml(file_url, null, null, file_str);
            zEditFocus();
            var obj = zEditGetObject()
            zEditReplaceHTML(obj, html);
            zEditFocus();
        } else {
            var link = '<a href="'+file_url+'">'+file_str+'</a>';
            zEditDoInsertUrl(link); 
        }
    } else {
        zEditPrevSrl = '';
        var x = (screen.availWidth - 400)/2;
        var y = (screen.availHeight - 220)/2;
        var editor_popup = window.open("./common/tpl/editor_popup/add_image.php?file_url="+escape(file_url)+"&is_board=1","_editorPopup","top="+y+",left="+x+",width=400,height=80,resizable=no,toolbars=no,scrollbars=no");
        if(editor_popup) editor_popup.focus();
    }
}

function svc_file_message(str) {
    uploading_binary_file = false;
    alert(str);
}

function svc_toggle_summary(obj) {
    var fo_obj = xGetElementById('fo_insert');
    try {
        if(obj.checked) {
            xGetElementById('zone_summary').style.display = 'block';
        } else {
            fo_obj.summary.value = '';
            xGetElementById('zone_summary').style.display = 'none';
        }
    } catch(e) {
    }
}

function svc_toggle_trackback(obj) {
    var fo_obj = xGetElementById('fo_insert');
    try {
        if(obj.checked) {
            xGetElementById('zone_trackback').style.display = 'block';
        } else {
            fo_obj.trackback_address.value = '';
            xGetElementById('zone_trackback').style.display = 'none';
        }
    } catch(e) {
    }
}

function svc_show_article(article_srl) {
    var obj = xGetElementById('hidden_article_'+article_srl);
    if(obj.style.display == 'none') obj.style.display = 'block';
    else obj.style.display = 'none';
}

function svc_toggle_survey(obj) {
    if(obj.checked) xGetElementById('zone_survey').style.display = 'block';
    else xGetElementById('zone_survey').style.display = 'none';
}

function svc_toggle_serial(obj) {
    if(obj.checked) xGetElementById('zone_serial').style.display = 'block';
    else xGetElementById('zone_serial').style.display = 'none';
}

function svc_add_serial(field_obj) {
    var fo_obj = field_obj.parentNode;
    while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }

    var title = fo_obj.new_serial_title.value;
    if(!title) {
        alert(alert_msg['new_serial_title']);
        fo_obj.new_serial_title.focus();
        return;
    }

    var response_tags = new Array('error','message','serial_srl','title');
    var params = new Array();
    params['title'] = title;
    request_xml('member','add_serial',params,svc_add_serial_proc,response_tags,fo_obj);
}

function svc_add_serial_proc(ret_obj,response_tags,args) {
    var serial_srl = ret_obj['serial_srl'];
    var title = ret_obj['title'];
    var opt = new Option(title, serial_srl, true, true);

    var fo_obj = args;
    var obj = fo_obj.serial_srl;
    fo_obj.new_serial_title.value = '';

    if(typeof(obj)=='undefined') return;
    obj.options[obj.options.length] = opt;

    if(obj.options[0].value == '') obj.remove(0);
}

function svc_add_survey_item(obj) {
    var item_obj = xPrevSib(obj, 'INPUT');
    var tmp = item_obj.name.split('_');
    var survey_seq = parseInt(tmp[2]);
    var item_seq = parseInt(tmp[3])+1;

    var new_obj = xCreateElement('INPUT');
    new_obj.name = new_obj.id = 'survey_item_'+survey_seq+'_'+item_seq;
    new_obj.value = '';
    new_obj.type = 'text';
    new_obj.className = item_obj.className;
    new_obj.size = item_obj.size;
    new_obj.maxlength = item_obj.maxlength;
    new_obj.style.display = 'block';
    var opt = new Option(item_seq, item_seq, false, false);
    var sel = xGetElementById('survey_checkcnt_'+survey_seq);
    sel.options[sel.options.length] = opt;

    obj.parentNode.insertBefore(new_obj, obj);
}

function svc_add_survey(obj) {
    if(!xGetElementById('zone_survey_1')) return;
    var id_regx_1 = /name=[\'\"]{1}survey_content_([0-9])+[\'\"]{1}/g
    var id_regx_2 = /name=[\'\"]{1}survey_item_([0-9])+_([0-9])+[\'\"]{1}/g

    var no = 1;
    while(xGetElementById('zone_survey_'+no)) { no ++; }

    var html = xInnerHtml('zone_survey_1');
    html = html.replace(/survey_content_1/,'survey_content_'+no);
    html = html.replace(/survey_checkcnt_1/g,'survey_checkcnt_'+no);
    html = html.replace(/survey_item_1_/g,'survey_item_'+no+'_');
    html = html.replace(id_regx_1, "name='survey_content_$1' id='survey_content_$1'");
    html = html.replace(id_regx_2, "name='survey_item_$1_$2' id='survey_item_$1_$2'");
    var new_zone = xCreateElement('DIV');
    new_zone.id = 'zone_survey_'+no;
    new_zone.style.display = 'none';
    xInnerHtml(new_zone, html);

    var add_obj = xGetElementById('zone_survey_'+(no-1)).nextSibling;;
    if(add_obj) add_obj.parentNode.insertBefore(new_zone, add_obj);
    else obj.parentNode.insertBefore(new_zone, obj);

    xGetElementById('survey_content_'+no).value = '';

    var i = 1;
    var tobj = null;
    while(tobj = xGetElementById('survey_item_'+no+'_'+i)) {
        tobj.value = '';
        if(i>2) tobj.parentNode.removeChild(tobj);
        i++;
    }
    new_zone.style.display = 'block';

    var sel = xGetElementById('survey_checkcnt_'+no);
    sel.selectedIndex = 0;
    var len = sel.options.length;
    if(len > 2) {
        for(var i=len;i>2;i--) sel.remove(i-1);
    }
}

function svc_do_view_survey(article_srl) {
    if(typeof(article_srl)=='undefined') return;

    var params = new Array();
    params['article_srl'] = article_srl;
    request_xml('member','do_survey_pass',params,svc_do_survey_proc);
}

function svc_do_survey(fo_obj) {
    if(fo_obj.nodeName!='FORM') {
        fo_obj = fo_obj.parentNode;
        while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
    }

    var params = new Array();

    var survey_list = new Array();
    var survey_checkcnt = new Array();
    var survey_selected_list = new Array();

    for(var i=0;i<fo_obj.length;i++) {
        if(fo_obj[i].type == 'hidden') {
            var survey_srl = fo_obj[i].name.replace('checkcnt_','');
            survey_list[survey_list.length] = survey_srl;
            survey_checkcnt[survey_srl] = fo_obj[i].value;
        }
    }

    for(var i=0;i<survey_list.length;i++) {
        var survey_srl = survey_list[i];
        var checkcnt = survey_checkcnt[survey_srl];
        var item_obj = fo_obj['survey_item_'+survey_srl];

        var selected_list = new Array();
        for(var j=0;j<item_obj.length;j++) {
            if(item_obj[j].checked==true) selected_list[selected_list.length] = item_obj[j].value;
        }
        if(selected_list.length>checkcnt) {
            alert(alert_msg['survey_over_cnt']);
            return false;
        } 
        if(selected_list.length<1) {
            alert(alert_msg['survey_check_item']);
            return false;
        }
        else survey_selected_list[survey_srl] = selected_list.join(',');
    }

    var result_list = new Array();
    for(var i=0;i<survey_list.length;i++) {
        var survey_srl = survey_list[i];
        var selected_list = survey_selected_list[survey_srl];
        result_list[result_list.length] = survey_srl+'-'+selected_list;
    }

    if(result_list.length) {
        params['survey_list'] = result_list.join('|@|');
        request_xml('member','do_survey',params,svc_do_survey_proc);
    }

    return false;
}

function svc_do_survey_proc(ret_obj) {
    location.replace(location.href);
}

function svc_stop_survey(article_srl) {
    if(!confirm(alert_msg['stop_survey'])) return;

    var params = new Array();
    params['article_srl'] = article_srl;

    request_xml('member','stop_survey',params,svc_stop_survey_proc);
}

function svc_stop_survey_proc(ret_obj) {
    location.replace(location.href);
}

function svc_comment_reply(comment_srl, article_srl) {
    var fo_obj = xGetElementById('fo_insert');
    var comment_obj = xGetElementById('zone_comment_'+comment_srl);
    var richtext_obj = xGetElementById('zone_comment_form_'+article_srl);

    fo_obj.parent_srl.value = comment_srl;

    zEditClose(article_srl);
    comment_obj.appendChild(richtext_obj);
    setTimeout(function() { zEditInit('', article_srl); return; } , 50)
}

function svc_send_message(fo_obj) {
    var response_tags = new Array('error','message');

    if(check_svc_write) return false;
    check_svc_write = true;

    fo_obj.article.value = zEditGetHTML();

    var check_list = new Array('title','article');

    var params = get_form_elements(fo_obj);
    if(!check_empty(params,fo_obj,check_list)) {
        check_svc_write = false;
        return false;
    }

    if(!request_confirm('msg_confirm')) {
        check_svc_write = false;
        return false;
    }

    request_xml('member','send_message',params,svc_send_message_proc,response_tags, params);
    check_svc_write = false;

    return false;
}

function svc_send_message_proc(ret_obj, response_tags, args) {
    alert(ret_obj['message']);
    location.href = args['sended_url'];
}

function svc_delete_message(message_srl) {
    if(!confirm(alert_msg['msg_delete'])) return;

    var params = new Array();
    params['message_srl'] = message_srl;
    request_xml('member','delete_message',params,svc_delete_message_proc);
}

function svc_delete_message_proc(ret_obj) {
    location.href=location.href;
}


function svc_report_display(mid, srl) {
    if(typeof(mid)=='undefined'||!mid) return;
    if(typeof(srl)=='undefined'||!srl) return;
    var obj_sel = xGetElementById("report_target_"+srl);
    var obj_zone = xGetElementById("zone_report_"+srl);

    if(obj_zone.style.display == 'block') {
        obj_zone.style.display = 'none';
        return;
    } else if(obj_sel.options.length>1) {
        obj_zone.style.display = 'block';
        return;
    }

    var response_tags = new Array('error','message','srl','module_list');
    var params = new Array();
    params['srl'] = srl;
    params['mid'] = mid;
    request_xml('member','get_module_list',params,svc_report_display_proc,response_tags);
}

function svc_report_display_proc(ret_obj, response_tags) {
    var srl = ret_obj['srl'];
    var tmp_array = ret_obj['module_list'].split('|@|');
    var obj_sel = xGetElementById("report_target_"+srl);
    var obj_zone = xGetElementById("zone_report_"+srl);

    for(var i = 0; i<tmp_array.length; i++) {
        var pos = tmp_array[i].indexOf(",");
        if(pos<1) continue;
        var module_srl = tmp_array[i].substr(0,pos);
        var module_name = tmp_array[i].substr(pos+1, tmp_array[i].length);
        var opt = new Option(module_name, module_srl, false, false);
        obj_sel.options.add(opt);
    }

    obj_zone.style.display = 'block';
}

function svc_report(article_srl, comment_srl) {
    if(typeof(article_srl)=='undefined'||!article_srl) return;

    var response_tags = new Array('error','message','mode','target','article_srl','module_srl');
    var params = new Array();

    params['article_srl'] = article_srl;

    if(typeof(comment_srl)=='undefined'||!comment_srl) {
        params['target'] = 'article';

        var obj_sel = xGetElementById('report_target_'+article_srl);
        if(obj_sel.selectedIndex == 0) {
            params['type'] = 'delete';
            params['target_module_srl'] = 0;
        } else {
            params['type'] = 'move';
            params['target_module_srl'] = obj_sel.options[obj_sel.selectedIndex].value;
        }
        params['comment_srl'] = 0;
    } else {
        params['target'] = 'comment';
        params['type'] = 'delete';
        params['target_module_srl'] = 0;
        params['comment_srl'] = comment_srl;
    }


    var args = new Array();
    args['article_srl'] = article_srl;

    request_xml('module_manager','do_report',params,svc_report_proc, response_tags, args);
}

function svc_report_proc(ret_obj,response_tags,args) {
    var mode = ret_obj['mode'];
    var target = ret_obj['target'];
    var module_srl = ret_obj['module_srl'];
    var article_srl = ret_obj['article_srl'];

    alert(ret_obj['message']);

    var obj_zone = xGetElementById("zone_report_"+article_srl);
    if(obj_zone) obj_zone.style.display = 'none';

    if(mode == 'refresh') {
        if(target=='article') {
            var delete_srl_regx = /article_srl=([0-9]+)/;
            var url = location.href.replace(delete_srl_regx,'');
            if(url.indexOf('sid')<0&&url.indexOf('mid')<0) {
                url += '&mid='+module_srl;
            }
            location.replace(url);
        } else if(target=='comment') {
            if(location.href.indexOf('admin.php')<0) svc_show_comment(module_srl, article_srl, true);
            else location.replace(location.href);
        }
    }
}

function svc_delete_trackback(article_srl, trackback_srl) {
    if(!confirm(alert_msg['delete_trackback'])) return;
    var response_tags = new Array('error','message','module_srl','article_srl');
    var params = new Array();
    params['article_srl'] = article_srl;
    params['trackback_srl'] = trackback_srl;
    request_xml('module_manager','do_delete_trackback',params,svc_delete_trackback_proc,response_tags);
}

function svc_delete_trackback_proc(ret_obj) {
    svc_show_trackback(ret_obj['module_srl'], ret_obj['article_srl'], true);
}

function svc_search_address(s_name) {
    var field_obj = xGetElementById('fo_insert_member')['_tmp_address_search_'+s_name];
    var addr3 = field_obj.value;
    if(!addr3) return;

    var response_tags = new Array('error','message','address_list');

    var params = new Array();
    params['addr3'] = addr3;
    request_xml('etc','search_address',params,svc_search_address_proc,response_tags,s_name);
}

function svc_search_address_proc(ret_obj, response_tags, s_name) {
    if(!ret_obj['address_list']) {
        alert(alert_msg['address']);
        return;
    }
    var address_list = ret_obj['address_list'].split("\n");

    var zone_list_obj = xGetElementById('zone_address_list_'+s_name);
    var zone_search_obj = xGetElementById('zone_address_search_'+s_name);
    var zone_addr1_obj = xGetElementById('zone_address_1_'+s_name);
    var sel_obj = xGetElementById('fo_insert_member')['_tmp_address_list_'+s_name];

    for(var i=0;i<address_list.length;i++) {
        var opt = new Option(address_list[i],address_list[i],false,false);
        sel_obj.options[i] = opt;
    }

    for(var i=address_list.length-1;i<sel_obj.options.length;i++) {
        sel_obj.remove(i);
    }

    sel_obj.selectedIndex = 0;

    zone_search_obj.style.display = 'none';
    zone_addr1_obj.style.display = 'none';
    zone_list_obj.style.display = 'inline';
}

function svc_hide_address_list(s_name) {
    var zone_list_obj = xGetElementById('zone_address_list_'+s_name);
    var zone_search_obj = xGetElementById('zone_address_search_'+s_name);
    var zone_addr1_obj = xGetElementById('zone_address_1_'+s_name);
    zone_addr1_obj.style.display = 'none';
    zone_list_obj.style.display = 'none';
    zone_search_obj.style.display = 'inline';
}

function svc_select_address(s_name) {
    var zone_list_obj = xGetElementById('zone_address_list_'+s_name);
    var zone_search_obj = xGetElementById('zone_address_search_'+s_name);
    var zone_addr1_obj = xGetElementById('zone_address_1_'+s_name);
    var sel_obj = xGetElementById('fo_insert_member')['_tmp_address_list_'+s_name];
    var value = sel_obj.options[sel_obj.selectedIndex].value;
    var addr1_obj = xGetElementById('fo_insert_member')[s_name][0];
    var addr2_obj = xGetElementById('fo_insert_member')[s_name][1];
    addr1_obj.value = value;
    zone_search_obj.style.display = 'none';
    zone_list_obj.style.display = 'none';
    zone_addr1_obj.style.display = 'inline';
    addr2_obj.focus();

}

function svc_show_simple_list(node_srl, module_srl, zone_id, page, do_open) {
    var zone_obj = xGetElementById(zone_id);
    if(!zone_obj) return;

    if(typeof(do_open)=='undefined') do_open = false;
    if(typeof(page)=='undefined') page = 1;

    if(zone_obj.style.display == 'block' && !do_open) {
        zone_obj.style.display = 'none';
        return;
    }

    var pos = location.href.indexOf('?');
    var args = new Array();
    if(pos>0) {
        var tmp_str = '';
        if(location.href.indexOf('#')>0) tmp_str = location.href.substr(pos+1,location.href.length).split('#')[0];
        else tmp_str = location.href.substr(pos+1,location.href.length);
        args = tmp_str.split('&');
    }

    svc_simple_list_node_srl = node_srl;
    svc_simple_list_module_srl = module_srl;
    svc_simple_list_zone_id = zone_id;
    svc_simple_list_page = page;

    var response_tags = new Array('error','message','tpl');
    var params = new Array();
    params['node_srl'] = node_srl;
    params['module_srl'] = module_srl;
    params['page'] = page;
    params['zone_id'] = zone_id;

    if(args.length) 
        for(var i=0; i<args.length;i++) {
            if(args[i].indexOf('page')>=0||args[i].indexOf('article_srl')>=0) continue;
            var pos = args[i].indexOf('=');
            if(pos>0) {
                var key = args[i].substr(0,pos);
                var val = args[i].substr(pos+1, args[i].length);
                params[key] = val;
            }
        }
    request_xml('module_manager','show_simple_list',params,svc_show_simple_list_proc,response_tags, zone_id);
}

function svc_show_simple_list_proc(ret_obj, response_tags, zone_id) {
    var zone_obj = xGetElementById(zone_id);
    if(!zone_obj) return;
    xInnerHtml(zone_obj, ret_obj['tpl']);
    zone_obj.style.display = 'block';
}

function svc_folder_open(id) {
    var open_text_obj = xGetElementById("_folder_open_"+id);
    var close_text_obj = xGetElementById("_folder_close_"+id);
    var folder_obj = xGetElementById("_folder_"+id);
    open_text_obj.style.display = "none";
    close_text_obj.style.display = "block";
    folder_obj.style.display = "block";
}

function svc_folder_close(id) {
    var open_text_obj = xGetElementById("_folder_open_"+id);
    var close_text_obj = xGetElementById("_folder_close_"+id);
    var folder_obj = xGetElementById("_folder_"+id);
    open_text_obj.style.display = "block";
    close_text_obj.style.display = "none";
    folder_obj.style.display = "none";
}

