var teams=new Array();function team_selection_show(){
    try{
        Effect.SlideUp('team_name_wrapper',{duration:1});
        $('team_selection_content').innerHTML='Loading Planes...One Moment';
        new Ajax.Updater('team_selection_content','calls_baja.php',{parameters:'action=fetch_team_selection',asynchronous:false});
        Effect.SlideDown('team_selection',{duration:1});
    }
    catch(e){

    }
}

function team_selection_check(obj){
    try{
        teams=new Array();
        len=$("team_selection_content").getElementsByTagName("input").length;
        count=0;
        for(i=0;i<len;i++){
            if($("ck_"+i).checked==true){
                count++;
                if(count>3){
                    alert("You can only select up to 3 planes");
                    obj.checked=false;
                    break;
                }
                else{
                    teams[count]=$("ck_"+i).name;
                }
            }
        }
    }
    catch(e){}
}
function team_selection_save(){
    try{
        var str='';
        for(i=1;i<teams.length;i++){
            str+="&team[]="+teams[i];
        }
        $('gps_data').innerHTML='One Moment - Loading Data';
        new Ajax.Updater('','calls_baja.php',{parameters:'action=save_team_selection'+str,asynchronous:false});
        fetch_gps_data();
        fetch_gps_gpoints();
        team_selection_close();
    }
    catch(e){}
}

function team_selection_close(){
    try{
        Effect.SlideUp('team_selection',{duration:1});
    }
    catch(e){
    }
}
function team_detail_show(){
    //$('team_detail').style.display="";
    $('team_name_wrapper').style.display='';
    try{Effect.SlideDown('team_detail',{duration:1});}catch(e){}
}
function team_detail_close(){
    //$('team_detail').style.display='none';
    try{Effect.SlideUp('team_detail',{duration:1});}catch(e){}
}

function fetch_gps_data(){
    try{
        new Ajax.Updater('gps_data','calls_baja.php',{parameters:'action=fetch_gps_data'});
    }
    catch(e){

    }
}


function fetch_latest_results(){
    try{
        new Ajax.Updater('gps_data','calls_baja.php',{parameters:'action=fetch_latest_results'});
        fetch_latest_gpoints();
    }
    catch(e){

    }
}

function fetch_team_data(bib,all){
    try{
        $('team_name_wrapper').style.display='';
        new Ajax.Updater('gps_data','calls_baja.php',{parameters:'action=fetch_team_data&id='+bib+"&all="+all});
        new Ajax.Updater('team_name','calls_baja.php',{parameters:'action=fetch_team_details&id='+bib});
        fetch_team_gpoints(bib,all);
    }
    catch(e){

    }
}


function fetch_waypoint_data(){
    try{
        new Ajax.Updater('gps_data','calls_baja.php',{parameters:'action=fetch_waypoint_data'});
        fetch_waypoints();
    }
    catch(e){

    }
}
function fetch_latest_gpoints(){
    try{
        map.clearOverlays();

        GDownloadUrl('calls_baja.php?action=fetch_latest_gpoints', function(data, responseCode) {
            var	points=[];
            var xml = GXml.parse(data);
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                var lat=parseFloat(markers[i].getAttribute("lat"));
                var lng=parseFloat(markers[i].getAttribute("lng"));
                //alert(lat+" "+lng);

                var point = new GLatLng(lat,lng);

                var icon = new GIcon();
                icon.image="img/marker_"+markers[i].getAttribute("bib")+".png";
                icon.iconAnchor=new GPoint(14,25);
                icon.infoWindowAnchor=new GPoint(14,14);
                icon.iconSize = new GSize(20,34)

                points.push(point);
                //map.addOverlay(new GMarker(point));

                txt="Plane "+markers[i].getAttribute("bib")+"<br />"+markers[i].getAttribute("team")+"<br />Date/Time: "+markers[i].getAttribute("date")+"<br />Latitude: "+lat+"<br />Longitude: "+lng;
                map.addOverlay(createMarker(point, txt,icon));
            }
            map.panTo(point);

            //map.addOverlay(new GPolyline(points));
        }
        );
    }
    catch(e){

    }
}

function fetch_team_gpoints(bib,all){
    try{
        map.clearOverlays();
        GDownloadUrl('calls_baja.php?action=fetch_team_gpoints&id='+bib+'&all='+all, function(data, responseCode) {
            var	points=[];
            var xml = GXml.parse(data);
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                var lat=parseFloat(markers[i].getAttribute("lat"));
                var lng=parseFloat(markers[i].getAttribute("lng"));
                //alert(lat+" "+lng);
                var point = new GLatLng(lat,lng);
                points.push(point);
                //map.addOverlay(new GMarker(point))
                var icon = new GIcon();
                icon.image="img/marker_"+markers[i].getAttribute("bib")+".png";
                icon.iconAnchor=new GPoint(14,25);
                icon.infoWindowAnchor=new GPoint(14,14);
                icon.iconSize = new GSize(20,34)


                txt="Plane "+markers[i].getAttribute("bib")+"<br />"+markers[i].getAttribute("team")+"<br />Date/Time: "+markers[i].getAttribute("date")+"<br />Latitude: "+lat+"<br />Longitude: "+lng;

                map.addOverlay(createMarker(point, txt,icon));
            }
            map.addOverlay(new GPolyline(points));
            map.panTo(point);

        }
        );
    }
    catch(e){

    }
}


function fetch_gps_gpoints(){
    try{
        map.clearOverlays();
        for(t=1;t<teams.length;t++){
            teamid=teams[t];
            GDownloadUrl('calls_baja.php?action=fetch_team_gpoints&id='+teamid+'&all=true', function(data, responseCode) {
                var	points=[];
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker");
                for (var i = 0; i < markers.length; i++) {
                    var lat=parseFloat(markers[i].getAttribute("lat"));
                    var lng=parseFloat(markers[i].getAttribute("lng"));
                    var point = new GLatLng(lat,lng);
                    points.push(point);
                    //map.addOverlay(new GMarker(point))
                    var icon = new GIcon();
                    icon.image="img/marker_"+markers[i].getAttribute("bib")+".png";
                    icon.iconAnchor=new GPoint(14,25);
                    icon.infoWindowAnchor=new GPoint(14,14);
                    icon.iconSize = new GSize(20,34)

                    txt="Plane "+markers[i].getAttribute("bib")+"<br />"+markers[i].getAttribute("team")+"<br />Date/Time: "+markers[i].getAttribute("date")+"<br />Latitude: "+lat+"<br />Longitude: "+lng;

                    map.addOverlay(createMarker(point, txt,icon));
                }
                map.addOverlay(new GPolyline(points));
                map.panTo(point);
            }
            );
        }
    }
    catch(e){
    }
}

function fetch_waypoints(){
    try{
        map.clearOverlays();
        GDownloadUrl('calls_baja.php?action=fetch_waypoints', function(data, responseCode) {
            var	points=[];
            var xml = GXml.parse(data);
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                var lat=parseFloat(markers[i].getAttribute("lat"));
                var lng=parseFloat(markers[i].getAttribute("lng"));
                //alert(lat+" "+lng);
                var point = new GLatLng(lat,lng);
                points.push(point);
                map.addOverlay(new GMarker(point))
                txt="Waypoint "+(i+1)+"<br />Latitude: "+markers[i].getAttribute("lat")+"<br />Longitude: "+markers[i].getAttribute("lng");
                map.addOverlay(createMarker(point, txt));
            }
            map.addOverlay(new GPolyline(points));
            map.panTo(point);
        }
        );
    }
    catch(e){
    }
}



function createMarker(point,text,icon) {
    try{
        if(icon!=''){
            var marker = new GMarker(point,icon);
        }else{
            var marker = new GMarker(point);
        }

        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(text);
        });
        return marker;
    }
    catch(e){}
}

function update_text(id,t){
    try{
        $(id).innerHTML=t;
    }
    catch(e){

    }
}
