<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Recent Visitors" scrolling="true" description="Lists the recent Visitors to your site" 
author="Karthik" author_email="manikarthik84@gmail.com" directory_title="Recent Visitors" 

	thumbnail="http://xmlgadgets.com/ig/img/recent.png"
   screenshot="http://xmlgadgets.com/ig/img/recent_.png" 
>
  <Require feature="opensocial-0.8" />
  <Require feature="views" />
  <Require feature="dynamic-height" />
  <Require feature="friendconnect" />
  <Require feature="minimessage" />
  <Optional feature="skins" />
 </ModulePrefs>
 
   <UserPref name="columns" display_name="Faces per row:" default_value="4" datatype="enum">
           <EnumValue value="1"/>
        <EnumValue value="2"/>
        <EnumValue value="3"/>
        <EnumValue value="4"/>
        <EnumValue value="5"/>
        <EnumValue value="6"/>
        <EnumValue value="7"/>
        <EnumValue value="8"/>
        <EnumValue value="9"/>
        <EnumValue value="10"/>
        <EnumValue value="11"/>
        <EnumValue value="12"/>
        <EnumValue value="13"/>
        <EnumValue value="14"/>
        <EnumValue value="15"/>
    </UserPref>    
	   <UserPref name="rows" display_name="Number of rows" default_value="4" datatype="enum">
           <EnumValue value="1"/>
        <EnumValue value="2"/>
        <EnumValue value="3"/>
        <EnumValue value="4"/>
        <EnumValue value="5"/>
        <EnumValue value="6"/>
        <EnumValue value="7"/>
        <EnumValue value="8"/>
        <EnumValue value="9"/>
        <EnumValue value="10"/>
        <EnumValue value="11"/>
        <EnumValue value="12"/>
        <EnumValue value="13"/>
        <EnumValue value="14"/>
        <EnumValue value="15"/>
    </UserPref>   
 
    <UserPref name="imagewidth" display_name="Thumbnail Size" default_value="40" datatype="enum" >
        <EnumValue value="20" display_value="20 Smallest" />
        <EnumValue value="25" display_value="25 Smaller" />
        <EnumValue value="30" display_value="30 Small" />
        <EnumValue value="35" display_value="35 Small Medium" />
        <EnumValue value="40" display_value="40 Medium" />
        <EnumValue value="45" display_value="45 Large Medium" />
        <EnumValue value="50" display_value="50 Large" />
		<EnumValue value="55" display_value="55 XL" />
        <EnumValue value="60" display_value="60 XXL" />
    </UserPref>
 <Content type="html" view="default">
  <![CDATA[
    <style>
    ul { list-style:none; margin:0px; padding:0px; }
    li { background-color: #EFF7FF; margin:3px 0px; padding:0px; width:200px; height:56px; float:left; }
    img { margin:0px auto; padding:2px; border:solid 1px #aaaaaa; } 
    li img { margin:0px auto; padding:2px; border:solid 1px #aaaaaa;  }
    li span.note { font-size:0.8em; }
    li p { margin:0; }
    textarea { display:inline; width:136px; height:35px; margin:0; float:left; }
    input { display:block; clear:left; }
	
	a:hover img
{
    opacity: 1;
}
 a img
{
    opacity: 0.95;
}
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
  <script type="text/javascript">
      var fp = {
        viewer:null,
        myVisits:[],
        config:{          maxDisplay: 30,          messageDisappear: 3        },
        init:function() 
		{
          var viewParams = gadgets.views.getParams();
          if (viewParams.maxDisplay != undefined) 
		  {
            var max = parseInt(viewParams.maxDisplay);
            if (max >= 3 && max <= 30) {
              fp.config.maxDisplay = max;
            }
          }
          $('body').css('background-color', gadgets.skins.getProperty('BG_COLOR'));
          $('body').css('color', gadgets.skins.getProperty('FONT_COLOR'));
		  $('body').css('font-face', gadgets.skins.getProperty('FONT_FAMILY'));
          $('#header').css('color', gadgets.skins.getProperty('CONTENT_HEADLINE_COLOR'));
		  $('#header').css('background-color', gadgets.skins.getProperty('ENDCAP_BG_COLOR'));
		  $('#viewerDiv').css('color', gadgets.skins.getProperty('CONTENT_HEADLINE_COLOR'));
		  $('#viewerDiv').css('background-color', gadgets.skins.getProperty('ENDCAP_BG_COLOR'));
		  $('#footer').css('background-color', gadgets.skins.getProperty('ENDCAP_BG_COLOR'));
          $('#footer').css('color', gadgets.skins.getProperty('ENDCAP_TEXT_COLOR'));

          var req = opensocial.newDataRequest();
          var params = {};
          params[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = [opensocial.Person.Field.PROFILE_URL];
          req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER, params), 'viewer');
          var idspec = opensocial.newIdSpec({'userId':opensocial.IdSpec.PersonId.OWNER,
                                             'groupId':opensocial.IdSpec.GroupId.FRIENDS});
          req.add(req.newFetchPersonAppDataRequest(idspec, 'myVisit'), 'myVisit');
          req.send(function(response) 
		  {
            if (!response.get('viewer').hadError()) 
			{
              fp.viewer = response.get('viewer').getData();
            }
            if (response.get('myVisit').hadError()) 
			{
              fp.myVisits = [];
            } 
			else 
			{
              var myVisits = response.get('myVisit').getData();
              var exist = false;
              $.each(myVisits, function(myVisit) 
			  {
                var json = gadgets.util.unescapeString(this.myVisit);
                var foot = gadgets.json.parse(json);
                fp.myVisits.unshift(foot);
              });
				fp.myVisits.sort(function(a, b) {
                return b.myVisit1 - a.myVisit1;
              });
              fp.showmyVisits();
            }
          });
        },
        showmyVisits:function() {
		   var linkColor = gadgets.skins.getProperty('CONTENT_LINK_COLOR');
		   var textColor = gadgets.skins.getProperty('CONTENT_TEXT_COLOR');
		   var fontFamily = gadgets.skins.getProperty('FONT_FAMILY');
		   
          $('#myVisits').empty();
          var html = '';
		   var vhtml = '';
		   var noOfMembs = 25;
		   var displayed = 0;
		   var rowdisplayed = 0;
		   var coldisplayed = 0;
		   var complete = 0;
		    var prefs = new _IG_Prefs();
            var rs = prefs.getInt("rows");
			var cs = prefs.getInt("columns");
            var imgw = prefs.getInt("imagewidth");

			
		   var recentProfile = '';
		   putViewerlink('0');
			if (fp.viewer == null) 
			{
			}
			else if (document.getElementById('hideme').value == 'N')
			{
			html += '<span  style="font-size:12px;cursor:hand;color:' + linkColor +';font-family:' + fontFamily +';" onclick="hideMe();"><u>Hide Me!</u></span><br/>';
				html += '<a href="' + fp.viewer.getField(opensocial.Person.Field.PROFILE_URL) + '" target="_top" title="You (' +fp.viewer.getDisplayName() + ')" ><img src = "' + fp.viewer.getField(opensocial.Person.Field.THUMBNAIL_URL) + '" width=' + imgw + ' height=' + imgw + '  hspace=2 vspace=2></a>';
				//html += '<a href="' + fp.viewer.getField(opensocial.Person.Field.PROFILE_URL) + '" target="_top" title="' +fp.viewer.getDisplayName() + '" ><img src = "' + fp.viewer.getField(opensocial.Person.Field.THUMBNAIL_URL) + '" width=40 height=40></a>';
				displayed = displayed + 1;
				coldisplayed = coldisplayed + 1;
				if ( coldisplayed == cs)
				{
					coldisplayed = 0;
					rowdisplayed = rowdisplayed + 1;
					if (rowdisplayed == rs)
					    complete = 1;
					else
						html += '<br>' ;
				}
				
			}
          for (var i in fp.myVisits) 
		  {
            if (complete == 1) break;
            var foot = fp.myVisits[i];	
			if (i == 0)
			{
				putViewerlink(foot.myVisit1);
				recentProfile = foot.profile;
			}

			if (fp.viewer != null && fp.viewer.getField(opensocial.Person.Field.PROFILE_URL) == foot.profile)
			{
			}
			else if (foot.myVisit1 != "0" ){
			html += '<a href="' + foot.profile + '" target="_top" title="' +foot.name + '" ><img src = "' + foot.thumbnail + '" width=' + imgw + ' height=' + imgw + ' hspace=2 vspace=2></a>';
				displayed = displayed + 1;
				coldisplayed = coldisplayed + 1;
				if ( coldisplayed == cs)
				{
					coldisplayed = 0;
					rowdisplayed = rowdisplayed + 1;
					if (rowdisplayed == rs)
					    complete = 1;
					else
						html += '<br>' ;
				}
			}
       };
          if (fp.viewer == null) 
		  {
		    vhtml = '<span style="font-size:11px;">Join / Sign in</span>';
			$('#viewerDiv').html(vhtml);
          }
		  else
		   {
		       // vhtml = '<span style="font-size:13px;">Welcome <a href="'+fp.viewer.getField(opensocial.Person.Field.PROFILE_URL) + '" target="_top"><b>' + fp.viewer.getDisplayName() + '</b></a></span>';
			  // vhtml = '<span style="font-size:11px;">You are the most recent Visitor</span>';
			 //  vhtml += '<hr>' ;         
			   //$('#viewerDiv').html(vhtml);
			   if (recentProfile != fp.viewer.getField(opensocial.Person.Field.PROFILE_URL))
			   {
			    if (document.getElementById('hideme').value == 'N')
					saveLink();
			   }
		  }
		  html += '<br>';
		  
          $('#myVisits').html(html);
          $('#myVisits li').css('background-color', gadgets.skins.getProperty('ALTERNATE_BG_COLOR'));
          gadgets.window.adjustHeight();
        }

      };
	  
	  function putViewerlink(link1)
	{
	document.getElementById('hiddenlink').value = link1;
	}
    function hideMe()
	{
	document.getElementById('hideme').value = 'Y';
	putViewerlink("-1");
	saveLink();
	fp.showmyVisits();
	}
	  function saveLink()
	{
		var visits = document.getElementById('hiddenlink').value;
		var v1 = parseFloat(visits);
		v1 = v1 + 1;
	
	                var foot = {
							'id':         fp.viewer.getId(),
                            'name':       fp.viewer.getDisplayName(),
                            'thumbnail':  fp.viewer.getField(opensocial.Person.Field.THUMBNAIL_URL),
                            'profile':    fp.viewer.getField(opensocial.Person.Field.PROFILE_URL),
                            'myVisit1':  v1
							};
							
	 var  myVisit1 = gadgets.json.stringify(foot);
	  var req = opensocial.newDataRequest();
	  req.add(req.newUpdatePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, 'myVisit', myVisit1));
	  req.send();
	}
	
		 
 </script>
  <script type="text/javascript">
    gadgets.util.registerOnLoadHandler(fp.init);
  </script>
  <div id="header"><span style="font-size:13px;">Recent Visitors</span></div>
   <div id="viewerDiv"></div>
  <div id="myVisits"></div>
  <div id="footer"><a href="http://blog.xmlgadgets.com/google-friend-connect/recent-visitors-gadget-for-blogger-google-friend-connect-sites/?utm_source=RecentVisitors&utm_medium=GFC&utm_campaign=Gadget" target="_blank"><span style="font-size:11px;">Get This!</span></a>
  </div>
  <input type=hidden id=hiddenlink value="0">
  <input type=hidden id=hideme value="N">
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-4747275-3");
pageTracker._trackPageview();
pageTracker._trackEvent('RecentVisitors', 'Viewed');
} catch(err) {}</script>


 ]]>
 </Content>
</Module>
