#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

#include "global.h"

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


static void
read_parameters (char *course, char *key,  char *sender, char *fname, char *infname, int *grp, char *extension)
{

     char temp[30];

     cs_get_required_parameter ("crs", course, MAX_FILENAME);	/* cgihtml library */
     cs_get_required_parameter ("id", key, MAX_KEY);
     cs_get_required_parameter ("grp", temp, 29);
     *grp = atoi(temp);

     cs_get_required_parameter ("sender", sender, MAX_USERNAME);
     cs_get_required_parameter ("fname", fname, MAX_FILENAME);
     cs_get_required_parameter ("inf", infname, MAX_FILENAME);
     cs_get_required_parameter ("extension", extension, MAX_FILENAME);

}

void send_js_file()
{
	char server_name[MAX_PATH  +1];
        get_server_string(server_name, MAX_PATH +1);   /* shared_server_string.h */
	 send_content_type();
	 printf("function flowPlayerOpenFullScreen(config) {\n"
		"   var winWidth = window.screen.availWidth;\n"
		     "var winHeight = window.screen.availHeight;\n"
	       "var fullScreenWindow = window.open('%s%sflowplayer/fullscreen.html?config='+config, 'FlowPlayer', 'left=0,top=0,width='+winWidth+',height='+winHeight+',status=no,resizable=yes');\n"
	 "}\n"         
	 "function flowPlayerExitFullScreen(config) {\n"
		   "self.close();\n"
	 "}\n", server_name, system_data_str("IMAGE_PATH"));      

}
  
 void set_link()
{
  char course[MAX_PATH + 1];	/* from crs=? command line */
  char key[MAX_KEY + 1];	/* from id=? command line */
  SESSION user;
  CONFIG_STRUCT conf;
  int grp = 0;
  char fname[MAX_FILENAME + 1];	
  char infname[MAX_FILENAME + 1];	
  char sender[MAX_USERNAME + 1];	
  char url[MAX_PATH + 1];	
  char target_file[MAX_PATH + 1];	
  char link_flv[MAX_PATH + 1];
  char symlink_fname[MAX_PATH +1];  
  char server_name[MAX_PATH +1];  
  char extension[MAX_FILENAME +1];  

   read_parameters (course, key,  sender, fname, infname, &grp, extension);
   read_configuration_file (course, &conf);	/* shared_util.c */
   validate_key (key, &user, &conf);	/* shared_util.c */
   set_discussion_names (conf.course_path, sender, grp);   /* shared_news_util.c */

   remove_stale_movie_symlinks (user.username, course, conf.access);
   snprintf (target_file, MAX_PATH + 1, "../%s%s", discussion_path, fname);

   get_symlink_movie_fname(course, symlink_fname, &user, extension);     /* shared_util.c */

   /* note next that the path for 'newname' is relative  to the bin directory */
   snprintf (link_flv, MAX_PATH + 1, "../images/links/%s", symlink_fname);
   if (symlink (target_file, link_flv))
       cs_critical_error (ERR_SYMLINK_FAILED, "");

    get_server_string(server_name, MAX_PATH +1);   /* shared_server_string.h */
    snprintf(url, MAX_PATH +1, "%s%slinks/%s", server_name, system_data_str("IMAGE_PATH"), symlink_fname);   
     cs_set_value("flv_file_url", url); 
     cs_set_value("flowplayer_path", system_data_str("IMAGE_PATH"));
     cs_set_value("server_name", server_name);
     cs_set_value("bin", system_data_str("ALIAS"));
     cs_cgi_display("launch_flowplayer", 1);
}	
  

 

int
main (void)
{
  char *js =0; 

   cs_cgi_init();
  
   js = hdf_get_value(global_cgi->hdf, "Query.js", "");
   if(strlen(js))
      send_js_file();
   else
     set_link();
   cs_cgi_destroy();
  return (0);
}

