var objSermonHttp;
var bSermonEdit = false;

function addLeadingZeros(i, size)
{
    var ret = i.toString();
    
    while (ret.length < size)
    {
        ret = '0' + ret;
    }
    
    return ret;
}

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;
}

function loadSermon()
{
    objSermonHttp = GetXmlHttp();
    objSermonHttp.open("GET", "../common/db.php5?op=getall&entity=sermon", true);
    objSermonHttp.onreadystatechange = sermonsLoaded;
    objSermonHttp.send(null);
}

function sermonsLoaded()
{
    var xmlDataList;
    var i;
    
    if (objSermonHttp.readyState == 4)
    {
        xmlDataList = objSermonHttp.responseXML.selectNodes('/data/data');

        //Here we format the list
    }
}

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 = '';
    txtStartVerse.value = '';
    txtEndChapter.value = '';
    txtEndVerse.value = '';
    txtDescription.value = '';
    txtSubTitle.value = '';
    txtSummary.value = '';
    txtDurationm.value = '';
    txtDurations.value = '';
    txtKeywords.value = '';
}

function sermonEdit(id)
{
    var qs = parseQueryString();
    var objXml;
    var objData;
    var pageCaption = document.getElementById('pagecaption');
    
    if (qs['edit'])
    {
        pageCaption.value = 'listen again - edit sermon';
        
        objXml = getXmlParser();
        objData = objXml.createElement('data');
        objData.setAttribute('id', qs['edit']);
        objData.setAttribute('cols', 'id,title,date,speakerid,serviceid,bookid,startchapter,startverse,endchapter,endverse,description,subtitle,summary,durationminutes,durationseconds,keywords,length');
        objXml.appendChild(objData);
        
        objSermonHttp = GetXmlHttp();
        objSermonHttp.open("POST", "../common/db.php5?op=get&entity=sermon", true);
        objSermonHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        objSermonHttp.onreadystatechange = sermonLoaded;
        objSermonHttp.send('xml=' + objXml.xml);
    }
}

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;
    }
}

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 (objSermonHttp.readyState == 4)
    {
        objXmlData = objSermonHttp.responseXML.selectSingleNode('/data/data');
        
        bSermonEdit = true;
        hdnId.value = objXmlData.getAttribute('id');
        txtTitle.value = objXmlData.getAttribute('title');
        txtDate.value = objXmlData.getAttribute('date');
        selectIndexByValue(selSpeaker, objXmlData.getAttribute('speakerid'));
        selectIndexByValue(selService, objXmlData.getAttribute('serviceid'));
        selectIndexByValue(selBook, objXmlData.getAttribute('bookid'));
        txtStartChapter.value = objXmlData.getAttribute('startchapter');
        txtStartVerse.value = objXmlData.getAttribute('startverse');
        txtEndChapter.value = objXmlData.getAttribute('endchapter');
        txtEndVerse.value = objXmlData.getAttribute('endverse');
        txtDescription.value = objXmlData.getAttribute('description');
        txtSubTitle.value = objXmlData.getAttribute('subtitle');
        txtSummary.value = objXmlData.getAttribute('summary');
        txtDurationm.value = addLeadingZeros(objXmlData.getAttribute('durationminutes'), 2);
        txtDurations.value = addLeadingZeros(objXmlData.getAttribute('durationseconds'), 2);
        txtKeywords.value = objXmlData.getAttribute('keywords');
    }
}

function serialiseSermon()
{
    var objXml = getXmlParser();
    var objData = objXml.createElement('data');
    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 (bSermonEdit)
    {
        objData.setAttribute('id', hdnId.value);
    }
    
    objData.setAttribute('title', txtTitle.value);
    objData.setAttribute('date', txtDate.value);
    objData.setAttribute('speakerid', selSpeaker.options[selSpeaker.selectedIndex].value);
    objData.setAttribute('serviceid', selService.options[selService.selectedIndex].value);
    objData.setAttribute('bookid', selBook.options[selBook.selectedIndex].value);
    objData.setAttribute('startchapter', txtStartChapter.value);
    objData.setAttribute('startverse', txtStartVerse.value);
    objData.setAttribute('endchapter', txtEndChapter.value);
    objData.setAttribute('endverse', txtEndVerse.value);
    objData.setAttribute('description', txtDescription.value);
    objData.setAttribute('subtitle', txtSubTitle.value);
    objData.setAttribute('summary', txtSummary.value);
    objData.setAttribute('durationminutes', txtDurationm.value);
    objData.setAttribute('durationseconds', txtDurations.value);
    objData.setAttribute('keywords', txtKeywords.value);
    
    objXml.appendChild(objData);
    
    return objXml;
}

function sermonOk()
{
    var objXml = serialiseSermon();
    var url;
    
    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;
    objSermonHttp.send('xml=' + objXml.xml);
}

function sermonUpdated()
{
    var hdnId = document.getElementById('sermonid');
    var objXmlData;
    var opt;
    var id;
    
    if (objSermonHttp.readyState == 4)
    {
        objXmlData = objSermonHttp.responseXML.selectSingleNode('/data');
        if (bSermonEdit)
        {
            id = hdnId.value;
        }
        else
        {
            id = objXmlData.getAttribute('id');
        }
        
        if (document.getElementById('mp3file').value == '')
        {
            hideDialog('frmLoading');
            window.location = '../listenagain/index.php5';
        }
        else
        {
            uploadmp3(id);
        }
    }
}

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';
    }
}