/*

This file contains module store/render methods specific to the screener in this folder

*/


Screener_class.prototype.results_symbolRolloverContent = function(symbolData) {
	
	var width = 240;
	var height = 100;
	var xaxis = 30;
	var chartSrc = buildAbsolutePath('/tools/charts/microchart.asp?symbol='+ symbolData.ticker +'&timeframe=6mo&interval=1dy&width='+ width +'&height='+ height +'&xaxisfixedwidth='+xaxis + '&showSymbol=false');
	symbolData.chart = Element.create("img", {"src":chartSrc, "width":width, "height":height, "alt":"Loading chart for "+ symbolData["name"]});
	var content = Element.create("div", {"id":"microChart"},[
		Element.create("h3", {}, [
			symbolData["name"],
			" ",
			Element.create("span", {}, ["(", Element.create("span", {}, symbolData.ticker), ")"])
		]),
		Element.create("div", {"class":"category"}, ["Category: ", Element.create("span", {}, symbolData.Category)]),
		Element.create("div", {"class":"price"}, [
			"NAV: ",
			Element.create("span", {"style":"font-weight:bold"}, symbolData.last_format),
		]),
		//this.buildChangeLabel({label: "NAV: ", price: symbolData.NAVReturn6month_format}),
		Element.create("div", {"id":"chart"}, symbolData.chart),
		Element.create("p", {}, "Based on last delayed trade at 6:00p ET")
	]);
	return content;
	
	
	//return Element.create("div",{},recurseObject({o:symbolData,nowrite:1}));
}







Screener_class.prototype.GUI_renderCriterionSub_MorningstarPremierList = function(criterion,rowCriteria,criteriaContainer,titleContainer) {
	//console.info("MorningstarPremierList values",rowCriteria.values);
	
	if (!rowCriteria.values.length) {

		// select "All" for No Transaction Fees if it exists (ENH056068)

		var NTFRow = Element.parseSelector('tr[field="NoTransactionFees"]',this.criteriaTable,'first');

		if (NTFRow) {
			this.GUI_setCriterionRadioInputsSelected(NTFRow,"NEQ,100");
			var self = this;
			setTimeout(function() { self.GUI_storeCriterion(null,NTFRow); },5);
		}
		

	}
}

Screener_class.prototype.GUI_renderCriterion_MorningstarStyleBoxes = function(criterion,rowCriteria,criteriaContainer,titleContainer) {

	// build single select for style box type
	var selectData = this.getDatum("MorningstarStyleBoxes");

	var select = Element.buildSelect({selected:rowCriteria.field,data:selectData},{layoutInput:"layoutInput",style:"display:block; margin-bottom:5px;"},criteriaContainer);
	Events.add({element:select,type:"change",context:this,handler:this.GUI_MorningstarStyleBoxesUpdateSelect});

	rowCriteria.field = select.value;

	Element.setHTML(Element.parseSelector("span",titleContainer,"first"),"Morningstar Style Boxes");

	var selectData = this.getDatum(rowCriteria.field);

	// remove LIKE operator from selected values
	var values = rowCriteria.values.join("{}");
	values = values.replace(/LIKE,/g,"");
	values = values.split("{}");

	// build multi-select for style box options
	var select = Element.buildSelect({selected:values,data:selectData},{id:"MorningstarStyleBox",layoutInput:"layoutInput",multiple:"multiple",size:criterion.moduleSize||10,style:"width:240px"},criteriaContainer);

}



Screener_class.prototype.GUI_MorningstarStyleBoxesUpdateSelect = function(e,el,data) {

	// Update the Style Box options based on the selected type
	var selectData = this.getDatum(el.value);
	Element.buildSelect({selected:null,data:selectData},{id:"MorningstarStyleBox"});


}

Screener_class.prototype.GUI_storeCriterion_MorningstarStyleBoxes = function(criterion,rowCriteria,criteriaContainer) {
	
	var selects = Element.parseSelector("*[layoutInput]",criteriaContainer)

	// set the field based on the selected type
	rowCriteria.field = selects[0].value;

	// get selected style box values
	var options = selects[1].getElementsByTagName("option");

	for (var x=0; x<options.length;x++) {
		if (options[x].selected) {
			rowCriteria.values.push("LIKE," + (options[x].value || options[x].text));
		}
	}

}






// Screener_class.prototype.GUI_renderCriterionSub_Pricevs52w = function(criterion,rowCriteria,criteriaContainer) {
// 
// 	// NOTE: Above/Below value is stored by _buttons module
// 
// 	var fieldValues = this.deconstructFieldName(rowCriteria.field,criterion.fieldPattern,criterion.fieldPatternDefaults);
// 	//console.info("MovingAvg fieldValues",fieldValues)
// 
// 	this.GUI_setCriteriaInputValues(criteriaContainer,{1:fieldValues[0]});
// 
// }
// 
// 
// Screener_class.prototype.GUI_storeCriterionSub_Pricevs52w = function(criterion,rowCriteria,criteriaContainer) {
// 
// 	// NOTE: Above/Below value is retrieved by _buttons module
// 
// 	var layoutInputs = Element.parseSelector("*[layoutInput]",criteriaContainer);
// 
// 	var inputValues = [layoutInputs[0].value,layoutInputs[1].value];
// 
// 	rowCriteria.field = this.constructFieldName(criterion.fieldPatternOrder,inputValues);
// 
// }



Screener_class.prototype.GUI_renderCriterionSub_MovingAvg = function(criterion,rowCriteria,criteriaContainer) {

	// NOTE: Above/Below value is stored by _buttons module

	var fieldValues = this.deconstructFieldName(rowCriteria.field,criterion.fieldPattern,criterion.fieldPatternDefaults);
	//console.info("MovingAvg fieldValues",fieldValues)

	this.GUI_setCriteriaInputValues(criteriaContainer,{1:fieldValues[0]});

}


Screener_class.prototype.GUI_storeCriterionSub_MovingAvg = function(criterion,rowCriteria,criteriaContainer) {

	// NOTE: Above/Below value is retrieved by _buttons module

	var layoutInputs = Element.parseSelector("*[layoutInput]",criteriaContainer);

	var inputValues = [layoutInputs[0].value,layoutInputs[1].value];

	rowCriteria.field = this.constructFieldName(criterion.fieldPatternOrder,inputValues);

}


Screener_class.prototype.GUI_renderCriterionSub_RateOfChange = function(criterion,rowCriteria,criteriaContainer) {

	// NOTE: buttons are selected by _buttons module

	// deconstruct field and populate input values
	var fieldValues = this.deconstructFieldName(rowCriteria.field,criterion.fieldPattern,criterion.fieldPatternDefaults);
	//console.info("ROC values",fieldValues)

	this.GUI_setCriteriaInputValues(criteriaContainer,{0:fieldValues[0]});

}



Screener_class.prototype.GUI_storeCriterionSub_RateOfChange = function(criterion,rowCriteria,criteriaContainer) {
	// get input values and construct screener field

	var layoutInputs = Element.parseSelector("*[layoutInput]",criteriaContainer);

	var inputValues = [layoutInputs[0].value];
	//console.info("ROC values",inputValues)
	//console.info("ROC criteria",rowCriteria)

	rowCriteria.field = this.constructFieldName(criterion.fieldPatternOrder,inputValues);

	// NOTE: rowCriteria.values are stored by the _buttons

}



Screener_class.prototype.GUI_renderCriterionSub_MACD = function(criterion,rowCriteria,criteriaContainer) {

	// NOTE: buttons are selected by _buttons module

	// deconstruct field and populate input values
	var fieldValues = this.deconstructFieldName(rowCriteria.field,criterion.fieldPattern,criterion.fieldPatternDefaults);
	//console.info("MACD values",fieldValues)

	this.GUI_setCriteriaInputValues(criteriaContainer,{0:fieldValues[1],1:fieldValues[0]});

}



Screener_class.prototype.GUI_storeCriterionSub_MACD = function(criterion,rowCriteria,criteriaContainer) {
	// get input values and construct screener field

	var layoutInputs = Element.parseSelector("*[layoutInput]",criteriaContainer);

	var inputValues = [layoutInputs[0].value,layoutInputs[1].value];
	//console.info("MACD values",inputValues)
	//console.info("MACD criteria",rowCriteria)

	rowCriteria.field = this.constructFieldName(criterion.fieldPatternOrder,inputValues);
	//console.info("MACD field",rowCriteria.field)
	// NOTE: rowCriteria.values are stored by the _buttons

}


Screener_class.prototype.GUI_renderCriterionSub_Dividends = function(criterion,rowCriteria,criteriaContainer) {

	this.GUI_renderCriterionSub_MACD(criterion,rowCriteria,criteriaContainer);
}



Screener_class.prototype.GUI_storeCriterionSub_Dividends = function(criterion,rowCriteria,criteriaContainer) {

	this.GUI_storeCriterionSub_MACD(criterion,rowCriteria,criteriaContainer);

	rowCriteria.values = ["GTR,0"];

}


Screener_class.prototype.GUI_renderCriterionSub_OBV = function(criterion,rowCriteria,criteriaContainer) {
	this.GUI_renderCriterionSub_MACD(criterion,rowCriteria,criteriaContainer);
}

Screener_class.prototype.GUI_storeCriterionSub_OBV = function(criterion,rowCriteria,criteriaContainer) {
	this.GUI_storeCriterionSub_MACD(criterion,rowCriteria,criteriaContainer)
}