$(document).ready(function(){
	 embedStockChart();
	 if( typeof(isLandingPage) != 'undefined' && isLandingPage == true ){
	 } else {
		 getAssetDetail( ticker );
	 }
	 if( typeof(initTimeSeriesData) != 'undefined' && initTimeSeriesData ){		
		 initStockChart( initTimeSeriesData );
	 } else {				 
		 getAssetsHistoricalPrices( ticker );
	 }
});
function initStockChart( timeSeriesData ){
	var assetsTimeseriesPrice = timeSeriesData; //eval('(' + timeSeriesData + ')');
	var priceResults = [];
	for( iCount in assetsTimeseriesPrice ){
		var data = assetsTimeseriesPrice[iCount];
		priceResults.push(formatNewAssetTimeseriesPrice( data ));
	}
	loopCheckAndCall("assetChart", "importTimeSeriesData", priceResults);
}
function getAssetsHistoricalPrices( ticker ){
	var endDate = new Date();
	var endDateStr = endDate.format("yyyyMMdd");
	var OneMonth = 30 * 24 * 3600 * 1000; 
	var startDate = new Date(endDate.getTime() - 5 * 12 * OneMonth);
	var startDateStr = startDate.format("yyyyMMdd"); 
	
	ajaxCallEntities['assetTimeseriesPrice'] = new AssetsTimeseriesPriceEntity( {required:{tickerList:ticker }, optional:{startDate:startDateStr,endDate:endDateStr}} );
	clearPreviousDataFromChart();
	asyncAjaxCall( ajaxCallEntities['assetTimeseriesPrice'], getAssetsTimeseriesPriceSucc );
}

function getAssetsTimeseriesPriceSucc( assetsTimeseriesPrice ){
	assetsTimeseriesPrice = assetsTimeseriesPrice.getAjaxEntity();
	if( assetsTimeseriesPrice && assetsTimeseriesPrice.length > 0 ){
		var priceResults = [];
		for( iCount in assetsTimeseriesPrice ){
			var data = assetsTimeseriesPrice[iCount];
			priceResults.push(formatNewAssetTimeseriesPrice( data ));
		}
		loopCheckAndCall("assetChart", "importTimeSeriesData", priceResults);
	}
}

function clearPreviousDataFromChart(){
	try{
		var chart = getFlexApp("assetChart");
		if(chart && chart['clear']){
			chart.clear();
		}
	}
	catch(err){}
}

function formatNewAssetTimeseriesPrice ( assetTimeseriesPrice) {
	var oldAssetTimeseriesPrice = {};
	oldAssetTimeseriesPrice['assetType'] = assetTimeseriesPrice['assetType'];
	oldAssetTimeseriesPrice['createDate'] = assetTimeseriesPrice['createDate'];
	oldAssetTimeseriesPrice['ticker'] = assetTimeseriesPrice['ticker'];
	oldAssetTimeseriesPrice['assetName'] = assetTimeseriesPrice['assetName'];	
	oldAssetTimeseriesPrice['analytics'] = {};
	oldAssetTimeseriesPrice['analytics']['price']= assetTimeseriesPrice['price'];
	return oldAssetTimeseriesPrice;
}

// for new chart
function requestTimeSeriesData(params){

	for(var i = 0; i < params.length; i++){
		ajaxCallEntities['assetTimeseriesPrice'] = new AssetsTimeseriesPriceEntity( {required:{tickerList:params[i].ticker }, optional:{startDate:params[i].startDate,endDate:params[i].endDate}} )
		asyncAjaxCall( ajaxCallEntities['assetTimeseriesPrice'], getAssetsTimeseriesPriceSucc );
	}
}

function requestNewSeriestData(params){
	ajaxCallEntities['assetTimeseriesPrice'] = new AssetsTimeseriesPriceEntity( {required:{tickerList:params.ticker }, optional:{startDate:params.startDate,endDate:params.endDate}} )
	asyncAjaxCall( ajaxCallEntities['assetTimeseriesPrice'], getAssetsTimeseriesPriceSucc );
}

function embedStockChart(){
	var flashVars = {};
	flashVars.type = "asset";
	flashVars.restHost = elggHost;
	flashVars.showRss = true;
	flashVars.initialAnnotations = "article,earning";
	if ( typeof ( chartSize ) != 'undefined' &&  chartSize == 'medium'){
		flashVars.zooms = "5d,1m,3m,1y,3y,Max";
	}
	
	var config = {};
	config.type = "stockChart";
	config.htmlId = "assetChart";
	config.width = chart_width; //753;
	config.height = chart_height ;//300;
	config.flashVars = flashVars;
	embedSWF(config);
}

function requestOldData(ids, startDateStr, endDateStr){					
	ajaxCallEntities['assetTimeseriesPrice'] = new AssetsTimeseriesPriceEntity( {required:{tickerList: ids[1] }, optional:{startDate:startDateStr,endDate:endDateStr}} );
	asyncAjaxCall( ajaxCallEntities['assetTimeseriesPrice'], refreshStockChart );

}

function refreshStockChart( assetsTimeseriesPrice ){
	assetsTimeseriesPrice = assetsTimeseriesPrice.getAjaxEntity();
	if( assetsTimeseriesPrice && assetsTimeseriesPrice.length > 0 ){
		for( iCount in assetsTimeseriesPrice ){
			var data = assetsTimeseriesPrice[iCount];
			getFlexApp("assetChart").refreshChart( [formatNewAssetTimeseriesPrice( data )] );
		}			
	}		
}

function getAssetDetail( ticker ){
	ajaxCallEntities['assetsEntity'] = new AssetsEntity({required:{tickerList:[ticker]}});
	asyncAjaxCall( ajaxCallEntities['assetsEntity'], displayAssetDetail );
}

function displayAssetDetail( assetsEntity ){
	assetsEntity = assetsEntity.getAjaxEntity();
	if( assetsEntity ){
		if (  assetsEntity.length > 0 ){
			
			$("#js_invalid_ticker").hide();
			$(".asset_detail").show();
			
			assetDailyData = assetsEntity[0].assetDailyData;
			$("#js_asset_ticker").text( assetDailyData.ticker).attr('title', assetsEntity[0]['assetInfo']['assetName']);
			//
			$("#js_more_asset_ticker").text( assetDailyData.ticker).parent('a').attr('href', elggHost+'apps/asset_beta/'+ assetDailyData.ticker );
			
			$("#js_asset_date").text("(As of "+transformDateString(assetDailyData.date)+")");			
			if( assetsEntity[0]['assetInfo']['assetType'].toLowerCase() == 'index' ){
				$("#js_asset_marketprice").text( localNumberFormatted( assetDailyData.closePrice) );
			}
			else {
				$("#js_asset_marketprice").text( localCurrencyFormatted( assetDailyData.closePrice) );
			}		
			$("#js_assetDailyReturn").text( localNumberFormatted(assetDailyData.dailyReturn ) ).addClass( getNumberColorClass( assetDailyData.dailyReturn ) );
			$("#js_assetDailyReturnRate").text( "("+localPercentFormatted(assetDailyData.dailyReturnRate)+")").addClass( getNumberColorClass( assetDailyData.dailyReturnRate ) );
		
			
		} else {
			$(".asset_detail").hide();
			$("#js_invalid_ticker").show().text( ticker + " is not a valid ticker symbol." );			
		}
	} 
}


