<!--
/*-------------------------------------------------------------------
著作：Art System Service Copyright (C) 2000 Matsumura Seiichi Allright reserved.
スクリプト作成：matsumura.s
スクリプト名：Gradation Text Script
作成日：2000.11.28
更新日：2000.11.29
HomePage : http://system.szero.net/
E-mail : support@system.szero.net
-------------------------------------------------------------------*/
function getHexChar(number){	//0-15の数値を、16進数字(文字)に変換する関数の定義
		return "0123456789ABCDEF".charAt(number);
}

function numToHex(number){	//10進法を16進法に変換する関数の定義
	var kurai;var ret;var next;
	kurai=16;
	hex="";
	for(i=0;i<2;i++){
		next=Math.round(number/kurai-0.5);
		hex=getHexChar(number%kurai)+hex;
		number=next;
	}
	return hex;
}

function Hex_to_Num(hex){	//16進法を10進法に変換する関数の定義
	r1hex=getHexNum(hex.substring(1,2));
	r2hex=getHexNum(hex.substring(2,3));
	g1hex=getHexNum(hex.substring(3,4));
	g2hex=getHexNum(hex.substring(4,5));
	b1hex=getHexNum(hex.substring(5,6));
	b2hex=getHexNum(hex.substring(6,7));
	hexrgb=new Array(r1hex,r2hex,g1hex,g2hex,b1hex,b2hex);
	rnum=cal(r1hex,r2hex);
	gnum=cal(g1hex,g2hex);
	bnum=cal(b1hex,b2hex);
	numrgb=new Array(rnum,gnum,bnum);
	return numrgb;
}

function getHexNum(num){	//0-Fの16進法数値(文字)を、10進法に変換する関数の定義
	hexNum="0123456789ABCDEF".indexOf(num.toUpperCase(),0);
	return hexNum;
}

function cal(b,c){	//getHexNum(num)に使用する関数の定義
	num=b*16+c;
	return num;
}

function gradText(textdeta,stcolor,endcolor) {	//bgFade()のメイン関数の定義
	if(stcolor.length!=7||endcolor.length!=7){
		alert("色の指定が不正です");
	}else{
	d=Hex_to_Num(stcolor);
	f=Hex_to_Num(endcolor);
	sr=d[0];sg=d[1];sb=d[2];er=f[0];eg=f[1];eb=f[2];
	var scolor=new Array(sr,sg,sb);
	var ecolor=new Array(er,eg,eb);
		maxNum=textdeta.length;
		repeatNum = maxNum - 1;
		redStep=(ecolor[0]-scolor[0])/repeatNum;
		greenStep=(ecolor[1]-scolor[1])/repeatNum;
		blueStep=(ecolor[2]-scolor[2])/repeatNum;
		var color=new Array(maxNum);
		for (a=0;a<maxNum;a++){	//グラデーションカラーの配列を作成する関数の定義
			curColor=numToHex(Math.round(scolor[0]))+numToHex(Math.round(scolor[1]))+numToHex(Math.round(scolor[2]));
			color[a+1]="#"+curColor;		
			scolor[0]=scolor[0]+redStep;
			scolor[1]=scolor[1]+greenStep;
			scolor[2]=scolor[2]+blueStep;
			if(scolor[0]>255){
				scolor[0]=255;
			}else if(scolor[0]<0){
				scolor[0]=0;
			}
			if(scolor[1]>255){
				scolor[1]=255;
			}else if(scolor[1]<0){
				scolor[1]=0;
			}
			if(scolor[2]>255){
				scolor[2]=255;
			}else if(scolor[2]<0){
				scolor[2]=0;
			}
		}
		for(i=1;i<=maxNum;i++){
			text=textdeta.substring(i-1,i);
			document.write(text.fontcolor(color[i]));
		}
	}
}
//-->
