<?xml version="1.0" encoding="UTF-8"?><Module>
<ModulePrefs title="Kiva" 
height="350"
width="500" 
author="Henrik Engdahl" 
author_email="henen254@gmail.com"
thumbnail="http://images.kiva.org/s/images/logoLeafy3.gif"
screenshot="http://images.kiva.org/s/images/logoLeafy3.gif" 
scrolling="true"
description="Keep track of your kiva investments"
directory_title="" 
title_url="http://www.kiva.org"
author_location="Gothenburg, Sweden">
<Require feature="setprefs" />

</ModulePrefs>
<UserPref name="userName" 
display_name="Kiva Lender Name" 
default_value=""/>

<Content type="html"><![CDATA[
<div id="header"><table style="font-size=8pt"><tr><td><img src="http://l3-1.kiva.org/r16554/images/logoLeafy3.gif"></td>
<td valign="bottom"><img src="http://l3-1.kiva.org/r16554/images/tagline.gif"><div id="userName"></div><div id="news">News</div>
<div id="control" style="font-size=8pt"><a onClick="getNewLoans()">Show new loans</a> | <a onClick="updateLoanList()">Show my loans</a> | <a onClick="toggleShowRepaidLoans()">Show/hide repaid loans</a></div></td></tr></table></div>

<div id="loans" style="font-size=8pt"></div>

<script type="text/javascript">
function renderLoanList(obj)
{
var out='<table style=\"font-size=8pt\">';
var loanList = obj.data.getElementsByTagName('loan');
var idList=new Array();
var moneyText='';
for(i=0; i<loanList.length; i++)
{
loan=loanList.item(i).childNodes;
id=loan.item(0).firstChild.nodeValue;
name=loan.item(1).firstChild.nodeValue;
img=loan.item(7).firstChild.firstChild.nodeValue;
amount=loan.item(3).firstChild.nodeValue;
repaid=loan.item(5).firstChild.nodeValue;

if(loanListView=='old')
{
moneyText='repaid';
}
else
{
moneyText='raised'
}


if(amount != repaid || showRepaid)
{
out+='<tr><td><img src=https://s3.amazonaws.com/s3.kiva.org/img/h100/'+img+'.jpg></td>';
out+='<td valign=\"top\"><b><a href=\"http://www.kiva.org/app.php?page=businesses&action=about&id='+id+'\">'+name+'</a></b> - $'+ repaid +' of $'+ amount +' '+moneyText+'<br>\n';
out+='<div id=\"info'+id+'\"></div>';
if(loanListView=='old')
{
out+='<table style=\"font-size=8pt\" border=0><tr><td width=120 valign=\"top\"><div id=\"payments'+id+'\"><a onClick=\"getLoanInfo('+id+',\'Payments\');\">Payments</a></div></td>';
out+='<td valign=\"top\"><div id=\"news'+id+'\"><a onClick=\"getLoanInfo('+id+',\'News\');\">News</a></div></td></tr></table>';
}
out+='</td></tr>\n';
}

idList.push(id);

}
out+='</table>';

_gel('loans').innerHTML=out;
// for(var i=0; i<idList.length; i++)
// {
// getLoanInfo(idList[i],'Info');
// }
}

function getLoanInfo(id,type)
{
tempId=id;
tempType=type;
var pages=new Array();
pages['News']='/journal_entries.xml';
pages['Payments']='/updates.xml';
pages['Info']='.xml';

if(_gel(type+id).innerHTML.length < 70)
{
var url = 'http://api.kivaws.org/v1/loans/'+id+pages[type];
gadgets.io.makeRequest(url, renderLoanInfo, params);
}
else
{
_gel(type+id).innerHTML='<a onClick=\"getLoanInfo('+id+',\''+type+'\');\">'+type+'</a>';
}
}

function renderLoanInfo(obj)
{
var out='<table style=\"font-size=8pt\">';
if(tempType=='Payments')
{
var paymentList = obj.data.getElementsByTagName('payment');
for(i=0; i<paymentList.length; i++)
{
payment=paymentList.item(i).childNodes;
amount=payment.item(0).firstChild.nodeValue;
date=payment.item(3).firstChild.nodeValue;

out+='<tr><td>'+date.substring(0,10)+'</td><td> $'+amount+'</td></tr>\n';

}
out+='</table>';
_gel(tempType+tempId).innerHTML='<a onClick=\"getLoanInfo('+tempId+',\''+tempType+'\');\">Hide</a>'+out;
}
else if(tempType=='News')
{
var messageList = obj.data.getElementsByTagName('journal_entry');
for(i=0; i<messageList.length; i++)
{
message=messageList.item(i).childNodes;
subject=message.item(1).firstChild.nodeValue;
text=message.item(2).firstChild.nodeValue;
date=message.item(3).firstChild.nodeValue;
out+='<tr><td>'+date.substring(0,10)+': <b>'+subject+'</b><br>'+text+'</td></tr>\n';

}
out+='</table>';
_gel(tempType+tempId).innerHTML='<a onClick=\"getLoanInfo('+tempId+',\''+tempType+'\');\">Hide</a>'+out;

}
else if(tempInfo='Info')
{
var info = obj.data.getElementsByTagName('texts').item(0).firstChild.firstChild.nodeValue;
_gel(tempType+tempId).innerHTML=info;
}

}

function toggleShowRepaidLoans()
{
if (showRepaid)
{
showRepaid=false;
}
else
{
showRepaid=true;
}
updateLoanList();
}

function updateLoanList()
{

var url = "http://api.kivaws.org/v1/lenders/"+prefs.getString("userName")+"/loans.xml"; 
loanListView='old';
gadgets.io.makeRequest(url, renderLoanList, params);
}

function renderNews(obj)
{
_gel('news').innerHTML=obj.text;
}

function makeCachedRequest(url, callback, params, refreshInterval) 
{ 
var ts = new Date().getTime(); 
var sep = "?"; 
if (refreshInterval && refreshInterval > 0) 
{ 
ts = Math.floor(ts / (refreshInterval * 1000)); 
}
if (url.indexOf("?") > -1) 
{ 
sep = "&"; 
} 
url = [ url, sep, "nocache=", ts ].join(""); 
gadgets.io.makeRequest(url, renderNews, params);
}

function getNewLoans()
{
var url="http://api.kivaws.org/v1/loans/newest.xml";
loanListView='new';
gadgets.io.makeRequest(url, renderLoanList, params);
}
var prefs = new _IG_Prefs();
var showRepaid=false;
var params = {};
var tempId=0;
var tempType='';
var loanListView='old';
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM;
makeCachedRequest('http://katla.gupta.se/kiva/news.txt', renderNews, params,600);

if(prefs.getString("userName").length>2)
{
updateLoanList();
_gel('userName').innerHTML='You are showing the loans of: <b>'+prefs.getString("userName")+'</b>';
}
else
{
_gel('control').innerHTML="";
_gel('loans').innerHTML='Your Kiva lender name has not been specified. Set it up by:'+
'<ol><li> Log on to your kiva account via <a href=\"https://www.kiva.org/app.php?page=login\" target=\"_new\">Kiva login page</a>'+
'<li>Open your \"My lenders page\"'+
'<li>Copy your name (the last part in the Lender Page URL)' +
'<li>Open gadget settings'+
'<li>Past your Lender name'+
'<li>Click save'
'</ol>';
}


</script>
]]></Content>
</Module>

