var proxyURL = 'servlet/UserWebHandler?action=xmlProxy&url=';
var User = new Object();
User.feedsId = null;

App.moduleList = [];
var appLocation = window.location.href;
var URLDomain = appLocation.substring(0,appLocation.indexOf("/", 7));
if (!URLDomain) URLDomain = appLocation;
App.location = URLDomain;
App.Modules = new Object();
$import('ModuleList.js', 'js');     //Add Modules
$import('Misc.js', 'js'); 
$import('NavigationMenu.js', 'js'); 
$import('FeedReader.js', 'js'); 
$import('Request.js', 'js'); 
$import('ServerSave.js', 'js'); 
$import('SignEvents.js', 'js'); 
$import('Feed.js', 'js'); 
$import('ModuleLayout.js', 'js'); 
$import('tabList.js', 'js'); 

App.Start = function() {
	document.getElementById("addContentLink").innerHTML = (App.mode=='userPage') ? App.Loc.addContent : App.Loc.moreContent;		
	document.getElementById("collapseAllLink").innerHTML = App.Loc.collapseAll;
	document.getElementById("expandAllLink").innerHTML = App.Loc.expandAll;
	if($("signInState").value != 1)
		document.getElementById("pageHomeTab").innerHTML = App.Loc.pageHomeTab;
	
	document.getElementById("aNewTab").innerHTML = App.Loc.aNewTab;
	var signInState = document.getElementById("signInState").value;
	
	/*
	var signInState = document.getElementById("signInState").value;
	if (signInState == "1") {
		App.setSignOutLink();
	} else {
		var signInOutLink = document.getElementById("signInOutLink");
		signInOutLink.innerHTML = App.Loc.footerLink_signIn;
		signInOutLink.onLoadHTML = function(node) {
			App.applySignInEvents(node);
		}
		signInOutLink.onclick = function() {
			App.displaySiteInformation(this.getAttribute("page"), this);
		}
	}	
	*/
	
	App.savingStatusElm = document.getElementById("savingStatus");

	function doPageTitleEvent() {
		var div = document.getElementById("pageTitle");
	
		div.firstChild.onmouseover = function() {
			this.style.backgroundColor = "#FAFAFA";
			this.style.border = "1px solid #EEE";
		}
		div.firstChild.onmouseout = function() {
			this.style.backgroundColor = "transparent";
			this.style.border = "none";
		}
		div.firstChild.onclick = function() {
			this.onclick = null;
			this.onmouseout();
			this.onmouseover = null;
			var titleValue = this.firstChild.nodeValue;
			var titleWidth = this.offsetWidth;
			this.innerHTML = '<input type="text" class="inputPageTitle" maxlength="80" value="'+titleValue+'" style="width:'+titleWidth+'px"/>';
			var inputElm = this.firstChild;
			inputElm.focus();
			inputElm.select();
			inputElm.attachEvent('onkeydown',onEnterDown);
			function onEnterDown() {
				if (window.event.keyCode==13) {
					inputElm.onblur();
				}
			}
			inputElm.onkeyup = function() {
				this.style.width = (this.value.length*8)+20 + "px";
			}
			inputElm.onblur = function() {					
				var obj = new Object();
				var value = (this.value=='') ? App.Loc.MyWeb : Utils.htmlEncode(this.value);
				this.parentNode.innerHTML = value;
				if (this.value != titleValue) {
					obj.title = this.value;
					obj.userID = document.getElementById("userID").value;					
					if(document.getElementById("signInState").value == 1)
						App.saveUserData('pageTitle', obj);					
					document.title = value;
				}
				
				doPageTitleEvent();
			}
		}
	}
	
	if (App.mode=='userPage') doPageTitleEvent();

	var container = document.getElementById("modulesArea");
	var columns = document.createElement("div");
	App.columnsObj = {};
	columns.id = "columns";
	App.numCol = 2;

	var div1 = document.createElement("div");
	div1.style.width = Math.round(98/App.numCol) + "%";
	div1.style.minHeight = "1px";
	div1.className = "divColonne";
	div1.setAttribute("colNum", 1);
	App.columnsObj.col1 = div1;

	var div2 = document.createElement("div");
	div2.style.width = Math.round(98/App.numCol) + "%";
	div2.style.minHeight = "1px";
	div2.className = "divColonne";
	div2.setAttribute("colNum", 2);
	App.columnsObj.col2 = div2;
    /**
	var div3 = document.createElement("div");
	div3.style.width = Math.round(100/App.numCol) + "%";
	div3.style.minHeight = "1px";
	div3.className = "divColonne";
	div3.setAttribute("colNum", 3);
	App.columnsObj.col3 = div3;
    */
	columns.appendChild(div1);
	columns.appendChild(div2);
	//columns.appendChild(div3);

	var divFeedReader = document.createElement("div");
	divFeedReader.id = "feedReader";
	container.appendChild(columns);
	container.appendChild(divFeedReader);

	App.FeedReader.elm = document.getElementById("feedReader");	
	if (signInState == "1") {
		//alert("servlet/UserWebHandler?action=toXML&moduleOrder="+$("moduleOrder").value);
		Request.sendGET('servlet/UserWebHandler?action=toXML&moduleOrder='+$("moduleOrder").value, displayModules);		
	}
	else{
		Request.sendGET('defaultUserData.xml', displayModules);
	}
}

function displayModules(response) {
		var rootNode = response.responseXML.documentElement;	
		var userID= rootNode.getAttribute("module_userID");			
		document.getElementById("userID").value = userID;	
		document.getElementById("moduleID").value = rootNode.getElementsByTagName("module")[0].getAttribute("module_id");		
		var mods = rootNode.getElementsByTagName("mod");		
		var pageTitle = rootNode.getElementsByTagName("pageTitle")[0].firstChild;
		var text = document.createTextNode((pageTitle) ? pageTitle.nodeValue : App.Loc.typePageTitle);
		document.getElementById("pageTitle").firstChild.appendChild(text);			
		
		if (pageTitle) document.title = pageTitle.nodeValue;
		
		var feedsID = rootNode.getElementsByTagName("userFeeds")[0].firstChild;
		User.feedsId = (feedsID) ? feedsID.nodeValue : null;
		
		App.Nav.featuredFeedsId = rootNode.getElementsByTagName("featuredFeeds")[0].firstChild.nodeValue;
		App.Nav.defaultFeedsId = rootNode.getElementsByTagName("defaultFeeds")[0].firstChild.nodeValue;
		
		var ln = mods.length;		
		for (var z=0; z<ln; z++) {
			var id = mods[z].getAttribute("mod_id");
			var column = mods[z].getAttribute("mod_column");
			var name = mods[z].getAttribute("mod_name");
			var status = mods[z].getAttribute("mod_status");
			var share = mods[z].getAttribute("mod_share");			
			var title = mods[z].getAttribute("mod_title");
			var data = mods[z].getElementsByTagName("data")[0];
			ln2 = data.childNodes.length;
			
			var dataObj = {id:id, container:column, moduleName:name, title:title, status:status, share:share};
			var obj = new Object();
			for (var n=0; n<ln2; n++) {
				if (name=="RssReader" && data.childNodes[n].nodeName=="feedId") dataObj.feedUrl = data.childNodes[n].firstChild.nodeValue;
				if (data.childNodes[n].firstChild) obj[data.childNodes[n].nodeName] = data.childNodes[n].firstChild.nodeValue;
			}
			dataObj.data = obj;
			App.moduleList.push(new Module(dataObj));
			//var obj = eval('makeObject('+mods[z].firstChild.firstChild.nodeValue+')');
		}		
		
		if (App.subscribeOnLoad) {
			App.subscribeOnLoad = false;
			var startMsgDiv = document.getElementById("startMsg");
			startMsgDiv.innerHTML = App.Loc.addingNewFeed+"...";								
		} else {
			document.getElementById("startMsg").style.display = "none";
			document.getElementById("application").style.display = "block";
			document.getElementById("footer").style.display = "block";
		}
	
	}
App.setBackButton = function() {
	var sessionFrame = document.getElementById("sessionFrame");
	var doc = sessionFrame.contentDocument;
	if (doc == undefined) { // IE
		doc = sessionFrame.contentWindow.document;
	}
	doc.open();
	doc.write("<html><body></body></html>");
	doc.close();
}

App.swapLang = function(lang) {
	function signOutResponse() {
		window.location.reload(true);
	}
	//Request.sendGET('swapLang.php?lang='+lang, signOutResponse);
}

window.onload = function() {	
	//App.setBackButton();
	App.Start();	
}

window.onunload = function() {
	try {
		var ln = App.moduleList.length;
		for (var z=0; z<ln; z++) {
			delete App.moduleList[z];
			App.moduleList[z] = null;
		}
		delete App;
		App = null;
		App.setSignOutLink();
	}
	catch (e) {}
}