// @import jquery.js
// @import jquery.param.js

// Global variables
var adminStr = '';
var productName;
var productImageName;
var productNameCode;
var productNameUpper;
var mainServerIp;
var mainServerContext;
var productPath;
var productCompanyName;
var productCompanyAddress;
var productSupportPhone;
var productSupportEmail;

$(document).ready(function() {
	document.title = '';
	var headerHTML = '';
	
	// For ajax timeout handling
	$(document).ajaxSend(function(xhr,options){
		try {
			options.setRequestHeader("requestType", "AJAX");
		} catch(e) {
			// ignore
		}
	});
	
	$(document).ajaxComplete(function(request, settings){ 
		try {
			var msg = settings.responseText;  
			if(msg.indexOf("cccurl") == 0 && msg.indexOf("index") > 0) {
				window.location = msg.substring(msg.indexOf("index"), msg.length) + "?sessionTimeout=true";
			}
		 } catch(e) {
			// ignore
 		 }			
	});
	
	var url = "../portal/menu?q=getMenu";
	
	var menuType = $("#submenu").attr("name");
	if(menuType != undefined) {
		url += "&subMenu=" + menuType;
	}
	
	$.ajax({
		type: "GET",
		url: url,
		cache: true,
		dataType: 'json',
		async:false,
		success: function(jsonResp) {
			var product = jsonResp.product;
			productName = product.name;
			productImageName = product.imageName;
			productNameCode = product.nameCode;
			productNameUpper = product.nameUpper;
			mainServerIp = product.mainServerIp;
			mainServerContext = product.mainServerContext;
			productPath = product.path;
			productCompanyName = product.companyName;
			productCompanyAddress = product.companyAddress;
			productSupportPhone = product.supportPhone;
			productSupportEmail = product.supportEmail;
			
			document.title = productName + ' Inc.';
			
			setProductDetail();
			
			var userDetail = jsonResp.userDetail;
			
			if(userDetail != null) {
				headerHTML = '<div style="width:100%;background-color:#f1f1f1" >' + 
				'<div style="width:auto; float:right; z-index:auto; margin:6px 5px 0px 0px; ">' +
				'<div><span style="color:#ff6600; font-style:bold">' + getI18N("header.welcome") + ' ' +  userDetail.name + '</span> &nbsp; | &nbsp; <a href="../portal/j_acegi_logout"  style="text-decoration:none; color:#003399; font-style:bold" >'+ getI18N("header.signout") +'  </a></div>'+
				'</div>' +'<div align="left">' + '<img src="../images/' + productImageName + '" alt="" />' +
				'</div>' + '</div>';	
				makeMenu(headerHTML, jsonResp.mainMenu, userDetail.name);
			} else {
				headerHTML = '<div style="width:100%;background-color:#f1f1f1" >' + 
				'<div style="width:100px; float:right; z-index:auto; margin-top:30px; ">' +
				'</div>' +
				'<div align="left">' +
					'<img src="../images/' + productImageName + '" alt="" />' +
				'</div>' +
				'</div>';
				$("#header").html(headerHTML);
				cleanUpDOM();
			}

			// Submenu
			if(menuType != undefined) {
				makeSubMenu(jsonResp[menuType.replace(/get/, "")]);
			}
			
			// Footer
			var footer = jsonResp.footer;
			$('#footer').html('<div class="bottom">' + 
					'<p align="center">' +
					'<a href="'+ footer.termsURL + '" target="_blank"><br>' + getI18N("footer.link.term") + 
					'</a> | <a href="' + footer.privacyURL + '" target="_blank">' + getI18N("footer.link.privacystatement") + 
					' </a> | <a href="'+ footer.aboutusURL + '" target="_blank">' + getI18N("footer.link.aboutus") + 
					' </a> | <a href="' + footer.contactusURL + '" target="_blank">' + getI18N("footer.link.contactus") + ' </a>' +
					'</p>' +
					'<p align="center"> ' + footer.copyright + ' <span class="message"></span></p>' +
					'</div>');	
			
		},
		error: function(msg) {
		}
	});
});

function makeMenu(headerHTML, menuObj, username) {
	var selection = $('#header').attr('sel');
	createMenu(headerHTML, menuObj, username);
	selectItem(selection);
	cleanUpDOM();
}

function createMenu(headerHTML, menuObj, username) {
	headerHTML += '<div class="NavStretch"><div class="HeaderNav"><ul class="Navigation">';
	if(menuObj.ADMIN_TASK != undefined) {
		headerHTML += '<li><a id="menu_admintask" href="../static/' + menuObj.ADMIN_TASK +'">' + getI18N("header.menu.administrativetask") + '</a></li></ul>';
	}
	headerHTML += '</div>' + 
	'</div>' + 
	'<div style="height:7px"></div>';
	$("#header").html(headerHTML);
}

function makeSubMenu(subMenuArr) {
	var link = $("#submenu").attr("sel").toUpperCase();
	var heading = getI18N($("#submenu").attr("heading"));
	
	var subHeading = "";
	if($("#submenu").attr("cookieparam") != null) {
		subHeading = $.cookie($("#submenu").attr("cookieparam"));
	}
	
	var subMenuHtml = "";
	var subMenuHeadingHtml = "";
	var subMenuHtml2 = "";
	if(subHeading != "") {
		if(subHeading.length > 12) {
			subHeading = subHeading.substr(0, 10) + '...';
		}
		subMenuHeadingHtml += "<div class='blue'><div  class='blue-title3'>" + heading + "</div><div class='blue-title2'>" + subHeading + "</div>";
	} else {
		subMenuHeadingHtml += "<div class='blue'><div  class='blue-title4'>" + heading + "</div>";
	}
	var nLevel = false;
	//for(var i = subMenuArr.length-1; i >= 0; i--) {
	for(var i = 0; i <= subMenuArr.length-1; i++) {
		var id = subMenuArr[i][0];
		id = id.replace(/\s+/g, '').toUpperCase() + "_SUBMENU";
		if (subMenuArr[i][2] instanceof Array){
            nLevel = true;
			subMenuHtml += "<li> <a href='#' rel='" + id + "'>" + subMenuArr[i][1] + "</a ></li>";
			var subSubMenuArr = subMenuArr[i][2];
			subMenuHtml2 += "<div id='" + id + "' class='dropmenudiv' style='left:0px'>";	
			for(var j = subSubMenuArr.length-1; j >= 0; j--) {
				subMenuHtml2 += "<a href=' "+ subSubMenuArr[j][2] +"'> "+ subSubMenuArr[j][1] +"</a>";
			}
			subMenuHtml2 += "</div>";	
		}
		else{
			subMenuHtml += "<li id='" + id + "'> <a href='" + subMenuArr[i][2] + "'>" + subMenuArr[i][1] + "</a ></li>";
		}
	}
	if(nLevel) {
		subMenuHtml = subMenuHeadingHtml +  "<div class='chromestyle' id='chromemenu'><ul>" + subMenuHtml + subMenuHtml2 + "</ul></div></div>";
	} else {
		subMenuHtml = subMenuHeadingHtml + "<div class='submenu-full' ><ul>" + subMenuHtml + "</ul></div></div>";
	}
	
	// Replace parameters
	var params = $("#submenu").attr("params");
	var paramArr = new Array();
	if(params != null && params != "") {
		paramArr =  params.split(',');
	}
	if(paramArr != null && paramArr.length != 0) {
		for(var j = 0; j < paramArr.length; j++) {
			var token = new RegExp("\\$" + paramArr[j], "gi");
			subMenuHtml = subMenuHtml.replace(token, $().getUrlParam(paramArr[j]));
		}
	}
	$("#submenu").html(subMenuHtml)
	if(nLevel) {
		cssdropdown.startchrome("chromemenu");
	}
	$("#" + link).addClass("select");
}

function cleanUpDOM() {
	$('#header').removeAttr('sel');
	$('#header').removeAttr('menu');
	$('#header').removeAttr('logout');
}

function setProductDetail() {
	$(".productName").html(productName);
	$(".productCompanyName").html(productCompanyName);
	$(".productCompanyAddress").html(productCompanyName);
	$(".productSupportPhone").html(productSupportPhone);
	$(".productSupportEmail").html(productSupportEmail);
	$(".productNameUpper").html(productNameUpper);
}
function selectItem(item) {
	$("#menu_" + item).addClass("CurPage");
}