//All feed parsers are held in this file
//Note these are referenced as a property of a "baseFeedArray" item.
//eg baseFeedArray[0].parser or baseFeedArray[0].subParser


//Parse XML document returned from Space profile feed (note this is a subFeed)
function parseProfileRSS(p_xmlpointer)
{

	var objStore=new Object();
    var channelNode=p_xmlpointer.getElementsByTagName("channel");
	var arrayStore=new Array();
	var nodePaths=new Array("image/title", "image/url", "image/link","item/live:publicDisplayName","item/live:publicNickname","item/live:generalDisplayPicture","item/live:gender","item/live:age","item/live:occupation","item/live:location","item/live:moreAboutMe","item/live:interestedIn","item/live:interests","item/live:realFirstName","item/live:realLastName", "item/live:homeCountryOrRegion");
	var nodeNames=new Array("title", "url", "link","publicDisplayName","publicNickname","generalDisplayPicture","gender","age","occupation","location","moreAboutMe","interestedIn","interests","realFirstName","realLastName","homeCountryOrRegion");
    
    if (channelNode.length>0)
    {
    	//If success then extract the different values using a loop.
	    for (var i=0; i<nodeNames.length; i++)
	    {
	        try 
	        {
		        myNodes=p_xmlpointer.getElementsByTagName(nodePaths[i]);
            }
            catch (e)
            {}
            if (myNodes.length==0)
            {
                try 
                {
                    myNodes=p_xmlpointer.getElementsByTagName(nodeNames[i]);
            }
            catch (e)
            {}
        }
		if (myNodes.length>0 && typeof(myNodes)!=undefined)
		{
	        try
		    {
		        temp=myNodes[0].firstChild.nodeValue;
		    }
		    catch(Error)
		    {
			    temp=null;
		    }
		    if (temp!=undefined && temp!="" && temp!=null)
		    {
		    	eval("objStore."+nodeNames[i]+"=decodeURIComponent(temp)");
		    }
		    else
		    {
			    eval("objStore."+nodeNames[i]+"=\"no data\"");
		    }
	    }
	    else
	    {
		    eval("objStore."+nodeNames[i]+"=\"no data\"");
	    }
    }
	//trim the word profile out of the title
	objStore.title=decodeURIComponent(objStore.title);
 	objStore.title=objStore.title.replace("'","");
	objStore.title=encodeURIComponent(objStore.title.substring(0,(objStore.title.length)-9));

	objStore.image=objStore.url;
	objStore.url=objStore.link;

	}
	var test="";
	for (var i=0; i<nodeNames.length; i++)
	{
		test+=eval("objStore."+nodeNames[i])+"\n";
		}
	
	return objStore;
}

function parseChangesRSS(p_xmlpointer)
{		

	var myNodes=p_xmlpointer.getElementsByTagName("weblog");
	var arrayStore=new Array();
	//If success then extract the different values using a loop.
	if (myNodes && p_xmlpointer && myNodes.length>1)
	{
		for (var i=0; i<myNodes.length;i++)
		{
			arrayStore[i]=new baseFeedEntry();
			arrayStore[i].url=myNodes.item(i).attributes.getNamedItem("url").value;
			arrayStore[i].photoUrl=arrayStore[i].url;
			temp=arrayStore[i].url;
			temp=temp.substring(temp.indexOf("http://")+7,temp.indexOf(".spaces"))
			arrayStore[i].alias=temp;
		}
	}
	else
	{
		//No response.
		arrayStore[0].url="no data";
	}
	return arrayStore;
}

function parsePhotoFeedRSS(p_xmlpointer,p_alias,p_title)
{
    var errorstate=false;
    try
	{
	   	var myNodes=p_xmlpointer.getElementsByTagName("item");
	}
	catch(e)
	{ var errorstate=true;}
	var arrayStore=new Array();

	//If success then extract the different values using a loop.
	if (!errorstate && myNodes!=undefined && myNodes.length>0)
	{
		for (i=0; i<myNodes.length;i++)
		{
			arrayStore[i]=new photoAlbum();
			var temp=myNodes.item(i).childNodes[2].text;
			var photoHtml="";
			var failsafe=0;
			while (temp.indexOf("src=\"") && failsafe<5)
			{
			    failsafe=failsafe+1;
    			pointer=temp.indexOf("src=\"")+5;
	    		temp=temp.substring(pointer,temp.length);
			    pointer=temp.indexOf("\"");
			    var link=temp.substring(0,pointer-10);
			    var imageUrl=temp.substring(0,pointer);
			   if (imageUrl.indexOf("c.gif")==-1)
			   {
			        photoHtml=photoHtml+"<a href='viewphoto.php?spacestitle="+p_title+"&spacesurl="+p_alias+"spaces.live.com&photourl="+link+"' target='_blank' onmouseout=\"shrinkImg('"+imageUrl+"');\" onmouseover=\"growImg('"+imageUrl+"');\"><img src=\""+imageUrl+"\" height='32' id='"+imageUrl+"' alt='click for big'></a>";   
			   }
			}
			arrayStore[i].photoHtml=photoHtml;	
		}
	}
	else
	{
	arrayStore[0]=new photoAlbum();
	arrayStore[0].photoHtml="<b>No photos for this space</b>";
	}
	return arrayStore;
}

function parseLiveSearch(p_xmlpointer)
{

	var myNodes=p_xmlpointer.getElementsByTagName("item");
	var arrayStore=new Array();
	var arrayPointer=0;
	//If success then extract the different values using a loop.
	if (myNodes && p_xmlpointer && myNodes.length>0)
	{
		for (i=0; i<myNodes.length;i++)
		{
			arrayStore[arrayPointer]=new baseFeedEntry();
			temp=myNodes.item(i).childNodes[1].text;
			
			if (temp.substring(temp.indexOf("http://")+7,temp.indexOf("."))!="spaces" && temp.substring(temp.indexOf("http://")+7,temp.indexOf("."))!="www")
			{
				tempURL=temp.substring(temp.indexOf("http://")+7,temp.indexOf("."));
				arrayStore[arrayPointer].url="http://"+tempURL+".spaces.live.com/";
				arrayStore[arrayPointer].title=myNodes.item(i).childNodes[0].text;
				arrayStore[arrayPointer].description=myNodes.item(i).childNodes[2].text;
				arrayStore[arrayPointer].image="dummy";
				arrayPointer=arrayPointer+1;
			}
			else
			{
				if (temp.indexOf("cid="))
				{
					tempURL=temp.substring(temp.indexOf("cid=")+4,(temp.indexOf("."))-1);
					arrayStore[arrayPointer].url="http://cid-"+tempURL+".spaces.live.com/";
					arrayStore[arrayPointer].title=myNodes.item(i).childNodes[0].text;
					arrayStore[arrayPointer].description=myNodes.item(i).childNodes[2].text;
					arrayStore[arrayPointer].image="dummy";
					arrayPointer=arrayPointer+1;
				}
			}
		}
		document.getElementById("searchStatus").innerHTML=arrayPointer+" results returned";
	}
	else
	{
		document.getElementById("searchStatus").innerHTML="No data";
	}
	return arrayStore;
}

