var xmlHttp = GetXmlHttpObject();
var itemHtml  = "";

$(document).ready(function() {
	showDate();
	showTime();
	update();
});

function init()
{
	//addCorners();
	
}

function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;

	if (window.addEventListener)	
	{
		window.addEventListener(type, expression, false);
	}
}

function getElementByClass(theClass)
{ 
	var allPageTags = document.getElementsByTagName("*"); 
	var allClassElements = new Array();
	
	for (var i=0; i<allPageTags.length; i++)
	{ 
		//if (allPageTags[i].className == theClass)
		if (allPageTags[i].className.indexOf(theClass) >= 0)
		{ 
			allClassElements.push(allPageTags[i]);
		} 
	}
	return(allClassElements);
} 
	
function addCorners()
{
	var classNames = ["tl", "tr", "bl", "br"];
	var boxes = getElementByClass("rc");
	for (var i=0; i<boxes.length; i++)
	{
		var obj = boxes[i];
		
		for (var j=0; j<=3; j++)
		{
			var cnr = document.createElement("span");
			cnr.className = "cnr " + classNames[j];		
			obj.appendChild(cnr);		
		}
	}
}

function addCornersToElement(what)
{
	var classNames = ["tl", "tr", "bl", "br"];
	var box = document.getElementById(what);
	var obj = box;
		
	for (var j=0; j<=3; j++)
	{
		var cnr = document.createElement("span");
		cnr.className = "cnr " + classNames[j];		
		obj.appendChild(cnr);		
	}
}

function showDate()
{
	var d = new Date();
	var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
	var monthName = ["Janurary", "February", "March", "April", "May",	"June",	"July",	"August", "September", "October", "November", "December"];
	
	var dayNumber = d.getDate();
	var suffix = "th";
	
	if (!(dayNumber >= 11 && dayNumber <=13))
	{
		dayNumber = dayNumber + "";
		var lastDigit = dayNumber.substr(dayNumber.length-1,1);
		switch (lastDigit)
		{
			case "1":
				suffix = "st";	
				break;
			case "2":
				suffix = "nd";
				break;
			case "3":
				suffix = "rd";	
				break;
		}
	}
	//dayNumber = dayNumber + suffix;
	
	var obj = document.getElementById("theDate");
	
	if (obj)
	{
		obj.innerHTML = weekday[d.getDay()] + " " + dayNumber + " " + monthName[d.getMonth()] + " " + d.getFullYear();
	}
}

function showTime()
{
	var today=new Date();
	
	var h=today.getHours();
	var m=today.getMinutes();
	var s=today.getSeconds();

	var greetings = ["Good Morning", "Good Morning", "Good Afternoon", "Good Evening"];
	var greeting = greetings[parseInt(h/6)];
	

	var obj = document.getElementById("theGreeting")
	if (obj)
	{
		obj.innerHTML = greeting;
	}

	m=checkTime(m);
	s=checkTime(s);
	
	obj = document.getElementById("theTime")
	if (obj)
	{
		obj.innerHTML = h+":"+m+":"+s;
	}
	timerLoop = setTimeout('showTime()',500);
}

function checkTime(i)
{
	if (i<10)
	{
		i="0" + i;
	}
	return i;
}

addListener(window,"load",init(),false);

/****************** AJAX *****************/

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    if (xmlHttp==null)
    {
        alert ("Sorry, your browser does not appear to support AJAX.");
        return;
    } 
  return xmlHttp;
}


function update()
{    
    var url="http://www.royalcornwallmuseum.org.uk/mpus.htm"; 
    var d = new Date();
    url=url + "?nocache=" + d.getTime();
    
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged()
{ 
	if (xmlHttp.readyState==4)
	{ 
		itemHtml=xmlHttp.responseText;
		updateDisplay();
		
		//Re-get a new object for IE 7
		xmlHttp=GetXmlHttpObject();
	}
}

function updateDisplay()
{
    var obj = document.getElementById("mpus");
	//Disable all MPUs
	if (obj)
	{
		if ($(obj).find("div").length < 1)
		{
			obj.innerHTML = itemHtml;
			var mpus = obj.getElementsByTagName("li");
			if (obj.parentNode.id == "impactHead") 
			{
				//Show only the first 4 MPUs
				htmlOutput = "";
				var noOfMPUs = (mpus.length >= 4) ? 3 : mpus.length;
				for (var i = 0; i <= noOfMPUs; i++)
				{
					htmlOutput += "<li>" + mpus[i].innerHTML + "</li>";
				}
				obj.innerHTML = "<ul id=\"mpuHolder\">" + htmlOutput + "</ul>";
			}
			else
			{
				//Pick a random MPU and give it a yellow top
				//
				//Static MPUs.  PUs will appear under the the carousel on the home page
				//randomMpu = x; is the number of the MPU
				//0 Courtney Library
				//1 Exhibitions
				//2 Prizes
				//3 Family Events
				//
				//Non Homepage MPUs.  These MPUs will appear for the section indicated
				//4 Collections
				//5 Talks & Events
				//6 New Acquisitions
				//7 Learning
				//
				//0 Courtney Library
				var theURL = document.URL;
				var randomMpu;
				if (theURL.toLowerCase().indexOf("courtney-library") >= 0)
					{
						randomMpu = 0;
					}
				//1 Exhibitions
				else if (theURL.toLowerCase().indexOf("exhibitions") >= 0)
					{
						randomMpu = 1;
					}
				//2 Prizes
				else if (theURL.toLowerCase().indexOf("prizes") >= 0)
					{
						randomMpu = 2;
					}
				//3 Family Events MPU)
				else if (theURL.toLowerCase().indexOf("learning") >= 0)
					{
						randomMpu = 3;
					}
				//
				//4 Collections
				else if (theURL.toLowerCase().indexOf("collections") >= 0)
					{
						randomMpu = 4;
					}
				//5 Talks & Events
				else if (theURL.toLowerCase().indexOf("events") >= 0)
					{
						randomMpu = 5;
					}
				//6 New Acquisitions
				// Because no.4 take priority the New Acquisitions
				// data needs to be in a subfolder
				else if (theURL.toLowerCase().indexOf("new-acquisitions") >= 0)
					{
						randomMpu = 6;
					}
				else
				{
					randomMpu = parseInt(mpus.length * Math.random());
				}
				
				var theDiv = mpus[randomMpu].getElementsByTagName("div")[0]
				theDiv.className = theDiv.className + " yellowTop";
				obj.innerHTML = mpus[randomMpu].innerHTML;
			}
		}
		else
		{
			$(obj).addClass("mpu");
			$(obj).addClass("rc8");
			$(obj).addClass("yellowTop");
		}
	}
	addCorners();
}