diff -rup /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/includes/objects/Forecast.php ./weather/includes/objects/Forecast.php
--- /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/includes/objects/Forecast.php	2007-04-14 01:34:39.000000000 -0400
+++ ./weather/includes/objects/Forecast.php	2007-04-19 22:40:24.000000000 -0400
@@ -24,19 +24,13 @@ class Forecast {
     var $HighTemperature;
     var $LowTemperature;
 
-    function Forecast($date, $real_dayofweek) {
+    function Forecast($date,$d) {
+        $i = strpos($date, "/");
+        $j = strpos($date, "/", $i+1); 
+        $month = substr($date,0,$i);
+        $day   = substr($date,$i+1,$j-$i-1);
+        $year  = substr($date,$j+1,2);
 
-        $month = substr($date,0,2);
-        $day   = substr($date,3,2);
-        $year  = substr($date,6,4);
-
-        $temp_date         = mktime(0,0,0,$month,$day,$year);
-        $date_time_array   = getdate( $temp_date );
-        $claimed_dayofweek = $date_time_array['wday'];
-
-        if ($real_dayofweek != $claimed_dayofweek)
-            $this->date = date('m/d/Y', mktime(0, 0, 0, $month  , $day+1, $year));
-        else
-            $this->date = $date;
+        $this->date = date('m/d/Y', mktime(0,0,0,$month,$day+$d,$year)); 
     }
 }
diff -rup /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/includes/objects/WeatherSite.php ./weather/includes/objects/WeatherSite.php
--- /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/includes/objects/WeatherSite.php	2007-04-14 01:34:39.000000000 -0400
+++ ./weather/includes/objects/WeatherSite.php	2007-04-19 22:52:19.000000000 -0400
@@ -51,66 +51,68 @@ class WeatherSite {
         $this->RadarImage = $this->getRadarURL();
     }
 
+    function in($One,$Two,$data) {
+        $x = strpos($data,$One) + strlen($One);
+
+        if($x == false) {
+           return "N/A";
+        }
+
+        $y = strpos($data,$Two,$x);
+
+        if($y == false) {
+           return "N/A";
+        }
+
+        $str = substr($data, $x, $y - $x);
+          return $str;
+    }
+
     function getData() {
         global $Weather_Types;
-        $data = file('http://www.msnbc.com/m/chnk/d/weather_d_src.asp?acid=' . $this->acid);
+	$data=join('',file("http://xoap.weather.com/weather/local/".$this->acid."?cc=*&unit=F&dayf=5")); 
 
-        foreach($data as $line) {
-            if(strpos($line, 'this.sw') === false)
-                continue;
-            if(strpos($line, 'swTempCel') !== false)
-                continue;
-
-            $line = trim($line);
-            list($name, $value) = explode(' = "', $line);
-            $name  = substr($name, 7);
-            $value = substr($value, 0, strlen($value) - 2);
-
-            switch ($name) {
-                case 'City':    $this->city               = $value;             break;
-                case 'SubDiv':  $this->subdiv             = $value;             break;
-                case 'Country': $this->country            = $value;             break;
-                case 'Region':  $this->region             = $value;             break;
-                case 'Temp':    $this->Temperature        = $value;             break;
-                case 'CIcon':   $this->CIcon              = $value;             break;
-                case 'WindS':   $this->WindSpeed          = $value;             break;
-                case 'WindD':   $this->WindDirection      = $value;             break;
-                case 'Baro':    $this->BarometricPressure = $value;             break;
-                case 'Humid':   $this->Humidity           = $value;             break;
-                case 'Real':    $this->Real               = $value;             break;
-                case 'UV':      $this->UV                 = $value;             break;
-                case 'Vis':     $this->Visibility         = $value;             break;
-                case 'LastUp':  $this->LastUpdated        = $value;             break;
-                case 'ConText': $this->ConText            = $value;             break;
-                case 'Fore':    $this->Forecast = $this->readForecast($value);  break;
-                default:        /* Weird, unknown type */                       break;
-            }
-        }
+//
+// Technically we should include the partner id and key
+// if this stops working, change to the following: 
+// http://xoap.weather.com/weather/local/".$this->acid."?cc=*&unit=F&dayf=5&prod=xoap&par=1036905921&key=f68c2657a4fd3e2e"
+// may need to get a new one from http://www.weather.com/services/xmloap.html
+// 
+	$this->LastUpdated=$this->in("<lsup>","</lsup>",$data);
+	$dnaminfo = $this->in("<dnam>","</dnam>",$data);
+        $sep = strpos($dnaminfo, ','); 
+	if($sep != false) { 
+		$this->city = substr($dnaminfo, 0, $sep); 
+		$this->country = substr($dnaminfo, $sep + 1, strlen($dnaminfo) - $sep - 1);
+	}
+        $cc = $this->in("<cc>","</cc>",$data); 
+	$this->Temperature=$this->in("<tmp>","</tmp>",$cc); 
+	$this->Real=$this->in("<flik>","</flik>",$cc); 
+	$barinfo = $this->in("<bar>","</bar>",$cc); 
+	$this->BarometricPressure=$this->in("<r>","</r>",$barinfo); 
+	$windinfo = $this->in("<wind>","</wind>",$cc); 
+	$this->WindSpeed = $this->in("<s>","</s>",$windinfo); 
+	$this->WindDirection = $this->in("<t>","</t>",$windinfo); 
+	$this->Humidity = $this->in("<hmid>","</hmid>",$cc); 
+	$this->Visibility = $this->in("<vis>","</vis>",$cc); 
+	$uvinfo = $this->in("<uv>","</uv>",$cc); 
+	$this->UV = $this->in("<i>","</i>",$uvinfo); 
+	$this->CIcon = $this->in("<icon>","</icon>", $cc);
+	$this->ConditionText = $this->in("<t>","</t>",$cc);
+        $this->Forecast = $this->readForecast($data); 
 
     //Are we using metric or imperial system
         if ($this->use_metric == 'YES') {
             $this->Temperature        = round((5/9) * ($this->Temperature - 32));
             $this->Real               = round((5/9) * ($this->Real - 32));
             $this->BarometricPressure = round($this->BarometricPressure * 2.54);
-            $this->Visibility         = round($this->Visibility * 1.609344);
+            if (strpos($this->Visibility, 'Unlimited') != false) {
+              $this->Visibility         = round($this->Visibility * 1.609344);
+        }
             $this->WindSpeed          = round($this->WindSpeed * 1.609344);
         }
 
-        if (strlen($this->ConText) > 0) {
-            $this->ConditionText = $this->ConText;
-            foreach ($Weather_Types as $pair) {
-                if ($pair[1] != $this->ConditionText)
-                    continue;
-                $this->ConditionImage = $pair[0];
-                break;
-            }
-            if(strlen($this->ConditionImage) == 0)
-                list($this->ConditionImage, $blah) = $Weather_Types[$this->CIcon];
-        }
-        else {
-            list($this->ConditionImage, $this->ConditionText) = $Weather_Types[$this->CIcon];
-        }
-        $this->ConditionImage = (strlen($this->ConditionImage) > 0) ? $this->ConditionImage : 'unknown.png';
+     $this->ConditionImage = $this->CIcon.".png"; 
     }
 
     function getRadarURL() {
@@ -136,29 +138,43 @@ class WeatherSite {
     }
 
     function readForecast($data) {
-        global $Weather_Types;
         $ret = array();
 
-        $data = explode('|', $data);
         for($i = 0;$i<5;$i++) {
-        // mktime uses 0-6;  msnbc gives us 1-7;  adjust msnbc to match mktime
-            $dayofweek = $data[$i] - 1;
-            $forecast = new Forecast($data[5 + $i],$dayofweek);
-            $forecast->dayofweek = $dayofweek;
-            list($forecast->DescImage,$forecast->DescText) = $Weather_Types[$data[15 + $i]];
-            $forecast->DescImage = (strlen($forecast->DescImage) > 0) ? $forecast->DescImage : 'unknown.png';
-            $forecast->DescText  = (strlen($forecast->DescText)  > 0) ? $forecast->DescText  : t('Unknown') . ' (' . $data[15+$i] . ')';
-            if($this->use_metric == 'YES') {
-                $forecast->HighTemperature = round((5/9) * ($data[20 + $i] - 32));
-                $forecast->LowTemperature = round((5/9) * ($data[40 + $i] -32 ));
-            } else {
-            $forecast->HighTemperature = $data[20 + $i];
-            $forecast->LowTemperature = $data[40 + $i];
+            $data1 = $this->in("<day d=\"".$i,"</day>",$data);
+            $day = $this->in("<day d=\"".$i."\" t=\"","\" dt",$data);
+            $forecast = new Forecast($this->LastUpdated, $i);
+            switch ($day) {
+            case 'Sunday': $forecast->dayofweek = 0; break;
+            case 'Monday': $forecast->dayofweek = 1; break;
+            case 'Tuesday': $forecast->dayofweek = 2; break;
+            case 'Wednesday': $forecast->dayofweek = 3; break;
+            case 'Thursday': $forecast->dayofweek = 4; break;
+            case 'Friday': $forecast->dayofweek = 5; break;
+            case 'Saturday': $forecast->dayofweek = 6; break;
             }
+           // $forecast->dayofweek = $i;
+           
+            $fc = $this->in("<part p=\"d\">","</part>",$data1); 
+            $forecast->DescText = $this->in("<t>","</t>",$fc);
+            $icon = $this->in("<icon>","</icon>",$fc);
+            $forecast->DescImage = $icon.".png";
+
+            $forecast->HighTemperature = $this->in("<hi>","</hi>",$data1);
+            $forecast->LowTemperature = $this->in("<low>","</low>",$data1); 
+
+            if($this->use_metric == 'YES') {
+              if ($forecast->HighTemperature != 'N/A') {
+                $forecast->HighTemperature = round((5/9) * ($forecast->HighTemperature - 32));
+              }
+              if ($forecast->LowTemperature != 'N/A') {
+                $forecast->LowTemperature = round((5/9) * ($forecast->LowTemperature -32 ));
+              }
+            } 
 
             $ret[$i] = $forecast;
         }
 
         return $ret;
     }
-}
\ No newline at end of file
+}
diff -rup /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/tmpl/default/weather.php ./weather/tmpl/default/weather.php
--- /home/mythtv/mythtv/myth_src/13238/mythplugins/mythweb/modules/weather/tmpl/default/weather.php	2007-04-14 01:34:39.000000000 -0400
+++ ./weather/tmpl/default/weather.php	2007-04-19 23:00:28.000000000 -0400
@@ -75,6 +75,7 @@
                 ?>)</td>
         </tr>
         </table>
+
     </div>
 
     <div class="forecast clearfix">
@@ -146,6 +147,8 @@
     </div>
 
     <p class="last_updated">
+            <img src="<?php echo skin_url ?>img/weather/TWClogo_64px.png " class="alpha_png" />
+       <?php echo "Weather data provided by weather.com" ?> </sup>
         <?php echo t('Last Updated') ?>: <?php echo $site->LastUpdated ?>
     </p>
 </div>
