Xv = {
	x0  : 0,			// 0%
	x1  : 100,			// 100%
	st  : new Array(),	// start point
	ed  : new Array(),	// end point
	a   : false,		// true->acceleration false->deceleration
	n   : 24,			// degree > 1
	gps : new Array(),	// graph bars
	id  : new Array(),	// timer id
	init : function(){
		var d = document;
		for( var i=0; i<10; i++ ){
			this.st[i] = new Array(0,0,0);
//			var tmp = XaData.sum/100;
			var tmp = (XaData.sum+1)/100;
			var ret = XaData.ret[i];
//			var a = ret.a / tmp;
			var a = (ret.a+1) / tmp;
			var b = ret.b / tmp;
			var c = ret.c / tmp;
			this.ed[i] = new Array(a,b,c);
			
			var obj = d.getElementById("item"+(i+1));
			var gp  = new Array();
			var dls = obj.getElementsByTagName("dl");
			for( var j=0; j<dls.length; j++ ){
				var dl = dls[j];
				gp[j] = dl.getElementsByTagName("dd")[1].getElementsByTagName("div")[0].getElementsByTagName("span")[0];
			}
			this.gps[i] = gp;
			this.draw(0,100,i);
		}
	},
	draw : function(cnt, end, no) {
	    if (cnt <= end) {
			var c = cnt++ / end;
			var gp = Xv.gps[no];
			for( var i=0; i<gp.length; i++ ){
				var x = Xv.f(c,Xv.st[no][i],Xv.ed[no][i]);
		    	gp[i].style.width = x + "%";
				gp[i].innerHTML = Math.round(x)+"%";
			}
			Xv.id[no]=setTimeout("Xv.draw(" + cnt + ", " + end + ", " + no + ");", 10);
		}else{
			clearTimeout(Xv.id[no]);
		}
	},
	f : function(c,x0,x1){
		if (Xv.a) {
			return x0 + (x1 - x0) * Math.pow(c, Xv.n);
		} else {
			return x1 - (x1 - x0) * Math.pow(1 - c, Xv.n);
		}
	},
	onRadioChange : function(idx, no){
		clearTimeout(this.id[no]);
		var sum = (XaData.sum+1)/100;
		var gp = this.gps[no];
		var ret = XaData.ret[no];
		for( var i=0; i<gp.length; i++ ){
			var e = gp[i];
			this.st[no][i] = e.style.width.replace("%","");
		}
		if( idx == 0 ){
			this.ed[no][0] = (ret.a+1)/sum;
			this.ed[no][1] = ret.b/sum;
			this.ed[no][2] = ret.c/sum;
		}else
		if( idx == 1 ){
			this.ed[no][0] = ret.a/sum;
			this.ed[no][1] = (ret.b+1)/sum;
			this.ed[no][2] = ret.c/sum;
		}else
		if( idx == 2 ){
			this.ed[no][0] = ret.a/sum;
			this.ed[no][1] = ret.b/sum;
			this.ed[no][2] = (ret.c+1)/sum;
		}else{
			this.ed[no][0] = ret.a/sum;
			this.ed[no][1] = ret.b/sum;
			this.ed[no][2] = ret.c/sum;
		}
		this.draw(0, 100, no);
	},
	getResult : function(){
		var url = "http://sp.mu-mo.net/ainouta/apps/get.cgi?rd=" + Math.random();
	    var cb = {
			s   : Xv.getResultCB,
			f   : function(){alert("fail")},
			arg : {idx:0}
		};
		Xc.http.asyncReq('GET',url,cb);
	},
	getResultCB : function(){
		arguments[0].txt = Xv.utf8Hack(arguments[0].txt);
		text = arguments[0].txt;
		XaData = eval("("+text+")");
//		setTimeout("Xv.getResult();", 5000);
	},
	getURL : function(url){
		var xhr = Xc.http.create();
		if( xhr ){
			Xo.show(3,true);
			var url = "http://sp.mu-mo.net/ainouta/apps/url/murl.php?url="+url+"&rd=" + Math.random();

			var cb = {
				s   : Xv.getURLCB,
				f   : function(){alert("fail")},
				arg : {idx:0}
			};

			Xc.http.asyncReq('GET',url,cb);
			return false;
		}else{
			return true;
		}
	},
	getURLCB : function(){
		arguments[0].txt = Xv.utf8Hack(arguments[0].txt);
		var text = arguments[0].txt;
		var obj = Xz.getObject("XoMobile");
		obj.innerHTML = text;
		Xo.show(3,false);
		Xo.show(2,true);
	},
	sendURL : function(){
		Xo.show(2,false,true);
		Xo.show(3,true);
		Xc.form.set("XfSendMail");
		var url = "http://sp.mu-mo.net/ainouta/apps/url/mailtourl.cgi?rd=" + Math.random();

		var cb = {
			s   : Xv.sendURLCB,
			f   : function(){alert("fail")},
			arg : {idx:0}
		};
		Xc.http.asyncReq('POST',url,cb);
	},
	sendURLCB : function(){
		Xo.show(3,false);
		arguments[0].txt = Xv.utf8Hack(arguments[0].txt);
		var text = arguments[0].txt.split("!");
		if( text[0] == "1" ){
			var obj = Xz.getObject("XoMobile");
//			var div = obj.getElementsByTagName("div")[1];
			obj.innerHTML = text[1];
		}else{
			var obj = Xz.getObject("XoMessageBox");
			obj.innerHTML = text[1];
			obj.style.display="block";
			Xw.show("closeMsgBtn",true);
		}
		Xo.show(2,true);
	},
	sendData : function(){
		var xhr = Xc.http.create();
		Xw.show("submitbtn",false);
		Xw.show("freewordCol",false);
		var inputs = document.getElementsByTagName("input");
		for( var i=0; i<inputs.length; i++ ){
			var e = inputs[i];
			e.style.display = "none";
		}
		
		if( xhr ){
			Xo.show(0,true);
			Xc.form.set("XfEnquete");
			var url = "http://sp.mu-mo.net/ainouta/apps/save.php?rd=" + Math.random();

			var cb = {
				s   : Xv.sendDataCB,
				f   : function(){alert("fail")},
				arg : {idx:0}
			};
			Xc.http.asyncReq('POST',url,cb);

			return false;
		}else{
			document.XfEnquete.submit();
			return true;
		}
	},
	sendDataCB : function(){
		arguments[0].txt = Xv.utf8Hack(arguments[0].txt);
		Xo.show(0,false);
		Xo.show(1,true);
		Xv.getResult();
		setTimeout("Xo.close();",5000);

	},
	utf8Hack : function(text){
		if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
			var esc = escape( text );
			if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
				text = decodeURIComponent( esc );
			}
		}
		return text;
	}
};


