PageSourceSearch

https://olivialan.github.io/putian/group/WebContent/js/group_zhan.js

js olivialan.github.io collected 2026-10-03 09:43:01 UTC 57,994 bytes, 2,060 lines download raw bytes

1var PList = [{
2        id: "P0",
3        name: "黄德锋",
4        photo: "",
5        information: "黄德锋"
6    },
7    {
8        id: "P1",
9        name: "陈金章",
10        photo: "",
11        information: ""
12    },
13    {
14        id: "P2",
15        name: "黄金雄",
16        photo: "",
17        information: ""
18    },
19    {
20        id: "P3",
21        name: "朱金财",
22        photo: "",
23        information: ""
24    },
25    {
26        id: "P4",
27        name: "李爱金",
28        photo: "",
29        information: ""
30    },
31    {
32        id: "P5",
33        name: "李金圆",
34        photo: "",
35        information: ""
36    },
37    {
38        id: "P6",
39        name: "蔡亚彬",
40        photo: "",
41        information: ""
42    },
43    {
44        id: "P7",
45        name: "林国彪",
46        photo: "",
47        information: ""
48    },
49    {
50        id: "P8",
51        name: "林国雄",
52        photo: "",
53        information: ""
54    },
55    {
56        id: "P9",
57        name: "林永贵",
58        photo: "",
59        information: ""
60    },
61    {
62        id: "P10",
63        name: "吴剑煌",
64        photo: "",
65        information: ""
66    },
67    {
68        id: "P11",
69        name: "吴庆元",
70        photo: "",
71        information: ""
72    },
73    {
74        id: "P12",
75        name: "杨美先",
76        photo: "",
77        information: ""
78    },
79    {
80        id: "P13",
81        name: "陈建新",
82        photo: "",
83        information: ""
84    }, {
85        id: "P14",
86        name: "游秀琴",
87        photo: "",
88        information: ""
89    },
90    {
91        id: "P15",
92        name: "杨春法",
93        photo: "",
94        information: ""
95    },
96    {
97        id: "P16",
98        name: "陈建萍",
99        photo: "",
100        information: ""
101    },
102    {
103        id: "P17",
104        name: "陈金秀",
105        photo: "",
106        information: ""
107    },
108    {
109        id: "P18",
110        name: "陈志强",
111        photo: "",
112        information: ""
113    },
114    {
115        id: "P19",
116        name: "詹国栋",
117        photo: "",
118        information: ""
119    },
120    {
121        id: "P20",
122        name: "詹国连",
123        photo: "",
124        information: ""
125    },
126    {
127        id: "P21",
128        name: "詹国团",
129        photo: "",
130        information: ""
131    },
132    {
133        id: "P22",
134        name: "詹国营",
135        photo: "",
136        information: ""
137    },
138    {
139        id: "P23",
140        name: "詹建昇",
141        photo: "",
142        information: ""
143    },
144    {
145        id: "P24",
146        name: "詹阳斌",
147        photo: "",
148        information: ""
149    },
150    {
151        id: "P25",
152        name: "詹阳程",
153        photo: "",
154        information: ""
155    },
156    {
157        id: "P26",
158        name: "詹玉鹏",
159        photo: "",
160        information: ""
161    },
162    {
163        id: "P27",
164        name: "占阳珊",
165        photo: "",
166        information: ""
167    },
168    {
169        id: "P28",
170        name: "卓立强",
171        photo: "",
172        information: ""
173    }
174];
175var CList = [{
176        id: "C0",
177        name: "北京五洲医院投资有限公司",
178        m: "A",
179        information: ""
180    },
181    {
182        id: "C1",
183        name: "深圳国丹健康医疗有限公司",
184        m: "A",
185        information: ""
186    },
187    {
188        id: "C2",
189        name: "深圳希思控股有限公司",
190        m: "A",
191        information: ""
192    },
193    {
194        id: "C3",
195        name: "福建欧亚汽车贸易有限公司",
196        m: "A",
197        information: ""
198    },
199    {
200        id: "C4",
201        name: "祥云医疗投资股份有限公司",
202        m: "A",
203        information: ""
204    },
205    {
206        id: "C5",
207        name: "无锡坤如玛丽医院集团有限公司",
208        m: "A",
209        information: ""
210    }, {
211        id: "C6",
212        name: "玛丽(上海)投资有限公司",
213        m: "A",
214        information: ""
215    }, {
216        id: "C7",
217        name: "上海万众医疗投资股份有限公司",
218        m: "A",
219        information: ""
220    }, {
221        id: "C8",
222        name: "上海盛康医院投资管理有限公司",
223        m: "A",
224        information: ""
225    }, {
226        id: "C9",
227        name: "美莱医学美容医院有限公司",
228        m: "A",
229        information: ""
230    }, {
231        id: "C10",
232        name: "上海美莱投资管理有限公司",
233        m: "A",
234        information: ""
235    }, {
236        id: "C11",
237        name: "厦门华医馆投资有限公司",
238        m: "A",
239        information: ""
240    }, {
241        id: "C12",
242        name: "宁夏爱德华投资有限公司",
243        m: "A",
244        information: ""
245    },
246    {
247        id: "C14",
248        name: "深圳健安医院",
249        m: "B",
250        information: ""
251    }, {
252        id: "C15",
253        name: "深圳罗岗医院",
254        m: "B",
255        information: ""
256    }, {
257        id: "C16",
258        name: "深圳仁康医院",
259        m: "B",
260        information: ""
261    }, {
262        id: "C17",
263        name: "深圳雪象医院",
264        m: "B",
265        information: ""
266    }, {
267        id: "C18",
268        name: "北京京城皮肤病医院",
269        m: "B",
270        information: ""
271    }, {
272        id: "C19",
273        name: "青岛妇婴医院",
274        m: "B",
275        information: ""
276    }, {
277        id: "C20",
278        name: "青岛玛丽妇产医院",
279        m: "B",
280        information: ""
281    }, {
282        id: "C21",
283        name: "无锡玛丽亚医院",
284        m: "B",
285        information: ""
286    }, {
287        id: "C22",
288        name: "上海万众医院",
289        m: "B",
290        information: ""
291    }, {
292        id: "C23",
293        name: "深圳美莱美容医院",
294        m: "B",
295        information: ""
296    }, {
297        id: "C24",
298        name: "重庆华美美莱整形医院",
299        m: "B",
300        information: ""
301    }, {
302        id: "C25",
303        name: "昆明华美美莱整形医院",
304        m: "B",
305        information: ""
306    }, {
307        id: "C26",
308        name: "广州美莱投资管理有限公司",
309        m: "A",
310        information: ""
311    }, {
312        id: "C27",
313        name: "万州华美紫馨整形美容医院",
314        m: "B",
315        information: ""
316    }, {
317        id: "C28",
318        name: "重庆爱德华医院",
319        m: "B",
320        information: ""
321    }, {
322        id: "C29",
323        name: "宁夏西京妇产医院",
324        m: "B",
325        information: ""
326    }, {
327        id: "C30",
328        name: "重庆五洲女子医院",
329        m: "B",
330        information: ""
331    }, {
332        id: "C32",
333        name: "江苏淮安中山医院",
334        m: "B",
335        information: ""
336    }, {
337        id: "C33",
338        name: "北京五洲女子医院",
339        m: "B",
340        information: ""
341    }, {
342        id: "C34",
343        name: "郑州华山医院",
344        m: "B",
345        information: ""
346    }, {
347        id: "C35",
348        name: "中山国丹中医院",
349        m: "B",
350        information: ""
351    }, {
352        id: "C36",
353        name: "嘉兴曙光中西医结合医院",
354        m: "B",
355        information: ""
356    }, {
357        id: "C37",
358        name: "上海阿波罗男子医院",
359        m: "B",
360        information: ""
361    }, {
362        id: "C38",
363        name: "上海真爱女子医院",
364        m: "B",
365        information: ""
366    }, {
367        id: "C39",
368        name: "北京玛丽妇婴医院",
369        m: "B",
370        information: ""
371    }, {
372        id: "C40",
373        name: "济南妇科医院",
374        m: "B",
375        information: ""
376    }, {
377        id: "C41",
378        name: "杭州阿波罗男子医院",
379        m: "B",
380        information: ""
381    }, {
382        id: "C42",
383        name: "江苏施尔美整形美容医院",
384        m: "B",
385        information: ""
386    }, {
387        id: "C43",
388        name: "嘉兴新安国际医院",
389        m: "B",
390        information: ""
391    }, {
392        id: "C44",
393        name: "北京北海医院",
394        m: "B",
395        information: ""
396    }, {
397        id: "C45",
398        name: "福州鼓楼医院",
399        m: "B",
400        information: ""
401    }, {
402        id: "C46",
403        name: "天津华厦医院",
404        m: "B",
405        information: ""
406    }, {
407        id: "C47",
408        name: "深圳福华中西医结合医院",
409        m: "B",
410        information: ""
411    }, {
412        id: "C48",
413        name: "哈尔滨市生殖保健中心院",
414        m: "B",
415        information: ""
416    }, {
417        id: "C49",
418        name: "黑龙江玛丽亚妇产医院",
419        m: "B",
420        information: ""
421    }, {
422        id: "C50",
423        name: "济南美莱整形医院",
424        m: "B",
425        information: ""
426    }, {
427        id: "C51",
428        name: "上海华美美莱整形医院",
429        m: "B",
430        information: ""
431    }, {
432        id: "C52",
433        name: "南京阳光肿瘤医院",
434        m: "B",
435        information: ""
436    }, {
437        id: "C53",
438        name: "泉州坤如玛丽医院",
439        m: "B",
440        information: ""
441    }, {
442        id: "C54",
443        name: "宁夏西京妇产医院",
444        m: "B",
445        information: ""
446    }, {
447        id: "C55",
448        name: "上海玫瑰女子医院",
449        m: "B",
450        information: ""
451    }, {
452        id: "C56",
453        name: "珠海九龙医院",
454        m: "B",
455        information: ""
456    }, {
457        id: "C57",
458        name: "上海华衡投资(集团)有限公司",
459        m: "A",
460        information: ""
461    }, {
462        id: "C58",
463        name: "新加坡国际医疗产业管理集团有限公司",
464        m: "A",
465        information: ""
466    },
467    {
468        id: "C59",
469        name: "济南乳腺医院",
470        m: "B",
471        information: ""
472    },
473
474];
475var CCList = [{
476        c1: "C1",
477        to: ">",
478        c2: "C2",
479        m: "B"
480    }, {
481        c1: "C5",
482        to: ">",
483        c2: "C6",
484        m: "B"
485    }, {
486        c1: "C9",
487        to: ">",
488        c2: "C10",
489        m: "B"
490    }, {
491        c1: "C1",
492        to: "=",
493        c2: "C14",
494        m: "A"
495    }, {
496        c1: "C1",
497        to: "=",
498        c2: "C15",
499        m: "A"
500    }, {
501        c1: "C1",
502        to: "=",
503        c2: "C16",
504        m: "A"
505    }, {
506        c1: "C1",
507        to: "=",
508        c2: "C17",
509        m: "A"
510    }, {
511        c1: "C3",
512        to: "=",
513        c2: "C18",
514        m: "A"
515    }, {
516        c1: "C4",
517        to: "=",
518        c2: "C18",
519        m: "A"
520    }, {
521        c1: "C5",
522        to: "=",
523        c2: "C19",
524        m: "A"
525    }, {
526        c1: "C5",
527        to: "=",
528        c2: "C20",
529        m: "A"
530    }, {
531        c1: "C6",
532        to: "=",
533        c2: "C21",
534        m: "A"
535    }, {
536        c1: "C7",
537        to: "=",
538        c2: "C22",
539        m: "A"
540    }, {
541        c1: "C9",
542        to: "=",
543        c2: "C23",
544        m: "A"
545    }, {
546        c1: "C9",
547        to: "=",
548        c2: "C24",
549        m: "A"
550    }, {
551        c1: "C9",
552        to: "=",
553        c2: "C25",
554        m: "A"
555    }, {
556        c1: "C11",
557        to: "=",
558        c2: "C24",
559        m: "A"
560    }, {
561        c1: "C26",
562        to: "=",
563        c2: "C24",
564        m: "A"
565    }, {
566        c1: "C26",
567        to: "=",
568        c2: "C25",
569        m: "A"
570    }, {
571        c1: "C27",
572        to: "=",
573        c2: "C10",
574        m: "A"
575    }, {
576        c1: "C8",
577        to: "=",
578        c2: "C28",
579        m: "A"
580    }, {
581        c1: "C12",
582        to: "=",
583        c2: "C29",
584        m: "A"
585    }, {
586        c1: "C57",
587        to: "=",
588        c2: "C43",
589        m: "A"
590    }, {
591        c1: "C58",
592        to: "=",
593        c2: "C43",
594        m: "A"
595    },
596    {
597        c1: "C33",
598        to: "=",
599        c2: "C0",
600        m: "A"
601    },
602    {
603        c1: "C30",
604        to: "=",
605        c2: "C0",
606        m: "A"
607    }
608];
609var CPList = [{
610        c: "C0",
611        to: "=",
612        p: "P0",
613        m: "A"
614    }, {
615        c: "C0",
616        to: "=",
617        p: "P2",
618        m: "A"
619    }, {
620        c: "C2",
621        to: "=",
622        p: "P4",
623        m: "A"
624    }, {
625        c: "C2",
626        to: "=",
627        p: "P5",
628        m: "A"
629    }, {
630        c: "C3",
631        to: "=",
632        p: "P11",
633        m: "A"
634    }, {
635        c: "C4",
636        to: "=",
637        p: "P12",
638        m: "A"
639    }, {
640        c: "C5",
641        to: "=",
642        p: "P16",
643        m: "A"
644    }, {
645        c: "C6",
646        to: "=",
647        p: "P16",
648        m: "A"
649    }, {
650        c: "C6",
651        to: "=",
652        p: "P28",
653        m: "A"
654    }, {
655        c: "C7",
656        to: "=",
657        p: "P28",
658        m: "A"
659    }, {
660        c: "C7",
661        to: "=",
662        p: "P27",
663        m: "A"
664    }, {
665        c: "C7",
666        to: "=",
667        p: "P24",
668        m: "A"
669    }, {
670        c: "C7",
671        to: "=",
672        p: "P25",
673        m: "A"
674    }, {
675        c: "C8",
676        to: "=",
677        p: "P6",
678        m: "A"
679    }, {
680        c: "C9",
681        to: "=",
682        p: "P17",
683        m: "A"
684    }, {
685        c: "C10",
686        to: "=",
687        p: "P17",
688        m: "A"
689    }, {
690        c: "C10",
691        to: "=",
692        p: "P23",
693        m: "A"
694    }, {
695        c: "C11",
696        to: "=",
697        p: "P23",
698        m: "A"
699    }, {
700        c: "C11",
701        to: "=",
702        p: "P19",
703        m: "A"
704    }, {
705        c: "C12",
706        to: "=",
707        p: "P17",
708        m: "A"
709    }, {
710        c: "C32",
711        to: "=",
712        p: "P0",
713        m: "A"
714    }, {
715        c: "C33",
716        to: "=",
717        p: "P0",
718        m: "A"
719    },
720    {
721        c: "C30",
722        to: "=",
723        p: "P2",
724        m: "A"
725    }, {
726        c: "C33",
727        to: "=",
728        p: "P2",
729        m: "A"
730    }, {
731        c: "C32",
732        to: "=",
733        p: "P3",
734        m: "A"
735    }, {
736        c: "C34",
737        to: "=",
738        p: "P3",
739        m: "A"
740    }, {
741        c: "C15",
742        to: "=",
743        p: "P4",
744        m: "A"
745    }, {
746        c: "C16",
747        to: "=",
748        p: "P4",
749        m: "A"
750    }, {
751        c: "C17",
752        to: "=",
753        p: "P4",
754        m: "A"
755    }, {
756        c: "C35",
757        to: "=",
758        p: "P4",
759        m: "A"
760    }, {
761        c: "C14",
762        to: "=",
763        p: "P5",
764        m: "A"
765    }, {
766        c: "C15",
767        to: "=",
768        p: "P5",
769        m: "A"
770    }, {
771        c: "C16",
772        to: "=",
773        p: "P5",
774        m: "A"
775    }, {
776        c: "C17",
777        to: "=",
778        p: "P5",
779        m: "A"
780    }, {
781        c: "C35",
782        to: "=",
783        p: "P5",
784        m: "A"
785    }, {
786        c: "C32",
787        to: "=",
788        p: "P6",
789        m: "A"
790    }, {
791        c: "C36",
792        to: "=",
793        p: "P6",
794        m: "A"
795    }, {
796        c: "C36",
797        to: "=",
798        p: "P7",
799        m: "A"
800    }, {
801        c: "C37",
802        to: "=",
803        p: "P7",
804        m: "A"
805    }, {
806        c: "C38",
807        to: "=",
808        p: "P7",
809        m: "A"
810    }, {
811        c: "C39",
812        to: "=",
813        p: "P9",
814        m: "A"
815    }, {
816        c: "C40",
817        to: "=",
818        p: "P9",
819        m: "A"
820    }, {
821        c: "C37",
822        to: "=",
823        p: "P10",
824        m: "A"
825    }, {
826        c: "C41",
827        to: "=",
828        p: "P10",
829        m: "A"
830    }, {
831        c: "C42",
832        to: "=",
833        p: "P8",
834        m: "A"
835    }, {
836        c: "C42",
837        to: "=",
838        p: "P20",
839        m: "A"
840    }, {
841        c: "C43",
842        to: "=",
843        p: "P20",
844        m: "A"
845    }, {
846        c: "C43",
847        to: "=",
848        p: "P21",
849        m: "A"
850    }, {
851        c: "C44",
852        to: "=",
853        p: "P20",
854        m: "A"
855    }, {
856        c: "C45",
857        to: "=",
858        p: "P20",
859        m: "A"
860    }, {
861        c: "C44",
862        to: "=",
863        p: "P24",
864        m: "A"
865    }, {
866        c: "C46",
867        to: "=",
868        p: "P25",
869        m: "A"
870    }, {
871        c: "C47",
872        to: "=",
873        p: "P25",
874        m: "A"
875    }, {
876        c: "C48",
877        to: "=",
878        p: "P26",
879        m: "A"
880    }, {
881        c: "C49",
882        to: "=",
883        p: "P26",
884        m: "A"
885    }, {
886        c: "C19",
887        to: "=",
888        p: "P26",
889        m: "A"
890    }, {
891        c: "C19",
892        to: "=",
893        p: "P16",
894        m: "A"
895    }, {
896        c: "C20",
897        to: "=",
898        p: "P16",
899        m: "A"
900    }, {
901        c: "C21",
902        to: "=",
903        p: "P16",
904        m: "A"
905    }, {
906        c: "C22",
907        to: "=",
908        p: "P28",
909        m: "A"
910    }, {
911        c: "C22",
912        to: "=",
913        p: "P27",
914        m: "A"
915    }, {
916        c: "C48",
917        to: "=",
918        p: "P19",
919        m: "A"
920    }, {
921        c: "C49",
922        to: "=",
923        p: "P19",
924        m: "A"
925    }, {
926        c: "C50",
927        to: "=",
928        p: "P17",
929        m: "A"
930    }, {
931        c: "C51",
932        to: "=",
933        p: "P17",
934        m: "A"
935    }, {
936        c: "C52",
937        to: "=",
938        p: "P1",
939        m: "A"
940    }, {
941        c: "C53",
942        to: "=",
943        p: "P13",
944        m: "A"
945    }, {
946        c: "C59",
947        to: "=",
948        p: "P13",
949        m: "A"
950    },
951    {
952        c: "C37",
953        to: "=",
954        p: "P18",
955        m: "A"
956    }, {
957        c: "C54",
958        to: "=",
959        p: "P18",
960        m: "A"
961    }, {
962        c: "C55",
963        to: "=",
964        p: "P18",
965        m: "A"
966    }, {
967        c: "C28",
968        to: "=",
969        p: "P15",
970        m: "A"
971    }, {
972        c: "C36",
973        to: "=",
974        p: "P15",
975        m: "A"
976    }, {
977        c: "C56",
978        to: "=",
979        p: "P15",
980        m: "A"
981    }, {
982        c: "C57",
983        to: "=",
984        p: "P14",
985        m: "A"
986    }, {
987        c: "C57",
988        to: "=",
989        p: "P20",
990        m: "A"
991    }, {
992        c: "C57",
993        to: "=",
994        p: "P21",
995        m: "A"
996    }, {
997        c: "C57",
998        to: "=",
999        p: "P22",
1000        m: "A"
1001    }, {
1002        c: "C43",
1003        to: "=",
1004        p: "P22",
1005        m: "A"
1006    }, {
1007        c: "C58",
1008        to: "=",
1009        p: "P21",
1010        m: "A"
1011    }, {
1012        c: "C25",
1013        to: "=",
1014        p: "P23",
1015        m: "A"
1016    }, {
1017        c: "C51",
1018        to: "=",
1019        p: "P23",
1020        m: "A"
1021    }
1022];
1023
1024
1025var PPList = [{
1026    p1: "P21",
1027    to: "=",
1028    p2: "P26",
1029    m: "A"
1030}, {
1031    p1: "P21",
1032    to: "=",
1033    p2: "P24",
1034    m: "A"
1035}, {
1036    p1: "P21",
1037    to: "=",
1038    p2: "P20",
1039    m: "A"
1040}, {
1041    p1: "P21",
1042    to: "=",
1043    p2: "P22",
1044    m: "A"
1045}, {
1046    p1: "P20",
1047    to: "=",
1048    p2: "P22",
1049    m: "A"
1050}, {
1051    p1: "P21",
1052    to: "=",
1053    p2: "P24",
1054    m: "A"
1055}, {
1056    p1: "P21",
1057    to: "=",
1058    p2: "P25",
1059    m: "A"
1060}, {
1061    p1: "P24",
1062    to: "=",
1063    p2: "P25",
1064    m: "A"
1065}, {
1066    p1: "P26",
1067    to: "=",
1068    p2: "P16",
1069    m: "A"
1070}, {
1071    p1: "P21",
1072    to: "=",
1073    p2: "P8",
1074    m: "A"
1075}, {
1076    p1: "P11",
1077    to: "=",
1078    p2: "P12",
1079    m: "A"
1080}, {
1081    p1: "P17",
1082    to: "=",
1083    p2: "P1",
1084    m: "A"
1085}, {
1086    p1: "P17",
1087    to: "=",
1088    p2: "P13",
1089    m: "A"
1090}, {
1091    p1: "P24",
1092    to: "=",
1093    p2: "P26",
1094    m: "A"
1095}, {
1096    p1: "P24",
1097    to: "=",
1098    p2: "P27",
1099    m: "A"
1100}, {
1101    p1: "P26",
1102    to: "=",
1103    p2: "P27",
1104    m: "A"
1105}
1106];
1107var PS = [
1108    "P15", "P0", "P2", "P3", "P4", "P5", "P6", "P9",
1109    "P7", "P10", "P18", "P11", "P12", "P14", "P8", "P20", "P22", "P21", "P24", "P25", "P26", "P27", "P16",
1110    "P28", "P23", "P19",
1111    "P13", "P17", "P1",
1112];
1113
1114var CS = ["C56", "C32", "C34", "C35", "C36",
1115    "C38", "C39", "C40", "C41",
1116
1117    "C37", "C54", "C55",
1118    "C14", "C15", "C16", "C18", "C33", "C17", "C28", "C30",
1119    "TOP_SPACE", "C0", "C1", "C2", "C8",
1120    "C3", "C4", "C57", "C58", "C10", "C7",
1121    "C9", "C26", "C5", "C6", "C11", "C12", "TOP_SPACE",
1122    "C43", "C27", "C22", "C23", "C24", "C25",
1123    "C19",
1124    "C20", "C21", "C53", "C29", "C42", "C44", "C45", "C46", "C47", "C48", "C49",
1125    "C50", "C51", "C52", "C59",
1126];
1127var BGColor = "#252525";
1128var PPMColor = [{
1129        "m": "A",
1130        "name": "亲属",
1131        "color": "#ff9966"
1132    }
1133];
1134var CPColor = "#4d4d4d";
1135var WeakenColor = "#666";
1136var CCMColor = [{
1137    "m": "A",
1138    "name": "企业投资医院",
1139    "color": "#ffff99"
1140}, {
1141    "m": "B",
1142    "name": "持股关系",
1143    "color": "#D0D0D0"
1144}];
1145var CMColor = [{
1146    "m": "B",
1147    "name": "莆田系医院",
1148    "color": "#93bbd5"
1149}, {
1150    "m": "A",
1151    "name": "背后企业/集团",
1152    "color": "#cbcacc"
1153}];
1154document
1155    .write("<div style='background-color:" +
1156        BGColor +
1157        ";width:100%;'><div id='mainDiv'><canvas id='mainCanvas'></canvas></div></div>");
1158var WIDTH = 1240;
1159var HEIGHT = 715;
1160var time = 0;
1161var mouseX = 0;
1162var mouseY = 0;
1163var stagePressed = true;
1164var clickObject = null;
1165var startText = "【莆田医网】/";
1166$(document)
1167    .ready(
1168        function() {
1169            $("#mainDiv").css({
1170                "width": "100%"
1171            });
1172            $("#mainCanvas").attr("width", WIDTH);
1173            $("#mainCanvas").attr("height", HEIGHT);
1174            $("#mainCanvas").css({
1175                "display": "block",
1176                "margin-left": "auto",
1177                "margin-right": "auto",
1178                "background-color": BGColor
1179            });
1180            var canvas = document.getElementById("mainCanvas");
1181            var main = canvas.getContext("2d");
1182            canvas.addEventListener("mousemove", mousemove, false);
1183            canvas.addEventListener("mousedown", mousedown, false);
1184
1185            function mousemove(e) {
1186                mouseX = e.clientX + $(window).scrollLeft() -
1187                    $(canvas).offset().left;
1188                mouseY = e.clientY + $(window).scrollTop() -
1189                    $(canvas).offset().top
1190            }
1191
1192            function mousedown(e) {
1193                for (var i = 0; i < PArray.length; i++) {
1194                    if (PArray[i].checkMouse()) {
1195                        PArray[i].click();
1196                        stagePressed = false;
1197                        return
1198                    }
1199                }
1200                for (var i = 0; i < CArray.length; i++) {
1201                    if (CArray[i].checkMouse()) {
1202                        CArray[i].click();
1203                        stagePressed = false;
1204                        return
1205                    }
1206                }
1207                stagePressed = true;
1208                clickObject = null
1209            }
1210            var hasPhoto = false;
1211            var photo = new Image();
1212            photo.src = "";
1213            photo.onload = function() {
1214                hasPhoto = true
1215            };
1216            photo.onerror = function() {
1217                hasPhoto = false
1218            };
1219            var INFO = function() {
1220                this.x = 930;
1221                this.y = 30;
1222                this.name = "";
1223                this.text = "";
1224                this.offsetX = 90;
1225                this.offsetY = 0;
1226                this.minWidth = 190;
1227                this.maxWidth = this.minWidth + this.offsetX;
1228                this.top = 40;
1229                this.bottom = 230;
1230                this.startY = 0;
1231                this.h = 0
1232            };
1233            INFO.prototype.display = function() {
1234                main.globalAlpha = 1;
1235                main.fillStyle = "#fff";
1236                main.font = "13px 'Microsoft YaHei', 微软雅黑";
1237                if (hasPhoto) {
1238                    this.h = multiLineText(this.text, this.x +
1239                        this.offsetX, this.y + 60 + this.offsetY +
1240                        this.startY, this.minWidth)
1241                } else {
1242                    this.h = multiLineText(this.text, this.x, this.y +
1243                        60 + this.offsetY + this.startY,
1244                        this.maxWidth)
1245                }
1246                main.fillStyle = BGColor;
1247                main.fillRect(this.x, 0, this.maxWidth + 30, this.y +
1248                    this.top);
1249                main.fillRect(this.x, this.y + this.bottom,
1250                    this.maxWidth + 30, 800);
1251                if (this.h > this.bottom - this.top) {
1252                    this.startY = (this.bottom - this.top) * .5;
1253                    main.strokeStyle = "#444";
1254                    main.lineWidth = 1;
1255                    main.beginPath();
1256                    main.moveTo(this.x + this.offsetX, this.y + 30);
1257                    if (hasPhoto) {
1258                        main.lineTo(this.x + this.offsetX +
1259                            this.minWidth, this.y + 30)
1260                    } else {
1261                        main.lineTo(this.x + this.offsetX +
1262                            this.maxWidth, this.y + 30)
1263                    }
1264                    main.stroke();
1265                    main.strokeStyle = "#88c7e2";
1266                    main.lineWidth = 1;
1267                    main.beginPath();
1268                    main.moveTo(this.x + this.offsetX, this.y + 30);
1269                    if (hasPhoto) {
1270                        main
1271                            .lineTo(
1272                                this.x +
1273                                this.offsetX +
1274                                Math
1275                                .min(
1276                                    this.minWidth *
1277                                    -this.offsetY /
1278                                    (this.h -
1279                                        (this.bottom - this.top) + this.startY),
1280                                    this.minWidth),
1281                                this.y + 30)
1282                    } else {
1283                        main
1284                            .lineTo(
1285                                this.x +
1286                                this.offsetX +
1287                                Math
1288                                .min(
1289                                    this.maxWidth *
1290                                    -this.offsetY /
1291                                    (this.h -
1292                                        (this.bottom - this.top) + this.startY),
1293                                    this.maxWidth),
1294                                this.y + 30)
1295                    }
1296                    main.stroke();
1297                    this.offsetY -= .8;
1298                    if (this.offsetY + this.startY <= -this.h) {
1299                        this.offsetY = 0;
1300                        this.count = 0
1301                    }
1302                } else {
1303                    this.startY = 0
1304                }
1305                main.fillStyle = "#fff";
1306                main.font = "16px 'Microsoft YaHei', 微软雅黑";
1307                main.fillText(this.name, this.x + this.offsetX,
1308                    this.y + 20);
1309                if (hasPhoto) {
1310                    main.drawImage(photo, this.x, this.y, 80, 80);
1311                    this.offsetX = 90
1312                } else {
1313                    this.offsetX = 0
1314                }
1315            };
1316
1317            var LogoAndLegend = function() {
1318                var cenNum = 360;
1319                this.logoX = 10 + cenNum;
1320                this.PPMLegendX = 20 + cenNum;
1321                this.CCMLegendX = 90 + cenNum;
1322                this.CMLegendX = 290 + cenNum;
1323                this.LegendY = 675;
1324                this.y = 20;
1325            };
1326            LogoAndLegend.prototype.display = function() {
1327                PPMLegend(this.PPMLegendX, this.y + this.LegendY, 40);
1328                CCMLegend(this.CCMLegendX, this.y + this.LegendY, 40);
1329                CMLegend(this.CMLegendX, this.y + this.LegendY, 40);
1330            };
1331            var G = function(name) {
1332                this.name = name;
1333                this.alpha = 1;
1334                this.weaken = false
1335            };
1336            G.prototype.display = function() {
1337                if (this.weaken) {
1338                    this.alpha = .5
1339                } else {
1340                    this.alpha = 1
1341                }
1342                main.fillStyle = "#c7b299";
1343                main.globalAlpha = this.alpha;
1344                main.font = "14px 'Microsoft YaHei', 微软雅黑";
1345                verticalText(this.name, this.x, this.y + 8, 16)
1346            };
1347            var P = function(id, name, photo, information) {
1348                this.id = id;
1349                this.name = name;
1350                this.photo = photo;
1351                this.information = startText + information;
1352                this.init()
1353            };
1354            P.prototype.init = function() {
1355                this.over = false;
1356                this.font = "14px 'Microsoft YaHei', 微软雅黑";
1357                this.lineHeight = 16;
1358                this.alpha = 1;
1359                this.color = "#fff";
1360                this.weaken = false
1361            };
1362            P.prototype.display = function() {
1363                if (this.weaken) {
1364                    this.color = WeakenColor
1365                } else {
1366                    this.color = "#fff"
1367                }
1368                main.globalAlpha = this.alpha;
1369                main.fillStyle = this.color;
1370                main.font = this.font;
1371                verticalText(this.name, this.x, this.y + 8,
1372                    this.lineHeight);
1373                if (this.number) {
1374                    this.subscript(this.number)
1375                }
1376            };
1377            P.prototype.subscript = function(number) {
1378                main.fillStyle = "#fff";
1379                main.beginPath();
1380                main.arc(this.x, this.y + 72, 7, 0, 2 * Math.PI);
1381                main.fill();
1382                main.font = "12px 'Microsoft YaHei', 微软雅黑";
1383                main.fillStyle = "#000";
1384                main.fillText(number, this.x - 3, this.y + 76)
1385            };
1386            P.prototype.checkMouse = function() {
1387                return mouseX > this.x - 12 && mouseX < this.x + 12 &&
1388                    mouseY > this.y && mouseY < this.y + 100
1389            };
1390            P.prototype.checkMouseEvent = function() {
1391                if (this.checkMouse()) {
1392                    if (!this.over) {
1393                        this.over = true;
1394                        this.mosueOver()
1395                    }
1396                    this.weaken = false
1397                } else {
1398                    if (this.over) {
1399                        this.over = false;
1400                        this.mosueOut()
1401                    }
1402                }
1403            };
1404            P.prototype.mosueOver = function() {
1405                this.font = "15px 'Microsoft YaHei', 微软雅黑";
1406                this.lineHeight = 18;
1407                if (this.photo != "") {
1408                    photo.src = "" +
1409                        this.photo
1410                } else {
1411                    hasPhoto = false
1412                }
1413                info.name = this.name;
1414                info.text = this.information;
1415                info.y = 40;
1416                info.offsetY = 0
1417            };
1418            P.prototype.mosueOut = function() {
1419                this.font = "14px 'Microsoft YaHei', 微软雅黑";
1420                this.lineHeight = 16
1421            };
1422            P.prototype.click = function() {
1423                clickObject = this
1424            };
1425            P.prototype.connectChildren = function() {
1426                for (var i = 0; i < PPArray.length; i++) {
1427                    if (PPArray[i].p1.id == this.id) {
1428                        PPArray[i].display();
1429                        PPArray[i].p1.weaken = false;
1430                        PPArray[i].p2.weaken = false;
1431                    }
1432                }
1433            };
1434            P.prototype.connectParent = function() {
1435                for (var i = 0; i < PPArray.length; i++) {
1436                    if (PPArray[i].p2.id == this.id) {
1437                        PPArray[i].display();
1438                        PPArray[i].p1.weaken = false;
1439                        PPArray[i].p1.connectParent()
1440                    }
1441                }
1442            };
1443            var C = function(id, name, m, information) {
1444                this.id = id;
1445                this.name = name;
1446                this.m = m;
1447                this.information = startText + information;
1448                this.init()
1449            };
1450            C.prototype.init = function() {
1451                this.over = false;
1452                this.font = "12px 'Microsoft YaHei', 微软雅黑";
1453                this.lineHeight = 16;
1454                this.color = getColorByCM(this.m);
1455                this.alpha = 1;
1456                this.weaken = false
1457            };
1458            C.prototype.display = function() {
1459                if (this.weaken) {
1460                    this.color = WeakenColor
1461                } else {
1462                    this.color = getColorByCM(this.m)
1463                }
1464                main.globalAlpha = this.alpha;
1465                main.fillStyle = this.color;
1466                main.font = this.font;
1467                verticalText(this.name, this.x, this.y + 8,
1468                    this.lineHeight)
1469            };
1470            C.prototype.checkMouse = function() {
1471                return mouseX > this.x - 10 && mouseX < this.x + 10 &&
1472                    mouseY > this.y && mouseY < this.y + 200
1473            };
1474            C.prototype.checkMouseEvent = function() {
1475                if (this.checkMouse()) {
1476                    if (!this.over) {
1477                        this.over = true;
1478                        this.mosueOver()
1479                    }
1480                    this.weaken = false;
1481                    this.color = getColorByCM(this.m)
1482                } else {
1483                    if (this.over) {
1484                        this.over = false;
1485                        this.mosueOut()
1486                    }
1487                }
1488            };
1489            C.prototype.mosueOver = function() {
1490                this.font = "13px 'Microsoft YaHei', 微软雅黑";
1491                this.lineHeight = 18;
1492                hasPhoto = false;
1493                if (this.information != "") {
1494                    if (this.name.charAt(0) == "/") {
1495                        info.name = this.name.slice(1)
1496                    } else {
1497                        info.name = this.name
1498                    }
1499                    info.text = this.information;
1500                    console.log(document.documentElement.clientHeight);
1501                    if (document.documentElement.clientHeight < 600) {
1502                        info.y = 190
1503                    } else {
1504                        info.y = 40
1505                    }
1506                } else {
1507                    info.name = "";
1508                    info.text = ""
1509                }
1510                info.offsetY = 0
1511            };
1512            C.prototype.mosueOut = function() {
1513                this.font = "12px 'Microsoft YaHei', 微软雅黑";
1514                this.lineHeight = 16
1515            };
1516            C.prototype.click = function() {
1517                clickObject = this
1518            };
1519            C.prototype.connectChildren = function() {
1520                this.weaken = false;
1521                for (var i = 0; i < CCArray.length; i++) {
1522                    if (CCArray[i].c1.id == this.id) {
1523                        CCArray[i].display();
1524                        var c2 = getCByID(CCList[i].c2);
1525                        c2.connectChildren();
1526                        if (c2.m == "A") {
1527                            c2.connectP();
1528                        }
1529                    }
1530                }
1531            };
1532            C.prototype.connectParent = function() {
1533                this.weaken = false;
1534                for (var i = 0; i < CCArray.length; i++) {
1535                    if (CCArray[i].c2.id == this.id) {
1536                        CCArray[i].display();
1537                        var c1 = getCByID(CCList[i].c1);
1538                        c1.connectParent();
1539                        if (c1.m == "A") {
1540                            c1.connectChildren();
1541                        }
1542                        c1.connectP();
1543                    }
1544                }
1545            };
1546            C.prototype.connectP = function() {
1547                this.weaken = false;
1548                for (var i = 0; i < CPArray.length; i++) {
1549                    if (CPArray[i].c.id == this.id) {
1550                        CPArray[i].display();
1551                        CPArray[i].p.weaken = false;
1552                        CPArray[i].c.weaken = false;
1553                        CPArray[i].p.connectParent();
1554                    }
1555                }
1556            };
1557            var PP = function(p1, to, p2, m) {
1558                this.p1 = p1;
1559                this.to = to;
1560                this.p2 = p2;
1561                this.m = m;
1562                this.init()
1563            };
1564            PP.prototype.init = function() {
1565                this.x = (this.p1.x + this.p2.x) * .5;
1566                this.y = this.p1.y;
1567                this.r = Math.abs(this.p1.x - this.p2.x) * .5;
1568                this.color = getColorByPPM(this.m);
1569                this.xpath = new Array();
1570                this.ypath = new Array();
1571                this.pointList = [];
1572                this.n = 200;
1573                for (var i = 0; i < this.n; i++) {
1574                    if (this.p2.x - this.p1.x > 0) {
1575                        this.xpath[i] = this.x +
1576                            Math.cos(-i % this.n / this.n *
1577                                Math.PI) * this.r;
1578                        this.ypath[i] = this.y +
1579                            Math.sin(-i % this.n / this.n *
1580                                Math.PI) * this.r;
1581                        this.pointList.push(this.xpath[i], this.ypath[i]);
1582                    } else {
1583                        this.xpath[i] = this.x +
1584                            Math.cos(-Math.PI + i % this.n /
1585                                this.n * Math.PI) * this.r;
1586                        this.ypath[i] = this.y +
1587                            Math.sin(-Math.PI + i % this.n /
1588                                this.n * Math.PI) * this.r;
1589                        this.pointList.push(this.xpath[i], this.ypath[i]);
1590                    }
1591                }
1592            };
1593            PP.prototype.display = function() {
1594
1595
1596                main.globalAlpha = 1;
1597                main.strokeStyle = this.color;
1598                main.beginPath();
1599                main.arc(this.x, this.y, this.r, Math.PI, 0);
1600                main.stroke();
1601                if (this.to == ">") {
1602                    var t = time % this.n;
1603                    // main.fillStyle = "#fff";
1604                    main.fillStyle = 'rgba(255,255,255,.9)';
1605
1606                    main.beginPath();
1607                    main.arc(this.xpath[t], this.ypath[t], 2.5, 0,
1608                        Math.PI * 2, true);
1609                    main.fill();
1610                }
1611            };
1612
1613
1614
1615
1616            var CC = function(c1, to, c2, m) {
1617                this.c1 = c1;
1618                this.to = to;
1619                this.c2 = c2;
1620                this.m = m;
1621                this.init()
1622            };
1623            CC.prototype.init = function() {
1624                this.x = (this.c1.x + this.c2.x) * .5;
1625                this.y = this.c1.y;
1626                this.r = Math.abs(this.c1.x - this.c2.x) * .5;
1627                this.color = getColorByCCM(this.m);
1628                this.xpath = new Array();
1629                this.ypath = new Array();
1630                this.n = 200;
1631                for (var i = 0; i < this.n; i++) {
1632                    if (this.c2.x - this.c1.x > 0) {
1633                        this.xpath[i] = this.x +
1634                            Math.cos(-i % this.n / this.n *
1635                                Math.PI) * this.r;
1636                        this.ypath[i] = this.y +
1637                            Math.sin(-i % this.n / this.n *
1638                                Math.PI) * this.r
1639                    } else {
1640                        this.xpath[i] = this.x +
1641                            Math.cos(-Math.PI + i % this.n /
1642                                this.n * Math.PI) * this.r;
1643                        this.ypath[i] = this.y +
1644                            Math.sin(-Math.PI + i % this.n /
1645                                this.n * Math.PI) * this.r
1646                    }
1647                }
1648            };
1649            CC.prototype.display = function() {
1650                main.globalAlpha = 1;
1651                main.strokeStyle = this.color;
1652
1653                /*
1654                 * if(this.m == "C"){ this.c2.type = "arc"; }else if(this.c2.m ==
1655                 * "B"){ this.c2.type = "line"; }
1656                 */
1657                if (this.c2.type == "arc") {
1658                    main.beginPath();
1659                    main.arc(this.x, this.y, this.r, Math.PI, 0);
1660                    main.stroke();
1661                    if (this.to == ">") {
1662                        var t = time % this.n;
1663                        main.fillStyle = "#fff";
1664                        main.beginPath();
1665                        main.arc(this.xpath[t], this.ypath[t], 2.5,
1666                            Math.PI * 2, 0);
1667                        main.fill()
1668                    }
1669                } else {
1670                    main.globalAlpha = .5;
1671                    main.strokeStyle = this.color;
1672                    main.beginPath();
1673                    main.moveTo(this.c1.x, this.c1.y + 210);
1674                    main.lineTo(this.c2.x, this.c2.y);
1675                    main.stroke();
1676                    if (this.c1.y + this.c1.name.length * 18 + 10 < this.c1.y + 210) {
1677                        main.beginPath();
1678                        main.moveTo(this.c1.x, this.c1.y +
1679                            this.c1.name.length * 18 + 10);
1680                        main.lineTo(this.c1.x, this.c1.y + 180);
1681                        main.stroke()
1682                    }
1683                }
1684            };
1685            var CP = function(c, to, p, m) {
1686                this.c = c;
1687                this.to = to;
1688                this.p = p;
1689                this.m = m;
1690                this.color = getColorByCCM(this.m)
1691            };
1692            CP.prototype.display = function() {
1693                if (clickObject != null) {
1694                    main.globalAlpha = .5;
1695                    main.strokeStyle = this.color
1696                } else {
1697                    main.globalAlpha = 1;
1698                    main.strokeStyle = CPColor
1699                }
1700                main.beginPath();
1701                main.moveTo(this.p.x, this.p.y + 72);
1702                main.lineTo(this.c.x, this.c.y);
1703                main.stroke()
1704            };
1705            var GArray = new Array();
1706            var PArray = new Array();
1707            var CArray = new Array();
1708            var PPArray = new Array();
1709            var CPArray = new Array();
1710            var CCArray = new Array();
1711            var logoAndLegend = new LogoAndLegend();
1712            var info = new INFO();
1713            for (var i = 0; i < PS.length; i++) {
1714                var space = 20;
1715                var x = 20;
1716                var y = 65;
1717                if (PS[i] != "") {
1718                    if (PS[i].charAt(0) == "G") {
1719                        var g = new G(PS[i].slice(1));
1720                        g.x = x + i * space;
1721                        g.y = y;
1722                        GArray.push(g)
1723                    } else {
1724                        var pData = getPDataByID(PS[i]);
1725                        var p = new P(pData.id, pData.name,
1726                            pData.photo, pData.information);
1727                        p.x = x + 280 + i * 1.1 * space;
1728                        p.y = y;
1729                        PArray.push(p)
1730                    }
1731                }
1732            }
1733            var space = 20;
1734            var x1 = 0;
1735            var x2 = 0;
1736            var y = 360;
1737            for (var i = 0; i < CS.length; i++) {
1738                if (CS[i] != "TOP_SPACE" && CS[i] != "BOTTOM_SPACE") {
1739                    var cData = getCDataByID(CS[i]);
1740                    var c = new C(cData.id, cData.name, cData.m,
1741                        cData.information);
1742                    if (cData.m == "") {
1743                        c.type = "line";
1744                        x2 += space;
1745                        c.x = x2;
1746                        c.y = y + 350;
1747                    } else {
1748                        c.type = "arc";
1749                        x1 += space;
1750                        c.x = x1;
1751                        c.y = y;
1752                    }
1753                    CArray.push(c);
1754                } else {
1755                    if (CS[i] == "TOP_SPACE") {
1756                        x1 += space;
1757                    } else {
1758                        x2 += space;
1759                    }
1760                }
1761            }
1762
1763            function CtoPs(c) {
1764                for (var i = 0; i < CPList.length; i++) {
1765                    if (CPList[i].c == c) {
1766                        return true
1767                    }
1768                }
1769                return false
1770            }
1771
1772            function CtoCs(c) {
1773                for (var i = 0; i < CCList.length; i++) {
1774                    if (CCList[i].c1 == c) {
1775                        return true
1776                    }
1777                }
1778                return false
1779            }
1780            for (var i = 0; i < PPList.length; i++) {
1781                var p1 = getPByID(PPList[i].p1);
1782                var p2 = getPByID(PPList[i].p2);
1783                var pp = new PP(p1, PPList[i].to, p2, PPList[i].m);
1784                PPArray.push(pp)
1785            }
1786            for (var i = 0; i < CPList.length; i++) {
1787                var c = getCByID(CPList[i].c);
1788                var p = getPByID(CPList[i].p);
1789                var cp = new CP(c, CPList[i].to, p, CPList[i].m);
1790                CPArray.push(cp)
1791            }
1792            for (var i = 0; i < CCList.length; i++) {
1793                var c1 = getCByID(CCList[i].c1);
1794                var c2 = getCByID(CCList[i].c2);
1795                var cc = new CC(c1, CCList[i].to, c2, CCList[i].m);
1796                CCArray.push(cc)
1797            }
1798            window.requestAnimFrame = (function() {
1799                return window.requestAnimationFrame ||
1800                    window.webkitRequestAnimationFrame ||
1801                    window.mozRequestAnimationFrame ||
1802                    window.oRequestAnimationFrame ||
1803                    window.msRequestAnimationFrame ||
1804
1805                    function(callback) {
1806                        window.setTimeout(callback, 1000 / 33)
1807                    }
1808            })();
1809            (function draw() {
1810                requestAnimFrame(draw);
1811                main.clearRect(0, 0, canvas.width, canvas.height);
1812                main.lineWidth = 1;
1813                // info.display();
1814                logoAndLegend.display();
1815                for (var i = 0; i < GArray.length; i++) {
1816                    if (clickObject == null) {
1817                        GArray[i].weaken = false
1818                    } else {
1819                        GArray[i].weaken = true
1820                    }
1821                    GArray[i].display()
1822                }
1823                for (var i = 0; i < PArray.length; i++) {
1824                    if (clickObject == null || clickObject == PArray[i]) {
1825                        PArray[i].weaken = false
1826                    } else {
1827                        PArray[i].weaken = true
1828                    }
1829                    PArray[i].checkMouseEvent()
1830                }
1831                for (var i = 0; i < CArray.length; i++) {
1832                    if (clickObject == null || clickObject == CArray[i]) {
1833                        CArray[i].weaken = false
1834                    } else {
1835                        CArray[i].weaken = true
1836                    }
1837                    CArray[i].checkMouseEvent()
1838                }
1839                for (var i = 0; i < PPArray.length; i++) {
1840                    if (clickObject == null ||
1841                        PPArray[i].p1.id == clickObject.id ||
1842                        PPArray[i].p2.id == clickObject.id) {
1843                        PPArray[i].display();
1844                        PPArray[i].p1.weaken = false;
1845                        PPArray[i].p2.weaken = false;
1846                        /*
1847                         * if (clickObject != null && PPArray[i].p1.id ==
1848                         * clickObject.id) { PPArray[i].p1.connectParent() } if
1849                         * (clickObject != null && PPArray[i].p2.id ==
1850                         * clickObject.id) { PPArray[i].p2.connectParent() }
1851                         */
1852                    }
1853                }
1854                for (var i = 0; i < CPArray.length; i++) {
1855                    if (clickObject == null ||
1856                        CPArray[i].p.id == clickObject.id ||
1857                        CPArray[i].c.id == clickObject.id) {
1858                        CPArray[i].display();
1859                        CPArray[i].p.weaken = false;
1860                        CPArray[i].c.weaken = false;
1861                        if (clickObject != null &&
1862                            CPArray[i].p.id == clickObject.id) {
1863                            CPArray[i].c.connectChildren();
1864                            CPArray[i].c.connectParent();
1865                        }
1866                        if (clickObject != null &&
1867                            CPArray[i].c.id == clickObject.id) {
1868                            CPArray[i].p.connectParent();
1869                            CPArray[i].p.connectChildren();
1870                        }
1871                    }
1872                }
1873                for (var i = 0; i < CCArray.length; i++) {
1874                    if (clickObject == null ||
1875                        CCArray[i].c1.id == clickObject.id ||
1876                        CCArray[i].c2.id == clickObject.id) {
1877                        CCArray[i].c1.weaken = false;
1878                        CCArray[i].display();
1879                        if (clickObject != null &&
1880                            CCArray[i].c1.id == clickObject.id) {
1881                            var c1 = getCByID(CCList[i].c1);
1882                            c1.connectChildren()
1883                        }
1884                        if (clickObject != null &&
1885                            CCArray[i].c2.id == clickObject.id) {
1886                            var c2 = getCByID(CCList[i].c2);
1887                            c2.connectParent();
1888                            c2.connectChildren()
1889                        }
1890                    }
1891                }
1892                for (var i = 0; i < PArray.length; i++) {
1893                    PArray[i].display()
1894                }
1895                for (var i = 0; i < CArray.length; i++) {
1896                    CArray[i].display()
1897                }
1898                time++
1899            })();
1900
1901            function getPDataByID(id) {
1902                for (var i = 0; i < PList.length; i++) {
1903                    if (PList[i].id == id) {
1904                        return PList[i]
1905                    }
1906                }
1907            }
1908
1909            function getPByID(id) {
1910                for (var i = 0; i < PArray.length; i++) {
1911                    if (PArray[i].id == id) {
1912                        return PArray[i]
1913                    }
1914                }
1915            }
1916
1917            function getCDataByID(id) {
1918                for (var i = 0; i < CList.length; i++) {
1919                    if (CList[i].id == id) {
1920                        return CList[i]
1921                    }
1922                }
1923            }
1924
1925            function getCByID(id) {
1926                for (var i = 0; i < CArray.length; i++) {
1927                    if (CArray[i].id == id) {
1928                        return CArray[i]
1929                    }
1930                }
1931            }
1932
1933            function verticalText(string, x, y, h) {
1934                var vertical = true;
1935                main.save();
1936                main.translate(x, y);
1937                for (var i = 0; i < string.length; i++) {
1938                    if (string.charCodeAt(i) > 255) {
1939                        main.translate(0, h);
1940                        main
1941                            .fillText(string.charAt(i), -main.measureText(string
1942                                    .charAt(i)).width / 2,
1943                                0)
1944                    } else {
1945                        main.save();
1946                        main.translate(-5, 6);
1947                        main.rotate(Math.PI / 2);
1948                        main.fillText(string.charAt(i), 0, 0);
1949                        main.restore();
1950                        main.translate(0, main.measureText(string
1951                            .charAt(i)).width + 2)
1952                    }
1953                }
1954                main.restore()
1955            }
1956
1957            function multiLineText(string, x, y, w) {
1958                var tx = 28;
1959                var ty = 0;
1960                for (var i = 0; i < string.length; i++) {
1961                    var c = string.charAt(i);
1962                    if (c != "/") {
1963                        main.fillText(c, x + tx, y + ty);
1964                        tx += main.measureText(c).width + 2;
1965                        if (tx > w) {
1966                            tx = 0;
1967                            ty += 20
1968                        }
1969                    } else {
1970                        tx = 28;
1971                        ty += 40
1972                    }
1973                }
1974                return ty + 20
1975            }
1976
1977            function PPMLegend(x, y, space) {
1978                for (var i = 0; i < PPMColor.length; i++) {
1979                    main.globalAlpha = 1;
1980                    main.fillStyle = PPMColor[i].color;
1981                    main.fillRect(x - 8, y - 1, 16, 2);
1982                    if (PPMColor[i].m != "A") {
1983                        main.fillStyle = "#fff";
1984                        main.beginPath();
1985                        main.arc(x, y, 2.5, 0, Math.PI * 2);
1986                        main.fill()
1987                    }
1988                    main.fillStyle = "#ccc";
1989                    main.font = "12px 'Microsoft YaHei', 微软雅黑";
1990                    main.fillText(PPMColor[i].name, x + 14, y + 4);
1991                    x += main.measureText(PPMColor[i].name).width +
1992                        space
1993                }
1994            }
1995
1996            function CCMLegend(x, y, space) {
1997                for (var i = 0; i < CCMColor.length; i++) {
1998                    if (CCMColor[i].name != "") {
1999                        main.globalAlpha = 1;
2000                        main.fillStyle = CCMColor[i].color;
2001                        main.fillRect(x - 8, y - 1, 16, 2);
2002
2003                        if (CCMColor[i].m != "A") {
2004                            main.fillStyle = "#fff";
2005                            main.beginPath();
2006                            main.arc(x, y, 2.5, 0, Math.PI * 2);
2007                            main.fill()
2008                        }
2009
2010                        /*
2011                         * main.fillStyle = "#fff"; main.beginPath();
2012                         * main.arc(x, y, 2.5, 0, Math.PI * 2); main.fill();
2013                         */
2014                        main.fillStyle = "#ccc";
2015                        main.font = "12px 'Microsoft YaHei', 微软雅黑";
2016                        main.fillText(CCMColor[i].name, x + 14, y + 4);
2017                        x += main.measureText(CCMColor[i].name).width +
2018                            space;
2019                    }
2020
2021                }
2022            }
2023
2024            function CMLegend(x, y, space) {
2025                for (var i = 0; i < 2; i++) {
2026                    main.globalAlpha = 1;
2027                    main.fillStyle = CMColor[i].color;
2028                    main.fillRect(x - 4, y - 4, 8, 8);
2029                    main.fillStyle = "#ccc";
2030                    main.font = "12px 'Microsoft YaHei', 微软雅黑";
2031                    main.fillText(CMColor[i].name, x + 14, y + 4);
2032                    x += main.measureText(CMColor[i].name).width +
2033                        space
2034                }
2035            }
2036
2037            function getColorByPPM(m) {
2038                for (var i = 0; i < PPMColor.length; i++) {
2039                    if (PPMColor[i].m == m) {
2040                        return PPMColor[i].color
2041                    }
2042                }
2043            }
2044
2045            function getColorByCCM(m) {
2046                for (var i = 0; i < CCMColor.length; i++) {
2047                    if (CCMColor[i].m == m) {
2048                        return CCMColor[i].color
2049                    }
2050                }
2051            }
2052
2053            function getColorByCM(m) {
2054                for (var i = 0; i < CMColor.length; i++) {
2055                    if (CMColor[i].m == m) {
2056                        return CMColor[i].color
2057                    }
2058                }
2059            }
2060        });

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.