var objSermonHttp;
var objEditSermonHttp;
var bSermonEdit = false;

/////////////////////////////////////////////////////////////////////

function addLeadingZeros(i, size)
{
  var ret = i.toString();

  while (ret.length < size)
  {
    ret = '0' + ret;
  }
  return ret;
} // end of addLeadingZeros

/////////////////////////////////////////////////////////////////////

function parseQueryString()
{
  var qs = document.URL.split('?');
  var entries;
  var ret = new Array();
  var entry;

  if (qs.length > 1)
  {
    entries = qs[1].split('&');
    ret = new Array();
    entry;

    for (var i=0; i<entries.length; i++)
    {
      entry = entries[i].split('=');
      ret[decodeURI(entry[0])] = decodeURI(entry[1]);
    }
  }
  return ret;
} // end of parseQueryString

/////////////////////////////////////////////////////////////////////
// not used
function loadSermon()
{
  objSermonHttp = GetXmlHttp();
  objSermonHttp.open("GET", "../common/db.php5?op=getall&entity=sermon", true);
  objSermonHttp.onreadystatechange = sermonsLoaded;
  objSermonHttp.send(null);
} // end of loadSermon

/////////////////////////////////////////////////////////////////////

function sermonsLoaded()
{
  var xmlDataRoot;
  var xmlDataList;
  var selSermon;
  var i;

  if (objSermonHttp.readyState == 4)
  {
    xmlDataRoot = objSermonHttp.responseXML.getElementsByTagName('reply')[0];
    xmlDataList = xmlDataRoot.getElementsByTagName('sermon');

    //Here we format the list
  }
} // end of sermonsLoaded

/////////////////////////////////////////////////////////////////////

// Note: this has not been tested and will not work
//   it is not called anywhere
function addSermon()
{
  var pageCaption = document.getElementById('pagecaption');
  var hdnId = document.getElementById('sermonid');
  var txtTitle = document.getElementById('title');
  var txtDate = document.getElementById('date');
  var selSpeaker = document.getElementById('speaker');
  var selService = document.getElementById('service');
  var selBook = document.getElementById('book');
  var txtStartChapter = document.getElementById('startchapter');
  var txtStartVerse = document.getElementById('startverse');
  var txtEndChapter = document.getElementById('endchapter');
  var txtEndVerse = document.getElementById('endverse');
  var txtDescription = document.getElementById('sermondescription');
  var txtSubTitle = document.getElementById('subtitle');
  var txtSummary = document.getElementById('summary');
  var txtDurationm = document.getElementById('durationm');
  var txtDurations = document.getElementById('durations');
  var txtKeywords = document.getElementById('sermonkeywords');

  bSermonEdit = false;
  pageCaption.value = 'listen again - add sermon';
  hdnId.value = '';
  txtTitle.value = '';
  txtDate.value = '';
  selSpeaker.selectedIndex = 0;
  selService.selectedIndex = 0;
  selBook.selectedIndex = 0;
  txtStartChapter.value = "asd";
  txtStartVerse.value = '';
  txtEndChapter.value = '';
  txtEndVerse.value = '';
  txtDescription.value = '';
  txtSubTitle.value = '';
  txtSummary.value = '';
  txtDurationm.value = '';
  txtDurations.value = '';
  txtKeywords.value = '';
} // end of addSermon

/////////////////////////////////////////////////////////////////////
//
// Create a request to the database to get sermon data for a particular ID
// the ID is contained is the sermon to be edited.
function sermonEdit(id)
{
  var objXml;
  var objData;
  var objId;
  var objCols;
  var newtext;

  bSermonEdit = true;
  objXml = getXmlParser();
  objData = objXml.getElementsByTagName("data")[0];

  objId  = objXml.createElement('id');
  newtext = objXml.createTextNode(id);//qs['edit']);
  objId.appendChild(newtext);
  objData.appendChild(objId);

  objCols = objXml.createElement('cols');
  newtext = objXml.createTextNode('*');
  objCols.appendChild(newtext);
  objData.appendChild(objCols);

  objEditSermonHttp = GetXmlHttp();
  objEditSermonHttp.open("POST", "../common/db.php5?op=get&entity=sermon", true);
  objEditSermonHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  objEditSermonHttp.onreadystatechange = sermonLoaded;
  objEditSermonHttp.send('abc=' + extractXml(objXml));

} // end of sermonEdit

/////////////////////////////////////////////////////////////////////

function selectIndexByValue(sel, value)
{
  var opt = null;
  var i;

  for (i=0; i<sel.options.length && opt == null; i++)
  {
    if (sel.options[i].value == value)
    {
      opt = sel.options[i];
    }
  }

  if (opt != null)
  {
    opt.selected = true;
  }
}// end of selectIndexByValue

/////////////////////////////////////////////////////////////////////

function checkElement(element)
{
  var returnText = '';
  
  if ( element != null )
  {
    returnText = element.nodeValue;
  }
  return returnText;
}

/////////////////////////////////////////////////////////////////////
// callback function for sermon edit.
//
function sermonLoaded()
{
  var hdnId = document.getElementById('sermonid');
  var txtTitle = document.getElementById('title');
  var txtDate = document.getElementById('sermondate');
  var selSpeaker = document.getElementById('speaker');
  var selService = document.getElementById('service');
  var selBook = document.getElementById('book');
  var txtStartChapter = document.getElementById('startchapter');
  var txtStartVerse = document.getElementById('startverse');
  var txtEndChapter = document.getElementById('endchapter');
  var txtEndVerse = document.getElementById('endverse');
  var txtDescription = document.getElementById('sermondescription');
  var txtSubTitle = document.getElementById('subtitle');
  var txtSummary = document.getElementById('summary');
  var txtDurationm = document.getElementById('durationm');
  var txtDurations = document.getElementById('durations');
  var txtKeywords = document.getElementById('sermonkeywords');

  if (objEditSermonHttp.readyState == 4)
  {
    var xmlDoc = objEditSermonHttp.responseXML;       // get the XML returned
    var xmlReply  = xmlDoc.documentElement;
    var tmpData;

        hdnId.value = xmlReply.getElementsByTagName('id')[0].childNodes[0].nodeValue;
        txtTitle.value = xmlReply.getElementsByTagName('title')[0].childNodes[0].nodeValue;
        txtDate.value = xmlReply.getElementsByTagName('date')[0].childNodes[0].nodeValue;
        selectIndexByValue(selSpeaker, xmlReply.getElementsByTagName('speakerid')[0].childNodes[0].nodeValue);
        selectIndexByValue(selService, xmlReply.getElementsByTagName('serviceid')[0].childNodes[0].nodeValue);
        selectIndexByValue(selBook, xmlReply.getElementsByTagName('bookid')[0].childNodes[0].nodeValue);
        txtStartChapter.value = xmlReply.getElementsByTagName('startchapter')[0].childNodes[0].nodeValue;
        txtStartVerse.value = xmlReply.getElementsByTagName('startverse')[0].childNodes[0].nodeValue;
        txtEndChapter.value = xmlReply.getElementsByTagName('endchapter')[0].childNodes[0].nodeValue;
        txtEndVerse.value = xmlReply.getElementsByTagName('endverse')[0].childNodes[0].nodeValue;

        txtDescription.value = checkElement(xmlReply.getElementsByTagName('description')[0].childNodes[0]);
        txtSubTitle.value = checkElement(xmlReply.getElementsByTagName('subtitle')[0].childNodes[0]);
        txtSummary.value = checkElement(xmlReply.getElementsByTagName('summary')[0].childNodes[0]);
        txtDurationm.value = addLeadingZeros(xmlReply.getElementsByTagName('durationminutes')[0].childNodes[0].nodeValue, 2);
        txtDurations.value = addLeadingZeros(xmlReply.getElementsByTagName('durationseconds')[0].childNodes[0].nodeValue, 2);
        txtKeywords.value = checkElement(xmlReply.getElementsByTagName('keywords')[0].childNodes[0]);
    }
} // end of sermonLoaded

/////////////////////////////////////////////////////////////////////

function addElement(nodeName, sourceString, element, objXml )
{
  var newElement = objXml.createElement(nodeName);
  var newtext   = objXml.createTextNode(sourceString);
  newElement.appendChild(newtext);
  element.appendChild(newElement);
} // end of addElement

/////////////////////////////////////////////////////////////////////

function serialiseSermon()
{
  var objXml = getXmlParser();
  var objData = objXml.getElementsByTagName("data")[0];

  var hdnId = document.getElementById('sermonid');
  var txtTitle = document.getElementById('title');
  var txtDate = document.getElementById('sermondate');
  var selSpeaker = document.getElementById('speaker');
  var selService = document.getElementById('service');
  var selBook = document.getElementById('book');
  var txtStartChapter = document.getElementById('startchapter');
  var txtStartVerse = document.getElementById('startverse');
  var txtEndChapter = document.getElementById('endchapter');
  var txtEndVerse = document.getElementById('endverse');
  var txtDescription = document.getElementById('sermondescription');
  var txtSubTitle = document.getElementById('subtitle');
  var txtSummary = document.getElementById('summary');
  var txtDurationm = document.getElementById('durationm');
  var txtDurations = document.getElementById('durations');
  var txtKeywords = document.getElementById('sermonkeywords');

  var valueStartChapter = txtStartChapter.value;
  var valueStartVerse = txtStartVerse.value;
  var valueEndChapter = txtEndChapter.value;
  var valueEndVerse = txtEndVerse.value;
  var valueDurationM = txtDurationm.value;
  var valueDurationS = txtDurations.value;

  if (valueStartChapter == '') {valueStartChapter = 0 };
  if (valueStartVerse == ''  ) { valueStartVerse = 0 };
  if (valueEndChapter == ''  ) { valueEndChapter = 0 };
  if (valueEndVerse == ''    ) { valueEndVerse = 0 };
  if (valueDurationM == ''   ) { valueDurationM = 0 };
  if (valueDurationS == ''   ) { valueDurationS = 0 };

  if (bSermonEdit)
  {
    addElement('id', hdnId.value, objData, objXml);
  }

  addElement('title', txtTitle.value, objData, objXml);
  addElement('date', txtDate.value, objData, objXml);
  addElement('speakerid', selSpeaker.options[selSpeaker.selectedIndex].value, objData, objXml);
  addElement('serviceid', selService.options[selService.selectedIndex].value, objData, objXml);
  addElement('bookid', selBook.options[selBook.selectedIndex].value, objData, objXml);
  addElement('startchapter', valueStartChapter, objData, objXml);
  addElement('startverse', valueStartVerse, objData, objXml);
  addElement('endchapter', valueEndChapter, objData, objXml);
  addElement('endverse', valueEndVerse, objData, objXml);
  addElement('description', txtDescription.value, objData, objXml);
  addElement('subtitle', txtSubTitle.value, objData, objXml);
  addElement('summary', txtSummary.value, objData, objXml);
  addElement('durationminutes', valueDurationM, objData, objXml);
  addElement('durationseconds', valueDurationS, objData, objXml);
  addElement('keywords', txtKeywords.value, objData, objXml);

  return objXml;
} // end of serialiseSermon

/////////////////////////////////////////////////////////////////////

function sermonOk()
{
  var objXml = serialiseSermon();
  var url;
  var a;

  if (bSermonEdit)
  {
    url = '../common/db.php5?op=update&entity=sermon';
  }
  else
  {
    url = '../common/db.php5?op=add&entity=sermon';
  }

  showDialog('frmloading');

  objSermonHttp = GetXmlHttp();
  objSermonHttp.open("POST", url, true);
  objSermonHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  objSermonHttp.onreadystatechange = sermonUpdated;

  a = extractXml(objXml);
  objSermonHttp.send("abc=" + a);

}  // end of sermonOk

/////////////////////////////////////////////////////////////////////

function sermonUpdated()
{
  var hdnId = document.getElementById('sermonid');
  var id;

  if (objSermonHttp.readyState == 4)
  {
    hideDialog('frmloading');
    var xmlDoc = objSermonHttp.responseXML;       // get the XML returned
    var xmlReply  = xmlDoc.documentElement;

    if (!displayError(xmlReply))
    {

      if (bSermonEdit)
      {
        id = hdnId.value;
      }
      else
      {
        var xmlId = xmlReply.getElementsByTagName('id')[0];
        id = xmlId.childNodes[0].nodeValue;

      if (document.getElementById('mp3file').value == '')
      {
        hideDialog('frmloading');
        window.location = '../listenagain/index.php5';
      }
      else
      {
        uploadmp3(id);
      }
      }
    }
  }
} // end of sermonUpdated

/////////////////////////////////////////////////////////////////////

function uploadmp3(id)
{
    var frmUpload = document.getElementById('frmupload');

    frmUpload.setAttribute('action', 'uploadmp3.php5?id=' + id);
    frmUpload.submit();
}

/////////////////////////////////////////////////////////////////////

function mp3uploaded()
{
    var ifTarget = document.getElementById('uploadtarget');
    var msg = '';
    var bodies;

    if (ifTarget != null && ifTarget.contentWindow != null && ifTarget.contentWindow.document != null)
    {
        bodies = ifTarget.contentWindow.document.getElementsByTagName('body');

        if (bodies.length > 0)
        {
            msg = bodies[0].innerHTML;
        }
    }

    hideDialog('frmloading');

    if (msg != '')
    {
        alert(msg);
        window.location = '../listenagain/index.php5';
    }
}

/////////////////////////////////////////////////////////////////////

