/*

File: SotW.js

Abstract: Largemouth Software's Single of the Week Widget

Version: 1.5 (International)

� Copyright 2006 Largemouth Software, LLC. All rights reserved.

This Software is provided by Largemouth Software on an "AS IS" basis.  LARGEMOUTH SOFTWARE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE LARGEMOUTH SOFTWARE PRODUCT OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.

IN NO EVENT SHALL LARGEMOUTH SOFTWARE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE LARGEMOUTH SOFTWARE PRODUCT, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF LARGEMOUTH SOFTWARE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*/

var isIE = false;
var req;
var xmlUrl;
var linkUrl;
var imageUrl;

function loadXMLDoc(url) {	
	if (window.ActiveXObject) {
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, false);
			req.send();
		}
	} else {
	// branch for native XMLHttpRequest object
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	} 
}

function getElementTextNS(prefix, local, parentElem, index) 
{
    var result = "";
    if (prefix && isIE) {
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
		return result.firstChild.nodeValue;    		
    } else {
        alert("Couldn't update Single of the Week.");
        linkUrl = 'http://click.linksynergy.com/fs-bin/click?id=uD0pi4Lemno&offerid=78941.10000945&type=4&subid=0';
		imageUrl = "http://images.apple.com/itunesaffiliates/US/SOTW/SOTW_120x90.jpg";
    }
}

function decodeXml() 
{
	var items = req.responseXML.getElementsByTagName("item");
	imageUrl = getElementTextNS("", "image", items[0], 0);
	linkUrl = getElementTextNS("", "link", items[0], 0);
	updateImage();
}

function processReqChange() 
{
	if (req.readyState == 4)
	{
		if (req.status == 200)
		{
			decodeXml();
		} else if (req.status) {
			alert("Couldn't update Single of the Week.\n\nXML retrieve error status:\n" + req.statusText);
		}		
		decodeXml();
	}
}

function setup()
{	
	xmlUrl = "http://www.largemouthsoftware.com/sotw/sotw_usa.xml";
	update();
}

function clicked(area)
{
   if (area == 'song')
   {
		open(linkUrl);
   }
   else if (area == 'lms')
   {
		open("http://www.largemouthsoftware.com/");
   }
}

function update ()
{
	if (xmlUrl == "")
	{
		updateImage();
		return;
	}
	var now = new Date();
    loadXMLDoc(xmlUrl + "?" + now.getTime());
}


function updateImage ()
{ 	
	var imageSpan = document.getElementById("sotw_image");
	var now = new Date();
	
	if (imageSpan) {
		imageSpan.innerHTML = "<img width=\"120\" src=\"" + imageUrl + "?" + now.getTime() + "\">"; 
	}
}