ETFOverview = function() {

}




ETFOverview.prototype.init = function(oArgs) {

	Common.renderTDAMButtons("right");

	this.MarketActivityTableContainer = Element.get("MarketActivityTableContainer");
	this.MarketActivityTimestamp = Element.get("MarketActivityTimestamp");

	//var rows = Element.parseSelector("tr",this.MarketActivityTableContainer);
	//Element.removeClass(rows,"none");
	//this.collapseRankingsList()

	var expandRankingsList = Element.get("expandRankingsList");
	var collapseRankingsList = Element.get("collapseRankingsList");

	if (expandRankingsList) {
		Events.add({element:expandRankingsList,type:"click",context:this,handler:this.expandRankingsList});
		Events.add({element:collapseRankingsList,type:"click",context:this,handler:this.collapseRankingsList});
	}

	Events.add({element:Element.get("compareFundButton"),type:"click",context:this,handler:this.compareFund});
	Events.add({element:Element.get("compareFundForm"),type:"submit",context:this,handler:this.compareFund});
	Events.add({element:Element.get("compareRankedButton"),type:"click",context:this,handler:this.compareRanked});
	Events.add({element:Element.parseSelector("a","investingClassroomLinks"),type:"click",context:this,handler:this.investingClassroomLinkClicked});

	if(this.MarketActivityTableContainer) {

		Events.delegate(this.MarketActivityTableContainer, "click", {
			 selector:"input[type='checkbox']"
			,context: this
			,handler: this.checkCompareBox
		});
	}
		
}

ETFOverview.prototype.investingClassroomLinkClicked = function(e,el,data) {
	Events.cancel(e)
	window.open(el.getAttribute("href"),'','width=780,height=550,resizable=1');
}

ETFOverview.prototype.initETF = function(oArgs) {

	this.init();

	this.rankingTabs = Element.parseSelector("li","subtabsContainer");
	this.rankingLinks = Element.parseSelector("a",this.rankingTabs);

	Events.add({element:this.rankingLinks,type:"click",context:this,handler:this.loadRankings});
	

}

ETFOverview.prototype.uncheckCompareBox = function(e,el) {

	if(this.checkboxes >= 5) {
		this.addRemoveDisabled("lt");
	}
	this.checkboxes--;
}

ETFOverview.prototype.checkCompareBox = function(e,el) {

	if(!el.checked){
		return this.uncheckCompareBox(e, el);
	}
	this.checkboxes  = this.checkboxes || 0;
	this.checkboxes++;

	if(this.checkboxes >= 5) {
		this.addRemoveDisabled("gt");
	}
}

ETFOverview.prototype.addRemoveDisabled = function(gtORlt) {

	var checkboxes = Element.parseSelector('input[checked=.`false`]',this.MarketActivityTableContainer);
	var bool = gtORlt === "gt";

	return Element.forEach(checkboxes, function(el) {
		el.disabled = bool;
	});
}


ETFOverview.prototype.compareRanked = function(e,el,data) {

	Events.cancel(e);

	var rankedSymbolLinks = Element.parseSelector('input[checked=.`true`]',this.MarketActivityTableContainer)

	if(!rankedSymbolLinks.length){
		rankedSymbolLinks = Element.parseSelector('a[href*="symbol="]',this.MarketActivityTableContainer)
	}
		
	// grab the symbol links
	//var rankedSymbolLinks = Element.parseSelector('a[href*="symbol="]',this.MarketActivityTableContainer)
	
	// grab the actual symbols
	var symbols = [];
	for (var i=0; i<rankedSymbolLinks.length; i++) {
		if(rankedSymbolLinks[i].value){
			symbols.push(rankedSymbolLinks[i].value);
			continue
		}	
		symbols.push(rankedSymbolLinks[i].getAttribute("href").match(/symbol=(.*)(&|$)/)[1]);
	
	}
	//redirect to the compare tool
	var data = {"symbolSingle":"Symbol...","symbolMultiple":symbols.join(", "),"comparedTo":"ETF","currentPage":"compare.asp","tab":"Snapshot","formWasUsed":true,"compareType":"specific"};
	location.href = "../compare/compareResults.asp?tab=Snapshot&data=" + DataFunctions.serialize(data);

}


ETFOverview.prototype.compareFund = function(e,el,data) {

	Events.cancel(e);

	var symbol = Element.get("compareSymbol").value;
	var type = Element.get("compareType").value;

	if (!symbol) {
		alert("Please enter a symbol.");
	}

	var data = {"symbolSingle":symbol,"symbolMultiple":"ex: ACBIX, PWC, RSP, IWB, IWV","comparedTo":type,"currentPage":"compare.asp","tab":"Snapshot","formWasUsed":true,"compareType":"auto"}
	location.href = "../compare/compareResults.asp?tab=Snapshot&data=" + DataFunctions.serialize(data);

}

ETFOverview.prototype.loadRankings = function(e,el,data) {
	el.blur();
	Events.cancel(e);

	this.currentRankingType = el.id;
	this.currentRankingTypeEl = el;

	Common.contentBufferAbortRequests();
	Common.loadContentBuffer({
		page:"rankingsBuffer.asp",
		context:this,
		contentType:"text/html",
		data:{
			rankingType:this.currentRankingType
			,overviewRedesign:true
		},
		onload:this.displayRankings,
		onerror:null
	});
}

ETFOverview.prototype.displayRankings = function(contentBuffer) {

	Element.removeClass(this.rankingTabs,"current");
	Element.removeClass(this.rankingTabs,"highlight");

	Element.addClass(this.rankingTabs,"norefresh");

	var currentTab = Element.getParent(this.currentRankingTypeEl,"li");

	Element.removeClass(currentTab,"norefresh");
	Element.addClass(currentTab,"current");

	var result = contentBuffer.getResult();

	result = result.split("----------");

	Element.setHTML(this.MarketActivityTimestamp,result[0]);
	Element.setHTML(this.MarketActivityTableContainer,result[1]);
	try { initMore(); } catch(e) {}

	Element.removeClass("expandRankingsList","none");
	Element.addClass("collapseRankingsList","none");
	this.checkboxes = 0;
}

ETFOverview.prototype.expandRankingsList = function(e,el,data) {

	Events.cancel(e);
	
	el.blur();

	var rows = Element.parseSelector("tr",this.MarketActivityTableContainer);
	Element.removeClass(rows,"none");
	//Element.removeClass("MarketActivityTableContainer", "overflowHidden")

	var expandRankingsList = Element.get("expandRankingsList")
	Element.addClass(expandRankingsList,"none");
	
	var collapseRankingsList = Element.get("collapseRankingsList");
	Element.removeClass(collapseRankingsList,"none");

}

ETFOverview.prototype.collapseRankingsList = function(e,el,data) {

	if(e){
		Events.cancel(e);
		el.blur();
	}
	var rows = Element.parseSelector("tr",this.MarketActivityTableContainer);
		rows = rows.splice(6,100);
	Element.addClass(rows, "none");
	/*
		Element.forEach(rows, function(item){
			var tds = Element.parseSelector("td", item);
			Element.addClass(tds, "none");	
		});*/
	//Element.addClass("MarketActivityTableContainer", "overflowHidden")
	Element.removeClass("expandRankingsList","none");
	Element.addClass("collapseRankingsList","none");

}