#include <stdio.h>
#include <sys/stat.h>		/** for stat() */
#include <dirent.h>
#include <string.h>


#include "global.h"
#include <ClearSilver.h>


#include "manhat-lib/shared_util.h"
#include "manhat-lib/shared_server_string.h"
#include "manhat-lib/shared_cs_util.h"
#include "manhat-lib/shared_system_data.h"


static void
read_parameters (char *symlink, int *send_smil_file, int *is_nokia_tablet)
{

  char tmp[256];


  cs_get_required_parameter ("link", symlink, MAX_FILENAME);  /* shared_cs_util.c */
  cs_get_optional_parameter ("smil", tmp, 9);
  *send_smil_file = *tmp? 1: 0;
  
  /*Nokia N800 handheld tablet browser detection
  ** For my N800 running OS2008 the full User Agent string is:
  ** Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9a6pre) Gecko/20071128 Firefox/3.0a1 Tablet browser 0.2.2 RX-34+RX-44_2008SE_2.2007.50-2
  */
  cs_get_optional_parameter("HTTP.UserAgent", tmp, 255);
  *is_nokia_tablet = strstr(tmp, "Tablet")? 1: 0; 

}


static void
set_index_values(const char *symlink)
{
 char server_string[MAX_PATH + 1];
 char url[MAX_PATH + 1];
 char sender[MAX_USERNAME +1];
 char crs[MAX_PATH +1];
 char id[MAX_KEY +1];
 char dir[MAX_FILENAME +1];
 char grp[6]; 
 
 
 get_server_string(server_string, MAX_PATH + 1);   /* shared_server_string.c */

 snprintf(url,MAX_PATH + 1, "%s?link=%s&amp;smil=1", "lectern_handler", symlink);
 cs_set_value("view_presentation_url", url);


 snprintf(url,MAX_PATH + 1, "%s%slinks/%s/voice.mp3",
                                   server_string, system_data_str("IMAGE_PATH"), symlink);
 cs_set_value("download_mp3_url", url);
 
  /* 
  ** provide url for mp3 player, so users
  ** can listen to the voice.mp3 file
  */
  cs_set_server_name();
  if(get_mp3_player() == 2)
     snprintf(url, MAX_PATH +1, "podcast_launch_framaplayer?link=%s", symlink);
  else
     snprintf(url, MAX_PATH +1, "podcast_launch_jwplayer?link=%s", symlink);

  cs_set_value("wimpy_button_url", url);  
 


 snprintf(url,MAX_PATH + 1, "%s%slinks/%s/printslides.html",
                                   server_string, system_data_str("IMAGE_PATH"), symlink);
 cs_set_value("view_slides_url", url);

 cs_get_required_parameter("sender", sender, MAX_USERNAME);
 cs_get_required_parameter("id", id, MAX_KEY);
 cs_get_required_parameter("crs", crs, MAX_PATH);
 cs_get_required_parameter("dir", dir, MAX_FILENAME);
 cs_get_required_parameter("grp", grp, 5);

 snprintf(url,MAX_PATH + 1, "%s?crs=%s&id=%s&dir=%s&sender=%s&grp=%s", "web_page.zip", crs, id, dir, sender, grp);
 cs_set_value("download_zip_url", url);
  
}





static
void deliver_smil_file(const char *symlink, int is_nokia_tablet)
{

 char server_string[MAX_PATH + 1];
 
  get_server_string(server_string, MAX_PATH + 1);   /* shared_server_string.c */

/**
   if(is_nokia_tablet)
      printf("Content-type: video/vnd.rn-realvideo\n\n");
   else   
      printf("Content-type: application/smil\n\n");
   
**/
   
      printf("Content-type: application/smil\n\n");   
      
//      printf("Content-type: video/x-real\n\n");   
      
   puts("<smil>\n"
        "<body>\n"
        "<par>");
        
   printf("<ref src=\"%s%slinks/%s/present.rp\"/>\n",
               server_string,system_data_str("IMAGE_PATH"),symlink);

   
   printf("<audio src=\"%s%slinks/%s/voice.mp3\" />",
               server_string,system_data_str("IMAGE_PATH"),symlink);

   puts("</par>\n"
        "</body>\n"
        "</smil>");
        


}

   



int
main ()
{

  char symlink[MAX_FILENAME + 1];
  int send_smil_file;
  int is_nokia_tablet;  

  cs_cgi_init();    /* shared_cs_util.c */
  read_parameters (symlink, &send_smil_file, &is_nokia_tablet);
  
  if(send_smil_file)
    deliver_smil_file(symlink, is_nokia_tablet);
  else
   {
    set_index_values(symlink);
    cs_cgi_display ("lectern_handler", 1);    /* shared_cs_util.c */
   }
   
   
  cs_cgi_destroy();        /* shared_cs_util.c */


  return 0;			/* exit successfully */

}

