var rootLastUpdate; var json_path=''; var mHdSubscribeEmailContent='';

// get static texts
function mHdGetstatic(){	
	$.ajax({ type: "GET", url: "/Modules/Module_home/Template_default/View/Screen/LanguageXML/"+language+".xml", dataType: "xml", success: function(xml) {
		$(xml).find('page').find('phrase').each(function(){
			$('body').data('lang_'+$(this).attr('name'),$.trim($(this).text()));
			
		}); 
		
		$.ajax({type: "GET",url: "/Core/LanguageXML/"+language+".xml",dataType: "xml",success: function(xml) {
			$(xml).find('page').find('phrase').each(function(){
				$('body').data('lang_'+$(this).attr('name'),$.trim($(this).text()));
			});
			
			// everything retrieved, launch setup function
			mHdTickerDateCheck();
			
		}});
	}});
}

// check rootLastUpdatetime
function mHdTickerDateCheck(){
	$.getJSON(json_path+"id=lu&jsoncallback=?",{format:'json'},function(data){	
		// only update the table and graph if the xml has changed (last update time)
		var thisLastUpdate = String(data['last_update_time']);		
		if(rootLastUpdate != thisLastUpdate){
			// set latest date
			rootLastUpdate = thisLastUpdate;
			
			//load ticker data on a slight delay
			window.setTimeout("mHdTickerLoad()",500);
		}
	});
	// auto update in 5 minutes - outside of the ajax function in case something
	// is wrong with the connection, then it will try again
	window.setTimeout("mHdTickerDateCheck()",300000);
}


function mHdTickerLoad(){
	var tickerdata = '';
	
	// data for the table
	$.getJSON(json_path+"id=tk&jsoncallback=?",{format:'json'},function(data){		
		
		// create ticker data string variable
		var tickerdata = '';

		// add the last update time
		var thisLastUpdate = String(data['last_update_time']);
		var uday = thisLastUpdate.substr(6,2); var umonth = $('body').data('lang_monthlong'+thisLastUpdate.substr(4,2)); var uyear = thisLastUpdate.substr(0,4); var utime = thisLastUpdate.substr(8,2) + ":" + thisLastUpdate.substr(10,2);
		tickerdata += $('body').data('lang_ticker_date').replace('%day',uday).replace('%month',umonth).replace('%year',uyear).replace('%time',utime)+' &nbsp;&nbsp;&nbsp; ';
		
		if(data && data['products']){
		
			$.each(data['products'], function(key, val) {
				//var thisProduct = String(val['product_name']);
				var thisProduct = $('body').data('lang_ticker_'+String(val['product_id']));
				var thisCurrency = String(val['product_currency']);
				var thisDecimal= String(val['product_decimal']);
				var productID = String(val['product_id']);
				
				$.each(val['contracts'], function(ikey, ival) {
					
					// holder span
					tickerdata += '<span class="mHdTickerItem">';	
					
					
					
					var thisContract = productID+String(ival['year']).substr(2)+String(ival['month']);

					// product name
					tickerdata += '<span class="mHdtickerProdname">'+thisProduct+' ';
					
						// month/year
						if(language=='en'){
							tickerdata += $('body').data('lang_month'+String(ival['month']))+' '+ival['year']+' ';
						}else{
							tickerdata += ival['year']+$('body').data('lang_yearsfx')+$('body').data('lang_month'+String(ival['month']))+' ';
						}
					
					tickerdata += '</span>';
					
					tickerdata += '<span class="mHdtickerPrice">';
						
						
						
						// currency
						tickerdata += thisCurrency+' <strong>';
						
						// price
						if(Number(ival['last_price'])>0){
							// use last price	
							var thisPrice = String(Number(ival['last_price']).toFixed(thisDecimal));
							
							// is it currently weekend?
							var d = new Date(); var e = d.getDay();
							if(e==6 || e==0){
								thisPrice += 'S';
							}
						}else if(Number(ival['previous_settlement'])>0){
							// use settlement
							var thisPrice = String(Number(ival['previous_settlement']).toFixed(thisDecimal))+'S';
						}else{
							var thisPrice = '-';
						}
						
						tickerdata += thisPrice+'</strong> ';
						
						// up or down image
						if(Number(ival['change'])>0){
							tickerdata += '<img src="/Modules/Module_home/Template_default/View/Screen/CSS/Images/price_up.gif" class="mHdTickerPricechange" alt="up" /> ';
						}else if(Number(ival['change'])<0){
							tickerdata += '<img src="/Modules/Module_home/Template_default/View/Screen/CSS/Images/price_down.gif" class="mHdTickerPricechange" alt="down" /> ';
						}
						
						if(Number(ival['change'])>0){
							tickerdata += '<span class="mHdchangePositive">'+String(Number(ival['change']).toFixed(thisDecimal))+'</span>';
						}else if(Number(ival['change'])<0){
							tickerdata += '<span class="mHdchangeNegative">'+String(Number(ival['change']).toFixed(thisDecimal))+'</span>';
						}

					tickerdata += '</span>';
					
					// close span
					tickerdata += '</span>';
					
				}); // end contract loop
			
			}); // end product loop
			
			
				
					
			$('.mHdTicker').html('<span id="contentBox">'+tickerdata+'</span>');
			$('.mHdTicker').css('width',$('.mHdTicker').width()+'px');
			
			
			$('.mHdTicker').marquee({
				speed : 3,
				vertical : false,
				
				speedUp  : '.mHdTickerControlSlower',
				speedDown : '.mHdTickerControlFaster',
				
				clsSpeedDown : 'mHdTickerControlFasterActive',
				clsSpeedUp : 'mHdTickerControlSlowerActive',
				
				draggable : true,
				
				enableScroll : true,
				stepScroll : 10,
				enableAnimateScroll : true,
				animateScrollDuration : 250,
				animateScrollEasing : 'linear'
			});
			
			window.setTimeout("mHdHideTickerCover()",500);
		}

	});
}
	
function mHdHideTickerCover(){
	$('.mHdTickerCover').hide();	
}
$(document).ready(function(){	
	json_path = '/'+language+'/Apps/marketdata/?';

	$('.mHdPanelsHolder').easyAccordion({ 
			autoStart: false,
			slideNum:false	
	});
	
	// fix alpha PNG in older IE versions
	if($.browser.msie && Number($.browser.version.slice(0,1)) < 7){
		DD_roundies.addRule('.mHdShadow');
	}
	
	// laod the ticker data and make it tick
	mHdGetstatic();
	
	// resize box content divs
	$('.mHdBoxBG, .mHdBox').each(function(i,e) {
		$(this).find('.mHdBoxContent').css('width',($(this).width()) + 'px').css('height',($(this).height()-30) + 'px');
	});
	
	// make the boxes scrollable
	$('.mHdBoxContent').jScrollPane();
	
	// apply masonary
	$('.mHdBoxesHolder').masonry({
		columnWidth: 312,
		gutterWidth: 12
	});
	
	$('.mHdPanelSlideshowHolder').cycle({timeout:  5000});
	
	// newsletter subscribe
	mHdSubscribeEmailContent = $('.mHdSubscribeEmail').val();
	$('.mHdSubscribeEmail').focus(function(e) {
		if($(this).val()==mHdSubscribeEmailContent){
			$(this).val('');
			$(this).removeClass('mHdSubscribeEmail').addClass('mHdSubscribeEmailFocus');
		}
	});
	
	$('.mHdSubscribeEmail').blur(function(e) {
		if($(this).val()==''){
			$(this).val(mHdSubscribeEmailContent);
			$(this).removeClass('mHdSubscribeEmailFocus').addClass('mHdSubscribeEmail');
		}
	});
	
	$('.mHdSubscribeButton').click(function(e) {
		if($('.mHdSubscribeEmail').val() != mHdSubscribeEmailContent){	// replace for proper email validation and error message
			$('#mHdSubscribeForm').submit();
		}
	});
	
	
});
