//*********************************************************
//Main
//*********************************************************

var output;
var model;
var loading;
var currentArea;

dom.event.addEventListener(window, 'load', requestData);
//window.onload = requestData;

function requestData(){
	requestFile('' , 'GET', url , true);
}


//-----------------------------------------------
//Call Back
//-----------------------------------------------
function onLoaded(object){
	output = document.getElementById("output");
	loading = document.getElementById("loading");
	model = new Model(object.responseXML);
	
	setOutputAll();
	loading.style.display = "none";
	var bannerArea = document.getElementById("banner-area");
	bannerArea.style.marginTop = "0";
}

function setOutputAll(){
	var areaList = model.getAreaList();
	for(var i = 0; i < areaList.length; i++){
		var area = areaList[i];
		var areaAnchor= document.createElement('a');
		var areaNode = document.createElement('div');
		var areaContentNode = document.createElement('div');
		var areaHeader =  document.createElement('h4');
		var returnLink = document.createElement('a');
		var returnTop = document.createElement('img');
		var areaName = area.getName();
		var areaId = area.getId();
		var areaHeaderText = document.createTextNode(areaName);
		
		areaAnchor.name =  "anchor" + String(i);
		areaAnchor.id = areaAnchor.name;
		areaNode.className = "area";
		areaContentNode.id = "area" + String(areaId);
		
		areaHeader.className = "area-header";
		areaContentNode.className = "area-content";
		
		areaHeader.style.display = "none";
		
		returnTop.src = "images/return-top.gif"
		
		returnLink.appendChild(returnTop);
		output.appendChild(areaAnchor);
		areaHeader.appendChild(areaHeaderText);
		output.appendChild(areaNode);
		areaNode.appendChild(areaHeader);
		areaNode.appendChild(areaContentNode);
		
		
		returnLink.onclick = function(){
			bytefx.scroll(document.getElementById("page-top"), 20);
		}
		returnLink.href = "#";
		
		var countlyList = area.getCountryList();
		
		for(var j = 0; j < countlyList.length; j++){
			var country = countlyList[j];
			var categoryName = country.getCategory(); 
			var containerNode = document.createElement('div');
			var leftNode = document.createElement('div');
			var rightNode = document.createElement('div');
			var countryNode = document.createElement('div');
			var countryHeader =  document.createElement('h5');
			var countryHeaderText = document.createTextNode(country.getName());
			
			countryNode.className = "country pkg";
			containerNode.title = country.getName();
			countryNode.style.display = "none";
			leftNode.className = "country-left";
			rightNode.className = "country-right";
			countryHeader.className = "country-header";
			
			countryNode.appendChild(containerNode);
			containerNode.appendChild(leftNode);
			containerNode.appendChild(rightNode);
			
			leftNode.appendChild(countryHeader);
			countryHeader.appendChild(countryHeaderText);
			
			areaContentNode.appendChild(countryNode);
			
			var agencyList = country.getAgencyList();
			var addressList = country.getAddressList();
			var phoneList = country.getPhoneList();
			var faxList = country.getFaxList();
			var telexList = country.getTelexList();
			var mailList = country.getMailList();
			var contactList = country.getContactList();
			var urlList = country.getUrlList();
			var vhfList = country.getVhfList();
			var inmarsatList = country.getInmarsatList();

			printElement(agencyList, "agency", rightNode);
			printElement(addressList, "address", rightNode);
			printElement(phoneList, "phone", rightNode);
			printElement(faxList, "fax", rightNode);
			printElement(telexList, "telex", rightNode);
			printElement(mailList, "mail", rightNode);
			printElement(urlList, "url", rightNode);
			printElement(contactList, "contact", rightNode);
			printElement(vhfList, "vhf", rightNode);
			printElement(inmarsatList, "inmarsat", rightNode);
		}
		//areaContentNode.appendChild(returnLink);
	}
}

function printElement(elements, name, parentNode){
	for(var i = 0; i < elements.length; i++){
		var element = elements[i];
		var elementNode = document.createElement('p');
		elementNode.className = "address";
		
		switch(name){
			case "agency":
			elementNode.innerHTML = "<strong>" + elements[i] + "</strong>";
			break;
			case "phone":
			elementNode.innerHTML = "Phone: " + elements[i];
			break;
			case "fax":
			elementNode.innerHTML = "Fax: " + elements[i];
			break;
			case "telex":
			elementNode.innerHTML = "Telex: " + elements[i];
			break;
			case "mail":
			elementNode.innerHTML = "E-mail: <a href=\"mailto:" + elements[i] + "\">" + elements[i] + "</a>";
			break;
			case "contact":
			elementNode.innerHTML = "<a href=\"" + elements[i] + "\" target=\"_blank\"><img src=\"images/contact_btn.gif\" border=\"0\"></a>";
			break;
			case "url":
			elementNode.innerHTML = "URL: <a href=\"" + elements[i] + "\" target=\"_blank\">" + elements[i] + "</a>";
			break;
			case "vhf":
			elementNode.innerHTML = "VHF: " + elements[i];
			break;
			case "inmarsat":
			elementNode.innerHTML = "Inmarsat: " + elements[i];
			break;
			default:
			elementNode.innerHTML = elements[i];
			break;
		}
		
		parentNode.appendChild(elementNode);
	}
}

function showArea(areaName){
	
	if(currentArea) currentArea.style.display = "none";
	
	var area = document.getElementById(areaName);
	area.style.display = "block";
	currentArea = area;
}

function showAreaById(id){
	
	if(currentArea) currentArea.style.display = "none";
	
	var area = document.getElementById("area" + String(id));
	area.style.display = "block";
	currentArea = area;
}

function showAreaByCategory(category){
	//hideOverView();
	resetArea();
	var divList = document.getElementsByTagName("DIV");
	for(var i = 0; i < divList.length; i++){
		
		if(divList[i].className == "area-content"){	
			var categoryList = divList[i].getElementsByTagName("DIV");
			for(var j = 0; j < categoryList.length; j++){
				if(categoryList[j].className == category){
					categoryList[j].parentNode.style.display = "block";
					currentArea = divList[i].parentNode;
					var areaHeader = categoryList[j].parentNode.parentNode.parentNode.getElementsByTagName("H4")[0];
					areaHeader.style.display = "block";
				}
			}
		}
	}
}


function showCountryByName(countryName){
	resetArea();
	var divList = document.getElementsByTagName("DIV");
	
	for(var i = 0; i < divList.length; i++){
		if(divList[i].className == "country pkg"){
			var countryList = divList[i].getElementsByTagName("DIV");
			for(var j = 0; j < countryList.length; j++){
				if(countryList[j].title == countryName){
					countryList[j].parentNode.style.display = "block";
					currentArea = divList[i].parentNode;
					var areaHeader = countryList[j].parentNode.parentNode.parentNode.getElementsByTagName("H4")[0];
					areaHeader.style.display = "block";
				}
			}
		}
	}
	
	var bannerArea = document.getElementById("banner-area");
	bannerArea.style.marginTop = "20px";
}


function resetArea(){
	if(currentArea) {
		var divList = currentArea.getElementsByTagName("DIV");
		for(var i = 0; i < divList.length; i++){
			if(divList[i].className == "country pkg"){
			divList[i].style.display = "none";
			var areaContent = divList[i].parentNode;
			}
		}
		
		var haederList = document.getElementsByTagName("H4");
		for(var i = 0; i < haederList.length; i++){
			if(haederList[i].className == "area-header"){
				haederList[i].style.display = "none";
			}
		}
	}
	currentArea = null;
	
	var bannerArea = document.getElementById("banner-area");
	bannerArea.style.marginTop = "0";
}

function marine_DoFSCommand(command, args) {
	if (command == "showArea") {
		alert(args);
	}
}

function onReturnClick(){
	//showOverView();
	resetArea();
}

function showOverView(){
	var overView = document.getElementById("overview");
	overView.style.display = "block";
}


function hideOverView(){
	var overView = document.getElementById("overview");
	overView.style.display = "none";
}

