// --------------------------------

// ブルブル 3 (C) 20061111 oitake

// --------------------------------

// --------------------------------

// ユーザー定義変数

// --------------------------------

// ブルブルする速さ（1秒＝1000）

// ※少ないほど速い。

var brbr_interval=30;

// ブルブルする滑らかさ

// ※多いほど滑らか。

var brbr_frame=16;

// ブルブルする高さ

var brbr_amp=8;

// relフィルタ

var brbr_rel='brbr';

// relフィルタのふるまい

// ※真でrelフィルタのみ処理／偽でrelフィルタ以外を処理。

var brbr_rel_only=false;

// --------------------------------

// スクリプト本体

// ※「-2」を「-1」などにすると面白い。

// --------------------------------

var brbr_datas=[];

var brbr_timer_id=false;

var brbr_base=Math.PI*0.5/brbr_frame;

var brbr_amp2=brbr_amp/2;

function brbr()

{

for(var i=0; i<document.links.length; i++)

{

var k=document.links[i].rel==brbr_rel;

if(k==brbr_rel_only && document.links[i].childNodes && document.links[i].childNodes.length==1 && document.links[i].childNodes[0].nodeType=='3')

{

brbr_datas[i]=

{

time:-1,

html:document.links[i].innerHTML

};

eval('document.links[i].onmouseout=function(){brbr_out('+i+')};');

}

}

}

function brbr_out(n)

{

if(brbr_datas[n].time==-1)

{

brbr_datas[n].time=0;

}

if(!brbr_timer_id)

{

brbr_timer_id=setInterval('brbr_timer()',brbr_interval);

}

}

function brbr_timer()

{

var k=true;

for(var i in brbr_datas)

{

if(brbr_datas[i].time!=-1)

{

k=false;

var html='';

for(var j=0; j<brbr_datas[i].html.length; j++)

{

html+='<span style="position:relative;left:'+Math.round(Math.cos(brbr_base*brbr_datas[i].time)*(Math.random()*brbr_amp-brbr_amp2))+'px;top:'+Math.round(Math.cos(brbr_base*brbr_datas[i].time)*(Math.random()*brbr_amp-brbr_amp2))+'px;">'+brbr_datas[i].html.charAt(j)+'</span>';

}

document.links[i].innerHTML=html;

if(brbr_datas[i].time++==brbr_frame)

{

brbr_datas[i].time=-1;

document.links[i].innerHTML=brbr_datas[i].html;

}

}

}

if(k)

{

clearInterval(brbr_timer_id);

brbr_timer_id=false;

}

}

brbr();