function showAppointmentsDialog(instance_id){
 var D=document; 
 var C=D.getElementsByTagName("head")[0] || D.getElementsByTagName("body")[0];

 var dvStyle = document.createElement("div");
 dvStyle.setAttribute("style", "width: 600px;");

 var htm = new Array();

 htm.push("#facebox {");
 htm.push("  position: absolute;");
 htm.push("  top: 0;");
 htm.push("  left: 0;");
 htm.push("  z-index: 100;");
 htm.push("  text-align: left;");
 htm.push("}");
 htm.push("#facebox .popup{");
 htm.push("  position:relative;");
 htm.push("  border:3px solid rgba(0,0,0,0);");
 htm.push("  -webkit-border-radius:5px;");
 htm.push("  -moz-border-radius:5px;");
 htm.push("  border-radius:5px;");
 htm.push("  -webkit-box-shadow:0 0 18px rgba(0,0,0,0.4);");
 htm.push("  -moz-box-shadow:0 0 18px rgba(0,0,0,0.4);");
 htm.push("  box-shadow:0 0 18px rgba(0,0,0,0.4);");
 htm.push("}");
 htm.push("#facebox .content {");
 htm.push("  display:table;");
 htm.push("  width: 370px;");
 htm.push("  padding: 10px;");
 htm.push("  background: #fff;");
 htm.push("  -webkit-border-radius:4px;");
 htm.push("  -moz-border-radius:4px;");
 htm.push("  border-radius:4px;");
 htm.push("}");
 htm.push("#facebox .content > p:first-child{");
 htm.push("  margin-top:0;");
 htm.push("}");
 htm.push("#facebox .content > p:last-child{");
 htm.push("  margin-bottom:0;");
 htm.push("}");
 htm.push("#facebox .close{");
 htm.push("  position:absolute;");
 htm.push("  top:5px;");
 htm.push("  right:5px;");
 htm.push("  padding:2px;");
 htm.push("  background:#fff;");
 htm.push("}");
 htm.push("#facebox .close img{");
 htm.push("  opacity:0.3;");
 htm.push("}");
 htm.push("#facebox .close:hover img{");
 htm.push("  opacity:1.0;");
 htm.push("}");
 htm.push("#facebox .loading {");
 htm.push("  text-align: center;");
 htm.push("}");
 htm.push("#facebox .image {");
 htm.push("  text-align: center;");
 htm.push("}");
 htm.push("#facebox img {");
 htm.push("  border: 0;");
 htm.push("  margin: 0;");
 htm.push("}");
 htm.push("#facebox_overlay {");
 htm.push("  position: fixed;");
 htm.push("  top: 0px;");
 htm.push("  left: 0px;");
 htm.push("  height:100%;");
 htm.push("  width:100%;");
 htm.push("}");
 htm.push(".facebox_hide {");
 htm.push("  z-index:-100;");
 htm.push("}");
 htm.push(".facebox_overlayBG {");
 htm.push("  background-color: #000;");
 htm.push("  z-index: 99;");
 htm.push("}");

 addCss(htm.join(""));
 htm = new Array();

 htm.push("<div id='appointron_wait_icon' style='text-align: center; padding: 10px;'>");
 htm.push("  <img src='http://appointron.appspot.com/images/wait30.gif' />");
 htm.push("  <br/>");
 htm.push("  Just a sec...");
 htm.push("</div>");
 htm.push("<div id='appointron_canvas_app' style='display: none;'>");
 htm.push("  <div id='appointron_topbar' class='medsmalltext' style='height: 60px; background-color: #ccc; border-bottom: 1px solid #999;'>");
 htm.push("    <div style='overflow: hidden;'>");
 htm.push("      <table cellspacing=0 cellpadding=0 style='height: 60px; width: 100%;'>");
 htm.push("        <tr>");
 htm.push("          <td id='appointron_logobar' style='vertical-align: top; text-align: left; height: 50px; padding: 5px;'>");
 htm.push("          </td>");
 htm.push("        </tr>");
 htm.push("      </table>");
 htm.push("    </div>");
 htm.push("  </div>");
 htm.push("  <div id='appointron_list_view' class='medtext'>");
 htm.push("    <div id='appointron_content'>");
 htm.push("    </div>");
 htm.push("  </div>");
 htm.push("  <div id='appointron_bottombar' class='medsmalltext' style='border-top: 1px solid #999; background-color: #ccc; height: 20px;'>");
 htm.push("    <div id='appointron_paging_controls' style='overflow: hidden; padding: 0px;'> ");
 htm.push("      <table cellspacing=0 cellpadding=0 style='height: 20px; width: 100%;'>");
 htm.push("        <tr>");
 htm.push("          <td class='smalltext' id='appointron_getthislink' style='vertical-align: middle; text-align: left; height: 20px; padding-left: 5px;'>");
 htm.push("          </td>");
 htm.push("          <td class='smalltext' id='appointron_admin_url' style='vertical-align: middle; text-align: right; height: 20px; padding-right: 5px;'>");
 htm.push("          </td>");
 htm.push("        </tr>");
 htm.push("      </table>");
 htm.push("    </div>");
 htm.push("  </div>");
 htm.push("</div>");

 if(window.appointron_loaded === undefined){
   dvStyle.innerHTML = htm.join("");
   document.getElementById("appointron_gadget_content").innerHTML="";
   document.getElementById("appointron_gadget_content").appendChild(dvStyle);

   var jq=D.createElement("script");
   jq.src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js";
   jq.setAttribute("async", true);
   C.appendChild(jq);
 
   var vs=D.createElement("script");
   vs.src="http://appointron.appspot.com/appointron/visit_js?instance_id="+instance_id;
   vs.setAttribute("async", true);
   C.appendChild(vs);

   var S=D.createElement("script");
   //S.src="http://mobilemetrics.appspot.com/ge/js?ak=appointments_core_js";
   S.src="http://mobilemetrics.appspot.com/ge/js?ak=appointments_popup_core_js";
   S.setAttribute("async", true);
   C.appendChild(S);

   window.appointron_loaded = true;
 }

 fireItUp(instance_id, false);
}

function showAppointmentsGadget(instance_id){
 var D=document; 
 var C=D.getElementsByTagName("head")[0] || D.getElementsByTagName("body")[0];

 var htm = new Array();
 htm.push("<div></div>");

 if(window.appointron_loaded === undefined){
   document.getElementById("appointron_gadget_content").innerHTML="";

   var jq=D.createElement("script");
   jq.src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js";
   jq.setAttribute("async", true);
   C.appendChild(jq);
 
   var vs=D.createElement("script");
   vs.src="http://appointron.appspot.com/appointron/visit_js?instance_id="+instance_id;
   vs.setAttribute("async", true);
   C.appendChild(vs);

   var S=D.createElement("script");
   S.src="http://mobilemetrics.appspot.com/ge/js?ak=appointments_gadget_core_js";
   S.setAttribute("async", true);
   C.appendChild(S);

   window.appointron_loaded = true;
 }

 fireItUp(instance_id, true);
}


function addCss(cssCode) {
var styleElement = document.createElement("style");
  styleElement.type = "text/css";
  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = cssCode;
  } else {
    styleElement.appendChild(document.createTextNode(cssCode));
  }
  document.getElementsByTagName("head")[0].appendChild(styleElement);
}


/**
 * This function calls itself until all the required libs are properly loaded
 */
function fireItUp(instance_id, is_gadget){
 if(window.appratus_appdata === undefined){
   setTimeout("fireItUp('" + instance_id + "', " + is_gadget + ");", 500);
 } else {

   //
   // NEED TO CHANGE THIS TO window.appointron_start
   //
   if(window.start === undefined){
     setTimeout("fireItUp('" + instance_id + "', " + is_gadget + ");", 500);
   } else {
     if (!is_gadget){
       jQuery('a[rel*=facebox]').facebox();
     }

     //
     // NEED TO CHANGE THIS TO appointron_start(instance_id)
     //
     start(instance_id);
   }
 }
}

//
// NEXT!!!
//
// Need to embed html wireframe in showAppointmentsGadget, just like showAppointmentsPopup
// Need to add "appointments_gadget_core_js"
// Need to add code gen for embed gadget
//
