/**
 * @author planderos
 * Cheezburger blog viewer
 */

//*** Ping the Stat Server *** ///
statFeedNo = 1435;
loadScript("http://myDivXConnected.com/pMaker/includes/statsPush.js");

var serviceXHR;
var count = 1;

var numEntries;
var imgSrc;

// XML Namespace resolver for XPath namespace resolution
function NSResolver(prefix) 
{
	if(prefix == 'media') 
	{
		return "http://search.yahoo.com/mrss/";
	}
	else if (prefix == 'feedburner')
	{
		return "http://rssnamespace.org/feedburner/ext/1.0";
	}
	return null;
}

function handleServiceResult(doc){
	// extract information with XPath
	
	numEntries = doc.evaluate("count(//channel/item)", doc, NSResolver, XPathResult.ANY_TYPE, null).numberValue;
	
	var titles = new Array()
	for (var i = 1; i <= numEntries; i++) {
		titles[i] = doc.evaluate("//channel/item[" + i + "]/title", doc, NSResolver, XPathResult.STRING_TYPE, null).stringValue;
	}
	var pubdate = new Array()
	for (var i = 1; i <= numEntries; i++) {
		pubdate[i] = doc.evaluate("//channel/item[" + i + "]/pubDate", doc, NSResolver, XPathResult.STRING_TYPE, null).stringValue;
	}
	imgSrc = new Array()
	for (var i = 1; i <= numEntries; i++) {
		imgSrc[i] = doc.evaluate("//channel/item[" + i + "]/media:content/@url", doc, NSResolver, XPathResult.STRING_TYPE, null).stringValue;
	}
	
	connected.debug.print(numEntries);
	connected.debug.print(titles[count]);
	connected.debug.print(pubdate[count]);
	
	var dctk = connected.toolkit;
	
	main_bg = dctk.getElementById("main_bg");
    main_bg.img.src = imgSrc[count];
	
	published = dctk.getElementById("published");
    published.text = pubdate[count];
	
if (count < numEntries) {
	var prevArrow = dctk.getElementById("prevArrow");
	prevArrow.img.src = "button_left.png";
	}
	
if (count != 1) {
	var nextArrow = dctk.getElementById("nextArrow");
	nextArrow.img.src = "button_right.png";
	}
	
}



function onServiceXHRStateChange()
{
    if (serviceXHR.readyState == 4)
    {
        if (serviceXHR.status == 200)
        {
            handleServiceResult(serviceXHR.responseXML);
        }
    }
}

function startServiceRequest()
{
    serviceXHR = new XMLHttpRequest();
    serviceXHR.onreadystatechange = onServiceXHRStateChange;
    serviceXHR.open("GET", "http://feedproxy.google.com/ICanHasCheezburger?format=xml", true);
    serviceXHR.send(null);
}

function mainButtonHandler(e)
{
	var dctk = connected.toolkit;
	
    switch(e.buttonId)
    {
        case dcKeyEvent.BUTTON_ID_BACK:
        {
            // navigate back
            if (window.history.length)
                window.history.back();
        }
		case dcKeyEvent.BUTTON_ID_LEFT:
			if (count < numEntries) {
				count++;
				onLoadComplete();
			}
        break;
		case dcKeyEvent.BUTTON_ID_RIGHT:
			if (count > 1) {
				--count;
				onLoadComplete();
			}
        break;
		
		case dcKeyEvent.BUTTON_ID_SELECT:
            onLoadComplete();
        break;
    }
}

function onLoadComplete()
{
	var dctk = connected.toolkit;

	dctk.logicalWidth = 640;
	dctk.logicalHeight = 480;
	
	// create the background panel
    var root = dctk.createPanelCtrl("root", true);
    root.width = 640;
    root.height = 480;
	root.filled = true;
    root.color.rgb = 0x7c8a95;
    root.onUnhandledKeyEvent = mainButtonHandler;
    dctk.rootPanel = root;
	
	// display background image
	var background = dctk.createImageCtrl("background", true);
	background.setRect(0, 0, 640, 480);
	background.mode=2;
	background.img.src="background.png";
	background.img.async=true;
	root.addChild(background);
	
/*
	// display header image
	var main_hd = dctk.createImageCtrl("main_hd", true);
	main_hd.left = 0;
	main_hd.top = 470;
	main_hd.right = 105;
	main_hd.bottom = 420;
	main_hd.img.src="dilbert-logo.png";
	main_hd.img.async=true;
	root.addChild(main_hd);
	
	// display footer image
	var main_ft = dctk.createImageCtrl("main_ft", true);
	main_ft.setRect(540, 0, 640, 100);
	main_ft.img.src="dilbert.png";
	main_ft.img.block=false;
	root.addChild(main_ft);
*/	
	var prevArrow = dctk.createImageCtrl("prevArrow", true);
	prevArrow.setRect(10, 200, 40, 300);
	//prevArrow.img.src = "button_left.png";
	root.addChild(prevArrow);
	
	var nextArrow = dctk.createImageCtrl("nextArrow", true);
	nextArrow.setRect(600, 200, 630, 300);
	//nextArrow.img.src = "button_right.png";
	root.addChild(nextArrow);	
	
	var main_bg = dctk.createImageCtrl("main_bg", true);
	main_bg.left = 40;
	main_bg.top = 460;
	main_bg.right = 600;
	main_bg.bottom = 20;
	main_bg.img.block=false;
	main_bg.mode = dctkImage.IMG_INTERACTIVE;
	root.addChild(main_bg);	
	
	var titleTxt = dctk.createLabelCtrl("titleTxt", true);
    titleTxt.font = dctk.createFontByFacename("Arial Narrow", true, false);
    titleTxt.setRect(0, 460, 640, 476);
    titleTxt.textColor.rgb = 0xffffff;
    titleTxt.fontSize = 20;
    titleTxt.align = dctkLabel.TS_CENTER;
	titleTxt.valign = dctkLabel.TS_BOTTOM;
	titleTxt.text = "icanhascheezburger.com"
    root.addChild(titleTxt);
	
	var published = dctk.createLabelCtrl("published", true);
    published.font = dctk.createFontByFacename("Arial Narrow", true, false);
    published.setRect(0, 2, 640, 82);
    published.textColor.rgb = 0xffffff;
    published.fontSize = 16;
    published.align = dctkLabel.TS_CENTER;
	published.valign = dctkLabel.TS_BOTTOM;
    root.addChild(published);
	
	startServiceRequest();
	
	//connected.toolkit.debug.drawElementOutline = true;
}