/********************************************************************
          FILE:          main.cpp
   DESCRIPTION:          CGI entry point
 ********************************************************************/
#include "cyw_js.h"
#include "cyindex.h"
#include "cyw_qrencode.h"
#include "cyw_util_sha.h"
using namespace std;
#include "cyw_mem.h"
/*******************************************************************
      FUNCTION:          cgimain
   DESCRIPTION:          Program entry point
 *******************************************************************/
int                      main (int argc, char **argv)
{
    //////////////////////////////////////
    //  Create the main JS object
    cyjs *js = new cyjs (argc, argv);
    //////////////////////////////////////
    //  Decode the request
    string cyw_key = js->_cgi->form ("cyw_timestamp");
    string cyw_request = js->_cgi->form ("cyw_request");
    if (cyw_request.size () < 1)
        cyw_request = "default";
    else
        cyw_request = decode (cyw_request.c_str (), cyw_key.c_str ());
    cyindex index (js, js->_dbdefault, "/cyware/stormweb.cgi");
    ///////////////////////////////////
    //  Session exempt
    bool nosession = true;
    js->_log->logmsg(".........REQUEST:", cyw_request.c_str ());
    //////////////////////////////////////
    //  CGI session processing
    if (js->cgimain (cyw_request,nosession))  {
        //////////////////////////////////////
        //  CGI request?
        string output;
        //////////////////////////////////////
        //  Index page class        
        if (cyw_request == "default")  {
#ifdef _CYSHOPIFY
            js->_cgi->add_form("username","cyware");
            js->_cgi->add_form("password","abcd1234");
            output = index.page_credentials ();
#else
            output = index.page_default ();
#endif
        }  else if (cyw_request == "credentials")  {
            output = index.page_credentials ();
        }  else if (cyw_request == "about")  {
            output = index.page_about ();
        }  else if (cyw_request == "settings")  {
            output = index.page_settings ();
        }  else if (cyw_request == "treemenu")  {
            output = index.page_treemenu ();
        }  else
            output = js->_html->fatal_error("Invalid page requested", "Invalid page requested");
        //////////////////////////////////////
        //  Display the requested page
        js->_cgi->echo (output.c_str ());
    }
    //////////////////////////////////////
    //  Cleanup
    delete (js);
    return 0;
}
