var objServiceHttp;
var bServiceEdit;

function loadServices()
{
    objServiceHttp = GetXmlHttp();
    objServiceHttp.open("GET", "../common/db.php5?op=getall&entity=service", true);
    objServiceHttp.onreadystatechange = servicesLoaded;
    objServiceHttp.send(null);
}

function servicesLoaded()
{
    var xmlDataRoot;
    var xmlDataList;
    var i;
    
    if (objServiceHttp.readyState == 4)
    {
        xmlDataRoot = objServiceHttp.responseXML.getElementsByTagName('data')[0];
        xmlDataList = xmlDataRoot.getElementsByTagName('data');
        selService = document.getElementById('service');
        
        selService.remove(0);
        
        for (i=0; i<xmlDataList.length; i++)
        {
            opt = new Option(xmlDataList[i].getAttribute('name'), xmlDataList[i].getAttribute('id'));
            selService.options[selService.options.length] = opt;
        }
    }
}

function addService()
{
    var serviceTitle = document.getElementById('serviceTitle');
    var hdnId = document.getElementById('serviceid');
    var txtName = document.getElementById('servicename');

    bServiceEdit = false;
    serviceTitle.innerText = 'add service';
    hdnId.value = '';
    txtName.value = '';
    showDialog('frmservice');
}

function editService()
{
    var serviceTitle = document.getElementById('serviceTitle');
    var hdnId = document.getElementById('serviceid');
    var txtName = document.getElementById('servicename');
    var selService = document.getElementById('service');
    var opt = selService.options[selService.selectedIndex];
    
    bServiceEdit = true;
    serviceTitle.innerText = "edit service";
    hdnId.value = opt.value;
    txtName.value = opt.text;
    showDialog('frmservice');
}

function serialiseService()
{
    var objXml = getXmlParser();
    var objData = objXml.createElement('data');
    
    if (bServiceEdit)
    {
        objData.setAttribute('id', document.getElementById('service').value);
    }
    objData.setAttribute('name', document.getElementById('servicename').value);
    objXml.appendChild(objData);
    
    return objXml;
}

function loadService(id, f)
{
    showLoading();
    g_f = f;
}

function serviceOk()
{
    var objXml = serialiseService();
    var url;
    
    if (bServiceEdit)
    {
        url = '../common/db.php5?op=update&entity=service';
    }
    else
    {
        url = '../common/db.php5?op=add&entity=service';
    }
    
    hideDialog('frmservice');
    showDialog('frmloading');
    
    objServiceHttp = GetXmlHttp();
    objServiceHttp.open("POST", url, true);
    objServiceHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    objServiceHttp.onreadystatechange = serviceUpdated;
    objServiceHttp.send('xml=' + objXml.xml);
}

function serviceUpdated()
{
    var selService;
    var objXmlData;
    var opt;
    
    if (objServiceHttp.readyState == 4)
    {
        selService = document.getElementById('service');
        objXmlData = objServiceHttp.responseXML.selectSingleNode('/data');
        
        if (bServiceEdit)
        {
            selService.childNodes[selService.selectedIndex].text = document.getElementById('servicename').value;
            showMessage('Service updated.', '', '');
        }
        else
        {
            opt = new Option(document.getElementById('servicename').value, objXmlData.getAttribute('id'));
            selService.options[selService.options.length] = opt;
            opt.selected = true;
            showMessage('Service added.', '', '');
        }
        
        hideDialog('frmloading');
    }
}

function serviceCancel()
{
    hideDialog('frmservice');
}