var chronology ={};
$(document).ready(function(){
	//$("#chronology").load("/about/corporate/history/xml/history.xml");
	 $.ajax({
	 	url:"xml/history.xml",
	   processData: false,
	   success: chronology.handleResponse
	 });
});

chronology.handleResponse =function(data){
	chronology.xmlParse(data)
}
chronology.xmlParse =function(data){
	chronology.startArray =[];
	chronology.startArray = $(data).find("event").attr("start").split(" ");
	for(i=0; i<$(data).find("event").length; i++){
		var str = $(data).find("event").eq(i).attr("start").split(" ");
		var title = $(data).find("event").eq(i).attr("title");
		var image = $(data).find("event").eq(i).attr("image");
		var txt =$(data).find("event").eq(i).text();
		chronology.startArray[i] =str;
		chronology.startArray[i].title =title;
		chronology.startArray[i].image =image || null;
		chronology.startArray[i].txt =txt;
	}
	chronology.startCounter = 0;
	chronology.endCounter =1;
	chronology.getThRows(chronology.startCounter,chronology.endCounter);
	chronology.makeTable(0,0);
	chronology.addTable(chronology.tableCode);
	chronology.makePulMenu();
	chronology.addPulMenu(chronology.pulMenuCode);
	chronology.movableArea = $("#chronologyJp").height() -300;
}
chronology.movableArea =0;
chronology.getPosition =function(e){
	var nowTop = $(e.target).css("top").split("px")[0];
	if(-(chronology.movableArea) > nowTop){
		$(e.target).css({top:-(chronology.movableArea)+"px"})
	}
	if(0 < nowTop){
		$(e.target).css({top:0})
	}
}
chronology.thRowsArray =new Array();
chronology.getThRows =function(s,e){
	var counter =e;
	while(chronology.startArray[s][2] == chronology.startArray[counter][2]){
		counter++;
		if(counter >chronology.startArray.length-1){
			break;
		}
	}
	chronology.thRowsArray.push(counter-s);
	var newstartCounter =counter;
	var newEndCounter = newstartCounter +1;
	if(counter < chronology.startArray.length){
		chronology.getThRows(newstartCounter,newEndCounter)
	}else{
		return;
	}

}
chronology.pulMenuCode ="<select id='chronologyPul'>\n<option selected='selected'>Select the year</option>\n";
chronology.makePulMenu =function(){
	for(i =0; i<chronology.AgeArray.length; i++){
		chronology.pulMenuCode += "<option value="+i+">"+chronology.AgeArray[i] + "</option>"
	}
	chronology.pulMenuCode +="</select>"
}
chronology.AgeArray =new Array();
chronology.age ={meiji:1867,taisyo:1911,syowa:1925,heisei:1988}
chronology.tableCode ="<div id='chronologyDragWrap'><table id='chronologyJp' class='chronologyTable'>\n";
chronology.monthCounter =0;
chronology.makeTable =function(rc,sc){
	var thRowsArrayCount =rc;
	var startCount =sc;
	var len =startCount  +chronology.thRowsArray[thRowsArrayCount]
	for(i = startCount; i<len;i++){
		//add Age
		chronology.tableCode += "<tr>\n";
		if(i == startCount){
			var age = chronology.startArray[i][2];
			if(chronology.age.meiji <= age && age <= chronology.age.taisyo){
				var wareki = "\n(明治"+ (age - chronology.age.meiji)+"）年";
			}else if(chronology.age.taisyo <= age && age <= chronology.age.syowa){
				var wareki = "\n(大正"+ (age - chronology.age.taisyo) +"）年";
			}else if(chronology.age.syowa <= age && age <= chronology.age.heisei){
				var wareki = "\n(昭和"+ (age - chronology.age.syowa) +"）年";
			}else{
				var wareki = "\n(平成"+ (age - chronology.age.heisei) +"）年";
			}
				chronology.AgeArray.push(age)
				chronology.tableCode +="<th rowspan='"+chronology.thRowsArray[thRowsArrayCount]+"' nowrap='nowrap'>" + age + "</th>\n"
		}
		
		//add Month
		if(chronology.monthCounter == 0){
			chronology.monthCounter = chronology.getRows(i) -1;
			chronology.tableCode +="<td class='month' rowspan='" + chronology.getRows(i) + "'>"+ chronology.getJpMonth(chronology.startArray[i][0]) + "</td>\n";
		
		}else{
			chronology.monthCounter =chronology.monthCounter-1;
		}
		//add Title and Image
		
		if(chronology.startArray[i].image != null){
			var imgSrc =chronology.startArray[i].image;
			chronology.tableCode +="<td>";
			chronology.tableCode +="<a href='"+imgSrc + "' title='" + chronology.startArray[i].title + "' onclick='tb_show(this.title,this.href,false);return false'>"
			chronology.tableCode +="<span>"
			chronology.tableCode +=chronology.startArray[i].title;
			chronology.tableCode +="</span>"
			chronology.tableCode +="<img src='/about/corporate/history/images/icon_camera.gif' class='iconCamera'>"
			chronology.tableCode +="</a>"
		}else{
			chronology.tableCode +="<td>"+ chronology.startArray[i].title;
		}
		chronology.tableCode +="</td>\n"
		chronology.tableCode +="</tr>\n"
	}
	var newStartCount = startCount + chronology.thRowsArray[thRowsArrayCount];
	var newThRowsArrayCount =thRowsArrayCount+1;
	if(newStartCount < chronology.startArray.length){
		chronology.makeTable(newThRowsArrayCount,newStartCount);
	}else{
		chronology.tableCode +="</table></div>"
		return;
	}
}
chronology.getRows =function(c){
	var counter = c;
	if(counter < chronology.startArray.length-1){
		while(chronology.startArray[counter][0] == chronology.startArray[counter+1][0]){
			if(chronology.startArray[counter][2] != chronology.startArray[counter+1][2]){
				break;
			}
				counter++
			if(counter >= chronology.startArray.length-1){
				return;
			}
		}
	}
		var rowCount = counter - c +1;
		//alert(rowCount);
		return rowCount;
}
chronology.addTable = function(code){
	$("#chronology").append(code);
}
chronology.addPulMenu = function(code){
	$("#chronologyPulWrap").append(code);
	$("#chronologyPul").change(function(e){
		var s = $("#chronologyPul option:selected").val();
		var h= ($("#chronologyJp th").eq(s).position().top-$("#chronologyJp").position().top);
		$("#chronology").animate({
			scrollTop:h,
			duration: 1000,
			easing: "linear"
		});
	});
}
chronology.weekLetter =["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];
chronology.getJpMonth =function(m){
	switch(m){
		case "JAN": return "JAN"; break;
		case "FEB": return "FEB"; break;
		case "MAR": return "MAR"; break;
		case "APR": return "APR"; break;
		case "MAY": return "MAY"; break;
		case "JUN": return "JUN"; break;
		case "JUL": return "JUL"; break;
		case "AUG": return "AUG"; break;
		case "SEP": return "SEP"; break;
		case "OCT": return "OCT"; break;
		case "NOV": return "NOV"; break;
		case "DEC": return "DEC"; break;
	}
}