<?xml version="1.0" encoding="UTF-16"?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="refresh" content="900; url=Wallpaper.html"/>
</head>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Option menu -->
<script>
var EnableClock = true;
var EnableCalendar = true;
var EnableWeather = true;
</script>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Style section -->
<style>
#Layer{width: 322px; height: 482px; position: absolute; top: -1px; right: 0px; down: 0px; left: -1px;}
.stretch {width:100%; height:100%;}
body {
background-color: none;
margin: 0;
height: 481px;
width: 320px;
}
td#Backgrounds
{
margin-top: -1px;
position: absolute; top: 0px; right: 0px; down: 0px; left: -1px;
}
SPAN#clock
{
text-align: center;
font-family: Helvetica;
font-weight: bold;
color: #FFFFFF;
text-shadow: #FFFFFF 0px 0px 1px; opacity: 1;
font-size: 55px;
font-weight: 100;
opacity: 0.89;
}
TD#date
{
font-family: Helvetica;
font-weight: 300;
text-align: left;
color:#FFFFFF;
text-shadow: 0px 0px 8px #FFFFFF;
font-size: 17px;
text-transform: uppercase;
opacity: 0.9;
letter-spacing: 0.01em;
}
SPAN#ampm
{
font-family: Helvetica;
font-weight: 100;
color: #306EFF;
text-shadow: 1px 1px 1px #000;
font-size: 17px;
text-transform: uppercase;
text-align: left;
opacity: 0;
letter-spacing: 2px;
}
TD#vmonth
{
float:top;
font-family: Helvetica;
font-weight: 300;
text-align: left;
color:#FFFFFF;
text-shadow: 0px 0px 8px #FFFFFF;
font-size: 17px;
text-transform: uppercase;
opacity: 0.9;
letter-spacing: 0.01em;
}
TD#vweek
{
float:top;
font-family: Helvetica;
font-weight: 300;
text-align: left;
color:#FFFFFF;
text-shadow: 0px 0px 18px #FFFFFF;
font-size: 17px;
opacity: 0.9;
text-transform: uppercase;
letter-spacing: 0.01em;
}
TD#vyear
{
font-family: Helvetica;
font-weight: 300;
text-align: left;
color:#FFFFFF;
text-shadow: #FFFFFF 0px 0px 8px;
font-size: 17px;
letter-spacing: 0.01em;
text-transform: uppercase;
opacity: 0.8;
}
#WeatherContainer{
background-color: rgba(0,0,0,0);
}
#TextContainer{
font-size:20px;
font-family: Helvetica;
font-weight: 300;
color: white;
}
#temp{
position: absolute; top: 200px; left: 135; down: 0px; width: 320px; height: 461px;
text-align: left;
font-family: Century Gothic;
font-size: 14px;
font-weight: 500;
color: #FFFFFF;
text-shadow: 0px 0px 0px #FFFFFF;
text-transform: uppercase;
opacity: 0.8;
}
#desc{
position: absolute; top: 463px; down: 0px; width: 320px; height: 461px;
text-align: left;
font-family: Helvetica;
font-weight: 800;
font-size: 14px;
color: fffffff;
text-shadow: none;
text-transform: uppercase;
text-shadow: 0px 0px 2px #FFFFFF;
letter-spacing: 0.0em;
opacity: 0.6;
display: none;
}
#TextContainer p{
margin:0;
}
#weatherIcon{
position: absolute; top: 210px;down: 0px; left: 85px; width: 115px; height: 461px;
height:60;
width:60;
opacity: 0.8;
}
</style>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Display Wallpaper and Overlay here -->
<div id="Layer"><img src="LockBackground.png" class="stretch"/></div>
<div id="Layer"><img src="Overlay.png" class="stretch"/></img></div>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Direct the script to the general folder where the weather icons are located -->
<base href="Weather/"/>
<!---------------------------------------------------------------------------------------------------------------->
<!-- Clock and Date Script -->
<script type="text/javascript">
function updateClock ( )
{
var currentHours_name_array = new Array ("00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "00")
var currentMinutes_name_array = new Array ("00", "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", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "00")
var currentTime = new Date ( );
var currentHours = currentTime.getHours ( );
var currentMinutes = currentTime.getMinutes ( );
var currentSeconds = currentTime.getSeconds ( );
// Convert an hours component of "0" to "12"
//currentHours = ( currentHours == 0 ) ? currentHours + 24 : currentHours;
// Convert the hours component to 12-hour format if needed
currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
currentHours = ( currentHours < 10 ? "0" : "" ) + currentHours;
// Convert an hours component of "0" to "12"
currentHours = ( currentHours == 0 ) ? 12 : currentHours;
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
// Compose the string for display
var currentTimeString = currentHours + ":" + currentMinutes;
// Update the time display
document.getElementById("clock").firstChild.nodeValue = currentTimeString ;
//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;
}
function amPm ( )
{
var currentTime = new Date ( );
var currentHours = currentTime.getHours ( );
<!-- Convert hours component of "12" to "24" -->
currentHours = currentHours;
currentHours = ( currentHours < 0 ) ? currentHours + 24 : currentHours;
<!-- Defines either "AM" or "PM" as appropriate -->
var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
<!-- Compose the string for display-->
var currentTimeString = timeOfDay;
<!-- Update the string for display of AM/PM-->
if (EnableClock == true){
document.getElementById("ampm").firstChild.nodeValue = currentTimeString;
}
}
function calendarDate ( )
{
var this_date_name_array = new Array ("0", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelvth", "thirteenth", "fourteenth", "fifteenth", "sixteenth", "seventeenth", "eighteenth", "nineteenth", "twentieth", "twenty-first", "twenty-second", "twenty-third", "twenty-fourth", "twenty-fifth", "twenty-sixth", "twenty-seventh" ,"twenty-eighth", "twenty-ninth" ,"thirtieth", "thirtieth-one")
var this_weekday_name_array = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var this_month_name_array = new Array("january","february","march","april","may","june","july","august","september","october","november","december") //predefine month names
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;
var month = this_date_timestamp.getMonth();
if (EnableCalendar == true){
document.getElementById("calendar").firstChild.nodeValue = this_date_name_array[this_date]
document.getElementById("vmonth").firstChild.nodeValue = this_month_name_array[this_month]
document.getElementById("vweek").firstChild.nodeValue = this_weekday_name_array[this_weekday]
document.getElementById("vyear").firstChild.nodeValue = this_year
}
}
<!---------------------------------------------------------------------------------------------------------------->
<!-- Weather Script -->
var locale = "USWA0395"
var isCelsius = false
var useRealFeel = false
var enableWallpaper = true;
var enableLockScreen = true;
var stylesheetWall = 'mini'
var stylesheetLock = 'mini'
var stylesheet = 'mini'
var iconSetWall = 'stardock white'
var iconExtWall = ".png"
var iconSetLock = 'stardock white'
var iconExtLock = '.png'
var source = 'yahooWeather'
var updateInterval = 30
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 (EnableWeather == 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.getElementById("weatherIcon").src="Icon Sets/"+iconSet+"/"+"blank"+iconExt;
document.getElementById("city").innerText="";
document.getElementById("desc").innerText="";
document.getElementById("temp").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{
document.getElementById("WeatherContainer").className = "errorWeatherDataFetch";
}
}
function weatherRefresherTemp(){
fetchWeatherData(dealWithWeather,postal);
setTimeout(weatherRefresherTemp, 60*1000*updateInterval);
}
var MiniIcons =
[
"00", //0 tornado
"01", //1 tropical storm
"02", //2 hurricane
"03", //3 severe thunderstorms
"04", //4 thunderstorms
"05", //5 mixed rain and snow
"06", //6 mixed rain and sleet
"07", //7 mixed snow and sleet
"08", //8 freezing drizzle
"09", //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
"18", //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: 95px; left: 88px; width: 320x; height: 461px;">
<tr align="center" valign="top" border="0" cellpadding="0">
<td height="12" valign="top" margin-left="20">
<span id="clock">
<script language="JavaScript">updateClock(); setInterval('updateClock()', 1000 )</script></span>
</td>
</tr>
</table>
<table style="position: absolute;top: 150px; left: 184px; width: 320px; height: 461px;">
<tr align="left" valign="top" border="0" cellpadding="0">
<td height="12" valign="top" margin-left="20" >
<span id="ampm">
<script language="JavaScript">amPm(); setInterval('amPm()', 1000 )</script>
</span>
</td>
</tr></table>
<table style="position: absolute;top: 236px; left: 173; width: 320px; height: 480px;">
<td id="vweek" width="254" height="12" align="center" valign="top" margin-left="20">
<span id="vdate" valign="top">
<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script></font>
</span>
</td>
</tr>
</table>
<table style="position: absolute; top: 200px; left: 173; width: 320px; height: 480px;">
<tr>
<td id="date" width="254" height="12" align="center" valign="top" margin-left="20">
<span id="calendar">
<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script>
</span>
</tr>
</table>
<table style="position: absolute;top: 218px; left: 173; width: 320px; height: 480px;">
<td id="vmonth" width="254" height="12" align="center" valign="top" margin-left="20">
<span id="vdate" valign="top">
<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script></font>
</span>
</td>
</tr>
</table>
<table style="position: fixed;top: 255px; left: 173px; width: 320px; height: 480px; z-index:1;">
<td id="vyear" width="254" height="12" align="right;" valign="top" margin-left="20">
<span id="vyear" valign="top">
<script language="JavaScript">calendarDate(); setInterval('calendarDate()', 1000 )</script></font>
</span>
</td>
</tr>
</table>
</div>
</body>
</html>