function add_map_link_google(e) {
    var mapHTML = prompt('Google マップの埋め込み用HTMLを記入して下さい。', '');
    if (!mapHTML) {
        return;
    }
    else {
        var div = document.createElement('div');
        div.innerHTML = mapHTML;
        var iframe = div.getElementsByTagName('iframe')[0];
        var mapSRC = iframe.getAttribute('src');
        var regex_google = /^(http\:\/\/(www|local|maps)\.google\.(co\.jp|com)\/(\?|maps\?|maps\/ms\?|maps\/sv\?))/;
        if (regex_google.exec(mapSRC)) {
            mapSRC = mapSRC.replace(regex_google, RegExp.$4);
            var tag = '<externalmap src="GM:' + mapSRC + ':D">\n';
            //var str = document.diary.diary_body;
            //var str = e;
            //make_tag(str, '', tag);
            e.value = tag;
        }
        else {
            return;
        }
    }
}

var map = new Array();
function setupMap() {
  for (var n = 0; n < map.length; n++) {
    var m = map[n];
    $(m.map_id).innerHTML = '<iframe width="' + m.size.width + '" height="' + m.size.height + '" frameborder="0" scrolling="no" src="' + m.url.embed + '"></iframe><br /><span><a href="' + m.url.link + '" target="_blank">拡大地図を表示</a></span>';
  }
}

function get_mode() {
    var mode;
    if (window.opera){
        mode = 4;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 2;
        }
    }
    else if (navigator.userAgent.indexOf('Safari') != -1) {
            mode = 4;
    }
    else if (navigator.appName == 'Netscape') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 1;
        }
    }
    else if (navigator.userAgent.indexOf('Firefox') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Netscape') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Gecko') != -1) {
        mode = 1;
    }
    else {
        mode = 4;
    }
    return mode;
}

function make_tag(str, stag, etag) {
    var mode = get_mode();
    if (mode == 1 || mode == 4) {
        var bl1 = str.value.substring(0, str.selectionStart);
        var bl2 = str.value.substring(str.selectionStart, str.selectionEnd);
        var bl3 = str.value.substring(str.selectionEnd, str.value.length);
        str.value = bl1 + stag + bl2 + etag + bl3;
    }
    else if (mode == 2) {
        str.focus();
        var sel = document.selection.createRange();
        var rang = str.createTextRange();
        rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
        rang.moveEnd("textedit");
        if(rang.text.replace(/\r/g,"").length != 0){
            var las = (str.value.match(/(\r\n)*$/),RegExp.lastMatch.length);
            str.selectionStart = str.value.length - (rang.text.length + las);
            str.selectionEnd = str.selectionStart + sel.text.length;
            str.selectionStart2 = str.value.replace(/\r/g,"").length - (rang.text.replace(/\r/g,"").length + las/2);
            var bl1 = str.value.substring(0, str.selectionStart);
            var bl2 = str.value.substring(str.selectionStart, str.selectionEnd);
            var bl3 = str.value.substring(str.selectionEnd, str.value.length);
            str.value = bl1 + stag + bl2 + etag + bl3;
            str.selectionEnd2 = (str.selectionStart2 + stag.length + bl2.length + etag.length) - str.value.replace(/\r/g,"").length;
            rang.moveStart("character",str.selectionStart2);
            rang.moveEnd("character",str.selectionEnd2);
        }else{
            rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
            rang.text = stag + etag;
            rang.moveStart("character",-(stag.length + etag.length));
        }
        rang.select();
    }
    else if (mode == 3) {
        str.value = stag + str.value + etag;
    }
    else {
        str.value += stag + etag;
    }
    return;
}

