var sunriseStr="";
var sunsetStr="";
var launchDate = new Date("December 14, 2007 00:00:00");
var launchTime = launchDate.getTime();
var serverUTCTimeStr=null;
var zipTimeZone=null;
var numLaunchDays = 999;
var zipCode=null;
var countdownInt = null;
var initSunState = 1; //sun
var clientTimeZone = null;

function getWeatherRSS()
{
	clearInterval(countdownInt);
	var zip = '';
	if(Cookie.get("zipCode")!=false){
		zip = Cookie.get("zipCode");
	}
	if($("zip").value!=''){
		zip = $("zip").value;
	}
	var url = '../sunset.php?zip='+zip;
	var request = new Json.Remote(url, {
		onComplete: function(jsonObj) {
			initProcess(jsonObj.weather);
		}
	}).send();
}

function initProcess(responseDoc){
	sunriseStr="";
	sunsetStr="";
	serverUTCTimeStr=null;
	zipTimeZone=null;
	zipCode=null;
	countdownInt = null;
	//initSunState=1;

	var cleanupTags = new Array("today2","todayTime2","remainingDays2","remainNumDays2","countdown2","sunrise2","sunset2","twilightStart2","twilightEnd2","longitude2","latitude2","location2");
	for(var i=0;i<cleanupTags.length;i++){
		$(cleanupTags[i]).innerHTML="--";
	}
	hideZipInputBox();
	if(responseDoc!=''){

		sunriseStr = responseDoc.sunrise;
		sunsetStr = responseDoc.CTE;
		serverUTCTimeStr = responseDoc.serverUTCTime;
		$("location2").innerHTML = responseDoc.location;
		$("sunrise2").innerHTML=responseDoc.formattedRise;
		$("sunset2").innerHTML=responseDoc.formattedSet;
		$("twilightStart2").innerHTML=responseDoc.formattedCivilStart;
		$("twilightEnd2").innerHTML=responseDoc.formattedCivilEnd;
		$("longitude2").innerHTML=responseDoc.longitude;
		$("latitude2").innerHTML=responseDoc.latitude;
		$("zipText").innerHTML=responseDoc.zip;

		zipCode = responseDoc.zip;
		zipTimeZone = responseDoc.timezone;

		var serverUTCDate = new Date(serverUTCTimeStr);
		var serverUTCTime = serverUTCDate.getTime();
		clientTimeZone = Math.round(((new Date().getTime()-serverUTCTime)/(60*60))/1000);
		
		countdownInt = setInterval(countdown,1000)
	}
}

function countdown(){
	if(serverUTCTimeStr!=null&&zipTimeZone!=null){
		
		var clientDate = new Date();
		var clientTime = clientDate.getTime();

		var zipTime = clientTime-clientTimeZone*60*60*1000+zipTimeZone*60*60*1000;

		var zipDate = new Date(zipTime);

		var zipDateText = (zipDate.getMonth()+1)+"/"+zipDate.getDate()+"/"+zipDate.getFullYear();
		var ampm = "am";
		var zipTimeHour = zipDate.getHours();
		if(zipTimeHour>=12){
			ampm="pm";
		}
		if(zipTimeHour>12){
			zipTimeHour=zipTimeHour-12;
		}
		var zipTimeText = zipTimeHour+":"+PadDigits(zipDate.getMinutes(),2)+":"+PadDigits(zipDate.getSeconds(),2)+" "+ampm;


		var sunriseDate = new Date(sunriseStr);
		var sunriseTime = sunriseDate.getTime();

		var sunsetDate = new Date(sunsetStr);
		var sunsetTime = sunsetDate.getTime();

		//check if it is the new date. if yes, get the new sunrise/sunset
		if(zipDate.getDate()-sunriseDate.getDate()>0){
			clearInterval(countdownInt);
			getWeatherRSS();
			return false;
		}

		//calculate remaining time
		var remainDays = Math.floor((launchTime - zipTime)/(60*60*24*1000));
		var remainHours = Math.floor(((launchTime - zipTime) / (60*60)) / 1000)-remainDays*24;
		var remainMinutes = Math.floor(((launchTime - zipTime) / (60)) / 1000)-remainHours*60-remainDays*24*60;
		var remainSeconds = Math.floor(((launchTime - zipTime) ) / 1000)-remainHours*60*60-remainMinutes*60-remainDays*24*60*60;

		var remainingText = remainDays+" + "+PadDigits(remainHours,2)+":"+PadDigits(remainMinutes,2)+":"+PadDigits(remainSeconds,2);

		//calculate remain number of days to 999
		var remainNumDays = numLaunchDays-remainDays-1;
		//

		var hideCountdown=false;
		var targetName="";
		var sunState = 1;
		if(zipTime<sunriseTime){
			targetTime = sunriseTime;
			targetName = "darkness.png";
			sunState = 0;
		}
		else if(zipTime>=sunriseTime&&zipTime<sunsetTime){
			targetTime = sunsetTime;
			targetName = "daylight.png";
			sunState = 1;
		}
		else{
			targetTime = sunriseTime+24*60*60*1000;
			targetName = "darkness.png";
			sunState = 0;
		}
		
		//change sun image
		
		if(Math.abs(initSunState-sunState)==1){
			initSunState = sunState;
			if(sunState==1){
				$('sunImage').src="../images/sun.png?rand="+Math.random();
			}
			else if(sunState==0){
				$('sunImage').src="../images/moon.png?rand="+Math.random();
			}
			$("countdownText2").src = "../images/"+targetName;
		}
		

		if(hideCountdown){
			//$("countdown").style.display="none";
			$("countdown2").innerHTML = "--";
		}
		else{
			var hoursLeft = Math.floor(((targetTime - zipTime) / (60*60)) / 1000);
			var minutesLeft = Math.floor(((targetTime - zipTime) / (60)) / 1000)-hoursLeft*60;
			var secondsLeft = Math.floor(((targetTime - zipTime) ) / 1000)-hoursLeft*60*60-minutesLeft*60;
			var hoursText ="";
			if(hoursLeft>0){
				hoursText = hoursLeft+":";
			}
			//$("countdown").style.display="inline";
			$("countdown2").innerHTML = PadDigits(hoursLeft,2)+":"+PadDigits(minutesLeft,2)+":"+PadDigits(secondsLeft,2);
		}
		$("today2").innerHTML = zipDateText;
		$("todayTime2").innerHTML = zipTimeText;
		$("remainingDays2").innerHTML = remainingText;
		$("remainNumDays2").innerHTML = remainNumDays;
		//$("remainNumDays").innerHTML = initSunState;
	}
}

function PadDigits(n, totalDigits)
{
	n = n.toString();
	var pd = '';
	if (totalDigits > n.length)
	{
		for (i=0; i < (totalDigits-n.length); i++)
		{
			pd += '0';
		}
	}
	return pd + n.toString();
}

function showZipInputBox(){
	$("zipText").style.display="none";
	$("zipInput2").style.display="inline";

	//$("zip").value=$("zipText").innerHTML;
	$("zip").value = "";
	//$("zip").focus();
	//$("zip").select();
}

function hideZipInputBox(){
	$("zipText").style.display="inline";
	$("zipInput2").style.display="none";
	if($("zip").value!=""){
		$("zipText").innerHTML = $("zip").value;
		Cookie.set("zipCode",$("zip").value);
	}
}

//NEWS RSS
//uses xmlhttpreq to get the raw rss xml
function getRSS()
{
	var url = '../ajaxproxy.php?url=http://rss.warnerbros.com/iamlegend/index.xml';
	var myXhr = new XHR({method: 'get',
		onSuccess:processRSS});
	myXhr.send(url, null);
}

//processes the received rss xml
function processRSS (req,rssxml)
{
	var rssJsonObj=xml2json.parser(req,'b,i');
	showRSS(rssJsonObj.rss.channel.item);
}

//shows the RSS content in the browser
function showRSS(itemsObj)
{
	//default values for html tags used
	var startItemTag = "<div id='item'>";
	var startTitle = "<div id='item_title' class='newsitem'>";
	var startDesc = "<div id='item_desc'>";
	var startMore = "<div id='item_more'>";
	var endTag = "</div>";
	var desc = "";
	
	//populate the items
	$("chan_items").innerHTML = "";
	for (var i=0; i<itemsObj.length; i++)
	{
		desc = itemsObj[i].description;
		descSenIndex = desc.indexOf(". ");
		if(descSenIndex!=-1){
			desc = desc.substring(0,descSenIndex+1);
		}
		item_html = startItemTag;
		item_html += (itemsObj[i].title == null) ? "" : startTitle + "<a target='_blank' href='"+itemsObj[i].link+"'>"+itemsObj[i].title+"</a>" + endTag;
		item_html += (itemsObj[i].description == null) ? "" : startDesc +desc+endTag;
		item_html += startMore +"<a href='"+itemsObj[i].link+"'>read more</a>" + endTag;
		item_html += endTag;
		$("chan_items").innerHTML += item_html;
	}

	return true;
}

//get url parameter
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function jumpToPage(){
	var page = gup('page');
	if(page=="widget"){
		Zap('front','widget');
	}
}