OSDN Git Service

1ff7254b74abbfbbda3587a61e0b41d223a4ad94
[gikonavigoeson/gikonavi.git] / res / skin / skin30-3G / chie_search.js
1 // \83C\83x\83\93\83g\83n\83\93\83h\83\89\81FonClick
2 // \8aO\95\94\8aÖ\90\94\81FaddAnchor,checkAnchor,tohan
3 // \8aO\95\94\95Ï\90\94\81FanchorHead,browser
4 // \93Á\92¥\81F\83C\83x\83\93\83g\94­\90¶DT\82É\91Î\89\9e\82·\82éDD\89º\82É\81ADL-DT-DD\8d\\91¢\82ð\8dì\90¬\82·\82é\81B
5 //==========CSS\82Ì\8fo\97Í
6 var nCSS='';
7 nCSS+='#foundResult{position:absolute;top:expression(body.scrollTop+25);right:18px;padding:2px 5px;z-index:6;background-color:white;border:1px solid #999}';
8 nCSS+='.refResult{margin:0.5em 0.3em; border:1px solid #666;padding-right:0px}';
9 nCSS+='.refResult{border-top:none}';
10 nCSS+='.refResult dt{margin-right:0px;}';
11 nCSS+='.refResult dd{margin-left:0.8em;}';
12 document.write('<style type="text/css">'+nCSS+'</style>\n');
13 //==========\8c\9f\8dõ\82É\82æ\82é\90F\8ew\92è\81i16\90i\90\94\96\94\82ÍWeb\8c`\8e®\82Ì\90F\96¼\82Å\8ew\92è\81B\82¢\82­\82Â\82Å\82à\89Â\81j
14 var foundColor = new Array("#ffdfee","#eeffdf","#ffeedf","#dfffee","#eedfff","#ffffe1");
15 var nCSS='';
16 for(var css=0;css<foundColor.length;css++){
17  nCSS+='#COLOR'+css+" a{border-color:"+foundColor[css]+"}";
18  nCSS+='#COLOR'+css+" a:hover{border-color:red}";
19 }
20 document.write('<style type="text/css">'+nCSS+'</style>\n');
21 //==========\83O\83\8d\81[\83o\83\8b\95Ï\90\94
22 var dts=document.getElementsByTagName('DT');
23 var dds=document.getElementsByTagName('DD');
24 var foundResult;
25 //==========\96¼\91O\81EID\8c\9f\8dõ\93\99
26 // \96¼\91O\81EID\82Ì\8c\9f\8dõ\81E\8dí\8f\9c
27 function search(obj){
28  var singleColor=event.altKey;
29  var tag =obj.tagName;
30  var objs=document.getElementsByTagName(tag);
31  if(tag!="SPAN"){var reg=obj.innerText;var target="objs[i].innerText"} //\96¼\91O\81E\83g\83\8a\83b\83v
32  else           {var reg=getID(obj);   var target="getID(objs[i])"   } //ID
33  var decoy=obj.parentElement ? obj.parentElement : obj;
34  if(!decoy.id.match(/^COLOR/)){
35   // \83J\83\89\81[\91I\91ð
36   var c = singleColor ? 0 : selectColor();
37   if  (c=="restart"){c=0;singleColor=true}
38   else if(c=="exit"){return;}
39   // \8c\9f\8dõ
40   var found=new Array; var l=objs.length;
41   for(var i=l;i--;){
42    var dt=objs[i].parentElement;
43    if(eval(target)==reg){activate(dt,c);found.unshift(dt.firstChild.innerText);}
44    else if(singleColor) {deactivate(dt)}
45   }
46   foundReturn(found);
47  }else{
48   clearResult(obj);return;
49  }
50 }
51 // ID\95\8e\9a\97ñ\82Ì\92\8a\8fo
52 var regID=new RegExp("ID:(.*)$");
53 function getID(obj){
54  if(regID.test(obj.innerText)){return(RegExp.$1)}else{return(false)}
55 }
56 // \90F\90Ý\92è
57 function activate(obj,c){
58  var color=foundColor[c];
59  obj.rev=obj.style.backgroundColor;
60  obj.style.backgroundColor=color;
61  obj.id="COLOR"+c; // \93¯\88êid\82ª\95¡\90\94\90\82\82é\82ªByName\82Å\82Ídt\82Ìname\82©\82ç\8eæ\93¾\82Å\82«\82È\82¢\82½\82ß\82â\82Þ\82È\82µ
62 }
63 // \90F\95\9c\8bA
64 function deactivate(obj){if(!obj){return}
65  obj.style.backgroundColor=obj.rev;
66  if(obj.id!="sizeinfo"){obj.removeAttribute("id");}
67  obj.removeAttribute("rev");
68  obj.removeAttribute("title");
69 }
70 // \83J\83\89\81[\91I\91ð
71 function selectColor(){
72  var c=0;
73  while(document.getElementById("COLOR"+c)){
74   c++;
75   if(!foundColor[c]){if(confirm("\90F\82ð\8f\89\8aú\89»\82µ\82Ü\82·\82©\81H")){return("restart")}else{return("exit")}}
76  }
77  return(c);
78 }
79 // \8c\8b\89Ê\95\\8e¦
80 function foundReturn(found){
81  if(!foundResult){document.body.insertAdjacentHTML('afterBegin','<div id="foundResult"></div>');foundResult=document.getElementById("foundResult");}
82  //dt\82Ìtitle\82É
83  for(var i=found.length;i--;){dt=getDTfromAnc(found[i]);dt.title=found.join(" ");}
84  //foundResult\82É
85  var buttons='<input type="button" value="CLR" onclick="clearResult(this)" title="Alt\89\9f\89º\8e\9e\n\92\85\90F\83\8c\83X\91S\82Ä"><input type="button" value="DEL" onclick="clearResult(this)" title="Alt\89\9f\89º\8e\9e\n\92\85\90F\83\8c\83X\91S\82Ä">';
86  if(found.length>=20 && confirm("20\88È\8fã\82 \82é\82¯\82Ç\95\\8e¦\82·\82é\81H")==false){
87   foundResult.innerHTML=buttons;        foundResult.title=found.join(" ");
88  }else{
89   for(var i=0;i<found.length;i++){found[i] = addAnchor(found[i],found[i])}
90   foundResult.innerHTML=found.join(" ")+buttons;
91  }
92  
93 }
94 // \8c\8b\89Ê\8fÁ\8b\8e\81A\8c\8b\89Ê\8dí\8f\9c
95 function clearResult(obj){
96  var fromObj=obj.parentElement;
97  var singleColor=event.altKey;
98  var result=new Array();var arrayElement; var numbers=fromObj.title ? fromObj.title : fromObj.innerText;
99  if(singleColor){result=dts;               arrayElement="result[i]";}
100  else           {result=numbers.split(" ");arrayElement="getDTfromAnc(result[i])";}
101  var l=result.length;
102  if(!result[0]){
103   /* \8c\9f\8dõ\8c\8b\89Ê\83[\83\8d\82Å\82àresult\82ªnull\82É\82È\82ç\82È\82¢\91Î\8dô */
104  }else if(event.srcElement.value!="DEL"){
105   for(var i=l;i--;){
106    var dt=eval(arrayElement);
107    deactivate(dt);
108   }
109  }else{
110   for(var i=l;i--;){
111    var dt=eval(arrayElement); var dd=dt.nextSibling;
112     //Live\8b@\94\\92Ç\89Á - \93§\96¾\82 \82Ú\81`\82ñ
113    if(browser=="Live2ch"){location.href='func:ABONECLEAR?'+dt.firstChild.innerText;}
114    dt.removeNode(true); dd.removeNode(true);
115   }
116  }
117  if(foundResult){foundResult.removeNode(true);foundResult="";}
118 }
119
120 //==========\92P\8cê\8c\9f\8dõ
121 function findIt(word){
122  if(!word){
123   var word = prompt("\8c\9f\8dõ\82·\82é\95\8e\9a\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81B","")
124   word = unescape(escape(word).split("%00")[0]); //IE5\82Ì\83o\83O\91Î\8dô
125  }
126  if(!word || word=="null"){return}
127  // \83J\83\89\81[\91I\91ð
128  var singleColor=event.altKey;
129  var c = singleColor ? 0 : selectColor();
130  if  (c=="restart"){c=0;singleColor=true}
131  else if(c=="exit"){return;}
132  // \8c\9f\8dõ
133  var found=new Array; var l=dds.length;
134  var bodyText=document.body.createTextRange();
135  for(var i=l;i--;){
136   var dt=dts[i]; var dd=dds[i];
137   bodyText.moveToElementText(dt);  var checkDT=bodyText.findText(word,0);
138   bodyText.moveToElementText(dd);  var checkDD=bodyText.findText(word,0);
139   if(checkDT || checkDD){activate(dt,c);found.unshift(dt.firstChild.innerText)}
140   else if(singleColor)  {deactivate(dt);}
141  }
142  if(found){foundReturn(found)}
143 }
144
145 //==========\8bt\8eQ\8fÆ
146 function searchRef(obj){
147  if(obj.name!='referred'){
148   var num=obj.firstChild.innerText;
149   var l=dds.length;
150   var found = new Array;
151   for(var i=l;i--;){
152    //\82»\82Ì\83\8c\83X\82æ\82è\91O\82Ü\82Å\82¢\82Á\82½\82ç\8fI\97¹
153    if(num==dds[i].previousSibling.firstChild.innerText){break}
154    //\8bt\8eQ\8fÆ\93à\82ÌDD\82È\82ç\89ñ\94ð
155    if(dds[i].parentElement.className=="refResult"){continue}
156    //\8bt\8eQ\8fÆ\82Ì\97L\96³\82ð\8am\94F\82µ\82Ä\81ADD\82Ì\97p\88Ó
157    var exist=false;
158    var dd=dds[i].cloneNode(true);
159    if(dd.lastChild){
160     if(dd.lastChild.tagName=="DL"){dd.lastChild.removeNode(true);} //\8bt\8eQ\8fÆ\82Ì\8f\9c\8b\8e
161     if(dd.lastChild.name){dd.lastChild.removeNode(true);} // LABELNUMBER\82ª\82È\82¢\82à\82Ì\82É\8cW\82é\95s\97v\83A\83\93\83J\81[\82Ì\8f\9c\8b\8e
162    }
163    var ddAnc=dd.getElementsByTagName("A");
164    for(var j=ddAnc.length;j--;){
165     var a=ddAnc[j];
166     if(checkAnchor(a.href)!=1){continue}
167     var anc=tohan(a.innerText.replace(/[>\81\84]/g,""));
168     if(num==anc.replace(/\D/g,"")){exist=true;break}
169    }
170    //\91\8dÝ\82µ\82½\82çDT\82ð\97p\88Ó\82µ\82Ä\81A\94z\97ñ\82É\8ai\94[
171    if(exist){
172     var dt=dds[i].previousSibling.cloneNode(true);
173     found.unshift(dt.outerHTML.replace(/name=.*?>/,">")+dd.outerHTML.replace(/<a name=.*>/i,""));
174     obj.name="referred";
175    }
176   }
177   if(found.length){returnRef(obj.nextSibling,found)}
178  }else{
179   obj.nextSibling.lastChild.removeNode(true);
180   obj.name='';
181  }
182 }
183 // \8bt\8eQ\8fÆ\8c\8b\89Ê\95\\8e¦
184 function returnRef(dd,found){
185  if(found.length<1 || found.length>=20 && confirm("20\88È\8fã\82 \82é\82¯\82Ç\95\\8e¦\82·\82é\81H")==false){return false;}
186  dd.insertAdjacentHTML('beforeEnd','<dl class="refResult">'+found.join("")+'</dl>')
187 }
188
189 // \83N\83\8a\83b\83v\83{\81[\83h\82É\83R\83s\81[
190 function copyText(target){
191  var num=event.srcElement.parentElement.name;
192  var obj=getDTfromAnc(num);
193  var textarea=document.createElement("TEXTAREA");
194  var message=obj.nextSibling.innerText.replace(/\s(\r\n|$)/g,"\n");
195  if     (target=="res") {textarea.value=obj.firstChild.innerText+" \81F"+obj.childNodes[1].innerText+" \81F"+obj.lastChild.innerText+"\n"+message;}
196  else if(target=="name"){textarea.value=obj.childNodes[1].innerText+"\n";}
197  else if(target=="id")  {textarea.value="ID:"+(obj.lastChild.innerText.split(/ID:/))[1]+"\n";}
198  var copyText=textarea.createTextRange();
199  copyText.execCommand("Copy")
200  event.srcElement.parentElement.removeNode(true);
201 }
202 // \83A\83\93\83J\81[\82©\82çDT\82ð\93Á\92è
203 function getDTfromAnc(num){
204  var anc=document.anchors(anchorHead+num);
205  if(!anc){return("")} //LABELNUMBER\91Î\89\9e\82Ì\82 \82Ú\81`\82ñ\8eá\82µ\82­\82Í\96¢\8fo\94Ô\8d\86\82È\82ç\8fI\97¹
206  var obj=anc.parentElement; //LABELNUMBER\91Î\89\9e\82Ì\82à\82Ì
207  if(obj.tagName!="DT"){ //LABELNUMBER\94ñ\91Î\89\9e\82Ì\82à\82Ì
208   if(num==1){if(anc){obj=anc.nextSibling}                           else{return("")}}
209   else      {if(!anc.nextSibling){obj=anc.parentElement.nextSibling}else{return("")}}
210  }
211  return(obj);
212 }