| /******************************************************************************* | 
| * KindEditor - WYSIWYG HTML Editor for Internet | 
| * Copyright (C) 2006-2011 kindsoft.net | 
| * | 
| * @author Roddy <luolonghao@gmail.com> | 
| * @site http://www.kindsoft.net/ | 
| * @licence http://www.kindsoft.net/license.php | 
| *******************************************************************************/ | 
|   | 
| // Baidu Maps: http://dev.baidu.com/wiki/map/index.php?title=%E9%A6%96%E9%A1%B5 | 
|   | 
| KindEditor.plugin('baidumap', function(K) { | 
|     var self = this, name = 'baidumap', lang = self.lang(name + '.'); | 
|     var mapWidth = K.undef(self.mapWidth, 558); | 
|     var mapHeight = K.undef(self.mapHeight, 360); | 
|     self.clickToolbar(name, function() { | 
|         var html = ['<div style="padding:10px 20px;">', | 
|             '<div class="ke-header">', | 
|             // left start | 
|             '<div class="ke-left">', | 
|             lang.address + ' <input  id="kindeditor_plugin_map_address" name="address" class="ke-input-text" value="" style="width:200px;" /> ', | 
|             '<span class="ke-button-common ke-button-outer">', | 
|             '<input  type="button" name="searchBtn" class="ke-button-common ke-button" value="' + lang.search + '" />', | 
|             '</span>', | 
|             '</div>', | 
|             // right start | 
|             '<div class="ke-right">', | 
|             '<input  type="checkbox" id="keInsertDynamicMap" name="insertDynamicMap" value="1" /> <label for="keInsertDynamicMap">' + lang.insertDynamicMap + '</label>', | 
|             '</div>', | 
|             '<div class="ke-clearfix"></div>', | 
|             '</div>', | 
|             '<div class="ke-map" style="width:' + mapWidth + 'px;height:' + mapHeight + 'px;"></div>', | 
|             '</div>'].join(''); | 
|         var dialog = self.createDialog({ | 
|             name : name, | 
|             width : mapWidth + 42, | 
|             title : self.lang(name), | 
|             body : html, | 
|             yesBtn : { | 
|                 name : self.lang('yes'), | 
|                 click : function(e) { | 
|                     var map = win.map; | 
|                     var centerObj = map.getCenter(); | 
|                     var center = centerObj.lng + ',' + centerObj.lat; | 
|                     var zoom = map.getZoom(); | 
|                     var url = [checkbox[0].checked ? self.pluginsPath + 'baidumap/index.html' : 'http://api.map.baidu.com/staticimage', | 
|                         '?center=' + encodeURIComponent(center), | 
|                         '&zoom=' + encodeURIComponent(zoom), | 
|                         '&width=' + mapWidth, | 
|                         '&height=' + mapHeight, | 
|                         '&markers=' + encodeURIComponent(center), | 
|                         '&markerStyles=' + encodeURIComponent('l,A')].join(''); | 
|                     if (checkbox[0].checked) { | 
|                         self.insertHtml('<iframe src="' + url + '" frameborder="0" style="width:' + (mapWidth + 2) + 'px;height:' + (mapHeight + 2) + 'px;"></iframe>'); | 
|                     } else { | 
|                         self.exec('insertimage', url); | 
|                     } | 
|                     self.hideDialog().focus(); | 
|                 } | 
|             }, | 
|             beforeRemove : function() { | 
|                 searchBtn.remove(); | 
|                 if (doc) { | 
|                     doc.write(''); | 
|                 } | 
|                 iframe.remove(); | 
|             } | 
|         }); | 
|         var div = dialog.div, | 
|             addressBox = K('[name="address"]', div), | 
|             searchBtn = K('[name="searchBtn"]', div), | 
|             checkbox = K('[name="insertDynamicMap"]', dialog.div), | 
|             win, doc; | 
|         var iframe = K('<iframe class="ke-textarea" frameborder="0" src="' + self.pluginsPath + 'baidumap/map.html" style="width:' + mapWidth + 'px;height:' + mapHeight + 'px;"></iframe>'); | 
|         function ready() { | 
|             win = iframe[0].contentWindow; | 
|             doc = K.iframeDoc(iframe); | 
|         } | 
|         iframe.bind('load', function() { | 
|             iframe.unbind('load'); | 
|             if (K.IE) { | 
|                 ready(); | 
|             } else { | 
|                 setTimeout(ready, 0); | 
|             } | 
|         }); | 
|         K('.ke-map', div).replaceWith(iframe); | 
|         // search map | 
|         searchBtn.click(function() { | 
|             win.search(addressBox.val()); | 
|         }); | 
|     }); | 
| }); |