/**
 * DSBN Website - Includes functions added to all websites
 *
 * @version: 4.0
 * @author: Matt Froese (matt.froese@dsbn.edu.on.ca)
**/
var subdomain = "";
$(function() {
	var full = window.location.host;
	var parts = full.split('.');
	subdomain = parts[0];

	var schoolAlias = getSchoolWebAlias();
	schoolAlias = schoolAlias[0];
	var page = schoolAlias[1];

	loadSchoolMap( schoolAlias );

	DSBNICOECheckMessages( schoolAlias, page );

	getUpcomingEvents( schoolAlias );

	createCalendar( schoolAlias );
	
	if( $( "#dsbn-buttons" ).length > 0 ) {
		$.post( "/shared/homebuttons.aspx", { subdomain: subdomain }, function( data ) {
			$( "#dsbn-buttons" ).html( data );
		} );
	}

	$.ajax({
		url: "/shared/news.aspx",
		context: document.body,
		success: function( data ){
			var items = data.getElementsByTagName("item");
			var newsItems = new Array();
			for( var i = 0; i < items.length; i++ ) {
				link = "#";
				if( items[i].getElementsByTagName("link")[0].firstChild ) 
				{
					link = items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
				}
				title = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
				title = title.replace(/(<([^>]+)>)/ig,"" ); 

				newsItems[i] = { title: title, link: link };
			}
			document.newsitems = newsItems;
			document.currentitem = 0;
			rotateFeed();
		}
	});
	$(".news-previous" ).click( function() {
		clearTimeout(document.t);
		rotateFeed( false );
	});
	$(".news-next" ).click( function() {
		clearTimeout(document.t);
		rotateFeed( );
	});
});

function rotateFeed( forward ) {
	forward = forward == undefined ? true: forward;
	var c = document.currentitem;
	var items = document.newsitems;
	var next = ( forward ) ? ( (c == items.length-1) ? 1 : c+1 ) : ( (c == 1) ? items.length-1 : c-1 );
	$( "#news-description" ).html( $( "<a href=\"" + items[ next ].link + "\" target=\"_blank\">" + items[ next ].title + "</a>" ) );
	$( "#news-more" ).attr( "href", items[ next ].link );
	$( "#news-more" ).attr( "target", "_blank" );
	document.currentitem = next;
	document.t = setTimeout( "rotateFeed()", 6000);
}
  
var _gaq = _gaq || [];
_gaq.push(
  ['_setAccount', 'UA-2312881-61'],
  ['_setDomainName', 'none'],
  ['_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';
  (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();


function getDomain() {
	var windowLocation = window.location.href;
	if( windowLocation.indexOf( "www.dsbn.org" ) != -1 ) {
		return "www.dsbn.org";
	} else if( windowLocation.indexOf( "dsbn.org" ) != -1 ) {
		return "dsbn.org";
	} else {
		return "www.dsbn.edu.on.ca";
	}
}

function getSchoolWebAlias() {
	var school = "";
	var page = "";
	var uri = window.location.href.toLowerCase();
	if( uri.indexOf( "schools/" ) != -1 ) {
		buffer = uri.substring( uri.indexOf( "schools/" ) + 8 );
		school = buffer.substring( 0, buffer.indexOf( "/" ) );
		page = buffer.substring( buffer.lastIndexOf( "/" ) + 1 );
	}
	else if( uri.indexOf( "schools.dsbn.edu.on.ca" ) != -1 ) {
		buffer = uri.substring( uri.indexOf( "schools.dsbn.edu.on.ca/" ) + 23 );
		school = buffer.substring( 0, buffer.indexOf( "/" ) );
		page = buffer.substring( buffer.lastIndexOf( "/" ) + 1 );
	}
	return new Array( school, page );
}


function DSBNICOECheckMessages( schoolAlias, page )
{
	var html = "";

	//if( page == "index.html" )
	//{
		//html = "<div id=\"icoe-message\">"
		//	+ "<a class=\"more\" href=\"http://www.dsbn.org/index.aspx?id=7820\">"
		//	+ "<span class=\"message\">"
		//	+ "An important message has been posted regarding Inclement Weather Procedures.<br />Click here to view these procedures."
		//	+ "</span>"
		//	+ "</a></div>";
	//}
}
var mapAlias = "";
function initializeMap() {
	$.post( "/shared/schoolcoords.aspx", { subdomain: subdomain }, function( msg ) {
		if( msg.result.success == false ) {
			alert( msg.result.message );
		} else {
			var myLatlng = new google.maps.LatLng(msg.school.lat, msg.school.lng);
			var myOptions = { zoom: 14, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
			var map = new google.maps.Map(document.getElementById("map"), myOptions);				
		
			var name = msg.school.name + ( msg.school.elementary ? " Public School" : " Secondary School" );
			var contentString = "<h2 style='margin: 0px 0px 5px 0px;'>" + name + "</h2><div style='padding-top: 5px;'>" + msg.school.full_address + "</div><div style='padding-top: 5px;'>" + msg.school.phone + "</div>";
				
			var infowindow = new google.maps.InfoWindow({
				content: contentString
			});
		 
			var marker = new google.maps.Marker({
				position: myLatlng,
				map: map,
				title: name,
				icon: "http://maps.google.com/mapfiles/kml/pal2/icon10.png"
			});
			google.maps.event.addListener(marker, 'click', function() {
			  infowindow.open(map,marker);
			});
			$( "#larger-map" ).attr( "href", "http://maps.google.com/maps?f=q&hl=en&geocode=&q=" + encodeURIComponent( msg.school.full_address )  + " (" + name + ") @" + msg.school.lat + "," + msg.school.lng + "&ie=UTF8&t=h&z=16&iwloc=addr");
			$( "#larger-map" ).attr( "target", "_blank");
		}
	}, "json");
}

function loadSchoolMap( schoolAlias ) 
{
	if( document.getElementById( 'map' ) == undefined ) return false;
	mapAlias = schoolAlias;
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initializeMap";
	document.body.appendChild(script);
}

function getUpcomingEvents( schoolAlias )
{
	var numEvents = ( $( '#num-events' ).val() != undefined ) ? $( '#num-events' ).val() : 5;
	
	if( $( "#important-dates" ).length > 0 ) {
		$.post( "/shared/upcomingevents.aspx", { subdomain: subdomain, limit: numEvents }, function( data ) {
			$( "#important-dates-loading" ).slideUp();
			if( data.events.length > 0 ){
				var lastStart = "";
				var dateDisplay = "";
				$.each( data.events, function( i, event ) {
					dateDisplay = "";
					if( lastStart == "" || lastStart != event.start_date ) {
						dateDisplay = "<dt>" + event.start_date + "</dt>";
					}
					dateDisplay += "<dd>";
					if( event.start_time == "12:00 AM" ) {
						dateDisplay += "<span class=\"time\">All day</span> - ";
					} else {
						dateDisplay += "<span class=\"time\">" + event.start_time + "</span> - ";
					}
					dateDisplay += event.event_title;
					dateDisplay += "</dd>";
					$( "#important-dates" ).append( dateDisplay );

					lastStart = event.start_date;
				});
			} else {
				$( "#important-dates" ).append( "<dt></dt><dd>There are currently no events</dd>" );
			}
		}, "json");
	}

	return false;
}

function createCalendar( schoolAlias )
{	
	if( document.getElementById( "calendar-container" ) == undefined ) return false;

	calendar = new Calendar( schoolAlias );
	calendar.create( document.getElementById( "calendar-container" ) );

	$( "#calendar-container" ).calendar();
}
