var $j = jQuery.noConflict();
var map = null;
var hash = "";
if(window.location.hostname=='www.microsoftcambridge.com'){window.location.hostname = 'microsoftcambridge.com';}
$j(document).ready(function(){
	if($j('.rotate').length > 0)
	{
		var t = setInterval("switchBlocks($j('.rotate:visible'))", 15000);
		$j('.rotate .heading').click(function() {
			switchBlocks($j(this).parent());
			t = clearInterval(t);
		});
	}
	
	if($j('#twitterfuse').length > 0)
	{
		var twitteracct = 'fuselabs';
		$j("#twitterfuse").getTwitter({
			userName: twitteracct,
			numTweets: 4,
			loaderText: "Loading tweets...",
			slideIn: true,
			showHeading: true,
			headingText: "",
			showProfileLink: false
		});
	}


	if($j('#twitter').length > 0)
	{
		var twitteracct = 'msnewengland';
		$j("#twitter").getTwitter({
			userName: twitteracct,
			numTweets: 2,
			loaderText: "Loading tweets...",
			slideIn: true,
			showHeading: true,
			headingText: "Latest Tweets",
			showProfileLink: true
		});
	}
	
	jQuery.getFeed({
        url: '/blog/site/feed/',
        success: function(feed) {
            var html = '';
            for(var i = 0; i < feed.items.length && i < 1; i++) {
                var item = feed.items[i];
                html += '<b>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</b><br /><br />';				
				/*var desc = item.description.substring(0, item.description.length-3);
				desc += '<a href="'+item.link+'">...</a>';
                html += '<div>'
                + desc
                + '</div>';*/
            }
            $j('#blogfeed').html(html);
        } 
    });
	
	if($j('#careers').length > 0)
	{
		
		jQuery.getFeed({
	        url: '/jobs/rss/',
	        success: function(feed) {
	            var html = '';	            
	            for(var i = 0; i < feed.items.length; i++) {
	                var item = feed.items[i];
	                html += '<b>'
	                + '<a target="_blank" title="' + item.description + '" href="'
	                + item.link
	                + '">'
	                + item.title
	                + '</a>'
	                + '</b><br />';				
					/*var desc = item.description.substring(0, item.description.length-3);
					desc += '<a href="'+item.link+'">...</a>';
	                html += '<div>'
	                + desc
	                + '</div>';*/
	            }
	            $j('#careers').html(html);
	        } 
	    });
	}
	
	$j("div.menu a img").hover(
		function () {
			if($j(this).parent().attr("class")!="active") {
				var url = $j(this).attr("src");
				url = url.replace(/.png/, "_ovr.png");
				$j(this).attr("src", url);
			}
		},
		function () {
			if($j(this).parent().attr("class")!="active") {
				var url = $j(this).attr("src");
				url = url.replace(/_ovr/, "");
				$j(this).attr("src", url);
			}
		}
	);
	
	var preload_image_object = new Image();
	var image_url = new Array();
	image_url[0] = "about";
	image_url[1] = "events";
	image_url[2] = "people";
	image_url[3] = "teams";
	image_url[4] = "community";
	image_url[5] = "working";
	
	var page = $j(".container").attr("id");
	var i = 0;
	for(i=0; i<=5; i++)
	{
		preload_image_object = new Image();
		if(image_url[i] != page)
			preload_image_object.src = "/img/"+page+"/"+image_url[i]+"_ovr.png";
	}
	if($j('.empvid').length > 0)
	{
		$j.getScript('/js/Silverlight.js', function () {
			$j(".empvid img").live("click", function() {
				var id = $j(this).parent().attr("id");
				var vid = $j(this).parent().attr("title");
				var h = 212;
				var w = 380;
				if($j(this).parent().hasClass('footer'))
				{
					var h = 156;
					var w = 280;
				}
				else if($j(this).parent().hasClass('main'))
				{
					var h = 193;
					var w = 343;
				}
				else if($j(this).parent().hasClass('smallbox'))
				{
					var h = 155;
					var w = 280;
				}
				else if($j(this).parent().hasClass('comvid'))
				{
					var h = 214;
					var w = 380;
				}
				else if($j(this).parent().parent().hasClass('vidright'))
				{
					var h = 158;
					var w = 280;
					
				}
				VSLT(vid);
				insertSLV(id, vid, w, h);
			});
		});
	}
	
	if($j('.webcam').length > 0)
	{
		$j.getScript('/js/Silverlight.js', function () {
			$j(".webcam img").click(function () {
				var id = $j(this).parent().attr("id");
				var vid = "http://shared.streamwebtown.com/liveswt";
				webCam(id, vid);
			});
		});
	}
	
	if($j('#cambridgemap').length > 0)
	{
		var Boston = new VELatLong(42.36156609702884, -71.08126401901245, 0, VEAltitudeMode.Default);
		getMap(Boston);
		var submitable = false;
		$j('#dnn_ctr382_SearchInput_txtSearch').focus(function () {
			submitable = true;
		});
		
		$j('#fromadd').focus(function () {
			submitable = false;
		});
		
		$j("form").submit( function () {
			if(!submitable)
			{
				getRoute();
				return false;
			}
		});
	}
	
	if($j('#massmap').length > 0)
	{
		
		getMassMap();
	}
	
	if($j('#community').length > 0)
	{
		slideContent();
		
	}
	
	fixRollovers();
	//alert($j('.header').css('width'));
	if($j('.header').css('width') == "960px")
	{
		$j(window).resize(function() {
			$j('.header').css("width", "auto");
		});

	}
	
	if($j('#eventsMenu').length > 0)
	{
		slideEvents();
	}
	
	if($j('.featuredorg').length)
	{
		$j('.orglist li>a').click(function() {
			$j('.featuredorg').html($j(this).next('div').html());
			return false;
		});
	}
	
	if($j('.descriptions').length)
	{
		hash = "#working";
		if(window.location.hash!="")
		{
			hash = window.location.hash;
			$j(hash).css('background-color', 'white');
		}
		
		$j('.descriptions div').after('<a href="#">Read More...</a>');
		$j('.descriptions a').live("click", function() {
			if($j(this).prev('div').css('display')=='none')
			{
				$j(this).text('Read Less...');
			}
			else
			{
				$j(this).text('Read More...');
			}
			$j(this).prev('div').toggle();
			
			return false;
		});
		$j(hash).focus().next().next('div').show().next('a').text('Read Less...');
		
		
	}
	slideDirections();
	
});

function switchBlocks(block)
{
	block.parent().css('background-image','url(/img/teams/contentpane_back.png)');
	block.fadeOut('slow', function() {
		block.siblings().fadeIn('slow', function() {
			block.parent().css('background-image','none');
		});
	});
}

function slideEvents()
{
	$j('#toArchive').click(function () {
		$j('#eventsMenu').animate({ 
			left: "-300px"
			}, 500, function () {
			$j('.archLabel:first').next().slideDown();
		});
		return false;
	});
	
	$j('#toUpcoming').click(function () {
		$j('.archLabel').next().slideUp();
		$j('#eventsMenu').animate({ 
			left: "0px"
			}, 500 );
		return false;
	});
	
	$j('.archLabel').click(function () {
		$j(this).next().slideToggle();
	});
	
	
}

function insertSLV(id, vid, w, h)
{
	Silverlight.createObject(
		"/media/VideoPlayer.xap",
		document.getElementById(id),
		"slPlugin",
		{
			width: w, height: h, background: "white", 
			version:"2.0.31005.0"
		},
		{  },
		"autostart=true,cc=true,markers=false,m="+vid, 
		"context"
	);
}

function webCam(id, vid)
{
	Silverlight.createObject(
		"/media/VideoPlayer.xap",
		document.getElementById(id),
		"slPlugin",
		{
			width: "276", height: "155", background: "white", 
			version:"2.0.31005.0"
		},
		{  },
		"autostart=true,cc=true,markers=false,m="+vid, 
		"context"
	);
}


function getMassMap()
{
	var LatLong = new VELatLong(42.36156609702884, -71.08126401901245, 0, VEAltitudeMode.Default);
	var map = new VEMap('massmap');
	map.LoadMap(LatLong, 8);
	
	var cambridgeLL = new VELatLong(42.36156609702884, -71.08126401901245, 0, VEAltitudeMode.Default);
	var cambridge = new VEShape(VEShapeType.Pushpin, cambridgeLL);
	cambridge.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	cambridge.SetTitle("<div class=\"pinTitle\">Microsoft New England Research & Development Center</div>");
	cambridge.SetDescription("<div class=\"pinDetails\">One Memorial Drive <br /> Suite 100 <br /> Cambridge, MA 02142 <br /> Tel: (857) 453-6000 <br /> Fax: (857) 453-6013</div>");
	map.AddShape(cambridge);
	
	var navicLL = new VELatLong(42.37450635546363, -71.271, 0, VEAltitudeMode.Default);
	var navic = new VEShape(VEShapeType.Pushpin, navicLL);
	navic.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	navic.SetTitle("<div class=\"pinTitle\">Navic Networks</div>");
	navic.SetDescription("<div class=\"pinDetails\">201 Jones Rd.<br /> Waltham, MA 02451 <br /> Phone: (781) 398-4600 <br /> Fax: (781) 398-4601</div>");
	map.AddShape(navic);
	
	var districtLL = new VELatLong(42.37550635546363, -71.272, 0, VEAltitudeMode.Default);
	var district = new VEShape(VEShapeType.Pushpin, districtLL);
	district.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	district.SetTitle("<div class=\"pinTitle\">Microsoft Northeast District Office</div>");
	district.SetDescription("<div class=\"pinDetails\">201 Jones Rd.<br /> Sixth Floor <br /> Waltham, MA 02451 <br /> Phone: (781) 487-6400 <br /> Fax: (781) 487-6600</div>");
	map.AddShape(district);
	
	var techcLL = new VELatLong(42.40539438826585, -71.27953290939331, 0, VEAltitudeMode.Default);
	var techc = new VEShape(VEShapeType.Pushpin, techcLL);
	techc.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	techc.SetTitle("<div class=\"pinTitle\">Microsoft Technology Center: Boston</div>");
	techc.SetDescription("<div class=\"pinDetails\">890 Winter Street <br />Suite 100<br />Waltham, MA 02451 <br /> Phone: (781) 522-7900</div>");
	map.AddShape(techc);
	
	var fastLL = new VELatLong(42.29601523735371, -71.2128746509552, 0, VEAltitudeMode.Default);
	var fast = new VEShape(VEShapeType.Pushpin, fastLL);
	fast.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	fast.SetTitle("<div class=\"pinTitle\">FAST Search & Transfer (Microsoft Subsidiary)</div>");
	fast.SetDescription("<div class=\"pinDetails\">117 Kendrick Street <br /> Suite 100 <br />Needham, MA 02494 <br /> Phone: (781) 304-2400 <br /> Fax: (781) 304-2410</div>");
	map.AddShape(fast);
	
	var sentillLL = new VELatLong(42.6869229, -71.2125849, 0, VEAltitudeMode.Default);
	var sentill = new VEShape(VEShapeType.Pushpin, sentillLL);
	sentill.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	sentill.SetTitle("<div class=\"pinTitle\">Sentillion (a Microsoft Company)</div>");
	sentill.SetDescription("<div class=\"pinDetails\">40 Shattuck Rd. <br />Suite 200 <br />Andover, MA 01810 <br /> Phone: (978) 689-9095</div>");
	map.AddShape(sentill);
	
	/*var razorfishLL = new VELatLong(42.36231723428565, -71.08171463012695, 0, VEAltitudeMode.Default);
	var razorfish = new VEShape(VEShapeType.Pushpin, razorfishLL);
	razorfish.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	razorfish.SetTitle("<div class=\"pinTitle\">Razorfish (Microsoft Subsidiary)</div>");
	razorfish.SetDescription("<div class=\"pinDetails\">101 Main St <br />Cambridge, MA 02142 <br /> Phone: (617) 250-2500</div>");
	map.AddShape(razorfish);*/
	
	var grooveLL = new VELatLong(42.55901428173032, -70.88705062866211, 0, VEAltitudeMode.Default);
	var groove = new VEShape(VEShapeType.Pushpin, grooveLL);
	groove.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>");
	groove.SetTitle("<div class=\"pinTitle\">Microsoft Groove</div>");
	groove.SetDescription("<div class=\"pinDetails\">100 Cummings Center <br /> Suite 535Q <br />Beverly, MA 01915 <br /> Phone: (978) 720-2000</div>");
	map.AddShape(groove);
}

function myRouteHandler(route)
{
	var turns = "<h2>Turn-by-Turn Directions</h2>(rounding errors are possible)";
	turns += "<p><b>Distance:</b> " + route.Distance.toFixed(1) + " miles</p>";
		// Unroll route and populate DIV
		var legs			 = route.RouteLegs;
		var leg			 = null;
		var turnNum		 = 0;	// The turn #

		// Get intermediate legs
		for(var i = 0; i < legs.length; i++)
		{
			// Get this leg so we don't have to derefernce multiple times
			leg = legs[i];	// Leg is a VERouteLeg object
			var legNum = i + 1;
			

			// Unroll each intermediate leg
			var turn			= null;	 // The itinerary leg
			var legDistance = null;	 // The distance for this leg
			
			for(var j = 0; j < leg.Itinerary.Items.length; j ++)
			{
				turnNum++;
				turn = leg.Itinerary.Items[j];	 // turn is a VERouteItineraryItem object
				turns += "<b>" + turnNum + ".</b>\t" + turn.Text;
				legDistance	= turn.Distance;

				 // So we don't show 0.0 for the arrival
				if(legDistance.toFixed(1) > 0)
				{
					// Round distances to 1/10ths
					turns += " (" + legDistance.toFixed(1) + " miles)";
	
				}
				turns += "<br/>";
			}
			

		// Populate DIV with directions
		$j("#instructions").html(turns);
	}

}

function getRoute()
{
	var origin = $j("#fromadd").attr('value');
	var options = new VERouteOptions();
	options.SetBestMapView = true;
	options.RouteCallback = myRouteHandler;
	var locations = new Array(origin, (new VELatLong(42.3615, -71.08126401901245, 0, VEAltitudeMode.Default)));
	$j("#instructions").html('<p style="text-align: center;"><img src="/img/loading.gif" alt="loading..."/></p>');
	$j("#instructions").slideDown();
	map.GetDirections(locations, options);
	return false;
}

function getMap(Boston)
{
	
	map = new VEMap('cambridgemap');
	map.LoadMap(Boston, 14);
	var shape = new VEShape(VEShapeType.Pushpin, Boston);
	shape.SetCustomIcon("<img src=\"/Portals/0/pushpin.png\"/>"); // if you wanted to set a custom icon
	shape.SetTitle("<div class=\"pinTitle\">Microsoft New England Research & Development Center</div>");
	shape.SetDescription("<div class=\"pinDetails\">One Memorial Drive <br /> Cambridge, MA 02142 <br /> Tel: (857)453-6000</div>");
	map.AddShape(shape);
}

function fixRollovers()
{
	$j('.empbox p a').each(
		function ()
		{
			if(window.location.pathname == $j(this).attr('href'))
			{
				$j(this).parent().parent().addClass('here');
			}
		}
	);
	
	$j('.eventbox p a').each(
		function ()
		{
			if(window.location.pathname == $j(this).attr('href'))
			{
				$j(this).parent().parent().addClass('here');
			}
		}
	);
	
	$j('#teams #dnn_RightPane a').each(
		function ()
		{
			if(window.location.pathname == $j(this).attr('href'))
			{
				$j(this).children().addClass('here');
			}
		}
	);
	
	if($j('#featured').length > 0)
	{
		var path = $j('#featured').attr('title');
		$j('#featured').attr('title', '');
		$j('.eventbox p a').each(
			function ()
			{
				if(path == $j(this).attr('href'))
				{
					$j(this).parent().parent().addClass('here');
				}
			}
		);
		
		$j('.empbox p a').each(
			function ()
			{
				if(path == $j(this).attr('href'))
				{
					$j(this).parent().parent().addClass('here');
				}
			}
		);
		
		$j('#teams #dnn_RightPane a').each(
			function ()
			{
				if(path == $j(this).attr('href'))
				{
					$j(this).children().addClass('here');
				}
			}
		);
	}
	
	if($j('.archive .here').length > 0)
	{
		$j('#eventsMenu').css('left', '-300px');
		$j('.archive .here').parent().css('display', 'block');
	}
}

function slideContent()
{
	$j("h2.down").click(function ()
	{
		$j(this).next("div").toggle("fold", {direction: "up"}, 500, function ()
		{
			$j(this).removeAttr("style");
			$j(this).toggleClass("hidden");
		});
		$j(this).toggleClass("arrow");
	});
}

function slideDirections()
{
	$j("h3.dir").next("ol").hide().addClass("hidden");;
	$j("h3.dir").click(function ()
	{
		$j(this).next("ol").toggle("fold", {direction: "up"}, 500, function ()
		{
			$j(this).removeAttr("style");
			$j(this).toggleClass("hidden");
		});
	});	
}