<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="intranet feed reader" scrolling="true" height="350" author="Michal Bali" author_email="michalbali@gmail.com" >
 <Require feature="analytics" />  
</ModulePrefs>
<UserPref name="xmlUrl" display_name="XML Url" required="true" default_value="" />
<UserPref name="proxyUrl" display_name="XML2JSONP Proxy Url" required="true" default_value="" />
<!-- <UserPref name="height" display_name="height" default_value="350" /> -->
<UserPref name="cookiesJson" display_name="cookiesJson" default_value="" />
<Content type="html"><![CDATA[

  <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.3.min.js"></script>
  
  <script type="text/javascript"> 
  jQuery.fn.extend({    
    propagatingToggle: function() {
		// Save reference to arguments for access in closure
		var args = arguments;

		return this.click(function(event) {
			// Figure out which function to execute
			this.lastToggle = 0 == this.lastToggle ? 1 : 0;
			
			// Make sure that clicks stop
			//event.preventDefault();
			
			// and execute the function
			return args[this.lastToggle].apply( this, arguments ) || false;
		});
	}
  });
  </script>

  <style type="text/css">
    #title {
      font-size:10pt;
      color: rgb(100, 100, 100);
    }
    #content {
      font-size:9pt; 
      font-family: arial, sans-serif;
      font-size: 13px;
      font-weight: 400;
      color: #6F6F6F;     
    }
    .lineItem {
      border: solid 1px white;
      margin: 1px;
    }
    .firstLine {      
      float: left;
    }
    .shaded {
      background-color: rgb(245, 245, 245);
    }
    a:link, a:visited, a:hover, a:active {
      color: black;
      //font-weight: bold;
    }
    .author {
      font-size: 0.9em; 
      font-weight: bold;
      float: left;    
      margin-right: 10px;
    }
    .date {
      font-size: 0.9em; 
      color: grey; 
      float: right;
    }
    .subject{
      clear: both;      
    }
    .description {
      margin-left: 5px;
      display: none;
      border: dashed 1px grey;
      overflow: scroll;
    }
    .highlight {
      border: solid 1px rgb(180, 180, 180);
      background-color: rgb(240, 240, 240);
    }
  </style>
  
  <script type="text/javascript"> 
    var prefs = new _IG_Prefs();
    var xmlUrl = prefs.getString("xmlUrl");
    var proxyUrl = prefs.getString("proxyUrl");
    var cookiesJson = prefs.getString("cookiesJson");
                      
    var requestData = { url: xmlUrl };
    if (cookiesJson) {
      requestData["cookie"] = eval("'" + cookiesJson + "'");
    }
    
    //$.getScript(proxyUrl); function callbackFunction(data) {
    $.ajax({
      type: "GET",
      dataType: "jsonp",
      url: proxyUrl,
      data: requestData,
      cache: false,
      error: function (XMLHttpRequest, textStatus, errorThrown) {
        // typically only one of textStatus or errorThrown 
        // will have info
        alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
      },
      success: function(data) {  
        $("#title").html("<a href='"+data.rss.channel.link+"' target='_blank'>"+data.rss.channel.title+"</a>");
        var items = data.rss.channel.item;
        for (var i = 0; i < items.length; i++) {
          renderItem(items[i], i);       
        }
        
        $(".lineItem").propagatingToggle( function(e) {
          if( $(e.target).is('a') ) {
            this.lastToggle = !this.lastToggle;            
            e.target.target = "_blank";
            return true;
          }          
          $(this).find(".description").show();
        }, function(e) {
          if( $(e.target).is('a') ) {
            this.lastToggle = !this.lastToggle;          
            e.target.target = "_blank";
            return true;
          }
          $(this).find(".description").hide();
        });
            
        $(".lineItem").hover(function () {          
          $(this).addClass("highlight");
        }, function () {
          $(this).removeClass("highlight");
        });       
            
      }
    });

    function renderItem(item, itemIndex) {
      var author = item.author;
      if (!author) {
        author = item["dc:creator"]; //FIXME
      }      
      
      $("#content").append("<div class='lineItem"+ ((itemIndex % 2 == 0) ? " shaded" : "") +"'>" + 
        "<div class='firstLine'>" +
          "<div class='author'>"+author+"</div>" + 
          "<div class='date'>"+new Date(item.pubDate).toLocaleString()+"</div>" + 
        "</div>" +
        "<div class='subject'>"+item.title+" <a href='"+item.link+"' target='_blank'>&gt;&gt;&gt;</a></div>" +
        "<div class='description'>"+item.description+"</div>" +
      "</div>");
    }      
  </script>
    
  <div id="title">Loading ...</div>
  <div id="content"></div>
  
  <script>
     _IG_Analytics("UA-3220087-3", "/intranet_feed_reader_gadget");
  </script>
]]></Content>
</Module>

