Changeset 5916

Show
Ignore:
Timestamp:
08/13/08 16:06:48 (3 months ago)
Author:
uta
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinelz/trunk/compress/javascripts/spinelz/spinelz_for_rubricks.js

    r5907 r5916  
    119119window.location.hash=escape(_1f); 
    120120}}; 
     121 
     122var AutoKana=Class.create(); 
     123Object.extend(AutoKana,{kana_extraction_pattern:new RegExp(decodeURIComponent("%5B%5E%20%E3%80%80%E3%81%81%E3%81%82-%E3%82%93%E3%83%BC%5D"),"g"),kana_compacting_pattern:new RegExp(decodeURIComponent("%5B%E3%81%81%E3%81%83%E3%81%85%E3%81%87%E3%81%89%E3%81%A3%E3%82%83%E3%82%85%E3%82%87%5D"),"g"),label_string_hiragana:decodeURIComponent("%E3%81%8B%E3%81%AA%E8%87%AA%E5%8B%95%E8%A3%9C%E5%AE%8C"),label_string_katakana:decodeURIComponent("%E3%82%AB%E3%83%8A%E8%87%AA%E5%8B%95%E8%A3%9C%E5%AE%8C")}); 
     124Object.extend(AutoKana.prototype,{initialize:function(_1,_2){ 
     125this.elName=$(_1); 
     126this.elKana=$(_2); 
     127var _3={build:true,katakana:false,toggle:true}; 
     128this.options=Object.extend(_3,arguments[2]||{}); 
     129this.active=true; 
     130this._stateClear(); 
     131this._build(); 
     132},start:function(){ 
     133this.active=true; 
     134},stop:function(){ 
     135this.active=false; 
     136},toggle:function(_4){ 
     137var ev=_4||window.event; 
     138if(_4){ 
     139var el=Event.element(_4); 
     140if(el.checked){ 
     141this.active=true; 
     142}else{ 
     143this.active=false; 
     144} 
     145}else{ 
     146this.active=!this.active; 
     147} 
     148},_addEvents:function(){ 
     149Event.observe(this.elName,"blur",this._eventBlur.bindAsEventListener(this)); 
     150Event.observe(this.elName,"focus",this._eventFocus.bindAsEventListener(this)); 
     151Event.observe(this.elName,"keydown",this._eventKeyDown.bindAsEventListener(this)); 
     152},_build:function(){ 
     153if(this.options.build){ 
     154this._addEvents(); 
     155} 
     156if(this.options.toggle){ 
     157this._buildToggle(); 
     158} 
     159},_buildToggle:function(){ 
     160var _7=this.elName.parentNode; 
     161var _8=document.createElement("div"); 
     162var _9=this._buildToggleCheckBox(); 
     163var _a=this._buildToggleLabel(); 
     164_7.replaceChild(_8,this.elName); 
     165_8.appendChild(this.elName); 
     166_8.appendChild(_9); 
     167_8.appendChild(_a); 
     168},_buildToggleCheckBox:function(){ 
     169var _b=this; 
     170var el=document.createElement("input"); 
     171el.type="checkbox"; 
     172el.id=this.elName.id+"_toggle"; 
     173el.checked=true; 
     174el.style.border="none"; 
     175el.style.background="transparent"; 
     176el.style.cursor="pointer"; 
     177Event.observe(el,"click",this.toggle.bindAsEventListener(this)); 
     178return el; 
     179},_buildToggleLabel:function(){ 
     180var el=document.createElement("label"); 
     181el.htmlFor=this.elName.id+"_toggle"; 
     182el.style.cursor="pointer"; 
     183el.innerHTML=((this.options.katakana)?AutoKana.label_string_katakana:AutoKana.label_string_hiragana); 
     184return el; 
     185},_checkConvert:function(_e){ 
     186if(!this.flagConvert){ 
     187if(Math.abs(this.values.length-_e.length)>1){ 
     188var _f=_e.join("").replace(AutoKana.kana_compacting_pattern,"").split(""); 
     189if(Math.abs(this.values.length-_f.length)>1){ 
     190this._stateConvert(); 
     191} 
     192}else{ 
     193if(this.values.length==this.input.length&&this.values.join("")!=this.input){ 
     194this._stateConvert(); 
     195} 
     196} 
     197} 
     198},_checkValue:function(){ 
     199var _10,_11; 
     200_10=this.elName.value; 
     201if(_10==""){ 
     202this._stateClear(); 
     203this._setKana(); 
     204}else{ 
     205_10=this._removeString(_10); 
     206if(this.input==_10){ 
     207return; 
     208}else{ 
     209this.input=_10; 
     210if(!this.flagConvert){ 
     211_11=_10.replace(AutoKana.kana_extraction_pattern,"").split(""); 
     212this._checkConvert(_11); 
     213this._setKana(_11); 
     214} 
     215} 
     216} 
     217},_clearInterval:function(){ 
     218clearInterval(this.timer); 
     219},_eventBlur:function(_12){ 
     220this._clearInterval(); 
     221},_eventFocus:function(_13){ 
     222this._stateInput(); 
     223this._setInterval(); 
     224},_eventKeyDown:function(_14){ 
     225if(this.flagConvert){ 
     226this._stateInput(); 
     227} 
     228},_isHiragana:function(c){ 
     229return ((c>=12353&&c<=12435)||c==12445||c==12446); 
     230},_removeString:function(_16){ 
     231if(_16.match(this.ignoreString)){ 
     232return _16.replace(this.ignoreString,""); 
     233}else{ 
     234var i,_18,_19; 
     235_18=this.ignoreString.split(""); 
     236_19=_16.split(""); 
     237for(i=0;i<_18.length;i++){ 
     238if(_18[i]==_19[i]){ 
     239_19[i]=""; 
     240} 
     241} 
     242return _19.join(""); 
     243} 
     244},_setInterval:function(){ 
     245var _1a=this; 
     246this.timer=setInterval(function(){ 
     247_1a._checkValue(); 
     248},30); 
     249},_setKana:function(_1b){ 
     250if(!this.flagConvert){ 
     251if(_1b){ 
     252this.values=_1b; 
     253} 
     254if(this.active){ 
     255this.elKana.value=this._toKatakana(this.baseKana+this.values.join("")); 
     256} 
     257} 
     258},_stateClear:function(){ 
     259this.baseKana=""; 
     260this.flagConvert=false; 
     261this.ignoreString=""; 
     262this.input=""; 
     263this.values=[]; 
     264},_stateInput:function(){ 
     265this.baseKana=this.elKana.value; 
     266this.flagConvert=false; 
     267this.ignoreString=this.elName.value; 
     268},_stateConvert:function(){ 
     269this.baseKana=this.baseKana+this.values.join(""); 
     270this.flagConvert=true; 
     271this.values=[]; 
     272},_toKatakana:function(src){ 
     273if(this.options.katakana){ 
     274var c,i,str; 
     275str=new String; 
     276for(i=0;i<src.length;i++){ 
     277c=src.charCodeAt(i); 
     278if(this._isHiragana(c)){ 
     279str+=String.fromCharCode(c+96); 
     280}else{ 
     281str+=src.charAt(i); 
     282} 
     283} 
     284return str; 
     285}else{ 
     286return src; 
     287} 
     288}}); 
    121289 
    122290var Balloon=Class.create();