/***********

FUNCTIONS

************/
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function formatTime( intHour )
	{
		var result;
		var suffix;

		if ( intHour >= 0 && intHour <= 23 )
		{
			if ( intHour < 12 )
			{
				suffix = "am";
			}
			else
			{
				suffix = "pm";
				intHour = intHour - 12;
			}
			
			if ( intHour == 0 )
				intHour = 12;

			result = intHour + suffix;
		}
		
		return result;
	}
	
/***********

JQUERY

************/


$(document).ready(function() {
	
	//page: /default.asp
	$("#map-container AREA").mouseover(function(){
		//clear the map and list
		$('*[class$="-map"]').each(function() {
			$(this).css('display','none');
		});
		$('*[class$="-list"]').each(function() {
			$(this).css('display','none');
		});
	
		//highlight the relevant parts on the map
		var regionMap = '.'+$(this).attr('id')+'-map';
		var regionList = '.'+$(this).attr('id')+'-list';
		$(regionMap).css('display', 'inline');

		// change the Region hover state
		$('#general-info').css('display', 'none');
		$('#danger-container').css('display', 'block');
		$(regionList).css('display', 'inline');
		
	});
	
	//page: /forecasts/region.asp
	$("#regionmapcontainer area").tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250,
		bodyHandler: function() {
			return $($(this).attr("id").replace('area_','#')).html();
			}
	});
	
	//page: signup form
	$("#emailsignup").colorbox();
	
	//page: /Forecasts/detail.asp
	$(function() {
		$.extend($.datepicker,{_checkOffset:function(inst,offset,isFixed){return offset}});
		$( "#datepicker" ).datepicker({
			dateFormat: "dd/mm/yy",
			showOn: "button",
			buttonImage: "/Templates/Main/images/icon-calendar.png",
			buttonImageOnly: true,
			minDate: (new Date(2011,7-1,8)),
			maxDate: 0,
			beforeShow: function(input, inst)
			{
				inst.dpDiv.css({marginTop: '27px', marginLeft: '-204px'});
			},
			onSelect: function( dateText, inst )
			{
				$("#loading").ajaxStart( function() {
					$("#detailscontainer").fadeOut( 1 );
					$(this).show();
				});
				
				$("#loading").ajaxComplete( function() {
					$(this).hide();
					$("#detailscontainer").fadeIn( 500 );
				});
				
				$.post( "getdetails.asp", {date: dateText, mountainid: theMountainID}, function(xml) {
					$("#dateText").text(dateText);
					
					$("#highalpineimage").attr( "src", "/images/dangerscale/region/" + $("high_alpine_danger",xml).text() + ".png" );
					$("#alpineimage").attr( "src", "/images/dangerscale/region/" + $("alpine_danger",xml).text() + ".png" );
					$("#subalpineimage").attr( "src", "/images/dangerscale/region/" + $("sub_alpine_danger",xml).text() + ".png" );
					$("#printlink").attr( "href", $("printlink",xml).text() );
					if ( $("snowpack",xml).text() != '' )
					{
						$("#snowpack").text( $("snowpack",xml).text() );
						$("#snowpackblock").show();
					}
					else
					{
						$("#snowpackblock").hide();
					}
					if ( $("activity",xml).text() != '' )
					{
						$("#activity").text( $("activity",xml).text() );
						$("#activityblock").show();
					}
					else
					{
						$("#activityblock").hide();
					}
						
					$("#weather").text( $("weather",xml).text() );
					
					//remove all concerns
					$("#dangerblocks").empty();
					
					//get all the concerns to do with this forecast
					var count = 0;
					var title = "";
					var aspects = "";
					var aspectsHTML = "";
					var aspectDangerNumber = 0;
					var times = "";
					var timesHTML = "";
					var segment;
					$(xml).find("concern").each( function () {
						aspectsHTML = "";
						timesHTML = "";
						count = count + 1
						if ( count == 1 )
							title = "Primary Avalanche Danger";
						else
							title = "Secondary Avalanche Danger";
	
						//clone the template object
						$("#dangerblock").clone().show().appendTo("#dangerblocks");
						
						//replace the required vars
						$("#dangertitle").text( title );
						$("#dangertype").attr( "src", "/images/dangertype/" + $(this).find("type_id").text() + ".jpg" );
						aspects = $(this).find("aspects").text().split(",");
						for ( i=0; i<aspects.length; i++ )
						{
							aspectDangerNumber = $.trim(aspects[i]).charAt(0);
							aspectsHTML += "<div style=\"position:absolute\"><img src=\"/images/aspect/" + $.trim(aspects[i]) + ".png\" width=\"150\" height=\"150\" alt=\"\" /></div>";
						}
						$("#dangerousaspects").after( aspectsHTML );
						$("#aspectnumber").attr( "class", "aspect" + aspectDangerNumber );
						$("#aspectnumber").text( aspectDangerNumber );
						$("#dangerlikelihood").attr( "class", "gauge" + $(this).find("likelihood").text() );
						$("#dangersize").attr( "class", "gauge" + $(this).find("size").text() );
						$("#dangertrend").attr( "class", "gauge" + $(this).find("trend").text() );
						startTime = $(this).find("starttime").text();
						endTime = $(this).find("endtime").text();
						for ( i=startTime; i<endTime; i++ )
						{
							if ( i >= 12 )
								segment = i-12;
							else
								segment = i;
							
							timesHTML += "<div style=\"position:absolute\"><img src=\"/images/timegauge/" + segment + ".png\" width=\"80\" height=\"80\" alt=\"\" /></div>";
						}
						$("#times").prepend( timesHTML );
						$("#timeinfo").text( formatTime( startTime ) + " - " + formatTime( endTime ) );
						$("#description").text( $(this).find("description").text() );
						
						//remove the ids
						$("#dangerblocks").find("*").removeAttr("id");
						
						
					}); //close each
					
					//if no concerns we need to show the "unknown" caution piece
					if ( count == 0 )
					{ 
						$("#nrtitle").text = $("nrtitle",xml).text();
						$("#nrdescription").text = $("nrdescription",xml).text();
						$("#nricon").attr( "src", "/images/dangertype/" + $("nricon",xml).text() + ".jpg" );
						$("#nrblock").show();
					}
					else
					{
						$("#nrblock").hide();
					}
					
				})
			}
		});
	});
	
	
	// page: /Forecasts/news-events
	
});



/***********

GOOGLE ANALYTICS

************/
var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-4649551-49']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
