// requires package.js!!!

var defaultSlide = "display_slide_1";
ArequestedSlide = window.location.hash.substr(1);
var totalSlides;
var offset = 6; // was 7
// var list = new Array();

// initialize start & end dates of the 60 days to compare against today so we can pre-load the "today's" slide.
var today = new Date();
	m = today.getMonth();
	d = today.getDate();
var startDate = new Date();
	startDate.setMonth(5, 29);
	var uStart = Date.UTC(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());
var endDate = new Date();
	endDate.setMonth(7, 27);
	
var s_month=new Array(12);
	s_month[0]="January";
	s_month[1]="February";
	s_month[2]="March";
	s_month[3]="April";
	s_month[4]="May";
	s_month[5]="June";
	s_month[6]="July";
	s_month[7]="August";
	s_month[8]="September";
	s_month[9]="October";
	s_month[10]="November";
	s_month[11]="December";
	
var s_today = s_month[m]+" "+d+", "+today.getFullYear();


var diff = today-startDate;
var t = ((diff/1000)/60/60/24);

// console.log(Date.UTC(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()));

var pLength = 60;
var cWidth = 2400;
var dWidth = cWidth/pLength;

Event.observe(window, 'load', function() {
	
	var firstTab = $("package_tabs").getElementsByTagName("li")[0];
	if ($(firstTab).hasClassName("active")) {
		$$("body")[0].addClassName("greatidea");
	}
	
	
	var tmpList = "<ul id=\"pacakge_calendar2\">"+$("package_calendar").innerHTML+"</ul>";
	var ins = new Insertion.After("package_calendar", tmpList);

	var l1 = $("calendar_nav").getElementsByTagName("ul")[0];
	var l2 = $("calendar_nav").getElementsByTagName("ul")[1];

	$(l2).style.left = "2400px";
	

	if ((today >= startDate) && (today <= endDate)) {
		
		if (t < offset) {
			// we'll need some dates to the left, plz.
			
			var diff = offset - t;
			var move = (cWidth - (diff*dWidth)) * -1;
			// console.log(move);
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
			
			// $(l2).getElementsByTagName("li")[t].addClassName("today");
			$("calendar_nav").getElementsByTagName("ul")[1].getElementsByTagName("li")[t].className = "today";
			
		}
		if (t >= offset) {
			// we'll need some dates to the right, plz.

			var diff = t - offset;
			var move = (diff*dWidth) * -1;
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";


			// $(l1).getElementsByTagName("li")[t].addClassName("today");
			$("calendar_nav").getElementsByTagName("ul")[0].getElementsByTagName("li")[t].className = "today";
			
			
		}
		
		$("today_container").style.display = "block";
		$("today_date").innerHTML = $$(".today")[0].getElementsByTagName("a")[0].innerHTML;
		
		var slideName = "display_slide_"+((t+1)*1);
		$(slideName).getElementsByTagName("h1")[0].innerHTML = s_today;
		$(slideName).getElementsByTagName("h1")[0].style.visibility = "visible";
		displayActiveSlide(slideName, true);
		
		// console.log(t);
		
	}




	

	// pkgLength = $$("#package_slideshow li.clearfix").length -1;
	// 
	// var list = initCalendar(pkgLength);
	// document.getElementById("package_calendar").style.visibility = "visible";
	// 
	var backButton = $("day_back");
	var nextButton = $("day_next");
	// 
	// var l = document.getElementById("package_calendar").getElementsByTagName("li");
	// for (var i = 0; i < l.length; i++) {
	// 	var theLink = l[i].getElementsByTagName("a")[0];
	// 	theLink.onclick = function() {
	// 		var theSlide = $(this).href.split("#")[1];
	// 		console.log(theSlide);
	// 		displayPackageDay(theSlide, list);
	// 		return false;
	// 	}
	// }
	// 
	
	backButton.onclick = function() {


		if (t == 0) {
			t = pLength;
		}
		t-=1;

		if (t < offset) {
			// we'll need some dates to the left, plz.
			
			var diff = offset - t;
			var move = (cWidth - (diff*dWidth)) * -1;
			// console.log(move);
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
			
			$$("#calendar_nav li.today")[0].className = "";
			$(l2).getElementsByTagName("li")[t].className = "today";
			
		}
		if (t >= offset) {
			// we'll need some dates to the right, plz.
		
			var diff = t - offset;
			var move = (diff*dWidth) * -1;
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
		
			$$("#calendar_nav li.today")[0].className = "";
			$(l1).getElementsByTagName("li")[t].className = "today";

			// $("day_label").remove();
			// var dl = new Insertion.Top($(l1).getElementsByTagName("li")[t], '<span id="day_label">DAY</span>');
		
		}

		$("today_date").innerHTML = $$(".today")[0].getElementsByTagName("a")[0].innerHTML;

		var slideName = "display_slide_"+((t+1)*1);

		var newTime = uStart + (t+1) * (1000*60*60*24);
		var newDate = new Date();
		newDate.setTime(newTime);
		m = newDate.getMonth();
		y = newDate.getFullYear();
		d = newDate.getDate();
		s_today = s_month[m]+" "+d+", "+y;
		// console.log(s_today);

		$(slideName).getElementsByTagName("h1")[0].innerHTML = s_today;
		$(slideName).getElementsByTagName("h1")[0].style.visibility = "visible";
		displayActiveSlide(slideName, true);
		// console.log(t);
		
		// 300 x 250
		var theAd = document.getElementById("ad_300-250").getElementsByTagName("iframe")[0];
		var theAdSrc = theAd.src;
		top.frames['adrefresh_300'].location.href = theAdSrc;


		// 728 x 90
		if (document.getElementById("ms-article-hdr-ad")) {
			theAd2 = document.getElementById("ms-article-hdr-ad").getElementsByTagName("iframe")[0];
			var theAdSrc = theAd2.src;
			top.frames['adrefresh_lead'].location.href = theAdSrc;
		}
		if (document.getElementById("masthead")) {
			theAd2 = document.getElementById("masthead").getElementsByTagName("iframe")[0];
			var theAdSrc = theAd2.src;
			top.frames['adrefresh_lead'].location.href = theAdSrc;
		}
		
		
		
		

		// slide = $("package_calendar").getElementsByClassName("today")[0].getElementsByTagName("a")[0].href.split("#")[1];
		// totalDays = updateList("back", list, "");
		// updateCalendar(totalDays);
		// changeSlide(slide, "back");
		return false;		
	}
	
	nextButton.onclick = function() {


		if (t == 59) {
			t = -1;
		}
		t+=1;

		if (t < offset) {
			// we'll need some dates to the left, plz.
			
			var diff = offset - t;
			var move = (cWidth - (diff*dWidth)) * -1;
			// console.log(move);
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
			
			$$("#calendar_nav li.today")[0].className = "";
			$(l2).getElementsByTagName("li")[t].className = "today";
			
		}
		if (t >= offset) {
			// we'll need some dates to the right, plz.
		
			var diff = t - offset;
			var move = (diff*dWidth) * -1;
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
		
			$$("#calendar_nav li.today")[0].className = "";
			$(l1).getElementsByTagName("li")[t].className = "today";

			// $("day_label").remove();
			// var dl = new Insertion.Top($(l1).getElementsByTagName("li")[t], '<span id="day_label">DAY</span>');
		
		}

		$("today_date").innerHTML = $$(".today")[0].getElementsByTagName("a")[0].innerHTML;

		var slideName = "display_slide_"+((t+1)*1);
	
		var newTime = uStart + (t+1) * (1000*60*60*24);
		var newDate = new Date();
		newDate.setTime(newTime);
		m = newDate.getMonth();
		y = newDate.getFullYear();
		d = newDate.getDate();
		s_today = s_month[m]+" "+d+", "+y;
		// console.log(s_today);
	
		$(slideName).getElementsByTagName("h1")[0].innerHTML = s_today;
		$(slideName).getElementsByTagName("h1")[0].style.visibility = "visible";
		displayActiveSlide(slideName, true);
		// console.log(t);
		
		// slide = $("package_calendar").getElementsByClassName("today")[0].getElementsByTagName("a")[0].href.split("#")[1];
		// totalDays = updateList("fwd", list, "");
		// updateCalendar(totalDays);
		// changeSlide(slide, "next");
		
		// 300 x 250
		var theAd = document.getElementById("ad_300-250").getElementsByTagName("iframe")[0];
		var theAdSrc = theAd.src;
		top.frames['adrefresh_300'].location.href = theAdSrc;


		// 728 x 90
		if (document.getElementById("ms-article-hdr-ad")) {
			theAd2 = document.getElementById("ms-article-hdr-ad").getElementsByTagName("iframe")[0];
			var theAdSrc = theAd2.src;
			top.frames['adrefresh_lead'].location.href = theAdSrc;
		}
		if (document.getElementById("masthead")) {
			theAd2 = document.getElementById("masthead").getElementsByTagName("iframe")[0];
			var theAdSrc = theAd2.src;
			top.frames['adrefresh_lead'].location.href = theAdSrc;
		}
		
		return false;
	}
	
	var days = $$(".calendar_container")[0].getElementsByTagName("li");
	var theLink;
	var theHref;
	for (var i = 0; i < days.length; i++) {
		theLink = days[i].getElementsByTagName("a")[0];
		// console.log(theLink.href);
		theLink.onclick = function() {
			directSlide($(this).href, t);
			return false;
		}
	}
	
	//check if they are deep-linking
	if (isInt(ArequestedSlide.split('_')[1])) {
	//	console.log(requestedSlide);
		directSlide('http://whatever.html#'+ArequestedSlide);
	}
	

});


function directSlide(slide) {
	//console.log(slide);
	//alert(t);
	slide = slide.split("#")[1];
	slide = "display_"+slide;
	displayActiveSlide(slide, true);
	slidenum = slide.split('_')[2];
	document.getElementById('today_date').innerHTML = slidenum;
	
	var l1 = $("calendar_nav").getElementsByTagName("ul")[0];
	var l2 = $("calendar_nav").getElementsByTagName("ul")[1];

	
	t = slidenum-1;
	if (t < offset) {
			// we'll need some dates to the left, plz.
			
			var diff = offset - t;
			var move = (cWidth - (diff*dWidth)) * -1;
			// console.log(move);
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
			
			$$("#calendar_nav li.today")[0].className = "";
			$(l2).getElementsByTagName("li")[t].className = "today";
			
		}
		if (t >= offset) {
			// we'll need some dates to the right, plz.
		
			var diff = t - offset;
			var move = (diff*dWidth) * -1;
			
			$(l1).style.left = move+"px";
			$(l2).style.left = ((cWidth+move)*1)+"px";
		
			$$("#calendar_nav li.today")[0].className = "";
			$(l1).getElementsByTagName("li")[t].className = "today";

			// $("day_label").remove();
			// var dl = new Insertion.Top($(l1).getElementsByTagName("li")[t], '<span id="day_label">DAY</span>');
		
		}
	
	
}


function displayPackageDay(theSlide, list) {
	
	var t = theSlide.split("_")[1];
	t-=1;
	l = updateList("", list, t);
	updateCalendar(l);
	displayActiveSlide(theSlide, false);
	
	
}

function getTodaySlide() {

	var slides = $("package_calendar").getElementsByTagName("li");
	for (var i = 0; i < slides.length; i++) {
		
		if (slides[i].hasClassName("today")) {
			return i;
			break;
		}
		
	}
	
	return -1;

}

function getTotalSlides() {
	var slides = $("package_calendar").getElementsByTagName("li");
	return slides.length;
}


function updateCalendar(list) {
	
	var c = $("package_calendar");
	c.innerHTML = "";
	for (var i = 0; i < list.length; i++) {
		var n = list[i];
		if (i == offset) {
			c.innerHTML += "<li class=\"today\"><a href=\"#slide_"+n+"\">"+n+"</a></li>";
		} else {
			c.innerHTML += "<li><a href=\"#slide_"+n+"\">"+n+"</a></li>";
		}
	}
	
}


function updateList(direction, list, t) {
	
	
	if (t == "") {
		if (direction == "fwd") {
			// going fwd.. remove [0] and move to [length-1]
			var tmpEl = list.shift();
			list.push(tmpEl);

		}
		if (direction == "back") {
			// going bkwd.. remove [length-1] and move to [0]
			var tmpEl = list.pop();
			list.unshift(tmpEl);
		}
	} else {
		// jump to the target portion (t) of the list
		
		// if t == offset, don't do anything because the correct date will be highlighted.

		if (t < offset) {
			// take offset-t elements from the end of the array and put them onto the beginning!
			var n = (offset-t)*-1;
			
			var tmp = list.slice(0, n);
			var tmp1 = list.slice(n);
			
			list = tmp1.concat(tmp);
		} else if (t > offset) {
			// take t-offset elements from the beginning of the array and put them onto the end!

			var n = (t-offset);
			
			var tmp = list.slice(0, n);
			var tmp1 = list.slice(n);
			
			list = tmp1.concat(tmp);
		}

		var theSlide = "display_slide_"+d;
		
	}
	return list;
	
}


function initCalendar(pkgLength) {

	var list = new Array();
	for (var i = 0; i < pkgLength; i++) {
		list[i] = i+1;
	}

	if ((today >= startDate) && (today <= endDate)) {
		var diff = today-startDate;
		var t = ((diff/1000)/60/60/24);
		d = t+1;

		// if t == offset, don't do anything because the correct date will be highlighted.

		if (t < offset) {
			// take offset-t elements from the end of the array and put them onto the beginning!
			var n = (offset-t)*-1;
			
			var tmp = list.slice(0, n);
			var tmp1 = list.slice(n);
			
			list = tmp1.concat(tmp);
		} else if (t > offset) {
			// take t-offset elements from the beginning of the array and put them onto the end!

			var n = (t-offset);
			
			var tmp = list.slice(0, n);
			var tmp1 = list.slice(n);
			
			list = tmp1.concat(tmp);
		}

		var theSlide = "display_slide_"+d;

		updateCalendar(list);
		displayActiveSlide(theSlide, false);

		
		return list;
	}
	
	

	return -1;
}




function changeSlide(current, direction) {
	// var current_index = current.split("_")[1];
	var newSlide;
	// if ((current_index == 1) || (current_index == pkgLength)) {
	// 	// at the end or beginning of the show.
	// 
	// 	if (current_index == 1) {
	// 		if (direction == "next") {
	// 			current_index++;
	// 		} else {
	// 			current_index = pkgLength;
	// 		}
	// 	} else if (current_index == pkgLength) {
	// 		if (direction == "next") {
	// 			current_index = 1;
	// 		} else {
	// 			current_index--;
	// 		}
	// 	}
	// 
	// } else {
	// 	
	// 	if (direction == "next") {
	// 		current_index++;
	// 	} else {
	// 		current_index--;
	// 	}
	// }
	
	newSlide = "display_slide_"+current_index;
	displayActiveSlide(newSlide, true);
	randnum=Math.random()*10000000000000000;

	// 300 x 250
	var theAd = document.getElementById("ad_300-250").getElementsByTagName("iframe")[0];
	var theAdSrc = theAd.src;
	top.frames['adrefresh_300'].location.href = theAdSrc;
	

	// 728 x 90
	if (document.getElementById("ms-article-hdr-ad")) {
		theAd2 = document.getElementById("ms-article-hdr-ad").getElementsByTagName("iframe")[0];
		var theAdSrc = theAd2.src;
		top.frames['adrefresh_lead'].location.href = theAdSrc;
	}
	if (document.getElementById("masthead")) {
		theAd2 = document.getElementById("masthead").getElementsByTagName("iframe")[0];
		var theAdSrc = theAd2.src;
		top.frames['adrefresh_lead'].location.href = theAdSrc;
	}
	
	
	
	
	return true;
	
}
 function isInt(x) {
   var y=parseInt(x);
   if (isNaN(y)) return false;
   return x==y && x.toString()==y.toString();
 } 
