﻿/*
MIT License

 Web:Web and Character http://d.hatena.ne.jp/project_the_tower2/"
 Mail:george.nagaoka@gmail.com
*/

var phase = "insert";
var shiftflag = false;

function designTextToDivElement(desineText){
	var s=new Element("span");
	for(var i=0;i<desineText.elms.length;i++){
		var w = desineText.elms[i].spanElm = new Element("span");
		if(i==desineText.select){
			w.setStyle({"background":textColorObj[colorObjNumber].strongbackgroundColor,"color":textColorObj[colorObjNumber].strongColor,"marginLeft":"0.2em","marginRight":"0.05em","borderBottomStyle":"solid","borderBottomWidth":"1px"});
		}else{
			w.setStyle({"background":textColorObj[colorObjNumber].backgroundColor,"color":textColorObj[colorObjNumber].color,"marginLeft":"0.2em","marginRight":"0.05em","borderBottomStyle":"solid","borderBottomWidth":"1px"}); 
		}
		w.innerHTML = desineText.elms[i].text;
		s.appendChild(w);
	}
	return s;
}

var designText = Class.create({
	initialize:function(){
		this.elms = new Array();
		this.select =0;
	},
	elms:null,
	select:0
});

var elm = Class.create({
	text:null,
	canNum:0,
	segText:null,
	spanElm:null,
	candidateList:null,
	initialize:function(text,segText,candidateList){
		this.text = text;
		this.segText = segText;
		this.candidateList = candidateList;
	},
	nextText:function(){
		var s= this.canNum + 1;
		if(s>=this.candidateList.length){
			this.canNum =0;
		}else{
			this.canNum++;
		}
		this.text = this.candidateList[this.canNum];
	},
	previousText:function(){
		var s= this.canNum - 1;
		if(0>s){
			this.canNum =this.candidateList.length-1;
		}else{
			this.canNum--;
		}
		this.text = this.candidateList[this.canNum];
	}
})

//global
var myDesign = new designText();
var oldSuggestNum=-1;
var suggestWidth=1;

function designTextToSuggestArea(design){
	$("suggest").innerHTML="";
	var j = 0;
	var maxNum = 0;
	var maxTextLength = 0;
	var lengthflag=true;

	while(design.elms[design.select].candidateList.length>10*maxNum){
		maxNum++;
	}

	while(design.elms[design.select].canNum>=10*j){
		j++;
	}
	j--;

	if(oldSuggestNum == j) lengthflag=false;
	oldSuggestNum = j;

	$('textlength').style.visible = "inline";
	for(var i=0;i<10;i++){
		var s  = new Element("div");
		if(design.elms[design.select].candidateList[10*j+i]){
			var u="";
			if(design.elms[design.select].canNum%10==i){
				s.setStyle({"backgroundColor":textColorObj[colorObjNumber].strongbackgroundColor,"color":textColorObj[colorObjNumber].strongColor});
			}else{
				s.setStyle({"backgroundColor":"white","color":"black"});
			}
			s.innerHTML = u =design.elms[design.select].candidateList[10*j+i];

			if(lengthflag){
				$('textlength').innerHTML = u;
				var px =Element.getDimensions($('textlength')).width;
				if(px > maxTextLength) maxTextLength =px;
			}
			$("suggest").appendChild(s);
		}else{
			break;
		}
	}
	$('textlength').style.display = "none";
	var n  = new Element("div");
	n.innerHTML= (j + 1) + "/" + maxNum;
	n.align="right";
	if(lengthflag){
		suggestWidth = maxTextLength;
	}
	n.setStyle({"borderTopColor":"black","borderTopStyle":"solid","borderTopWidth":"1px"});
	$("suggest").appendChild(n);
	var xy0 =Position.cumulativeOffset(design.elms[myDesign.select].spanElm);
	$("suggest").setStyle({"display":"block","position":"absolute","left":xy0[0] -$("edit").scrollLeft + "px","top":xy0[1] -$("edit").scrollTop + 20 +"px","backgroundColor":"white","borderStyle":"solid","borderWidth":"1px","width":suggestWidth + 10 +"px"});
}
