//----------------------------------------------------------------------
//- Display the WHARFF Registration Form
//----------------------------------------------------------------------

//----------------------------------------------------------------------

   var wharffEvents;

   function wharffDisplayEventTable(eventList)
   {
     eventList    = eventList ? eventList : createWharffEvents();
     wharffEvents = eventList;
     var columns  = eventList.getTracks();
     var i,r,c;

     // Display The Headers

     document.writeln('<tr>');
     document.writeln(' <td>&nbsp;');
     document.writeln('  <input type="hidden" name="scriptName"');
     document.writeln('         value="'+wharffEvents.script+'">');
     document.writeln(' </td>');

     for (i=0; i<columns.length ;i++)
     {
       var e = wharffEvents.getEventAt(1, i+1);

       document.writeln('<td valign="bottom" align="center" class="'+e.style+'">');
       document.writeln(' <span class="wharffFontMedium"><b>'+columns[i]+'</b></span>');
       document.writeln('</td>');
     }

     document.writeln('</tr>');

     // Display the Events
    var rows = wharffEvents.rows();
    var cols = wharffEvents.columns();

    for (r=1; r<rows; r++)
    {
     // Create the box that expands to show Bios and Descriptions
     document.writeln('<tr>');
     document.writeln(' <td></td>');
     document.writeln(' <td colspan='+(cols-1)+' id="wharffText'+r+'" ');
     document.writeln('     class="wharffBorder wharffFontPopup" style="display:none">');
     document.writeln('  <input type="hidden" id="wharffText'+r+'_id" value="">');
     document.writeln('  <div style="text-align:right">');
     document.writeln('   <font size=1>Close</font> <a href="javascript:wharffHideText(\'wharffText'+r+'\');"');
     document.writeln('    title="Close the Information Window">[X]</a>');
     document.writeln('  </div>');
     document.writeln('  <div id="wharffText'+r+'_text">');
     document.writeln('  </div>');
     document.writeln(' </td>');
     document.writeln('</tr>');
     document.writeln('<tr>');

     for (c=1; c<cols; c++)
     {
       var e = wharffEvents.getEventAt(r, c);

       if (c == 1)
       {
        document.writeln('<td valign="middle" class="wharffColumn0">');
        document.writeln(' <span class="wharffFontTime">'+e.time+'</span>');
        document.writeln('</td>');
       }

       if (!e)
       {
        document.writeln('<td>&nbsp;</td>');
        continue;
       }

       if (!e.taken)
        e.taken = 0;

       var id = 'reg_'+e.id;

       document.writeln('<td valign="top" align="center" class="'+e.style+'">');

       document.writeln(' <input type="hidden" name="eventId"        value="'+e.id+'">'       );
       document.writeln(' <input type="hidden" name="eventName"      value="'+e.eventName+'">');
       document.writeln(' <input type="hidden" name="eventTrack"     value="'+e.track+'">'    );
       document.writeln(' <input type="hidden" name="eventTime"      value="'+e.time+'">'     );
       document.writeln(' <input type="hidden" name="eventPresenter" value="'+e.presenter+'">');
       document.writeln(' <input type="hidden" name="eventTaken"     value="'+e.taken+'">'    );
       document.writeln(' <input type="hidden" name="eventRegister"  id="'+id+'" value="0">');

       if (e.isAvailable())
        document.writeln(' <input type="checkbox" onclick="wharffClick(\''+id+'\')">');
       else
        document.writeln(' [FULL]');
//      document.writeln(' [FULL]<input type="hidden" name="eventRegister" value="0">');

       var eventName = '<span class="wharffFontMedium">'+e.eventName+'</span>';
       var person    = '<span class="wharffFontSmall">'+e.presenter+'</span>';

       if (e.bio)
       {
        person  = '<a href="javascript:wharffShowText(\'wharffText'+r+'\',';
        person += 'wharffEvents.getEventAt('+r+','+c+').bio,';
        person += '\''+e.id+'-bio\');" ';
        person += 'title="Information about '+e.presenter+'" ';
        person += '><span class="wharffFontSmall">'+e.presenter+'</span></a>';
       }

       if (e.description)
       {
        eventName  = '<a href="javascript:wharffShowText(\'wharffText'+r+'\',';
        eventName += 'wharffEvents.getEventAt('+r+','+c+').description,';
        eventName += '\''+e.id+'-desc\');" ';
        eventName += 'title="Information about '+e.eventName+'" ';
        eventName += '><span class="wharffFontMedium">'+e.eventName+'</span></a>';
       }

       document.writeln(' <br>'+eventName);
       document.writeln(' <br>'+person);
       document.writeln('</td>');
     }

     document.writeln('</tr>');
    }
   }

//----------------------------------------------------------------------

  function wharffClick(id)
  {
    var field = document.getElementById(id);

//  alert("WharffRegister: id = "+id+" value = "+field.value);

    field.value = (field.value == '1') ? '0' : '1';
  }

//----------------------------------------------------------------------

  function wharffTrim(str)
  {
   return !str ? '' : String(str).replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  }

//----------------------------------------------------------------------

  function wharffValidateForm (form)
  {
   var ids        = document.getElementsByName("eventId"       );
   var registered = document.getElementsByName("eventRegister" );
   var userNames  = document.getElementsByName("registerName"  );
   var userPhones = document.getElementsByName("registerPhone" );
   var userEmails = document.getElementsByName("registerEmail" );

   var msg        = '';
   var seminars   = [];
   var emailRegex = /[0-9a-zA-Z_.]+@[0-9a-zA-Z_.]+\.[0-9a-zA-Z_]/;
   var uName      = wharffTrim(userNames [0].value);
   var uPhone     = wharffTrim(userPhones[0].value);
   var uEmail     = wharffTrim(userEmails[0].value);


   for (var i=0; i<registered.length; i++)
   {
    if (registered[i].value == '1')
    {
     seminars.push(ids[i].value);
     any = true;
    }
   }

   if (seminars.length === 0)
    msg = msg + "- At least one event must be selected.\n";

   if (uName.length === 0)
    msg = msg + "- Please provide your name.\n";

   if (uPhone.length === 0)
    msg = msg + "- Please provide your phone number.\n";

   if (uEmail.length === 0)
    msg = msg + "- Please provide your email address.\n";
   else
   {
    if (!emailRegex.test(uEmail))
     msg = msg + "- Please provide a valid email address.\n";
   }

   if (msg.length > 0)
   {
     alert("The following errors have been found:\n\n"+msg);
     return false;
   }
   msg =       'Please review and confirm the following information:\n\n';
   msg = msg + '- Your Name: '+uName+'\n';
   msg = msg + '- Your Email: '+uEmail+'\n';
   msg = msg + '- Your Phone: '+uPhone+'\n';
   msg = msg + '\nYou wish to register for the following:\n\n';

   for (var n=0; n<seminars.length; n++)
   {
    var id    = seminars[n];
    var event = wharffEvents.getEventById(id);

    msg = msg + '- '+event.eventName+' ('+event.time+')\n';
   }

   msg = msg + '\nIf the information is correct, press "Ok" to complete registration. ';
   msg = msg + 'To change any information or cancel registration, press "Cancel"\n';

   if (confirm(msg))
   {
//  form.submit();
    return true;
   }

   return false;
  }

//----------------------------------------------------------------------

 function wharffShowText(id, text, token)
 {
  var field = document.getElementById(id);
  var area  = document.getElementById(id+"_text");
  var oldT  = document.getElementById(id+"_id");
  var v     = oldT.value;

  // token: r.c-text;

  var rx    = /\d+\.(\d+)-\w+/;
  var parse = rx.exec(token);
  var c     = "wharffColumn"+parse[1];

  if (v == token)
  {
   return wharffHideText(id);
  }

  text = '<table border="0" width="100%"><tr><td width="5%" class="'+c+'"></td>' +
         '<td>'+text+'</td><td width="5%" class="'+c+'"></td></tr></table>';

//field.className       = "wharffColumn"+c;
  field.style.textAlign = "left";
  field.style.display   = "";
  area.innerHTML        = text;
  oldT.value            = token;
 }

//----------------------------------------------------------------------

 function wharffHideText(id)
 {
  var field = document.getElementById(id);
  var area  = document.getElementById(id+"_text");
  var oldT  = document.getElementById(id+"_id");

  field.style.display = "none";
  area.innerHTML      = "";
  oldT.value          = "";
 }

//----------------------------------------------------------------------

 function wharffHelp(id)
 {
  var field = document.getElementById(id);
  var text  = document.getElementById(id+"_text");

  field.style.display = (field.style.display == "") ? "none" : "";
  text.innerHTML      = (text.innerHTML == "show" ) ? "hide" : "show";
 }

//----------------------------------------------------------------------


