//*******************************************************************
//*																	*
//*		Konica Minolta Worldwide Gateway							*
//*		Country Selector Program									*
//*		(Because this program is for Ajax, I use "prototype.js".)	*
//*																	*
//*******************************************************************
// Global Variables Area
var regionNum;
var regionName ="";
var regionObjName ="";

var countryMax;
var countryNum;
var countryName ="";
var countryObjName ="";
var countryLink ="";

var selText ="-Please select&nbsp;&nbsp;&nbsp;&nbsp;";

var regionArray = new Array();

var Americas_Array = new Array();
var AsiaPacific_Array = new Array();
var Europe_Array = new Array();
var MiddleEast_Array = new Array();
var Africa_Array = new Array();

var Americas_Link = new Object();
var AsiaPacific_Link = new Object();
var Europe_Link = new Object();
var MiddleEast_Link = new Object();
var Africa_Link = new Object();


var fName = "/js/countrylist.xml";
var retXML;
var retTAG= new Array();

//***********************
//*		XML Call Back	*
//***********************
function regionProc()   {

	var fireVerObj = new firefoxInfo();		
	if (fireVerObj.firefoxVersion == 1.5) {		//firefox 1.5 
		httpObj = new XMLHttpRequest();
		httpObj.open("get",fName, false);
		httpObj.send(null);
		xmlDataParse(httpObj);
	} else if(Ajax.getTransport()) {
		var xmlLoader = new Ajax.Request(fName, { method:'get', onComplete:xmlDataParse});	//anther Brouser
	} else {
		nonAjax();		//non Ajax
	}

}

//***********************
//*		non Active-X	*
//***********************
function nonAjax () {
	if(regObj.nonAjaxSRC) $("selCountry").outerHTML = regObj.nonAjaxSRC;		//non Active-X
}

//***************************
//*		XML parse main		*
//***************************
function xmlDataParse(httpObj) {
	
	
	var xmlObj = httpObj.responseXML;

	var regionTags = xmlObj.getElementsByTagName("region");
	var regionMax = regionTags.length;		//The number of the Region registrations

	if(regionMax && regionMax>0) {
		var regCnt = 0;
		while(regCnt < regionMax) {
			regionArray[regCnt] = regionTags[regCnt].getAttribute("name");
			var regionName = regionArray[regCnt];
			var countryTags = regionTags[regCnt].getElementsByTagName("country");
			var countryMax = countryTags.length;		//The number of the registration countries per Region

			if(countryMax && countryMax>0) {
				var ctCnt = 0;
				while(ctCnt < countryMax) {
					var cnameTags = countryTags[ctCnt].getElementsByTagName("cname");
					var regObjectName = retObjName(regionName);
					this[regObjectName + "_Array"][ctCnt] = cnameTags[0].childNodes[0].nodeValue;
					var countryName = this[regObjectName + "_Array"][ctCnt];
				
					var siteTag = countryTags[ctCnt].getElementsByTagName("site");
					var ctObjName = retObjName(countryName);
					this[regObjectName + "_Link"][ctObjName] = siteTag[0].childNodes[0].nodeValue;

					ctCnt++;
				}

			}
	
			regCnt++;
		}
		

	}

	regionTagMaker();

}

//***********************
//*		Tag Output		*
//***********************
function regionTagMaker() {

	$("regionTitle").style.visibility = "visible";		// Region selector Indication

	var	regWk = '';
	regWk = regWk + '<select id="region" onChange="regionSelected(this);countryInit()" tabIndex="0">';
	var i=0;
	regWk = regWk + '<option disable selected>' + selText + '<\/option>';
	while(regionArray[i]) {
		regWk = regWk + '<option>' + regionArray[i] + '<\/option>';
		i++;
	}
	regWk = regWk + '<\/select>';

	var	ctWk = '';
		ctWk = ctWk + '<select id="country" onChange="countrySelected(this)" onKeyPress="countrySelected(this); getKeyCode(this,event);return eventFlag" style="visibility:hidden" tabIndex="0">';
		ctWk = ctWk + '<option disable selected>' + selText + '<\/option>';
		//ctWk = ctWk + '<\/select><a href="javascript:countryLocation()" style="visibility:hidden" tabIndex="0"><img src="shared/img/misc_arrow_blue.gif" alt="" width="10" height="10" id="countryLinkBtn"><\/a>';
		ctWk = ctWk + '<\/select><input src="shared/img/misc_arrow_blue.gif" accesskey="s" type="image" id="countryLinkBtn" style="visibility:hidden" tabIndex="0">';

		
	$("selRegion").innerHTML = regWk;	//html dsper
	$("selCountry").innerHTML = ctWk;;	//html dsper
	$("region").selectedIndex = 0;		// country selector dsp
	$("country").selectedIndex = 0;

}

//***************************
//*		Region Selector		*
//***************************
function regionSelected(obj) {

	var regionNumX;

	if(obj.selectedIndex) regionNumX = obj.selectedIndex;
	
	if(regionNumX || regionNumX >= 1) {
		regionNum = regionNumX-1;
		regionName = regionArray[regionNum];

		regionObjName = retObjName(regionName);

		$("countryTitle").style.visibility = "visible";		// country selector Indication
		$("country").style.visibility = "visible";			// country selector Indication
		$("countryLinkBtn").style.visibility = "visible";	// country selector Indication

	} else {

		$("countryTitle").style.visibility = "hidden";		// country selector Non-indication
		$("country").style.visibility = "hidden";			// country selector Non-indication
		$("countryLinkBtn").style.visibility = "hidden";	// country selector Non-indication

	}
	
}

//*******************************************
//*		I convert it into an object name	*
//*******************************************
function retObjName(regName) {
	var tmp01 = regName.split(".");
	var tmp02 = "";
	var i=0;
	while(tmp01[i]) {
		tmp02 = tmp02 + tmp01[i];
		i++;
	}

	tmp01 = new Array();
	tmp01 = tmp02.split(" ");
	tmp02 ="";
	var i=0;
	while(tmp01[i]) {
		tmp02 = tmp02 + tmp01[i];
		i++;
	}
	return 	tmp02;
}

//***************************************
//*		Country Selector Initialize		*
//***************************************
function countryInit() {
	var i=0;
	while(this[regionObjName + "_Array"][i]) {
		
		$("country").options[i+1] = new Option();
		$("country").options[i+1].text = this[regionObjName + "_Array"][i];
		i++;
	}

	document.getElementById("country").length = i+1;

}

//***************************
//*		Country Selector	*
//***************************
function countrySelected(obj) {
	
	var countryNumX;

	if(obj.selectedIndex) countryNumX = obj.selectedIndex;

	if(countryNumX || countryNumX >= 1) {

		countryNum = countryNumX-1;
		countryName = this[regionObjName + "_Array"][countryNum];
		var tmp01 = countryName.split(".");
		var tmp02 = "";
		var i=0;
		while(tmp01[i]) {
			tmp02 = tmp02 + tmp01[i];
			i++;
		}

		tmp01 = new Array();
		tmp01 = tmp02.split(" ");
		tmp02 ="";
		var i=0;
		while(tmp01[i]) {
			tmp02 = tmp02 + tmp01[i];
			i++;
		}
	
		countryObjName = tmp02;
		countryLink="";
		if(this[regionObjName + "_Link"][countryObjName]) countryLink = this[regionObjName + "_Link"][countryObjName];
	
	} else {
		countryLink="";
	}

}

//***************************************
//*		Jumping to country site(key)	*
//***************************************
var eventFlag = true;
function getKeyCode( targetObject, eventObject )
{
	var eventType;
	var keycode;

	if( window.event )
	{
		eventType = window.event.type;
		keycode   = window.event.keyCode;
	}
	else if( eventObject )
	{
		eventType = eventObject.type;
		keycode   = eventObject.which;
	}

	if( eventType == 'keypress' && keycode == 13)
	{
		countryLocation();
		eventFlag = false;
	}
}

//***********************************
//*		Jumping to country site		*
//***********************************
function countryLocation() {
	if(countryLink) location.href = countryLink;
}


//***********************************
//  firefoxInfo ver check
//***********************************

function firefoxInfo(userAgent) {
	this.firefoxVersionChecker = function(){
		var num = this.ua.match(new RegExp("Firefox/[0-9]{1,2}\.[0-9]{1,2}"));
		return ( num == null ) ? -1 : parseFloat(String(num).replace("Firefox/",""));
	}
	this.ua = (userAgent) ? userAgent : navigator.userAgent;
	this.firefoxVersion = this.firefoxVersionChecker();
	this.firefoxMVersion = Math.floor(this.firefoxVersion);
	this.firefox = (this.firefoxVersion > 0 );

}
