e = turn = month = listNum = 0;
category = location.search ? Number(location.search.substring(1)) : '';
catName = new Array('company','ir','responsibility','automotive','non_automotive');
strDate = new Array('','Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.');
strLongDate = new Array('','January','February','March','April','May','June','July','August','September','October','November','December');

var jsonHostname = "http://www2.toyota.co.jp/wwwtoyotacojp/cojp/en/";
function callback_wwwtoyotacojp_cojp_toppage(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_ir(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_ir_news_release(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_responsibility(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_csr(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_environment(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_automotive(data) {callbackCommon(data);}
function callback_wwwtoyotacojp_cojp_non_automotive(data) {callbackCommon(data);}

function getIndex(n) {
	list = n;
	type = (typeof list == 'string') ? list : list[listNum++];
	indexDiv = document.getElementById(type);
	switch(type) {
		case "toppage":
		case "ir":
		case "ir_news_release":
		case "responsibility":
		case "csr":
		case "environment":
		case "automotive":
		case "non_automotive":
			jsondata = "";
			getIndexJSON();
			break;

		default:
			getIndexXML();
			break;
	}
}
function getIndexXML() {
	xmlhttp = createXMLHttp();
	if (xmlhttp) {
		filename = 'xml/' + type;
		if (type.indexOf('_ir') != -1) filename = filename.substring(0, filename.length - 3);
		if (type == 'environment')  filename = '/xml/environment';
		xmlhttp.onreadystatechange = drawXML;
		xmlhttp.open('GET', '/en/include/' + filename + '.xml?' + (new Date().getTime()));
		xmlhttp.send(null);
	} else {
		indexDiv.innerHTML = '<span class=normal><br>Macromedia Flash plugin & JavaScript are required<br> to view this site correctly.<br><br></span>';
		if (typeof list == 'object' && listNum < list.length) getIndex(list);
	}
}
function getIndexJSON() {
	filename = type;
	if (type.indexOf('_ir') != -1) filename = filename.substring(0, filename.length - 3);
	if (type == 'environment')  filename = 'environment';
	var url = jsonHostname + filename + '.json?' + (new Date().getTime());
	var idval = 'jsonp_' + type;
	var charset = 'shift-jis';
	indexDiv.innerHTML = '<span class=normal><br>Macromedia Flash plugin & JavaScript are required<br> to view this site correctly.<br><br></span>';

	charset = charset ? charset : 'utf-8';
	
	var headObj = document.getElementsByTagName('head')[0];

	var scriptTag = document.getElementById(idval);
	
	if (scriptTag) {
		headObj.removeChild(scriptTag);
	}
	scriptTag = document.createElement('script');
	scriptTag.type    = 'text/javascript';
	scriptTag.id      = idval;
	scriptTag.charset = charset;
	scriptTag.src     = url;
	headObj.appendChild(scriptTag);

}
function callbackCommon(data) {
	jsondata = data;
	if(jsondata.headline){
		drawJSON();
	} else {
		indexDiv.innerHTML = '<span class=mt><br>News data not available.<br></span>\n';
		if (typeof list == 'object' && listNum < list.length) getIndex(list);
	}
}
function drawXML(e, n1, n2, n3, n4) {
	if (typeof n1 != 'undefined') turn = n1;
	if (typeof n2 != 'undefined') month = n2;
	if (typeof n3 != 'undefined') category = n3;
	if (typeof n4 != 'undefined' && pageID[2] != n4) location.href = gMenu["gm0-0"][n4 * 3 + 1] + '?' + n3;
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		xmlDoc = xmlhttp.responseXML;
		hl = xmlDoc.getElementsByTagName("headline");
		hlLength = (type.indexOf('_ir') == -1 || hl.length < 5) ? hl.length : 5;
		if (type.indexOf('toppage') != -1) hlLength = (hl.length < 10) ? hl.length : 10;
		result = '';
		tMon = 0;
		if (turn) {
			for (var i = hlLength - 1; i >= 0; i--) { wrHTMLXML(i); }
		} else {
			for (var i = 0; i < hlLength; i++) { wrHTMLXML(i); }
		}
		if (type.indexOf('news') == 0 && type.indexOf('_ir') == -1) {
			if (typeof category == 'number') {
				var gm3t = "gm" + pageID[0] + "-" + pageID[1] + "-" + pageID[2];
				pageID[3] = category;
				document.getElementById('pageLocation').innerHTML = '&nbsp;&gt; &nbsp;' + gMenu[gm3t][category * 3 + 2];
				for (var i = 0; i < catName.length; i++) {
					document.getElementById(gm3t + '-' + i + 'txt').style.color = (category == i) ? '#B30000' : '';
				}
			}
			head  = '<table width="100%" height=28 border=0 cellspacing=0 cellpadding=0 bgcolor="#E9E9E9" style="margin-top:20px">';
			head += '<tr><td width=246><img src="../image/h_sort.gif" width=56 height=20 border=0 alt="Sorting" style="margin-left:12px">';
			head += '<a href="JavaScript:drawXML(e,0,month,category)"><img src="../image/b_new_' + (turn ? 'off' : 'on') + '.gif" width=79 height=20 hspace=2 border=0 alt="Newest Order"></a>';
			head += '<a href="JavaScript:drawXML(e,1,month,category)"><img src="../image/b_old_' + (turn ? 'on' : 'off') + '.gif" width=79 height=20 hspace=2 border=0 alt="Oldest Order"></a></td>';
			head += '<td width=82><img src="../image/h_month.gif" width=82 height=20 border=0 alt="Each month"></td>';
			head += '<td><form><select onChange="drawXML(e, turn, this.options[this.selectedIndex].value, category)"><option value="">All';
			if (turn) {
				for (var i = 1; i <= 12; i++) { head += '<option value=' + i + (i == month ? ' selected>' : '>') + strLongDate[i]; }
			} else {
				for (var i = 12; i >= 1; i--) { head += '<option value=' + i + (i == month ? ' selected>' : '>') + strLongDate[i]; }
			}
			head += '</select></form></td></tr>';
			head += '</table>\n';
		} else {
			head = '<table border=0 cellspacing=0 cellpadding=1>\n';
		}
		if (result) {
			indexDiv.innerHTML = head + result + '</table>\n';
		} else {
			indexDiv.innerHTML = head + '<span class=mt><br>News data not available.<br></span>\n';
		}
		if (typeof list == 'object' && listNum < list.length) getIndex(list);
	}
}
function drawJSON(e, n1, n2, n3, n4) {
	if (typeof n1 != 'undefined') turn = n1;
	if (typeof n2 != 'undefined') month = n2;
	if (typeof n3 != 'undefined') category = n3;
	if (typeof n4 != 'undefined' && pageID[2] != n4) location.href = gMenu["gm0-0"][n4 * 3 + 1] + '?' + n3;

	hl = jsondata.headline;
	hlLength = (type.indexOf('_ir') == -1 || hl.length < 5) ? hl.length : 5;
	if (type.indexOf('toppage') != -1) hlLength = (hl.length < 10) ? hl.length : 10;
	result = '';
	tMon = 0;
	if (turn) {
		for (var i = hlLength - 1; i >= 0; i--) { wrHTMLJSON(i); }
	} else {
		for (var i = 0; i < hlLength; i++) { wrHTMLJSON(i); }
	}
	if (type.indexOf('news') == 0 && type.indexOf('_ir') == -1) {
		if (typeof category == 'number') {
			var gm3t = "gm" + pageID[0] + "-" + pageID[1] + "-" + pageID[2];
			pageID[3] = category;
			document.getElementById('pageLocation').innerHTML = '&nbsp;&gt; &nbsp;' + gMenu[gm3t][category * 3 + 2];
			for (var i = 0; i < catName.length; i++) {
				document.getElementById(gm3t + '-' + i + 'txt').style.color = (category == i) ? '#B30000' : '';
			}
		}
		head  = '<table width="100%" height=28 border=0 cellspacing=0 cellpadding=0 bgcolor="#E9E9E9" style="margin-top:20px">';
		head += '<tr><td width=246><img src="../image/h_sort.gif" width=56 height=20 border=0 alt="Sorting" style="margin-left:12px">';
		head += '<a href="JavaScript:drawJSON(e,0,month,category)"><img src="../image/b_new_' + (turn ? 'off' : 'on') + '.gif" width=79 height=20 hspace=2 border=0 alt="Newest Order"></a>';
		head += '<a href="JavaScript:drawJSON(e,1,month,category)"><img src="../image/b_old_' + (turn ? 'on' : 'off') + '.gif" width=79 height=20 hspace=2 border=0 alt="Oldest Order"></a></td>';
		head += '<td width=82><img src="../image/h_month.gif" width=82 height=20 border=0 alt="Each month"></td>';
		head += '<td><form><select onChange="drawJSON(e, turn, this.options[this.selectedIndex].value, category)"><option value="">All';
		if (turn) {
			for (var i = 1; i <= 12; i++) { head += '<option value=' + i + (i == month ? ' selected>' : '>') + strLongDate[i]; }
		} else {
			for (var i = 12; i >= 1; i--) { head += '<option value=' + i + (i == month ? ' selected>' : '>') + strLongDate[i]; }
		}
		head += '</select></form></td></tr>';
		head += '</table>\n';
	} else {
		head = '<table border=0 cellspacing=0 cellpadding=1>\n';
	}
	if (result) {
		indexDiv.innerHTML = head + result + '</table>\n';
	} else {
		indexDiv.innerHTML = head + '<span class=mt><br>News data not available.<br></span>\n';
	}
	if (typeof list == 'object' && listNum < list.length) getIndex(list);
}
function wrHTMLXML(n) {
	var f = 0;
	var cat = hl[n].getAttribute("category").split(',');
	if (typeof category == 'number') {
		for (var i in cat) { f = (f || catName[category] == cat[i].split(':')[0]); }
		if (!f) return;
	}
	var date = (hl[n].getElementsByTagName("date")[0].childNodes[0]) ? hl[n].getElementsByTagName("date")[0].childNodes[0].data : "";
	if (month && month != Number(date.substr(4,2))) return;
	var uri = (hl[n].getElementsByTagName("uri")[0].childNodes[0]) ? hl[n].getElementsByTagName("uri")[0].childNodes[0].data : "";
	var tar = hl[n].getElementsByTagName("uri")[0].getAttribute("target");
	var no  = hl[n].getElementsByTagName("txt")[0].getAttribute("no");
	var txt = (hl[n].getElementsByTagName("txt")[0].childNodes[0]) ? hl[n].getElementsByTagName("txt")[0].childNodes[0].data : "";
	if (type.indexOf('news') == 0 && tMon != date.substr(4,2) && type.indexOf('_ir') == -1) {
		tMon = date.substr(4,2);
		if (result) result += '</table>\n';
		result += '<div style="margin-top:20px; margin-bottom:8px; border-left:solid 5px #A6A6A6; border-bottom:solid 1px #A6A6A6">';
		result += '<img src="../image/month' + tMon + '.gif" width=84 height=19 alt="' + strLongDate[Number(tMon)] + '"></div>\n';
		result += '<table border=0 cellspacing=0 cellpadding=1>\n';
	}
	if (date) date = strDate[Number(date.substr(4,2))] + ' ' + date.substr(6) + ', ' + date.substr(0,4);
	result += '<tr valign="top">';
	result += '<td style="padding:2px 0px 2px 0px; white-space:nowrap; text-align:right;" nowrap><span class=newsDateTd>' + date + '</span></td>';
	if (type.indexOf('news') == 0) result += '<td style="padding:2px 0px 2px 8px; white-space:nowrap;" nowrap><span class=mt>' + (no ? 'NO.' + no : '') + '</span></td>';
	if (uri) txt = '<a href="' + uri + '" target="' + tar + '">' + txt + '</a>';
	result += '<td style="padding:2px 0px 2px 8px"><span class=mt>' + txt + '</span></td></tr>\n';
}
function wrHTMLJSON(n) {
	var f = 0;
	var cat = jsondata.headline[n].category.split(',');
	if (typeof category == 'number') {
		for (var i in cat) { f = (f || catName[category] == cat[i].split(':')[0]); }
		if (!f) return;
	}
	var date = (jsondata.headline[n].date) ? jsondata.headline[n].date : "";
	if (month && month != Number(date.substr(4,2))) return;
	var uri = (jsondata.headline[n].uri.uri) ? jsondata.headline[n].uri.uri : "";
	var tar = jsondata.headline[n].uri.target;
	var no  = jsondata.headline[n].txt.no;
	var txt = (jsondata.headline[n].txt.txt) ? jsondata.headline[n].txt.txt : "";
	if (type.indexOf('news') == 0 && tMon != date.substr(4,2) && type.indexOf('_ir') == -1) {
		tMon = date.substr(4,2);
		if (result) result += '</table>\n';
		result += '<div style="margin-top:20px; margin-bottom:8px; border-left:solid 5px #A6A6A6; border-bottom:solid 1px #A6A6A6">';
		result += '<img src="../image/month' + tMon + '.gif" width=84 height=19 alt="' + strLongDate[Number(tMon)] + '"></div>\n';
		result += '<table border=0 cellspacing=0 cellpadding=1>\n';
	}
	if (date) date = strDate[Number(date.substr(4,2))] + ' ' + date.substr(6) + ', ' + date.substr(0,4);
	result += '<tr valign="top">';
	result += '<td style="padding:2px 0px 2px 0px; white-space:nowrap; text-align:right;" nowrap><span class=newsDateTd>' + date + '</span></td>';
	if (type.indexOf('news') == 0) result += '<td style="padding:2px 0px 2px 8px; white-space:nowrap;" nowrap><span class=mt>' + (no ? 'NO.' + no : '') + '</span></td>';
	if (uri) txt = '<a href="' + uri + '" target="' + tar + '">' + txt + '</a>';
	result += '<td style="padding:2px 0px 2px 8px"><span class=mt>' + txt + '</span></td></tr>\n';
}
function createXMLHttp() {
	obj = null;
	try { obj = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch (e) {
		try { obj = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (e) { obj = false; }
	}
	if (!obj && typeof XMLHttpRequest != 'undefined') {
		obj = new XMLHttpRequest();
	}
	return obj;
}

