data.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. //旧版 xml的根节点
  2. var xmlDoc = null;
  3. var xmlDict = null;
  4. var gXmlOldVerData;//old ver xml file xml doc
  5. var g_filename="";//工程文件名
  6. var arrDocFileInfo=null;
  7. //全部的逐词译单词xml 节点数组
  8. var gXmlAllWordInWBW = new Array();
  9. var gXmlBookData;
  10. var gXmlBookDataHead;
  11. var gXmlBookDataHeadToc;
  12. var gXmlBookDataBody=null;
  13. var gXmlBookDataInlineDict; //内联字典数据
  14. var gXmlBookDataMsg; //消息数据
  15. var gDocMsgList=new Array();//消息数组
  16. var gXmlParIndex;//段落列表
  17. var gArrayDocParagraph=new Array();//文档中的段落列表
  18. //资源列表
  19. var lstResTranslate = new Array();
  20. var lstResNote = new Array();
  21. var lstResWbw = new Array();
  22. var lstResHeading = new Array();
  23. var doc_info = new Object();
  24. doc_info.msg_run = function(value){
  25. if(value){
  26. this.sendmsg = value;
  27. }
  28. else{
  29. return(this.sendmsg);
  30. }
  31. }
  32. function createXmlDoc(){
  33. var strXml="";
  34. strXml+="<set>\n"
  35. strXml+=" <head>\n"
  36. strXml+=" <type>pcdsset</type>\n"
  37. strXml+=" <mode>package</mode>\n"
  38. strXml+=" <ver>1</ver>\n"
  39. strXml+=" <toc></toc>\n"
  40. strXml+=" <style></style>\n"
  41. strXml+=" </head>\n"
  42. strXml+=" <dict></dict>\n"
  43. strXml+=" <message></message>\n"
  44. strXml+=" <body>\n"
  45. strXml+=" </body>\n"
  46. strXml+="</set>\n"
  47. if (window.DOMParser){
  48. parser=new DOMParser();
  49. gXmlBookData=parser.parseFromString(strXml,"text/xml");
  50. }
  51. else // Internet Explorer
  52. {
  53. gXmlBookData=new ActiveXObject("Microsoft.XMLDOM");
  54. gXmlBookData.async="false";
  55. gXmlBookData.loadXML(strXml);
  56. }
  57. if (gXmlBookData == null){
  58. alert("error:can not load book index.");
  59. return;
  60. }
  61. gXmlBookDataBody = gXmlBookData.getElementsByTagName("body")[0];
  62. gXmlBookDataHead= gXmlBookData.getElementsByTagName("head")[0];
  63. gXmlBookDataInlineDict= gXmlBookData.getElementsByTagName("dict")[0];
  64. gXmlBookDataMsg= gXmlBookData.getElementsByTagName("message")[0];
  65. gXmlBookDataHeadToc= gXmlBookDataHead.getElementsByTagName("toc")[0];
  66. }
  67. function com_XmlAllWordRefresh(){
  68. gXmlAllWordInWBW = gXmlBookDataBody.getElementsByTagName("word");
  69. }
  70. function insertBlockToXmlBookData(element){
  71. xmlParInfo = element.getElementsByTagName("info")[0];
  72. xmlParData = element.getElementsByTagName("data")[0];
  73. bookId=getNodeText(xmlParInfo,"book")
  74. paragraph=getNodeText(xmlParInfo,"paragraph")
  75. type=getNodeText(xmlParInfo,"type")
  76. switch(type){
  77. case "wbw":
  78. xWords=element.getElementsByTagName("word");
  79. for(iWord=0;iWord<xWords.length;iWord++){
  80. len=gXmlAllWordInWBW.length;
  81. gXmlAllWordInWBW[len]=xWords[iWord];
  82. }
  83. break;
  84. }
  85. gXmlBookDataBody.appendChild(element.cloneNode(true));
  86. updataDocParagraphList();
  87. }
  88. function getParIndex(bookId,parNo){
  89. for(var iPar=0;iPar<gArrayDocParagraph.length;iPar++){
  90. currBookId=gArrayDocParagraph[iPar].book
  91. currParNo=gArrayDocParagraph[iPar].paragraph
  92. if(currBookId==bookId && currParNo==parNo){
  93. return(iPar);
  94. }
  95. }
  96. return(-1);
  97. }
  98. //扫描文档 更新段落列表
  99. function updataDocParagraphList(){
  100. gArrayDocParagraph=new Array();
  101. var temp=new Array();
  102. allBlock=gXmlBookDataBody.getElementsByTagName("block")
  103. for(var iBlock=0;iBlock<allBlock.length;iBlock++){
  104. xmlParInfo = allBlock[iBlock].getElementsByTagName("info")[0];
  105. xmlParData = allBlock[iBlock].getElementsByTagName("data")[0];
  106. var type=getNodeText(xmlParInfo,"type")
  107. var newPar=new Object();
  108. newPar.book=getNodeText(xmlParInfo,"book")
  109. newPar.paragraph=getNodeText(xmlParInfo,"paragraph")
  110. newPar.level=getNodeText(xmlParInfo,"level");
  111. newPar.style=getNodeText(xmlParInfo,"style");
  112. if(newPar.level==""){
  113. newPar.level=100;
  114. }
  115. //如果有相同段落层级更高的记录,替换。
  116. var bookpara=newPar.book.toString()+"-"+newPar.paragraph.toString();
  117. if(temp[bookpara]){
  118. if(newPar.level>0 && newPar.level<9){
  119. if(temp[bookpara].level>0 && temp[bookpara].level<9){
  120. if(temp[bookpara].level>newPar.level){
  121. temp[bookpara].level=newPar.level;
  122. }
  123. }
  124. else{
  125. temp[bookpara].level=newPar.level;
  126. }
  127. }
  128. }
  129. else{
  130. temp[bookpara]=newPar;
  131. }
  132. }
  133. for(var iTemp in temp){
  134. gArrayDocParagraph.push(temp[iTemp]);
  135. }
  136. }
  137. function parIsSet(inBook,inPar){
  138. for(var iPar=0;iPar<gArrayDocParagraph.length;iPar++){
  139. if(gArrayDocParagraph[iPar].book==inBook && gArrayDocParagraph[iPar].paragraph==inPar){
  140. return(iPar)
  141. }
  142. }
  143. return(-1)
  144. }
  145. function doc_setWordDataById(wordId,key,value){
  146. var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
  147. var wordIndex=getWordIndex(wordId);
  148. setNodeText(xAllWord[wordIndex],key,value);
  149. }
  150. function doc_file_info_get(){
  151. $.post("file_index.php",
  152. {
  153. op:"getall",
  154. doc_id:g_docid
  155. },
  156. function(data,status){
  157. arrDocFileInfo = JSON.parse(data);
  158. if(arrDocFileInfo.parent_id==null){
  159. doc_info.parent_id="";
  160. }
  161. else{
  162. doc_info.parent_id=arrDocFileInfo.parent_id;
  163. }
  164. doc_info.doc_id=arrDocFileInfo.id;
  165. doc_info.share=arrDocFileInfo.share;
  166. if(arrDocFileInfo.parent_id && arrDocFileInfo.parent_id != null && arrDocFileInfo.parent_id.length > 0 ){
  167. strMsgDocList=arrDocFileInfo.parent_id;
  168. msg_start();//该文档是他人分享的文档,需要发送消息
  169. doc_info.sendmsg=true;
  170. }
  171. else{
  172. if(parseInt(arrDocFileInfo.share)==1){
  173. strMsgDocList=arrDocFileInfo.id;
  174. msg_start();
  175. doc_info.sendmsg=true;//共享给其他人,需要发送消息
  176. }
  177. else{
  178. doc_info.sendmsg=false;//无需发送消息
  179. }
  180. }
  181. });
  182. }
  183. function doc_info_change(field,value){
  184. $.post("file_index.php",
  185. {
  186. op:"set",
  187. doc_id:g_docid,
  188. field:"accese_time",
  189. value:value
  190. },
  191. function(data,status){
  192. console.log("doc_info_change",data);
  193. });
  194. }
  195. function doc_info_title_change(obj){
  196. setNodeText(gXmlBookDataHead,"doc_title",obj.value);
  197. document.getElementById("editor_doc_title").innerHTML=obj.value;
  198. document.getElementById("file_title").innerHTML=obj.value;
  199. $.post("file_index.php",
  200. {
  201. op:"set",
  202. doc_id:g_docid,
  203. field:"title",
  204. value:obj.value
  205. },
  206. function(data,status){
  207. alert("Data: " + data + "\nStatus: " + status);
  208. });
  209. }
  210. function getTranslateText(id){
  211. var xBlock=gXmlBookDataBody.getElementsByTagName("block");
  212. for(var iBlock=0;iBlock<xBlock.length;iBlock++){
  213. xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
  214. xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
  215. mId=getNodeText(xmlParInfo,"id")
  216. type=getNodeText(xmlParInfo,"type")
  217. if(type=="translate"){
  218. if(mId==id){
  219. xmlParDataSen = xmlParData.getElementsByTagName("sen");
  220. var currText="";
  221. for(iSen=0;iSen<xmlParDataSen.length;iSen++){
  222. currText += getNodeText(xmlParDataSen[iSen],"text");
  223. }
  224. var obj = new Object();
  225. obj.text = currText;
  226. obj.language = getNodeText(xmlParInfo,"language");
  227. obj.author = getNodeText(xmlParInfo,"author");
  228. return(obj);
  229. }
  230. }
  231. }
  232. return(null);
  233. }
  234. /*
  235. setTranText
  236. 功能:存储翻译文本
  237. 参数:
  238. id:数据块guid
  239. senA:句子锚点
  240. strValue:句子文本数据
  241. 返回值:
  242. 无
  243. */
  244. function setTranText(id,senA,strValue){
  245. xBlock=gXmlBookDataBody.getElementsByTagName("block");
  246. for(var iBlock=0;iBlock<xBlock.length;iBlock++){
  247. xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
  248. xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
  249. let blockId=getNodeText(xmlParInfo,"id");
  250. let book=getNodeText(xmlParInfo,"book");
  251. let para=getNodeText(xmlParInfo,"paragraph");
  252. let parent_id = getNodeText(xmlParInfo,"parent");
  253. if(blockId==id){
  254. xSen=xmlParData.getElementsByTagName("sen");
  255. for(var iSen=0;iSen<xSen.length;iSen++){
  256. var aBegin=getNodeText(xSen[iSen],"begin");
  257. var aEnd=getNodeText(xSen[iSen],"end");
  258. if(aEnd==senA){
  259. //var newText=strValue.replace(/\n/g,"<br />");
  260. setNodeText(xSen[iSen],"text",strValue);
  261. ntf_show("修改:"+strValue);
  262. //准备消息数据 並發送
  263. if(doc_info.sendmsg == true){
  264. let d=new Date();
  265. let msg_doc_id;
  266. if(doc_info.parent_id!=""){
  267. msg_doc_id=doc_info.parent_id;
  268. }
  269. else{
  270. msg_doc_id=doc_info.doc_id;
  271. }
  272. let blockId ;
  273. if(parent_id.length>0){
  274. blockId = parent_id;
  275. }
  276. else{
  277. blockId = id;
  278. }
  279. let objMsg = new Object();
  280. objMsg.id=blockId;
  281. objMsg.begin=aBegin;
  282. objMsg.end = aEnd;
  283. objMsg.text = strValue;
  284. let strMsg=JSON.stringify(objMsg);
  285. msg_push(2,strMsg,msg_doc_id,d.getTime(),book,para);
  286. console.log("send mseeage:"+strMsg);
  287. }
  288. }
  289. }
  290. }
  291. }
  292. }
  293. function setNoteText(id,strValue){
  294. xBlock=gXmlBookDataBody.getElementsByTagName("block");
  295. for(let iBlock=0;iBlock<xBlock.length;iBlock++){
  296. xmlParInfo = xBlock[iBlock].getElementsByTagName("info")[0];
  297. xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
  298. blockId=getNodeText(xmlParInfo,"id");
  299. if(blockId==id){
  300. xSen=xmlParData.getElementsByTagName("sen");
  301. if(xSen.length>0){
  302. newText=strValue.replace(/\n/g,"<br />");
  303. setNodeText(xSen[0],"text",strValue);
  304. //var_dump(strValue);
  305. }
  306. }
  307. }
  308. }
  309. function doc_head(key,value=null){
  310. if(value){//set
  311. setNodeText(gXmlBookDataHead,key,value);
  312. }
  313. else{//get
  314. return(getNodeText(gXmlBookDataHead,key));
  315. }
  316. }
  317. function doc_msg_push(msgobj){
  318. gDocMsgList.push(msgobj);
  319. if(gXmlBookDataMsg){
  320. var newNode=gXmlBookData.createElement("msg");
  321. setNodeText(newNode,"id",msgobj.id);
  322. setNodeText(newNode,"sender",msgobj.sender);
  323. setNodeText(newNode,"type",msgobj.type);
  324. setNodeText(newNode,"docid",msgobj.docid);
  325. setNodeText(newNode,"time",msgobj.time);
  326. setNodeText(newNode,"read",msgobj.read);
  327. setNodeText(newNode,"data",msgobj.data);
  328. gXmlBookDataMsg.appendChild(newNode);
  329. }
  330. }
  331. function doc_block(strSelector=""){
  332. if(strSelector==""){
  333. var xBlock = gXmlBookDataBody.getElementsByTagName("block");
  334. return(xBlock);
  335. }
  336. else if(strSelector.substr(0,1)=="#"){
  337. var sBlockId=strSelector.substr(1);
  338. var xBlock = gXmlBookDataBody.getElementsByTagName("block");
  339. for(let i in xBlock){
  340. let xmlParInfo = xBlock[i].getElementsByTagName("info")[0];
  341. let xmlParData = xBlock[iBlock].getElementsByTagName("data")[0];
  342. let blockId=getNodeText(xmlParInfo,"id");
  343. if(blockId==sBlockId){
  344. var blockObj=new Object();
  345. blockObj.info=xmlParInfo;
  346. blockObj.data=xmlParData;
  347. blockObj.element=xAllWord[wid];
  348. return(blockObj);
  349. }
  350. }
  351. return(null);
  352. }
  353. else{
  354. return(null);
  355. }
  356. }
  357. /*
  358. word("#p34-3-3").val("mean","jiji@en")
  359. add
  360. remove
  361. .draw
  362. doc_word("#p34-3-3").block.info("id")
  363. */
  364. function doc_word(strSelector=""){
  365. if(strSelector==""){
  366. var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
  367. return(xAllWord);
  368. }
  369. else if(strSelector.substr(0,1)=="#"){
  370. var sWordId=strSelector.substr(1);
  371. var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
  372. var wid=getWordIndex(sWordId);
  373. if(xAllWord[wid]){
  374. var wordobj=new Object();
  375. wordobj.wordid=strSelector;
  376. wordobj.element=xAllWord[wid];
  377. wordobj.val=_doc_word_value;
  378. var objBlock=new Object();
  379. objBlock.element=wordobj.element.parentNode.parentNode;
  380. objBlock.info=_block_info;
  381. wordobj.block=objBlock;
  382. return(wordobj);
  383. }
  384. else{
  385. var wordobj=new Object();
  386. wordobj.wordid=strSelector;
  387. wordobj.element=null;
  388. wordobj.val=_doc_word_value;
  389. return(wordobj);
  390. }
  391. }
  392. else{
  393. }
  394. }
  395. function _doc_word_value(key,value=null){
  396. if(this.element){
  397. if(value){
  398. setNodeText(this.element,key,value);
  399. }
  400. else{
  401. var output = getNodeText(this.element,key);
  402. return(output);
  403. }
  404. }
  405. else{
  406. if(!value){
  407. return("");
  408. }
  409. }
  410. }
  411. function _block_info(key,value=null){
  412. if(this.element){
  413. let xmlParInfo = this.element.getElementsByTagName("info")[0];
  414. if(value){
  415. setNodeText(xmlParInfo,key,value);
  416. }
  417. else{
  418. var output = getNodeText(xmlParInfo,key);
  419. return(output);
  420. }
  421. }
  422. else{
  423. if(!value){
  424. return("");
  425. }
  426. }
  427. }
  428. /*
  429. doc_data_tran["guid"][2].begin=2
  430. doc_tran("guid").info("book");
  431. doc_tran("guid").info("author","new author");
  432. doc_tran("guid").text();
  433. doc_tran("guid").sen(1).begin() .end() .text()
  434. doc_tran("guid").split(array);
  435. */
  436. function doc_tran(strSelector="",search_parent=false){
  437. if(strSelector==""){
  438. let xBlock = gXmlBookDataBody.getElementsByTagName("block");
  439. return(xBlock);
  440. }
  441. else if(strSelector.substr(0,1)=="#"){
  442. var sBlockId=strSelector.substr(1);
  443. var xBlock = gXmlBookDataBody.getElementsByTagName("block");
  444. let i=0;
  445. for(i=0; i<xBlock.length;i++){
  446. let xmlParInfo = xBlock[i].getElementsByTagName("info")[0];
  447. let xmlParData = xBlock[i].getElementsByTagName("data")[0];
  448. let blockId;
  449. if(search_parent){
  450. blockId = getNodeText(xmlParInfo,"parent");
  451. }
  452. else{
  453. blockId = getNodeText(xmlParInfo,"id");
  454. }
  455. if(blockId==sBlockId){
  456. var blockObj=new Object();
  457. blockObj._info=xmlParInfo;
  458. blockObj._data=xmlParData;
  459. blockObj.text=_doc_tran_sent;
  460. blockObj.info=_doc_tran_info;
  461. blockObj.list = _doc_tran_sent_list;
  462. return(blockObj);
  463. }
  464. }
  465. }
  466. return(null);
  467. }
  468. function _doc_tran_sent(begin,end,key,value=null){
  469. if(this._data){
  470. xSen=this._data.getElementsByTagName("sen");
  471. for(let iSen = 0; iSen < xSen.length; iSen++){
  472. let aBegin=getNodeText(xSen[iSen],"begin");
  473. let aEnd=getNodeText(xSen[iSen],"end");
  474. if(aBegin==begin && aEnd==end){
  475. if(value){
  476. setNodeText(xSen[iSen],key,value);
  477. console.log("translation changed. key="+key+" value="+value);
  478. if(key=="text"){
  479. ntf_show("修改:"+key+"="+value);
  480. let blockId ;
  481. if(this.info("parent").length>0){
  482. blockId = this.info("parent");
  483. }
  484. else{
  485. blockId = this.info("id");
  486. }
  487. let book = this.info("book");
  488. let para = this.info("paragraph");
  489. update_tran_block_text(blockId);
  490. //准备消息数据 並發送
  491. if(doc_info.sendmsg){
  492. let d=new Date();
  493. let msg_doc_id;
  494. if(doc_info.parent_id!=""){
  495. msg_doc_id=doc_info.parent_id;
  496. }
  497. else{
  498. msg_doc_id=doc_info.doc_id;
  499. }
  500. let objMsg = new Object();
  501. objMsg.id=blockId;
  502. objMsg.begin=aBegin;
  503. objMsg.end = aEnd;
  504. objMsg.text = value;
  505. msg_push(2,JSON.stringify(objMsg),msg_doc_id,d.getTime(),book,para);
  506. }
  507. }
  508. }
  509. else{
  510. var output = getNodeText(xSen[iSen],key);
  511. return(output);
  512. }
  513. }
  514. }
  515. }
  516. else{
  517. if(!value){
  518. return("");
  519. }
  520. }
  521. }
  522. function _doc_tran_sent_list(){
  523. if(this._data){
  524. xSen=this._data.getElementsByTagName("sen");
  525. let output = new Array();
  526. for(let iSen = 0; iSen < xSen.length; iSen++){
  527. let objSent = new Object();
  528. objSent.begin=getNodeText(xSen[iSen],"begin");
  529. objSent.end=getNodeText(xSen[iSen],"end");
  530. objSent.text=getNodeText(xSen[iSen],"text");
  531. output.push(objSent);
  532. }
  533. return(output);
  534. }
  535. else{
  536. return(null);
  537. }
  538. }
  539. function _doc_tran_info(key,value=null){
  540. if(this._info){
  541. if(value){
  542. setNodeText(this._info,key,value);
  543. }
  544. else{
  545. var output = getNodeText(this._info,key);
  546. return(output);
  547. }
  548. }
  549. else{
  550. if(!value){
  551. return("");
  552. }
  553. }
  554. }
  555. //工程文件数据解析
  556. function projectDataParse(xmlBookData){
  557. gXmlBookDataBody = xmlBookData.getElementsByTagName("body")[0];
  558. gXmlBookDataHead= xmlBookData.getElementsByTagName("head")[0];
  559. gXmlBookDataInlineDict= xmlBookData.getElementsByTagName("dict")[0];
  560. gXmlBookDataHeadToc= xmlBookData.getElementsByTagName("toc")[0];
  561. if(xmlBookData.getElementsByTagName("message")){
  562. gXmlBookDataMsg= gXmlBookData.getElementsByTagName("message")[0];
  563. }
  564. else{
  565. gXmlBookDataMsg=null;
  566. }
  567. //解析消息队列
  568. if(gXmlBookDataMsg){
  569. var msgElements=gXmlBookDataMsg.getElementsByTagName("msg");
  570. for(var iMsg=0;iMsg<msgElements.length;iMsg++){
  571. var objMsg = new Object();
  572. objMsg.id=getNodeText(msgElements[iMsg],"id");
  573. objMsg.sender=getNodeText(msgElements[iMsg],"sender");
  574. objMsg.type=getNodeText(msgElements[iMsg],"type");
  575. objMsg.docid=getNodeText(msgElements[iMsg],"docid");
  576. objMsg.time=getNodeText(msgElements[iMsg],"time");
  577. objMsg.read=getNodeText(msgElements[iMsg],"read");
  578. strData=getNodeText(msgElements[iMsg],"data");
  579. try{
  580. objMsg.data=JSON.parse(strData);
  581. gDocMsgList.push(objMsg);//添加到消息列表数组
  582. }
  583. catch(e){
  584. }
  585. }
  586. }
  587. com_XmlAllWordRefresh();
  588. //更新工程资源列表
  589. editor_project_updataProjectInfo();
  590. //解析内联字典数据
  591. ildDataParse(gXmlBookDataInlineDict);
  592. //将内联字典数据导入已经下载的词的列表
  593. dict_inid_ild_word_list();
  594. }
  595. /*
  596. doc_block("album_id",id).each(function(e){
  597. e.info("book")
  598. });
  599. doc_block("album_id",id).info("album_id",newid);
  600. //translate
  601. doc_block("id","dd").data(1).text("new sentenc");
  602. doc_block("id","dd").data(1).begin(23);
  603. doc_block("id","dd").data().break(breakpoint);
  604. doc_block("id","dd").data().each(function(e){});
  605. doc_block().push(element);
  606. doc_block().length();
  607. var block=new Object();
  608. block.info["id"]="";
  609. block.album_id=219;
  610. block.album_guid="af023c";
  611. block.type="wbw";
  612. block.book=23;
  613. block.para=33;
  614. block.author="kosalla#kosalla@_tch;visuddhinanda;";
  615. block.editor="kosalla#kosalla@_tch;"
  616. block._data=xmlElement
  617. _blocks = new Array();
  618. _blocks.push(newblock)
  619. }
  620. */