var currentTId = -1;
var curIx = 0;
var saveid = -1;
var savebg;
var savecolor;
var map;
var curItn = -1;
var itnCtr = 0;
var zoomlevel = 13;

function initialize(place)
{
    var oElem = document.getElementById("tid" + curIx);
    if (oElem != null)
        currentTId = oElem.innerText;
    
    if (GBrowserIsCompatible())
    {
        var place = document.getElementById("location").value;
        if (place == "Europe" || place == "Africa" ||
            place == "Australia" || place == "Asia" ||
            place == "North America" || place == "South America" ||
            place == "China" || place == "usa")
            zoomlevel = 3;
            
        map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallZoomControl());
        map.addControl(new GMapTypeControl());
        decoder = new GClientGeocoder();
        decoder.getLatLng(place, cbAddress);
        document.getElementById("placetag").innerText = place;
    }
}

function cbAddress(point)
{
    if (point == null)
        map.setCenter(new GLatLng(47.4419, -122.1419), 13);
    else
    {
        map.setCenter(point, zoomlevel);
    }
}

function changeLocation()
{
    if (map != null)
    {
        place = document.getElementById("placetag").innerText;
        if (place == "Europe" || place == "Africa" ||
            place == "Australia" || place == "Asia" ||
            place == "North America" || place == "South America" ||
            place == "China")
            zoomlevel = 3;
        else
            zoomlevel = 13
        
        decoder = new GClientGeocoder();
        decoder.getLatLng(place, cbAddress);
    }
}

var req;
function save_Click()
{
    var p = document.getElementById("place");
    var s = document.getElementById("start");
    var e = document.getElementById("end");
    var h = document.getElementById("hotel");
    var a = document.getElementById("hoteladdress");
    var ph = document.getElementById("phone");

    var data;

    if (curItn == -1)
    {                        
        data = document.getElementById("uid").value + "|" + currentTId + "|" + itnCtr + "|" + p.value + "|" + s.value + "|" + e.value + "|" + h.value + "|" + a.value + "|" + ph.value;
        var url = "Interface.asmx/SaveItineraryInfo?itin=" + data;
        req = new XMLHttpRequest;
        req.onreadystatechange = cbSaveItin;
        req.open("GET", url, false);
        req.send(null);

        var info = document.getElementById("info");
        var n = document.createElement("<div class='in'>");
        n.innerText = p.value + ": " + s.value + "-" + e.value;
        info.appendChild(n);
        
        p.value = "";
        s.value = "";
        e.value = "";
        h.value = "";
        a.value = "";
        ph.value = "";
        
        p.focus();
        itnCtr++;
    }
    else
    {
        data = p.value + "|" + s.value + "|" + e.value + "|" + h.value + "|" + a.value + "|" + ph.value;
        var url = "Interface.asmx/SaveItinItem?Uid=" + document.getElementById("userID").value + "&Utid=" + currentTId + "&Itid=" + curItn + "&Item=" + data;
        req = new XMLHttpRequest;
        req.open("GET", url, false);
        req.send(null);
    }
}

function cbSaveItin()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            if (req.responseXML.text != "")
                alert(req.responseXML.text);
        }
    }
}

function cbItin()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var info = document.getElementById("itinfo");
            info.innerHTML = req.responseXML.text;
        }
    }
}

function itin_Click(id)
{
    var ix = id.replace("itin", "");
    var url = "Interface.asmx/GetItinItem?Uid=" + document.getElementById("userID").value + "&Utid=" + currentTId + "&Index=" + ix;
    req = new XMLHttpRequest;
    req.onreadystatechange = cbItem;
    req.open("GET", url, true);
    req.send(null);
    curItn = document.getElementById("itid" + ix).value;
}

function cbItem()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var place = document.getElementById("place");
            if (place == null)
                return;
                
            var response = req.responseXML.text;
            var strs = response.split("|");
            document.getElementById("place").value = strs[0];
            document.getElementById("start").value = strs[1];
            document.getElementById("end").value = strs[2];
            document.getElementById("hotel").value = strs[3];
            document.getElementById("hoteladdress").value = strs[4];
            return;
        }
        else
        {
            curItn = -1;
        }
    }
}

function getFriendComments()
{
    var key = document.getElementById("sk").value;
    var url = "Interface.asmx/GetFriendComments?sessionKey=" + key + "&Uid=" + document.getElementById("userID").value + "&Utid=" + document.getElementById("ct").value;
    alert(url);
    req = new XMLHttpRequest;
    req.onreadystatechange = cbComments;
    req.open("GET", url, true);
    req.send(null);
}

function cbComments()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var info = document.getElementById("cArea");
            info.innerHTML += req.responseXML.text;
            return;
        }
        
        if (req.status == 500)
            alert("500 error");
    }
}

function comm_Click()
{
    var uid = document.getElementById("userID").value;
    var comment = document.getElementById("comment").value;
    var url = "Interface.asmx/SaveFriendComment?&Uid=" + uid + "&Utid=" + document.getElementById("ct").value + "&Fid=" + uid + "&Comment=" + comment;
    req = new XMLHttpRequest;
    req.onreadystatechange = cbAddComm;
    req.open("GET", url, true);
    req.send(null);
}
 
function cbAddComm()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var info = document.getElementById("cArea");
            info.innerHTML = "";
            getFriendComments();
            return;
        }
        
        if (req.status == 500)
            alert("500 error");
    }
}

function trip_Click(id)
{
    if (id == saveid)
        return;
        
    if (saveid != -1)
    {
        var savetrip = document.getElementById("trip" + saveid);
        savetrip.style.color = savecolor;
        savetrip.style.backgroundColor = savebg;
    }
    
    curIx = id;
    var trip = document.getElementById("trip" + id);
    
    saveid = id;
    savecolor = trip.style.color;
    savebg = trip.style.backgroundColor;
    
    trip.style.backgroundColor = "#204c98";
    trip.style.color = "#ffffff";
    
    var desc = document.getElementById("desc" + id);
    var st = document.getElementById("start" + id);
    var end = document.getElementById("end" + id);
    currentTId = document.getElementById("tid" + id).innerText;
    document.getElementById("tripID").value = currentTId;
    
    document.getElementById("Location").value = trip.innerText;
    document.getElementById("startDate").value = st.innerText;
    document.getElementById("endDate").value = end.innerText;
    document.getElementById("description").value = desc.innerText;
    
    // get any itinerary info if there            
    var url = "Interface.asmx/GetItineraryInfo?Uid=" + document.getElementById("userID").value + "&Utid=" + currentTId;
    req = new XMLHttpRequest;
    req.onreadystatechange = cbItin;
    req.open("GET", url, true);
    req.send(null);
}

function updtrip_Click()
{
    var place = document.getElementById("Location").value;
    var st = document.getElementById("startDate").value;
    var end = document.getElementById("endDate").value;
    var desc = document.getElementById("description").value;
    
    if (place == "" || st == "" || end == "" || desc == "")
    {
        alert ("Not enough trip information");
        return;
    }
    
    document.getElementById("trip" + curIx).innerText = place;
    document.getElementById("desc" + curIx).innerText = desc;
    document.getElementById("start" + curIx).innerText = st;
    document.getElementById("end" + curIx).innerText = end;
    
    var data = place + "|" + desc + "|" + st + "|" + end;
    var uid = document.getElementById("userID").value;
    var url = "Interface.asmx/UpdateTripInfo?Uid=" + uid + "&Utid=" + currentTId + "&Trip=" + data;
    req = new XMLHttpRequest;
    req.onreadystatechange = cbTripUpd;
    req.open("GET", url, true);
    req.send(null);
}

function cbTripUpd()
{
    if (req.readyState == 4)
    {
        if (req.status != 200)
        {
            alert("error: status = " + req.status);
        }
    }
}
