Changeset 5578
- Timestamp:
- 02/18/08 15:23:07 (9 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinelz/trunk/compress/javascripts/spinelz_lib/spinelz_util.js
r5576 r5578 474 474 var Modal={maskId:"modalMask",maskClass:"modal_mask",maskClassIE:"modal_mask_ie",element:null,snaps:null,listener:null,resizeListener:null,cover:null,excepteds:null,maskCallbacks:[],unmaskCallbacks:[],count:0,tabKey:9,mask:function(_a2){ 475 475 this._mask.callAfterLoading(this,_a2); 476 this._ disable_tab_key();476 this._control_tab_key(); 477 477 },unmask:function(){ 478 478 this._unmask(); 479 var _a3=$A(document.body.getElementsByTagName("form")); 480 this._enable_tab_key(_a3); 481 this._disable_tab_key(_a3); 479 this._control_tab_key(); 482 480 },unmaskAll:function(){ 483 481 var max=10; 484 var _a 5=0;485 while(this._isMasked()&&(_a 5<max)){482 var _a4=0; 483 while(this._isMasked()&&(_a4<max)){ 486 484 this._unmask(); 487 _a 5++;488 } 489 this._ enable_tab_key();490 },addMaskCallback:function(_a 6){485 _a4++; 486 } 487 this._control_tab_key(); 488 },addMaskCallback:function(_a5){ 491 489 if(!this.maskCallbacks.any(function(c){ 492 return c==_a 6;490 return c==_a5; 493 491 })){ 494 this.maskCallbacks.push(_a 6);495 } 496 },removeMaskCallback:function(_a 8){492 this.maskCallbacks.push(_a5); 493 } 494 },removeMaskCallback:function(_a7){ 497 495 this.maskCallbacks=this.maskCallbacks.reject(function(c){ 498 return c==_a 8;496 return c==_a7; 499 497 }); 500 498 },clearMaskCallback:function(){ 501 499 this.maskCallbacks=[]; 502 },addUnmaskCallback:function(_a a){500 },addUnmaskCallback:function(_a9){ 503 501 if(!this.unmaskCallbacks.any(function(c){ 504 return c==_a a;502 return c==_a9; 505 503 })){ 506 this.unmaskCallbacks.push(_a a);507 } 508 },removeUnmaskCallback:function(_a c){504 this.unmaskCallbacks.push(_a9); 505 } 506 },removeUnmaskCallback:function(_ab){ 509 507 this.unmaskCallbacks=this.unmaskCallbacks.reject(function(c){ 510 return c==_a c;508 return c==_ab; 511 509 }); 512 510 },clearUnmaskCallback:function(){ 513 511 this.unmaskCallbacks=[]; 514 },_mask:function(_a e){515 var _a f=Object.extend({cssPrefix:"custom_",zIndex:null},arguments[1]||{});512 },_mask:function(_ad){ 513 var _ae=Object.extend({cssPrefix:"custom_",zIndex:null},arguments[1]||{}); 516 514 if(Modal.element){ 517 Modal._snap(_a e);515 Modal._snap(_ad); 518 516 Modal._rebuildMask(); 519 517 }else{ 520 518 Modal.snaps=[]; 521 519 Modal.excepteds=[]; 522 Modal._buildMask(_a f.cssPrefix);520 Modal._buildMask(_ae.cssPrefix); 523 521 Modal.cover=new IECover(Modal.element,{transparent:true}); 524 522 } 525 Modal._setZindex(_a e,_af.zIndex);523 Modal._setZindex(_ad,_ae.zIndex); 526 524 Modal._setFullSize(); 527 if(!Modal.hasExcepted(_a e)){528 Modal.excepteds.push(_a e);525 if(!Modal.hasExcepted(_ad)){ 526 Modal.excepteds.push(_ad); 529 527 } 530 528 this.count++; 531 this.maskCallbacks.each(function(_ b0){532 _ b0(_ae);529 this.maskCallbacks.each(function(_af){ 530 _af(_ad); 533 531 }); 534 532 },_unmask:function(){ … … 546 544 } 547 545 this.count++; 548 this.unmaskCallbacks.each(function(_b 1){549 _b 1();546 this.unmaskCallbacks.each(function(_b0){ 547 _b0(); 550 548 }); 551 549 },_addEvent:function(){ … … 561 559 },_isMasked:function(){ 562 560 return Modal.element&&Element.visible(Modal.element); 563 },_snap:function(_b 2){564 var _b 3=Element.getStyle(Modal.element,"zIndex");565 if(_b 3&&Modal._isMasked()&&!Modal.hasExcepted(_b2)){566 Modal.snaps.push(_b 3);567 } 568 },_setZindex:function(_b 4,_b5){569 _b 5=ZindexManager.getIndex(_b5);570 Element.setStyle(Modal.element,{zIndex:_b 5});571 _b 4=Element.makePositioned($(_b4));572 Element.setStyle(_b 4,{zIndex:++_b5});561 },_snap:function(_b1){ 562 var _b2=Element.getStyle(Modal.element,"zIndex"); 563 if(_b2&&Modal._isMasked()&&!Modal.hasExcepted(_b1)){ 564 Modal.snaps.push(_b2); 565 } 566 },_setZindex:function(_b3,_b4){ 567 _b4=ZindexManager.getIndex(_b4); 568 Element.setStyle(Modal.element,{zIndex:_b4}); 569 _b3=Element.makePositioned($(_b3)); 570 Element.setStyle(_b3,{zIndex:++_b4}); 573 571 },_setFullSize:function(){ 574 572 Modal.element.setStyle({width:Element.getWindowWidth()+"px",height:Element.getWindowHeight()+"px"}); … … 576 574 Modal.cover.resetSize(); 577 575 } 578 },_buildMask:function(_b 6){579 var _b 7=Builder.node("div",{id:Modal.maskId});580 Modal._setClassNames(_b 7,_b6);581 document.body.appendChild(_b 7);582 Modal.element=_b 7;576 },_buildMask:function(_b5){ 577 var _b6=Builder.node("div",{id:Modal.maskId}); 578 Modal._setClassNames(_b6,_b5); 579 document.body.appendChild(_b6); 580 Modal.element=_b6; 583 581 Modal._addEvent(); 584 },_setClassNames:function(_b 8,_b9){585 var _b a=(UserAgent.isIE())?Modal.maskClassIE:Modal.maskClass;586 Element.addClassName(_b 8,_ba);587 Element.addClassName(_b 8,_b9+_ba);582 },_setClassNames:function(_b7,_b8){ 583 var _b9=(UserAgent.isIE())?Modal.maskClassIE:Modal.maskClass; 584 Element.addClassName(_b7,_b9); 585 Element.addClassName(_b7,_b8+_b9); 588 586 },_rebuildMask:function(){ 589 587 document.body.appendChild(Modal.element); … … 596 594 return src.spinelzMaskResult; 597 595 } 598 var _b c=false;599 var _b d=this.excepteds.last();600 var _b e=src;601 if(_b d&&Element.descendantOf(src,_bd)){602 _b c=true;603 }else{ 604 var _b f=Element.getStyle(Modal.element,"zIndex");605 var _ c0=null;596 var _bb=false; 597 var _bc=this.excepteds.last(); 598 var _bd=src; 599 if(_bc&&Element.descendantOf(src,_bc)){ 600 _bb=true; 601 }else{ 602 var _be=Element.getStyle(Modal.element,"zIndex"); 603 var _bf=null; 606 604 while((src=src.parentNode)&&src!=document.body){ 607 if(src.style&&(_ c0=Element.getStyle(src,"zIndex"))){608 _b c=(_c0>_bf);605 if(src.style&&(_bf=Element.getStyle(src,"zIndex"))){ 606 _bb=(_bf>_be); 609 607 break; 610 608 } 611 609 } 612 610 } 613 _b e.spinelzMaskCount=this.count;614 _b e.spinelzMaskResult=_bc;615 return _b c;616 },_handleEvent:function(_c 1){617 var src=Event.element(_c 1);618 if(!(Modal._isOutOfModal(src)||(_c 1.keyCode&&(_c1.keyCode==this.tabKey)))){619 Event.stop(_c 1);620 } 621 },_onResize:function(_c 3){611 _bd.spinelzMaskCount=this.count; 612 _bd.spinelzMaskResult=_bb; 613 return _bb; 614 },_handleEvent:function(_c0){ 615 var src=Event.element(_c0); 616 if(!(Modal._isOutOfModal(src)||(_c0.keyCode&&(_c0.keyCode==this.tabKey)))){ 617 Event.stop(_c0); 618 } 619 },_onResize:function(_c2){ 622 620 Modal._setFullSize(); 623 },hasExcepted:function(_c 4){624 return (Modal.excepteds||[]).any(function(_c 5){625 return _c 5.id==_c4.id;626 }); 627 },_ disable_tab_key:function(_c6){628 if(!_c 6){629 _c 6=$A(document.body.getElementsByTagName("form"));630 } 631 _c 6.each(function(_c7){632 if(!Modal._isOutOfModal(_c 7)){633 Form.getElements(_c 7).each(function(el){621 },hasExcepted:function(_c3){ 622 return (Modal.excepteds||[]).any(function(_c4){ 623 return _c4.id==_c3.id; 624 }); 625 },_control_tab_key:function(_c5){ 626 if(!_c5){ 627 _c5=$A(document.body.getElementsByTagName("form")); 628 } 629 _c5.each(function(_c6){ 630 if(!Modal._isOutOfModal(_c6)){ 631 Form.getElements(_c6).each(function(el){ 634 632 el.tabIndex=-1; 635 633 }); 636 } 637 }); 638 },_enable_tab_key:function(_c9){ 639 if(!_c9){ 640 _c9=$A(document.body.getElementsByTagName("form")); 641 } 642 _c9.each(function(_ca){ 643 Form.getElements(_ca).each(function(el){ 634 }else{ 635 Form.getElements(_c6).each(function(el){ 644 636 el.tabIndex=null; 645 637 }); 638 } 646 639 }); 647 640 }}; 648 641 var IECover=Class.create(); 649 642 IECover.src="javascript:false;"; 650 IECover.prototype={idSuffix:"iecover",initialize:function(_c c){643 IECover.prototype={idSuffix:"iecover",initialize:function(_c9){ 651 644 this.options=Object.extend({transparent:false,padding:0},arguments[1]||{}); 652 645 if(document.all){ 653 _c c=$(_cc);654 this.id=_c c.id.appendSuffix(this.idSuffix);655 this._build(_c c);646 _c9=$(_c9); 647 this.id=_c9.id.appendSuffix(this.idSuffix); 648 this._build(_c9); 656 649 this.resetSize(); 657 650 } 658 651 },resetSize:function(){ 659 652 if(this.element){ 660 var _c d=this.element.parentNode;661 var _c e=this.options.padding;662 this.element.width=_c d.offsetWidth-_ce+"px";663 this.element.height=Element.getHeight(_c d)-_ce+"px";664 } 665 },_build:function(_c f){666 var _ d0=this.options.padding/2;667 var _ d1={position:"absolute",top:_d0+"px",left:_d0+"px"};653 var _ca=this.element.parentNode; 654 var _cb=this.options.padding; 655 this.element.width=_ca.offsetWidth-_cb+"px"; 656 this.element.height=Element.getHeight(_ca)-_cb+"px"; 657 } 658 },_build:function(_cc){ 659 var _cd=this.options.padding/2; 660 var _ce={position:"absolute",top:_cd+"px",left:_cd+"px"}; 668 661 if(this.options.transparent){ 669 _ d1.filter="alpha(opacity=0)";670 } 671 if(_c f.buildedIECover&&$(this.id)){662 _ce.filter="alpha(opacity=0)"; 663 } 664 if(_cc.buildedIECover&&$(this.id)){ 672 665 this.element=$(this.id); 673 666 }else{ 674 667 this.element=Builder.node("iframe",{src:IECover.src,id:this.id,frameborder:0}); 675 668 } 676 Element.setStyle(this.element,_ d1);677 var _ d2=Element.down(_cf,0);678 if(_ d2){679 Element.makePositioned(_ d2);680 } 681 _c f.insertBefore(this.element,_cf.firstChild);682 _c f.buildedIECover=true;669 Element.setStyle(this.element,_ce); 670 var _cf=Element.down(_cc,0); 671 if(_cf){ 672 Element.makePositioned(_cf); 673 } 674 _cc.insertBefore(this.element,_cc.firstChild); 675 _cc.buildedIECover=true; 683 676 }}; 684 677 var UserAgent={getUserAgent:function(){ … … 695 688 var ShortcutManager=Class.create(); 696 689 ShortcutManager.prototype={initialize:function(){ 697 var _d 3={detectKeyup:false,initialStarted:true,preventDefault:true};698 this.options=Object.extend(_d 3,arguments[0]||{});690 var _d0={detectKeyup:false,initialStarted:true,preventDefault:true}; 691 this.options=Object.extend(_d0,arguments[0]||{}); 699 692 this.keydownListener=this.eventKeydown.bindAsEventListener(this); 700 693 if(this.options.detectKeyup){ … … 722 715 Event.observe(document,"keyup",this.keyupListener); 723 716 } 724 },add:function(c1,c2,_d 6){717 },add:function(c1,c2,_d3){ 725 718 if(c1.constructor==Array){ 726 var _d 7=this;727 c1.each(function(_d 8){728 _d 7._add_or_remove_function(_d8[0],_d8[1],_d6);729 }); 730 }else{ 731 this._add_or_remove_function(c1,c2,_d 6);719 var _d4=this; 720 c1.each(function(_d5){ 721 _d4._add_or_remove_function(_d5[0],_d5[1],_d3); 722 }); 723 }else{ 724 this._add_or_remove_function(c1,c2,_d3); 732 725 } 733 726 },destroy:function(){ … … 736 729 Event.stopObserving(document,"keyup",this.keyupListener); 737 730 } 738 },eventKeydown:function(_d9){ 731 },eventKeydown:function(_d6){ 732 if(this.executable){ 733 var _d7; 734 var key=""; 735 _d6=_d6||window.event; 736 if(_d6.keyCode){ 737 if(_d6.altKey){ 738 key+="a"; 739 } 740 if(_d6.ctrlKey){ 741 key+="c"; 742 } 743 if(_d6.shiftKey){ 744 key+="s"; 745 } 746 if(key==""){ 747 key="n"; 748 } 749 _d7=this._mergeNumKey(_d6.keyCode); 750 if(this.keydownFunc[key][_d7]){ 751 this.keydownFunc[key][_d7](); 752 if(this.options.preventDefault){ 753 Event.stop(_d6); 754 } 755 } 756 } 757 } 758 },eventKeyup:function(_d9){ 739 759 if(this.executable){ 740 760 var _da; 741 var key="";742 761 _d9=_d9||window.event; 743 762 if(_d9.keyCode){ 744 if(_d9.altKey){745 key+="a";746 }747 if(_d9.ctrlKey){748 key+="c";749 }750 if(_d9.shiftKey){751 key+="s";752 }753 if(key==""){754 key="n";755 }756 763 _da=this._mergeNumKey(_d9.keyCode); 757 if(this.key downFunc[key][_da]){758 this.key downFunc[key][_da]();764 if(this.keyupFunc[_da]){ 765 this.keyupFunc[_da](); 759 766 if(this.options.preventDefault){ 760 767 Event.stop(_d9); … … 763 770 } 764 771 } 765 },eventKeyup:function(_dc){ 766 if(this.executable){ 767 var _dd; 768 _dc=_dc||window.event; 769 if(_dc.keyCode){ 770 _dd=this._mergeNumKey(_dc.keyCode); 771 if(this.keyupFunc[_dd]){ 772 this.keyupFunc[_dd](); 773 if(this.options.preventDefault){ 774 Event.stop(_dc); 775 } 776 } 777 } 778 } 779 },remove:function(_de){ 780 this._add_or_remove_function(_de); 772 },remove:function(_db){ 773 this._add_or_remove_function(_db); 781 774 },start:function(){ 782 775 this.executable=true; 783 776 },stop:function(){ 784 777 this.executable=false; 785 },_add_or_remove_function:function(_d f,_e0,_e1){786 var _ e2;787 var _e 3=new Array();788 var _e 4=this;789 $A(_d f.toLowerCase().split("+")).each(function(key){778 },_add_or_remove_function:function(_dc,_dd,_de){ 779 var _df; 780 var _e0=new Array(); 781 var _e1=this; 782 $A(_dc.toLowerCase().split("+")).each(function(key){ 790 783 if(key=="alt"){ 791 _e 3.push("a");784 _e0.push("a"); 792 785 }else{ 793 786 if(key=="ctrl"){ 794 _e 3.push("c");787 _e0.push("c"); 795 788 }else{ 796 789 if(key=="shift"){ 797 _e 3.push("s");798 }else{ 799 _ e2=_e4.keyCode[key];800 } 801 } 802 } 803 }); 804 var key=_e 3.sortBy(function(_e7,_e8){805 return _e 7;790 _e0.push("s"); 791 }else{ 792 _df=_e1.keyCode[key]; 793 } 794 } 795 } 796 }); 797 var key=_e0.sortBy(function(_e4,_e5){ 798 return _e4; 806 799 }).join(""); 807 800 if(key==""){ 808 801 key="n"; 809 802 } 810 if(_ e0){811 if(_ e1){812 this.keyupFunc[_ e2]=_e0;813 }else{ 814 this.keydownFunc[key][_ e2]=_e0;815 } 816 }else{ 817 if(_ e1){818 this.keyupFunc[_ e2]=null;819 }else{ 820 this.keydownFunc[key][_ e2]=null;821 } 822 } 823 },_mergeNumKey:function(_e 9){824 return (this.numKeys[_e 9])?this.numKeys[_e9]:_e9;803 if(_dd){ 804 if(_de){ 805 this.keyupFunc[_df]=_dd; 806 }else{ 807 this.keydownFunc[key][_df]=_dd; 808 } 809 }else{ 810 if(_de){ 811 this.keyupFunc[_df]=null; 812 }else{ 813 this.keydownFunc[key][_df]=null; 814 } 815 } 816 },_mergeNumKey:function(_e6){ 817 return (this.numKeys[_e6])?this.numKeys[_e6]:_e6; 825 818 }}; 826 819 Function.prototype.callAfterLoading=function(){ 827 var _e a=$A(arguments);828 var _e b=this;829 var _e c=_ea.shift()||this;820 var _e7=$A(arguments); 821 var _e8=this; 822 var _e9=_e7.shift()||this; 830 823 if(UserAgent.isIE()&&(document.readyState!="complete")){ 831 824 Event.observe(window,"load",function(){ 832 _e b.apply(_ec,_ea);833 }); 834 }else{ 835 this.apply(_e c,_ea);825 _e8.apply(_e9,_e7); 826 }); 827 }else{ 828 this.apply(_e9,_e7); 836 829 } 837 830 }; … … 848 841 document.body.focus(); 849 842 } 850 },concat:function(_e d,_ee){851 var _e f={};852 _e e.each(function(_f0){853 _e f[_f0]=_ed.appendSuffix(_f0);854 }); 855 return _e f;856 },getId:function(_ f1){857 _ f1=_f1||"";858 return _ f1.appendSuffix(++SpinelzUtil.idCount);859 },toAttriteString:function(_ f2,_f3){860 var _f 4=_f2.map(function(_f5){861 return _f 5.key+"='"+_f5.value+"'";843 },concat:function(_ea,_eb){ 844 var _ec={}; 845 _eb.each(function(_ed){ 846 _ec[_ed]=_ea.appendSuffix(_ed); 847 }); 848 return _ec; 849 },getId:function(_ee){ 850 _ee=_ee||""; 851 return _ee.appendSuffix(++SpinelzUtil.idCount); 852 },toAttriteString:function(_ef,_f0){ 853 var _f1=_ef.map(function(_f2){ 854 return _f2.key+"='"+_f2.value+"'"; 862 855 }).join(" "); 863 if(_f 3&&(_f4.length>0)){864 _f 4=" "+_f4;865 } 866 return _f 4;867 },_redrawForIE:function(_f 6){856 if(_f0&&(_f1.length>0)){ 857 _f1=" "+_f1; 858 } 859 return _f1; 860 },_redrawForIE:function(_f3){ 868 861 if(UserAgent.isIE()){ 869 _f 6=$(_f6);870 if(_f 6){862 _f3=$(_f3); 863 if(_f3){ 871 864 setTimeout(function(){ 872 Element.classNames(_f 6).set("dummy");865 Element.classNames(_f3).set("dummy"); 873 866 },200); 874 867 } … … 881 874 }); 882 875 } 883 var $A=Array.from=function(_f 7){884 if(!_f 7){876 var $A=Array.from=function(_f4){ 877 if(!_f4){ 885 878 return []; 886 879 } 887 if(_f 7.toArray){888 return _f 7.toArray();889 }else{ 890 var _f 8=[];891 for(var i=0,len=_f 7.length;i<len;i++){892 _f 8.push(_f7[i]);893 } 894 return _f 8;880 if(_f4.toArray){ 881 return _f4.toArray(); 882 }else{ 883 var _f5=[]; 884 for(var i=0,len=_f4.length;i<len;i++){ 885 _f5.push(_f4[i]); 886 } 887 return _f5; 895 888 } 896 889 }; 897 890 var Color=Class.create(); 898 Color.prototype={initialize:function(_f b){899 this.color=this.parse(_f b);900 },toHex:function(_f c){901 _f c=_fc||this.color;902 return _f c.invoke("toColorPart");891 Color.prototype={initialize:function(_f8){ 892 this.color=this.parse(_f8); 893 },toHex:function(_f9){ 894 _f9=_f9||this.color; 895 return _f9.invoke("toColorPart"); 903 896 },invert:function(){ 904 897 return this.toCssStyle(this.color.map(function(c){ 905 898 return 255-c; 906 899 })); 907 },toCssStyle:function(_f e){908 _f e=_fe||this.color;909 return "#"+this.toHex(_f e).join("");910 },parse:function(_f f){911 _f f=_ff||this.color;912 if(_f f.match(/rgb\(\d+,\s*\d+,\s*\d+\)/)){913 return _f f.match(/\d+/g).map(function(c){900 },toCssStyle:function(_fb){ 901 _fb=_fb||this.color; 902 return "#"+this.toHex(_fb).join(""); 903 },parse:function(_fc){ 904 _fc=_fc||this.color; 905 if(_fc.match(/rgb\(\d+,\s*\d+,\s*\d+\)/)){ 906 return _fc.match(/\d+/g).map(function(c){ 914 907 return parseInt(c,10); 915 908 }); 916 909 }else{ 917 if(_f f.match(/#[a-fA-F0-9]{6}/)){918 return _f f.match(/([a-fA-F0-9]){2}/g).map(function(c){910 if(_fc.match(/#[a-fA-F0-9]{6}/)){ 911 return _fc.match(/([a-fA-F0-9]){2}/g).map(function(c){ 919 912 return parseInt(c,16); 920 913 }); 921 914 } 922 915 } 923 throw "parse error: "+_f f;916 throw "parse error: "+_fc; 924 917 }}; 925 918 var DebugConsole={_active:false,_basetime:null,_messages:null,activate:function(){ 926 919 this._active=true; 927 },dump:function(_ 102){928 _ 102=_102||{};929 switch(_ 102.type){920 },dump:function(_ff){ 921 _ff=_ff||{}; 922 switch(_ff.type){ 930 923 case "alert": 931 924 this._dump_alert(); … … 938 931 break; 939 932 case "update": 940 this._dump_update(_ 102.target);933 this._dump_update(_ff.target); 941 934 break; 942 935 default: … … 957 950 this._messages=[]; 958 951 } 959 },log:function(_10 3){952 },log:function(_100){ 960 953 if(this._active){ 961 var _10 4=("00000000"+(new Date()-this._basetime)).slice(-8);962 this._messages.push(_10 4+" : "+_103);954 var _101=("00000000"+(new Date()-this._basetime)).slice(-8); 955 this._messages.push(_101+" : "+_100); 963 956 } 964 957 },_dump_alert:function(){ 965 this._messages.each(function(_10 5){966 alert(_10 5);958 this._messages.each(function(_102){ 959 alert(_102); 967 960 }); 968 961 },_dump_clipboard:function(){ 969 962 var dump=""; 970 this._messages.each(function(_10 7){971 dump+=_10 7+"\n";963 this._messages.each(function(_104){ 964 dump+=_104+"\n"; 972 965 }); 973 966 clipboardData.setData("Text",dump); 974 967 },_dump_console:function(){ 968 this._messages.each(function(_105){ 969 console.log(_105); 970 }); 971 },_dump_update:function(_106){ 972 var html=""; 975 973 this._messages.each(function(_108){ 976 console.log(_108); 977 }); 978 },_dump_update:function(_109){ 979 var html=""; 980 this._messages.each(function(_10b){ 981 html+="<p>"+_10b+"</p>"; 982 }); 983 Element.update(_109,html); 974 html+="<p>"+_108+"</p>"; 975 }); 976 Element.update(_106,html); 984 977 }}; 985 978 spinelz/trunk/compress/javascripts/spinelz_lib/spinelz_util_for_rubricks.js
r5576 r5578 5140 5140 var Modal={maskId:"modalMask",maskClass:"modal_mask",maskClassIE:"modal_mask_ie",element:null,snaps:null,listener:null,resizeListener:null,cover:null,excepteds:null,maskCallbacks:[],unmaskCallbacks:[],count:0,tabKey:9,mask:function(_a2){ 5141 5141 this._mask.callAfterLoading(this,_a2); 5142 this._ disable_tab_key();5142 this._control_tab_key(); 5143 5143 },unmask:function(){ 5144 5144 this._unmask(); 5145 var _a3=$A(document.body.getElementsByTagName("form")); 5146 this._enable_tab_key(_a3); 5147 this._disable_tab_key(_a3); 5145 this._control_tab_key(); 5148 5146 },unmaskAll:function(){ 5149 5147 var max=10; 5150 var _a 5=0;5151 while(this._isMasked()&&(_a 5<max)){5148 var _a4=0; 5149 while(this._isMasked()&&(_a4<max)){ 5152 5150 this._unmask(); 5153 _a 5++;5154 } 5155 this._ enable_tab_key();5156 },addMaskCallback:function(_a 6){5151 _a4++; 5152 } 5153 this._control_tab_key(); 5154 },addMaskCallback:function(_a5){ 5157 5155 if(!this.maskCallbacks.any(function(c){ 5158 return c==_a 6;5156 return c==_a5; 5159 5157 })){ 5160 this.maskCallbacks.push(_a 6);5161 } 5162 },removeMaskCallback:function(_a 8){5158 this.maskCallbacks.push(_a5); 5159 } 5160 },removeMaskCallback:function(_a7){ 5163 5161 this.maskCallbacks=this.maskCallbacks.reject(function(c){ 5164 return c==_a 8;5162 return c==_a7; 5165 5163 }); 5166 5164 },clearMaskCallback:function(){ 5167 5165 this.maskCallbacks=[]; 5168 },addUnmaskCallback:function(_a a){5166 },addUnmaskCallback:function(_a9){ 5169 5167 if(!this.unmaskCallbacks.any(function(c){ 5170 return c==_a a;5168 return c==_a9; 5171 5169 })){ 5172 this.unmaskCallbacks.push(_a a);5173 } 5174 },removeUnmaskCallback:function(_a c){5170 this.unmaskCallbacks.push(_a9); 5171 } 5172 },removeUnmaskCallback:function(_ab){ 5175 5173 this.unmaskCallbacks=this.unmaskCallbacks.reject(function(c){ 5176 return c==_a c;5174 return c==_ab; 5177 5175 }); 5178 5176 },clearUnmaskCallback:function(){ 5179 5177 this.unmaskCallbacks=[]; 5180 },_mask:function(_a e){5181 var _a f=Object.extend({cssPrefix:"custom_",zIndex:null},arguments[1]||{});5178 },_mask:function(_ad){ 5179 var _ae=Object.extend({cssPrefix:"custom_",zIndex:null},arguments[1]||{}); 5182 5180 if(Modal.element){ 5183 Modal._snap(_a e);5181 Modal._snap(_ad); 5184 5182 Modal._rebuildMask(); 5185 5183 }else{ 5186 5184 Modal.snaps=[]; 5187 5185 Modal.excepteds=[]; 5188 Modal._buildMask(_a f.cssPrefix);5186 Modal._buildMask(_ae.cssPrefix); 5189 5187 Modal.cover=new IECover(Modal.element,{transparent:true}); 5190 5188 } 5191 Modal._setZindex(_a e,_af.zIndex);5189 Modal._setZindex(_ad,_ae.zIndex); 5192 5190 Modal._setFullSize(); 5193 if(!Modal.hasExcepted(_a e)){5194 Modal.excepteds.push(_a e);5191 if(!Modal.hasExcepted(_ad)){ 5192 Modal.excepteds.push(_ad); 5195 5193 } 5196 5194 this.count++; 5197 this.maskCallbacks.each(function(_ b0){5198 _ b0(_ae);5195 this.maskCallbacks.each(function(_af){ 5196 _af(_ad); 5199 5197 }); 5200 5198 },_unmask:function(){ … … 5212 5210 } 5213 5211 this.count++; 5214 this.unmaskCallbacks.each(function(_b 1){5215 _b 1();5212 this.unmaskCallbacks.each(function(_b0){ 5213 _b0(); 5216 5214 }); 5217 5215 },_addEvent:function(){ … … 5227 5225 },_isMasked:function(){ 5228 5226 return Modal.element&&Element.visible(Modal.element); 5229 },_snap:function(_b 2){5230 var _b 3=Element.getStyle(Modal.element,"zIndex");5231 if(_b 3&&Modal._isMasked()&&!Modal.hasExcepted(_b2)){5232 Modal.snaps.push(_b 3);5233 } 5234 },_setZindex:function(_b 4,_b5){5235 _b 5=ZindexManager.getIndex(_b5);5236 Element.setStyle(Modal.element,{zIndex:_b 5});5237 _b 4=Element.makePositioned($(_b4));5238 Element.setStyle(_b 4,{zIndex:++_b5});5227 },_snap:function(_b1){ 5228 var _b2=Element.getStyle(Modal.element,"zIndex"); 5229 if(_b2&&Modal._isMasked()&&!Modal.hasExcepted(_b1)){ 5230 Modal.snaps.push(_b2); 5231 } 5232 },_setZindex:function(_b3,_b4){ 5233 _b4=ZindexManager.getIndex(_b4); 5234 Element.setStyle(Modal.element,{zIndex:_b4}); 5235 _b3=Element.makePositioned($(_b3)); 5236 Element.setStyle(_b3,{zIndex:++_b4}); 5239 5237 },_setFullSize:function(){ 5240 5238 Modal.element.setStyle({width:Element.getWindowWidth()+"px",height:Element.getWindowHeight()+"px"}); … … 5242 5240 Modal.cover.resetSize(); 5243 5241 } 5244 },_buildMask:function(_b 6){5245 var _b 7=Builder.node("div",{id:Modal.maskId});5246 Modal._setClassNames(_b 7,_b6);5247 document.body.appendChild(_b 7);5248 Modal.element=_b 7;5242 },_buildMask:function(_b5){ 5243 var _b6=Builder.node("div",{id:Modal.maskId}); 5244 Modal._setClassNames(_b6,_b5); 5245 document.body.appendChild(_b6); 5246 Modal.element=_b6; 5249 5247 Modal._addEvent(); 5250 },_setClassNames:function(_b 8,_b9){5251 var _b a=(UserAgent.isIE())?Modal.maskClassIE:Modal.maskClass;5252 Element.addClassName(_b 8,_ba);5253 Element.addClassName(_b 8,_b9+_ba);5248 },_setClassNames:function(_b7,_b8){ 5249 var _b9=(UserAgent.isIE())?Modal.maskClassIE:Modal.maskClass; 5250 Element.addClassName(_b7,_b9); 5251 Element.addClassName(_b7,_b8+_b9); 5254 5252 },_rebuildMask:function(){ 5255 5253 document.body.appendChild(Modal.element); … … 5262 5260 return src.spinelzMaskResult; 5263 5261 } 5264 var _b c=false;5265 var _b d=this.excepteds.last();5266 var _b e=src;5267 if(_b d&&Element.descendantOf(src,_bd)){5268 _b c=true;5269 }else{ 5270 var _b f=Element.getStyle(Modal.element,"zIndex");5271 var _ c0=null;5262 var _bb=false; 5263 var _bc=this.excepteds.last(); 5264 var _bd=src; 5265 if(_bc&&Element.descendantOf(src,_bc)){ 5266 _bb=true; 5267 }else{ 5268 var _be=Element.getStyle(Modal.element,"zIndex"); 5269 var _bf=null; 5272 5270 while((src=src.parentNode)&&src!=document.body){ 5273 if(src.style&&(_ c0=Element.getStyle(src,"zIndex"))){5274 _b c=(_c0>_bf);5271 if(src.style&&(_bf=Element.getStyle(src,"zIndex"))){ 5272 _bb=(_bf>_be); 5275 5273 break; 5276 5274 } 5277 5275 } 5278 5276 } 5279 _b e.spinelzMaskCount=this.count;5280 _b e.spinelzMaskResult=_bc;5281 return _b c;5282 },_handleEvent:function(_c 1){5283 var src=Event.element(_c 1);5284 if(!(Modal._isOutOfModal(src)||(_c 1.keyCode&&(_c1.keyCode==this.tabKey)))){5285 Event.stop(_c 1);5286 } 5287 },_onResize:function(_c 3){5277 _bd.spinelzMaskCount=this.count; 5278 _bd.spinelzMaskResult=_bb; 5279 return _bb; 5280 },_handleEvent:function(_c0){ 5281 var src=Event.element(_c0); 5282 if(!(Modal._isOutOfModal(src)||(_c0.keyCode&&(_c0.keyCode==this.tabKey)))){ 5283 Event.stop(_c0); 5284 } 5285 },_onResize:function(_c2){ 5288 5286 Modal._setFullSize(); 5289 },hasExcepted:function(_c 4){5290 return (Modal.excepteds||[]).any(function(_c 5){5291 return _c 5.id==_c4.id;5292 }); 5293 },_ disable_tab_key:function(_c6){5294 if(!_c 6){5295 _c 6=$A(document.body.getElementsByTagName("form"));5296 } 5297 _c 6.each(function(_c7){5298 if(!Modal._isOutOfModal(_c 7)){5299 Form.getElements(_c 7).each(function(el){5287 },hasExcepted:function(_c3){ 5288 return (Modal.excepteds||[]).any(function(_c4){ 5289 return _c4.id==_c3.id; 5290 }); 5291 },_control_tab_key:function(_c5){ 5292 if(!_c5){ 5293 _c5=$A(document.body.getElementsByTagName("form")); 5294 } 5295 _c5.each(function(_c6){ 5296 if(!Modal._isOutOfModal(_c6)){ 5297 Form.getElements(_c6).each(function(el){ 5300 5298 el.tabIndex=-1; 5301 5299 }); 5302 } 5303 }); 5304 },_enable_tab_key:function(_c9){ 5305 if(!_c9){ 5306 _c9=$A(document.body.getElementsByTagName("form")); 5307 } 5308 _c9.each(function(_ca){ 5309 Form.getElements(_ca).each(function(el){ 5300 }else{ 5301 Form.getElements(_c6).each(function(el){ 5310 5302 el.tabIndex=null; 5311 5303 }); 5304 } 5312 5305 }); 5313 5306 }}; 5314 5307 var IECover=Class.create(); 5315 5308 IECover.src="javascript:false;"; 5316 IECover.prototype={idSuffix:"iecover",initialize:function(_c c){5309 IECover.prototype={idSuffix:"iecover",initialize:function(_c9){ 5317 5310 this.options=Object.extend({transparent:false,padding:0},arguments[1]||{}); 5318 5311 if(document.all){ 5319 _c c=$(_cc);5320 this.id=_c c.id.appendSuffix(this.idSuffix);5321 this._build(_c c);5312 _c9=$(_c9); 5313 this.id=_c9.id.appendSuffix(this.idSuffix); 5314 this._build(_c9); 5322 5315 this.resetSize(); 5323 5316 } 5324 5317 },resetSize:function(){ 5325 5318 if(this.element){ 5326 var _c d=this.element.parentNode;5327 var _c e=this.options.padding;5328 this.element.width=_c d.offsetWidth-_ce+"px";5329 this.element.height=Element.getHeight(_c d)-_ce+"px";5330 } 5331 },_build:function(_c f){5332 var _ d0=this.options.padding/2;5333 var _ d1={position:"absolute",top:_d0+"px",left:_d0+"px"};5319 var _ca=this.element.parentNode; 5320 var _cb=this.options.padding; 5321 this.element.width=_ca.offsetWidth-_cb+"px"; 5322 this.element.height=Element.getHeight(_ca)-_cb+"px"; 5323 } 5324 },_build:function(_cc){ 5325 var _cd=this.options.padding/2; 5326 var _ce={position:"absolute",top:_cd+"px",left:_cd+"px"}; 5334 5327 if(this.options.transparent){ 5335 _ d1.filter="alpha(opacity=0)";5336 } 5337 if(_c f.buildedIECover&&$(this.id)){5328 _ce.filter="alpha(opacity=0)"; 5329 } 5330 if(_cc.buildedIECover&&$(this.id)){ 5338 5331 this.element=$(this.id); 5339 5332 }else{ 5340 5333 this.element=Builder.node("iframe",{src:IECover.src,id:this.id,frameborder:0}); 5341 5334 } 5342 Element.setStyle(this.element,_ d1);5343 var _ d2=Element.down(_cf,0);5344 if(_ d2){5345 Element.makePositioned(_ d2);5346 } 5347 _c f.insertBefore(this.element,_cf.firstChild);5348 _c f.buildedIECover=true;5335 Element.setStyle(this.element,_ce); 5336 var _cf=Element.down(_cc,0); 5337 if(_cf){ 5338 Element.makePositioned(_cf); 5339 } 5340 _cc.insertBefore(this.element,_cc.firstChild); 5341 _cc.buildedIECover=true; 5349 5342 }}; 5350 5343 var UserAgent={getUserAgent:function(){ … … 5361 5354 var ShortcutManager=Class.create(); 5362 5355 ShortcutManager.prototype={initialize:function(){ 5363 var _d 3={detectKeyup:false,initialStarted:true,preventDefault:true};5364 this.options=Object.extend(_d 3,arguments[0]||{});5356 var _d0={detectKeyup:false,initialStarted:true,preventDefault:true}; 5357 this.options=Object.extend(_d0,arguments[0]||{}); 5365 5358 this.keydownListener=this.eventKeydown.bindAsEventListener(this); 5366 5359 if(this.options.detectKeyup){ … … 5388 5381 Event.observe(document,"keyup",this.keyupListener); 5389 5382 } 5390 },add:function(c1,c2,_d 6){5383 },add:function(c1,c2,_d3){ 5391 5384 if(c1.constructor==Array){ 5392 var _d 7=this;5393 c1.each(function(_d 8){5394 _d 7._add_or_remove_function(_d8[0],_d8[1],_d6);5395 }); 5396 }else{ 5397 this._add_or_remove_function(c1,c2,_d 6);5385 var _d4=this; 5386 c1.each(function(_d5){ 5387 _d4._add_or_remove_function(_d5[0],_d5[1],_d3); 5388 }); 5389 }else{ 5390 this._add_or_remove_function(c1,c2,_d3); 5398 5391 } 5399 5392 },destroy:function(){ … … 5402 5395 Event.stopObserving(document,"keyup",this.keyupListener); 5403 5396 } 5404 },eventKeydown:function(_d9){ 5397 },eventKeydown:function(_d6){ 5398 if(this.executable){ 5399 var _d7; 5400 var key=""; 5401 _d6=_d6||window.event; 5402 if(_d6.keyCode){ 5403 if(_d6.altKey){ 5404 key+="a"; 5405 } 5406 if(_d6.ctrlKey){ 5407 key+="c"; 5408 } 5409 if(_d6.shiftKey){ 5410 key+="s"; 5411 } 5412 if(key==""){ 5413 key="n"; 5414 } 5415 _d7=this._mergeNumKey(_d6.keyCode); 5416 if(this.keydownFunc[key][_d7]){ 5417 this.keydownFunc[key][_d7](); 5418 if(this.options.preventDefault){ 5419 Event.stop(_d6); 5420 } 5421 } 5422 } 5423 } 5424 },eventKeyup:function(_d9){ 5405 5425 if(this.executable){ 5406 5426 var _da; 5407 var key="";5408 5427 _d9=_d9||window.event; 5409 5428 if(_d9.keyCode){ 5410 if(_d9.altKey){5411 key+="a";5412 }5413 if(_d9.ctrlKey){5414 key+="c";5415 }5416 if(_d9.shiftKey){5417 key+="s";5418 }5419 if(key==""){5420 key="n";5421 }5422 5429 _da=this._mergeNumKey(_d9.keyCode); 5423 if(this.key downFunc[key][_da]){5424 this.key downFunc[key][_da]();5430 if(this.keyupFunc[_da]){ 5431 this.keyupFunc[_da](); 5425 5432 if(this.options.preventDefault){ 5426 5433 Event.stop(_d9); … … 5429 5436 } 5430 5437 } 5431 },eventKeyup:function(_dc){ 5432 if(this.executable){ 5433 var _dd; 5434 _dc=_dc||window.event; 5435 if(_dc.keyCode){ 5436 _dd=this._mergeNumKey(_dc.keyCode); 5437 if(this.keyupFunc[_dd]){ 5438 this.keyupFunc[_dd](); 5439 if(this.options.preventDefault){ 5440 Event.stop(_dc); 5441 } 5442 } 5443 } 5444 } 5445 },remove:function(_de){ 5446 this._add_or_remove_function(_de); 5438 },remove:function(_db){ 5439 this._add_or_remove_function(_db); 5447 5440 },start:function(){ 5448 5441 this.executable=true; 5449 5442 },stop:function(){ 5450 5443 this.executable=false; 5451 },_add_or_remove_function:function(_d f,_e0,_e1){5452 var _ e2;5453 var _e 3=new Array();5454 var _e 4=this;5455 $A(_d f.toLowerCase().split("+")).each(function(key){5444 },_add_or_remove_function:function(_dc,_dd,_de){ 5445 var _df; 5446 var _e0=new Array(); 5447 var _e1=this; 5448 $A(_dc.toLowerCase().split("+")).each(function(key){ 5456 5449 if(key=="alt"){ 5457 _e 3.push("a");5450 _e0.push("a"); 5458 5451 }else{ 5459 5452 if(key=="ctrl"){ 5460 _e 3.push("c");5453 _e0.push("c"); 5461 5454 }else{ 5462 5455 if(key=="shift"){ 5463 _e 3.push("s");5464 }else{ 5465 _ e2=_e4.keyCode[key];5466 } 5467 } 5468 } 5469 }); 5470 var key=_e 3.sortBy(function(_e7,_e8){5471 return _e 7;5456 _e0.push("s"); 5457 }else{ 5458 _df=_e1.keyCode[key]; 5459 } 5460 } 5461 } 5462 }); 5463 var key=_e0.sortBy(function(_e4,_e5){ 5464 return _e4; 5472 5465 }).join(""); 5473 5466 if(key==""){ 5474 5467 key="n"; 5475 5468 } 5476 if(_ e0){5477 if(_ e1){5478 this.keyupFunc[_ e2]=_e0;5479 }else{ 5480 this.keydownFunc[key][_ e2]=_e0;5481 } 5482 }else{ 5483 if(_ e1){5484 this.keyupFunc[_ e2]=null;5485 }else{ 5486 this.keydownFunc[key][_ e2]=null;5487 } 5488 } 5489 },_mergeNumKey:function(_e 9){5490 return (this.numKeys[_e 9])?this.numKeys[_e9]:_e9;5469 if(_dd){ 5470 if(_de){ 5471 this.keyupFunc[_df]=_dd; 5472 }else{ 5473 this.keydownFunc[key][_df]=_dd; 5474 } 5475 }else{ 5476 if(_de){ 5477 this.keyupFunc[_df]=null; 5478 }else{ 5479 this.keydownFunc[key][_df]=null; 5480 } 5481 } 5482 },_mergeNumKey:function(_e6){ 5483 return (this.numKeys[_e6])?this.numKeys[_e6]:_e6; 5491 5484 }}; 5492 5485 Function.prototype.callAfterLoading=function(){ 5493 var _e a=$A(arguments);5494 var _e b=this;5495 var _e c=_ea.shift()||this;5486 var _e7=$A(arguments); 5487 var _e8=this; 5488 var _e9=_e7.shift()||this; 5496 5489 if(UserAgent.isIE()&&(document.readyState!="complete")){ 5497 5490 Event.observe(window,"load",function(){ 5498 _e b.apply(_ec,_ea);5499 }); 5500 }else{ 5501 this.apply(_e c,_ea);5491 _e8.apply(_e9,_e7); 5492 }); 5493 }else{ 5494 this.apply(_e9,_e7); 5502 5495 } 5503 5496 }; … … 5514 5507 document.body.focus(); 5515 5508 } 5516 },concat:function(_e d,_ee){5517 var _e f={};5518 _e e.each(function(_f0){5519 _e f[_f0]=_ed.appendSuffix(_f0);5520 }); 5521 return _e f;5522 },getId:function(_ f1){5523 _ f1=_f1||"";5524 return _ f1.appendSuffix(++SpinelzUtil.idCount);5525 },toAttriteString:function(_ f2,_f3){5526 var _f 4=_f2.map(function(_f5){5527 return _f 5.key+"='"+_f5.value+"'";5509 },concat:function(_ea,_eb){ 5510 var _ec={}; 5511 _eb.each(function(_ed){ 5512 _ec[_ed]=_ea.appendSuffix(_ed); 5513 }); 5514 return _ec; 5515 },getId:function(_ee){ 5516 _ee=_ee||""; 5517 return _ee.appendSuffix(++SpinelzUtil.idCount); 5518 },toAttriteString:function(_ef,_f0){ 5519 var _f1=_ef.map(function(_f2){ 5520 return _f2.key+"='"+_f2.value+"'"; 5528 5521 }).join(" "); 5529 if(_f 3&&(_f4.length>0)){5530 _f 4=" "+_f4;5531 } 5532 return _f 4;5533 },_redrawForIE:function(_f 6){5522 if(_f0&&(_f1.length>0)){ 5523 _f1=" "+_f1; 5524 } 5525 return _f1; 5526 },_redrawForIE:function(_f3){ 5534 5527 if(UserAgent.isIE()){ 5535 _f 6=$(_f6);5536 if(_f 6){5528 _f3=$(_f3); 5529 if(_f3){ 5537 5530 setTimeout(function(){ 5538 Element.classNames(_f 6).set("dummy");5531 Element.classNames(_f3).set("dummy"); 5539 5532 },200); 5540 5533 } … … 5547 5540 }); 5548 5541
