var xmlHttp;
var createHtmlTable;
var calOffset;

function showActivitiesTable()
{
    xmlHttp=getXmlHttpObject();
    createHtmlTable = true;

    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return;
    }
    var url=mDatabaseLoc+"getMember.php";
    url=url+"?mid=0";
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function showActivitiesCalendar(month,year,offset)
{
    xmlHttp=getXmlHttpObject();
    createHtmlTable = false;
    calOffset = offset;

    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return;
    }
    var url=mDatabaseLoc+"getActivities.php";
    url=url+"?month="+month;
    url=url+"&year="+year;
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=ActivitiesStateChanged;
    xmlHttp.open("GET",url,true);
    //alert("url = "+url);

    xmlHttp.send(null);
}

function getDateStr(m)
{
    var str;
    var d=m.getElementsByTagName('date')[0]

    var day=getXmlElementText(d,'day');
    var month=getXmlElementText(d,'month');
    var year=getXmlElementText(d,'year');
    if (day == 0)
    {
        return "unknown";
    }
    
    str=day+'/'+month;
    if (year != 0)
    {
        str=str+'/'+year;
    }

    return str;
}

function getTimeStr(m)
{
    var str;
    var d=m.getElementsByTagName('time')[0]

    var hour=getXmlElementText(d,'hour');
    var minute=getXmlElementText(d,'minute');
    str=hour+':'+minute;
    return str;
}

function getDurationStr(m)
{
    var str='';
    var d=m.getElementsByTagName('duration')[0]

    var hour=getXmlElementText(d,'hour');
    var minute=getXmlElementText(d,'minute');

    if (Number(hour)>0)
    {
        str=str+stripLeadingZero(hour)+" hour(s)";
    }

    if (Number(minute)>0)
    {
        str=str+" "+minute+" minutes";
    }

    return str;
}

function getDay(m)
{
    var d=m.getElementsByTagName('date')[0]
    return getXmlElementText(d,'day');
}

function updateCalendarData(x)
{
    var currentDay = 0;

    var dayStr = "";
    for(i=0;i<x.length;i++)
    {
        var m = x[i];

        // Check it's valid by looking for an id!
        if (getXmlElementText(m,"id") == "")
        {
            continue;
        }

        var day = getDay(m);

        if (currentDay != day)
        {
            // If we have something for this day update the calender
            if (dayStr.length > 0)
            {
                var dayNum = parseInt(currentDay,10)+calOffset;
                var dayId="act"+dayNum;
                document.getElementById(dayId).innerHTML=dayStr;
            }
            // reset the day string and set it to the current day.
            dayStr="";
            currentDay = day;
        }

        var link = getTimeStr(m)+" - "+getXmlElementText(m,'title');
        dayStr=dayStr+formatCommandLink(getXmlElementText(m,"id"),"update",link,0,0,0);
        dayStr=dayStr+"<br/>\n";
        
    }
    if (dayStr.length > 0)
    {
        var dayNum = parseInt(currentDay,10)+calOffset;
        var dayId="act"+dayNum;
        document.getElementById(dayId).innerHTML=dayStr;
    }

}

function updateHtml(x)
{
    var htmlStr = "<table cellpadding=\"3\">\n";

    for(i=0;i<x.length;i++)
    {
        var m = x[i];

        htmlStr = htmlStr+"<tr>\n";
        if (mAllowUpdate) {
            htmlStr = htmlStr+"<td>\n"
            htmlStr = htmlStr+"<form action=\"memForm.php\"";
            htmlStr = htmlStr+" method=\"post\" target=\"form\">\n";
            htmlStr = htmlStr+"<INPUT type=\"hidden\" name=\"id\" value=\"";
            htmlStr = htmlStr+getXmlElementText(m,'id')+"\">\n";
            htmlStr = htmlStr+"<INPUT type=\"submit\" value=\"update\">\n";
            htmlStr = htmlStr+"</form>\n</td>\n";
        }
        htmlStr = htmlStr+"<td>"+getXmlElementText(m,'firstname')+"</td>\n";
        htmlStr = htmlStr+"<td>"+getXmlElementText(m,'lastname')+"</td>\n";
        htmlStr = htmlStr+"<td>"+getXmlElementText(m,'email')+"</td>\n";
        htmlStr = htmlStr+"<td>"+getXmlElementText(m,'mobile')+"</td>\n";
        htmlStr = htmlStr+"<td>"+getXmlElementText(m,'telephone')+"</td>\n";
        htmlStr = htmlStr+"<td>"+getBirthdayStr(m)+"</td>\n";
        htmlStr = htmlStr+"<td>"+getBaptisedStr(m)+"</td>\n";
        htmlStr = htmlStr+"<td>"+getAddressStr(m)+"</td>\n";
        htmlStr = htmlStr+"</tr>\n";
    }
    htmlStr = htmlStr+"</table>\n";

    document.getElementById("memberTable").innerHTML=htmlStr;
}

function ActivitiesStateChanged()
{
    if (xmlHttp.readyState==4)
    {
        var xmlDoc=xmlHttp.responseXML.documentElement;
        var x=xmlDoc.getElementsByTagName('activity');
        if (createHtmlTable == false)
        {
            updateCalendarData(x);
        }
        else
        {
            updateHtml(x);
        }
    }
}


function showActivity(id)
{
    // if we have an id of 0 don't make the call or you'll get back all members
    if (id==0) {
        return;
    }

    xmlHttp=getXmlHttpObject();
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return;
    }
    var url=mDatabaseLoc+"getActivities.php";
    url=url+"?aid="+id;
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=activityStateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function updateDateAndTimeFields(m)
{
    var str;
    var d=m.getElementsByTagName('date')[0]
    updateElement(d,'day');
    updateElement(d,'month');
    updateElement(d,'year');
    updateDomElement('date',getDateStr(m));

    var t=m.getElementsByTagName('time')[0];
    updateElement(t,'hour');
    updateElement(t,'minute');
    updateElement(t,'second');
    updateDomElement('time',getTimeStr(m));

    setDomElement('cmd','update','value');
}

function updateDurationFields(m)
{
    var d=m.getElementsByTagName('duration')[0]

    updateDomElement('duration_hour',getXmlElementText(d,'hour'));
    updateDomElement('duration_minute',getXmlElementText(d,'minute'));

    var str = getDurationStr(m);
    if (str.length>1)
    {
        setDomElement("durationh","Duration:","html");
        updateDomElement('duration',str);
    }
}

function activityStateChanged()
{
    if (xmlHttp.readyState==4)
    {
        var xmlDoc=xmlHttp.responseXML.documentElement;
        var x=xmlDoc.getElementsByTagName('activity');
        var m = x[0];

        updateElement(m,"id");
        updateElement(m,"type");
        updateDomElement('activity',getXmlElementText(m,"title"));
        addElement(m,"location");
        addElement(m,"leader");
        addElement(m,"contact");
        updateElement(m,"details");

        updateDateAndTimeFields(m);
        updateDurationFields(m);
    }
}

function clearForm()
{
    updateDomElement('id','');
    updateDomElement('type','');
    updateDomElement('activity','');
    updateDomElement('location','');
    updateDomElement('leader','');
    updateDomElement('contact','');
    updateDomElement('details','');
    updateDomElement('day','');
    updateDomElement('month','');
    updateDomElement('year','');
    updateDomElement('hour','00');
    updateDomElement('minute','00');
    updateDomElement('second','00');
    updateDomElement('duration_hour','00');
    updateDomElement('duration_minute','00');
}


