<?xml version="1.0" encoding="UTF-16"?>
<html>
<meta http-equiv="refresh" content="900; url=Widget.html"/>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Style section Clock/Date-->
<style type="text/css" media="all">
SPAN#clock
{
	font-family: Helvetica;
	font-weight: 100;
	color: white;
	font-size: 120px;
	text-shadow: 0px 0px 6px black;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.44, #666));
}
SPAN#mins
{
	font-family: Helvetica;
	font-weight: 100;
	color: yellow;
	font-size: 55px;
	text-shadow: 0px 0px 5px black;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.44, #666));
}
SPAN#month
{
	font-family: Helvetica;
	text-align: left;
	font-weight: 100;
	color: white; 
	font-size: 23px;
	text-transform: uppercase;
    text-shadow: 0px 0px 5px black;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.5, #666));
}
SPAN#year
{
	font-family: Helvetica;
	text-align: left;
	font-weight: 100;
	color: yellow; 
	font-size: 24px;
       text-shadow: 0px 0px 5px black;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.5, #666));
}
<!---------------------------------------------------------------------------------------------------------------->
<!-- Style section Weather Widget-->
#WeatherContainer{
    background-color: rgba(0,0,0,0);
}
#TextContainer{
    font-size:55px;
    font-family: Helvetica;
    font-weight: bold;
    color:#000000;
}
#city{
	position: absolute; top: 341px; right: 0px; down: 0px; left: 34px; width: 296px; height: 481px;
	text-align: left;
	font-family: Helvetica;
	font-size: 13px;
	font-weight: 100;
	text-transform: Capitalize;
	padding-top:0px;
	text-shadow: 0px 0px 3px black;
	color: #ffffff;
}
#temp{	
	position: absolute; top: 347px; right: 0px; down: 0px; left: 150px; width: 296px; height: 481px;
	text-align: left;
	font-family: Helvetica;
	font-size: 15px;
	font-weight: 100;
	text-shadow: 0px 0px 3px black;
	font-weight: 100;
	color: white;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.3, #666));
}
#desc{
	position: absolute; top: 357px; right: 0px; down: 0px; left: 34px; width: 296px; height: 481px;
	text-align: left;
	font-family: Helvetica;
	font-size: 12px;
	font-weight: 100;
	text-transform: Capitalize;
	text-shadow: 0px 0px 1px black;
	font-weight: 100;
	color: white;
	-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(#666), to(transparent), color-stop(0.3, #666));
}
#TextContainer p{
	margin:0;
}
#weatherIcon{	
	position: absolute;top: 337px; right: 0px; down: 0px; left: 96px;
	height:40px;
	width:40px;
}
</style>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Direct the script to the general folder where the weather icons are located -->
<base href="Private/"/>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Clock and Date Script -->
<script type="text/javascript">
function updateClock ( )
{
	var currentTime = new Date ( );
	var currentHours = currentTime.getHours ( );
	var currentMinutes = currentTime.getMinutes ( );
	var currentSeconds = currentTime.getSeconds ( );
<!-- Pad the minutes and seconds with leading zeros, if required -->
    currentHours = ( currentHours < 10 ? "0" : "" ) + currentHours;
	currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
	currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
	
<!-- Defines either "AM" or "PM" as appropriate -->
	var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
	
<!-- Convert hours component of "12" to "24" -->
     //currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
	
<!-- Convert hours component from "0" to "12 at Midnight-->
     currentHours = ( currentHours == 0 ) ? 12 : currentHours;
<!-- Compose the string for display-->
	var currentTimeString = currentHours;
       var currentTimeString1 = currentMinutes;
	<!-- Update the time display-->
    document.getElementById("clock").firstChild.nodeValue = currentTimeString;
    document.getElementById("mins").firstChild.nodeValue = currentTimeString1;
	<!-- document.getElementById("clock").firstChild.nodeValue = currentTimeString + " " + timeOfDay;-->
}
function init2 ( )
{
	timeDisplay = document.createTextNode ( "" );
	document.getElementById("ampm").appendChild ( timeDisplay );
}
function init3 ( )
{
	timeDisplay = document.createTextNode ( "" );
	document.getElementById("date").appendChild ( timeDisplay );
}
function calendarDate ( )
{
    var this_date_name_array = new Array ("0", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23","24","25","26","27","28","29","30","31")
	var this_weekday_name_array = new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado")
	var this_month_name_array = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
    
	var this_date_timestamp = new Date()    
	var this_weekday = this_date_timestamp.getDay()    
	var this_date = this_date_timestamp.getDate()    
	var this_month = this_date_timestamp.getMonth()
      var this_year = this_date_timestamp.getYear()	 
      if (this_year < 1000)
      this_year+= 1900;
      if (this_year==101)
      this_year=2001;	  
	    
	document.getElementById("month").firstChild.nodeValue = this_month_name_array[this_month] 
	document.getElementById("year").firstChild.nodeValue = this_year 
}
<!---------------------------------------------------------------------------------------------------------------->
<!-- Weather Script -->
	var locale = "SWXX0010"
	var isCelsius = true
	var useRealFeel = false
	var enableWallpaper = true;
	var enableLockScreen = true;
	var stylesheetWall = 'mini'
	var stylesheetLock = 'mini'
	var stylesheet = 'mini'
	var iconSetWall = 'stardock'
	var iconExtWall = ".png"
	var iconSetLock = 'stardock'
	var iconExtLock = '.png'
	var source = 'yahooWeather'
	var updateInterval = 1200
	var postal;
	var demoMode = false;
	var enabled;
	if (location.href.indexOf("LockBackground")  == -1){
		stylesheet = stylesheetWall;
		iconSet = iconSetWall;
		iconExt = iconExtWall;
		enabled = enableWallpaper;
	}else{
		stylesheet = stylesheetLock;
		iconSet = iconSetLock;
		iconExt = iconExtLock;
		enabled = enableLockScreen;
	}
	if(enabled == true){
		if(iconSet == null || iconSet == 'null' || iconSet == ""){
		var iconSet = stylesheet;
	}
	var headID = document.getElementsByTagName("head")[0];	       
	var styleNode = document.createElement('link');
	styleNode.type = 'text/css';
	styleNode.rel = 'stylesheet';
	styleNode.href = 'Stylesheets/'+stylesheet+'.css';
	headID.appendChild(styleNode);
	var scriptNode = document.createElement('script');
	scriptNode.type = 'text/javascript';
	scriptNode.src = 'Sources/'+source+'.js';
	headID.appendChild(scriptNode);
	}
function onLoad(){
	if (enabled == true){ 
	if (demoMode == true){
		document.getElementById("weatherIcon").src="Icon Sets/"+iconSet+"/"+"cloudy1"+iconExt;
		document.getElementById("city").innerText="Somewhere";
		document.getElementById("desc").innerText="Partly Cloudy";
		document.getElementById("temp").innerText="100º";
		
	}else{ 
	document.getElementById("weatherIcon").src="Icon Sets/"+iconSet+"/"+"dunno"+iconExt;
	validateWeatherLocation(escape(locale).replace(/^%u/g, "%"), setPostal)
	}
	}else{
		document.getElementsByTagName("body")[0].innerText='';
	}
}
function convertTemp(num)
{
	if (isCelsius == true)
		return Math.round ((num - 32) * 5 / 9);
	else
		return num;
}
function setPostal(obj){
	
	if (obj.error == false){
		if(obj.cities.length > 0){
			postal = escape(obj.cities[0].zip).replace(/^%u/g, "%")
			document.getElementById("WeatherContainer").className = "";	
			weatherRefresherTemp();
		}else{
			document.getElementById("city").innerText="Not Found";
			document.getElementById("WeatherContainer").className = "errorLocaleNotFound";	
		}
	}else{
		document.getElementById("city").innerText=obj.errorString;
		document.getElementById("WeatherContainer").className = "errorLocaleValidate";	
		setTimeout('validateWeatherLocation(escape(locale).replace(/^%u/g, "%"), setPostal)', Math.round(1000*60*5));
	}
}
function dealWithWeather(obj){
	if (obj.error == false){
		document.getElementById("city").innerText=obj.city;
		document.getElementById("desc").innerText=obj.description.toLowerCase();
		
		if(useRealFeel == true){
			tempValue = convertTemp(obj.realFeel);
		}else{
			tempValue = convertTemp(obj.temp)
		}
		document.getElementById("temp").innerHTML=tempValue+ "°";
		document.getElementById("weatherIcon").src="Icon Sets/"+iconSet+"/"+MiniIcons[obj.icon]+iconExt;
		document.getElementById("WeatherContainer").className = "";	
		
	}else{
		//Could be down to any number of things, which is unhelpful...
		document.getElementById("WeatherContainer").className = "errorWeatherDataFetch";	
	}
	
	
}
function weatherRefresherTemp(){
	fetchWeatherData(dealWithWeather,postal);
	setTimeout(weatherRefresherTemp, 60*1000*updateInterval);
}
var MiniIcons =
[
	"0",		       //0	tornado
	"1",		       //1	tropical storm
	"2",		       //2	hurricane
	"3",		       //3	severe thunderstorms
	"4",		       //4	thunderstorms
	"5",		       //5	mixed rain and snow
	"6",		       //6	mixed rain and sleet
	"7",		       //7	mixed snow and sleet
	"8",		       //8	freezing drizzle
	"9",		       //9	drizzle
	"10",		       //10	freezing rain
	"11",		       //11	showers
	"12",		       //12	showers
	"13",		       //13	snow flurries
	"14",		       //14	light snow showers
	"15",		       //15	blowing snow
	"16",		       //16	snow
	"17",		       //17	hail
	"17",		       //18	sleet
	"19",		       //19	dust
	"20",		       //20	foggy
	"21",		       //21	haze
	"22",		       //22	smoky
	"23",		       //23	blustery
	"24",		       //24	windy
	"25",		       //25	cold
	"26",		       //26	cloudy
	"27",		      //27	mostly cloudy (night)
	"28",		       //28	mostly cloudy (day)
	"29",		      //29	partly cloudy (night)
	"30",		       //30	partly cloudy (day)
	"31",		      //31	clear (night)
	"32",		       //32	sunny
	"33",		       //33	fair (night)
	"34",		       //34	fair (day)
	"35",		       //35	mixed rain and hail
	"36",		       //36	hot
	"37",		       //37	isolated thunderstorms
	"38",		       //38	scattered thunderstorms
	"39",		       //39	scattered thunderstorms
	"40",		       //40	scattered showers
	"41",		       //41	heavy snow
	"42",		       //42	scattered snow showers
	"43",		       //43	heavy snow
	"44",		       //44	partly cloudy
	"45",		       //45	thundershowers
	"46",		       //46	snow showers
	"47",		       //47	isolated thundershowers
	"dunno",		//3200 not available
];
function constructError (string)
{
	return {error:true, errorString:string};
}
function findChild (element, nodeName)
{
	var child;
	
	for (child = element.firstChild; child != null; child = child.nextSibling)
	{
		if (child.nodeName == nodeName)
			return child;
	}
	
	return null;
}
function fetchWeatherData (callback, zip)
{
	url="http://weather.yahooapis.com/forecastrss?u=f&p=" //u=Farenheit, because accuWeather sucks
	
	var xml_request = new XMLHttpRequest();
	xml_request.onload = function(e) {xml_loaded(e, xml_request, callback);}
	xml_request.overrideMimeType("text/xml");
	xml_request.open("GET", url+zip);
	xml_request.setRequestHeader("Cache-Control", "no-cache");
	xml_request.send(null); 
	
	return xml_request;
}
function xml_loaded (event, request, callback)
{
	if (request.responseXML)
	{
		var obj = {error:false, errorString:null};
		var effectiveRoot = findChild(findChild(request.responseXML, "rss"), "channel");
		obj.city = findChild(effectiveRoot, "yweather:location").getAttribute("city");
		obj.realFeel = findChild(effectiveRoot, "yweather:wind").getAttribute("chill");//Only accounts for windChill
		
		conditionTag = findChild(findChild(effectiveRoot, "item"), "yweather:condition");
		obj.temp = conditionTag.getAttribute("temp");
		obj.icon = conditionTag.getAttribute("code");
		obj.description = conditionTag.getAttribute("text"); 
		callback (obj); 
	}else{
		callback ({error:true, errorString:"XML request failed. no responseXML"});
	}
}
function validateWeatherLocation (location, callback)
{
	var obj = {error:false, errorString:null, cities: new Array};
	obj.cities[0] = {zip: location}; //Not very clever, are we?
	callback (obj);
}
</script>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Display All - Weather-Clock-Date  -->
<body bgcolor="Transparent" onload="onLoad()">
<div>
	<div id="WeatherContainer"> <div id="TextContainer"> <p id="city">Somewhere</p> <p id="temp">32°</p> <p id="desc">cloudy</p> </div>
	<img id="weatherIcon" src=""/> </div>
	<table style="position: absolute; top: 77px; left: 41px; width: 300px; height: 22px;cellspacing="0" cellpadding="0">
	<tr>
	<td width="310" align="left" valign="top">
	<span id="clock">
	<script language="JavaScript">updateClock(); setInterval('updateClock()', 1000 )</script>
	</span>
	</td>
	</tr>
	</table>
	<table style="position: absolute; top: 90px; left: 174px; width: 300px; height: 22px;cellspacing="0" cellpadding="0">
	<tr>
	<td width="310" align="left" valign="top">
	<span id="mins">
	<script language="JavaScript">updateClock(); setInterval('updateClock()', 1000 )</script>
	</span>
	</td>
	</tr>
	</table>
	<table style="position: absolute; top: 144px; left: 180px; width: 300px; height: 480px;cellspacing="0" cellpadding="0">
	<td width="310" height="12" align="left" valign="top" margin-left="20">
	<span id="month">
	<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script></span>
	</td></table>
	<table style="position: absolute; top: 164px; left: 186px; width: 300px; height: 480px;cellspacing="0" cellpadding="0">
	<td width="310" height="12" align="left" valign="top" margin-left="20">
	<span id="year">
	<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script></span>
	</td></table>
<!-- This it linking the Calendar.html for the Calendar -->
<object data="Calendar/Calendar.html"  type="text/html" height="480" width="320"> </object>
</body>
</html>