<?xml version="1.0" encoding="UTF-8" ?>
<Module>
 <ModulePrefs title="InstantCal Calendar"
              description="InstantCal Calendar Viewer"
 >
   <Require feature="opensocial-0.7" />
 </ModulePrefs>
 <Content type="html">
   <![CDATA[
     <script type='text/javascript'>
     // InstantCal widget for OpenSocial
     (function() {
       // InstantCal widget properties
       var css_defaultWidth = 220;
       var css_defaultHeight = 300;
       var css_heightPadding = 90;
       var css_widthPadding = 40;
       var css_iheight = css_defaultWidth + 'px';
       var css_iwidth = css_defaultWidth + 'px';
       var css_ntype, css_nwidth, css_nheight, css_gtype, css_gheight, css_gwidth;
       var g_appUrl, g_color, g_url, g_view_type, g_minHeight, g_minWidth;
      
       function getAppUrl() {
         var index, prefs, str;

         // Render with UserPrefs
//         prefs = new _IG_Prefs(__MODULE_ID__);
//         g_url = prefs.getString("url");
//         g_color = prefs.getString("color");
//         g_view_type = prefs.getString("view_type");
         g_url = "http://instantcal.com/test.ics";
         g_color = 'BL';
         g_view_type = 'cv_simpleList';
         str = '';

	 if (window.location.href.indexOf('63.203.64.2') != -1)
	   str += 'http://63.203.64.2/cvi.html?file=';
         else
           str += 'http://instantcal.com/cvi.html?file=';
         str += g_url;
         if (g_color)
           str += '&theme=' + g_color;
	 if (g_view_type.indexOf('cv_datepicker') != -1) {
           str += '&ntype=' + g_view_type;
	   str += '&nheight=' + getBaseHeight(g_view_type);
	   str += '&nwidth=' + getBaseWidth(g_view_type);
	   str += '&gheight=' + css_defaultHeight + 'px';
	   str += '&gwidth=' + css_defaultWidth + 'px';
	   str += '&gcloseable=1';

         } else {
	   index = g_view_type.indexOf('_scroller');
           if (index != -1) {
	     g_view_type = g_view_type.substr(0, index);
             str += '&geffect=scroller';
           }
	   index = g_view_type.indexOf('_fader');
           if (index != -1) {
	     g_view_type = g_view_type.substr(0, index);
             str += '&geffect=fader';
           }

           str += '&gtype=' + g_view_type;
           str += '&gheight=' + getBaseHeight(g_view_type);
           str += '&gwidth=' + getBaseWidth(g_view_type);
           str += '&gcloseable=0';
         }
         if (css_iheight)
           str += '&iheight=' + css_iheight;
         if (css_iwidth)
           str += '&iwidth=' + css_iwidth;
	 return str;
       };

       function getBaseHeight(type) {
	 var dim = css_defaultHeight + 'px';
	 switch(type) {
	   case 'cv_datepicker':
	   case 'datepicker':
	     dim = '160px';
	     break;
	   case 'cv_monthGrid':
	     dim = '500px';
	     break;
	 }
	 return dim;
      };

      function getBaseWidth(type) {
	var dim = css_defaultWidth + 'px';
	switch(type) {
	  case 'cv_datepicker':
	  case 'datepicker':
	    dim = '140px';
	    break;
//	  case 'cv_monthGrid':
//	    dim = '100';
//	    break;
	}
	return dim;
      };


      // Load globals
      g_appUrl = getAppUrl();

      minHeight = parseInt(getBaseHeight(g_view_type)) < css_defaultHeight ? css_defaultHeight + css_heightPadding : parseInt(getBaseHeight(g_view_type)) + css_heightPadding;
      minWidth = parseInt(getBaseWidth(g_view_type)) < css_defaultWidth ? css_defaultWidth + css_widthPadding : parseInt(getBaseWidth(g_view_type)) + css_widthPadding;

      var frame = document.createElement('iframe');
      frame.src = g_appUrl;
      frame.frameBorder = 0;
      frame.scrolling = 'no';
      // N.B. height/width are of type string
      frame.height = minHeight;
      frame.width = minWidth;

//      gadgets.window.adjustHeight(minHeight);

//alert(frame.src);
      if (frame.src)
        document.body.appendChild(frame);

    })();
    </script>
   ]]>
 </Content>
</Module>

