//<![CDATA[
var requestXML = makeObject();
// Détection du navigateur
var monbrowser = navigator.userAgent;
var isOpera = (monbrowser.indexOf("Opera") != -1);
var isIE = (!isOpera && monbrowser.indexOf("MSIE") != -1);
var isMozilla = (!isOpera && !isIE && monbrowser.indexOf("Mozilla") != -1);

//détermination du navigateur (Ajax)
function makeObject(){
    var x;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer")
    {
        x = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        x = new XMLHttpRequest();
    }
    return x;
}

function parseResult(){
    if(requestXML.readyState == 1){
    //document.getElementById('status').innerHTML = '<h2>Saving...</h2>';
    //setTimeout("ovmap.setMapType(G_SATELLITE_MAP);",1);.
    }
    if(requestXML.readyState == 4){
    
    var answer_city = requestXML.responseText;
    //setTimeout("document.getElementById('status').innerHTML = '<h2>Saved...</h2>';",1000);
    //setTimeout("document.getElementById('status').innerHTML = '<h2>Status</h2>';",1500);
    }
}

function update_project(markerId){
        var projectId;
        for (var i=0;i<listProjects.length;++i)
        {
            if(listProjects[i]['markerId']==markerId){ projectId=i; break;}
        }
        var url="./inc/update_project.php?us="+us+"&pwd="+pwd+"&";
        var idIcone=-1;
        var lat=-1000;
        var lon=-1000;
        for(var i=0;i<document.forms["balloon"].elements.length;++i)
        {
        
          if(document.forms["balloon"].elements[i].name!='maj')
          {
              if(document.forms["balloon"].elements[i].name=='latitude')
              {
                url+="latitude="+escape(toDEC(document.forms["balloon"].elements[i].value))+"&";
                listProjects[projectId]['latitude']=toDEC(document.forms["balloon"].elements[i].value);
              }
              else if(document.forms["balloon"].elements[i].name=='longitude')
                    {
                      url+="longitude="+escape(toDEC(document.forms["balloon"].elements[i].value))+"&";
                      listProjects[projectId]['longitude']=toDEC(document.forms["balloon"].elements[i].value);
                    }
                    else url+=document.forms["balloon"].elements[i].name+"="+escape(document.forms["balloon"].elements[i].value)+"&";
              
              if(document.forms["balloon"].elements[i].name=='Type' && listProjects[projectId][document.forms["balloon"].elements[i].name]!=document.forms["balloon"].elements[i].value)
              {
                listProjects[projectId][document.forms["balloon"].elements[i].name]=document.forms["balloon"].elements[i].value;
                
                for(var j=0;j<listTypes.length;++j)
                {
                    if(listTypes[j]['Type']==document.forms["balloon"].Type.value)
                    {
                        idIcone=j;
                    }
                }
                
              }
              else if(document.forms["balloon"].elements[i].name!='longitude' && document.forms["balloon"].elements[i].name!='latitude')
              {
                listProjects[projectId][document.forms["balloon"].elements[i].name]=document.forms["balloon"].elements[i].value;
              }
          }
        }
        
        if(idIcone!=-1)
        {
            for(var i=0;i<markersProjects.length;++i)
            {
            if (markersProjects[i].id==listProjects[projectId]['markerId'])
            {
              var newPoint=markersProjects[i].getPoint();
              map.closeInfoWindow();
              map.removeOverlay(markersProjects[i]);
              marker=createMarker(newPoint,markerId, icons[idIcone]);
              break;
            }
            }
        }
            var newPoint=new GLatLng(listProjects[projectId]['latitude'],listProjects[projectId]['longitude']);
            map.closeInfoWindow();
            
            for(var i=0;i<markersProjects.length;++i)
            {
            if (markersProjects[i].id==listProjects[projectId]['markerId'])
              {
                markersProjects[i].setPoint(newPoint);
                break;
              }
            }
        requestXML.open('get',url,true);
        requestXML.onreadystatechange = parseResult;
        requestXML.send('');
}
function update_position(markerId){
        var projectId;
        for (var i=0;i<listProjects.length;++i)
        {
            if(listProjects[i]['markerId']==markerId){ projectId=i;  break;}
        }
        var url="./inc/update_project.php?us="+us+"&pwd="+pwd+"&latitude="+listProjects[projectId]['latitude']+"&longitude="+listProjects[projectId]['longitude']+"&id="+listProjects[projectId]['id'];
                
        requestXML.open('get',url,true);
        requestXML.onreadystatechange = parseResult;
        requestXML.send('');
}

function deleteProject(markerId){
 if (confirm("Do you really want to delete this location ?")) {
  var projectId;
  for (var i=0;i<listProjects.length;++i)
  {
      if(listProjects[i]['markerId']==markerId){ projectId=i; break;}
  }
  var markerToDelete;
  for(var i=0; i<markersProjects.length;++i)
  {
    if (markersProjects[i].id==markerId) markerToDelete=i;
  }
  
  var url="./inc/delete_project.php";
  requestXML.open('POST',url,true);
  var params="us="+us+"&pwd="+pwd+"&id="+listProjects[projectId]['id'];
  requestXML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  requestXML.setRequestHeader("Content-length", params.length);
  requestXML.setRequestHeader("Connection", "close");
  requestXML.onreadystatechange = parseResult;
  requestXML.send(params);
  
  map.closeInfoWindow();
  listProjects.splice(projectId, 1);
    map.removeOverlay(markersProjects[markerToDelete]);
    markersProjects.splice(markerToDelete, 1);
  }else return;

}

function login(submited){
var url="./inc/login.php";
        
        if (!submited)
        {
        us=getCookie('username'); 
        pwd=getCookie('password');        
        }else
        {
        us=document.loginForm.user.value; 
        pwd=document.loginForm.password.value;
        }        
        var data     = null; 
        if(us != "" && pwd != "")
        { 
        data = "user="+us+"&password="+pwd;
        }

        requestXML.open('post',url,true);
        
        requestXML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        requestXML.onreadystatechange = function() {//Call a function when the state changes.
	if(requestXML.readyState == 4 && requestXML.status == 200) {
		
                var doc = requestXML.responseXML;
                var Types = doc.getElementsByTagName('Type');  
                for (var i=0;i<Types.length;++i) Security[Types[i].getAttribute("name")]=Types[i].getAttribute("access");
                if (Types.length==0)
                {
                  document.getElementById("status_login").innerHTML="User unknown or wrong password";
                
                }
                else
                {
                    setCookie('username',us,1);
                    setCookie('password',pwd,1);
                    document.getElementById("bg_login").style.visibility="hidden";
                    document.getElementById("masque").style.visibility="hidden";
                }
	}

        }
        requestXML.send(data);
}

function login_visitor(){
  for(i=0;i<listTypes.length;++i)
  {
    Security[listTypes[i]['Type']]="0";
    document.getElementById("bg_login").style.visibility="hidden";
    document.getElementById("masque").style.visibility="hidden";
  }
}

function findProject(){

var url="./inc/find_project.php";


GDownloadUrl(url, function(data, responseCode) {
    //var xml = GXml.parse(data);
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
  if(markers.length>0)
  {
    document.getElementById('noResultText').innerHTML ="";
    var point = new GLatLng(parseFloat(markers[0].getAttribute("latitude")),parseFloat(markers[0].getAttribute("longitude")));
    map.setCenter(point,12);
    redrawMap();
    
    var html="<div style=\"overflow:auto; height:300px; width:400px;\"><h2>Information about location</h2><form name='balloon' ><table width='300px' class='tableform'>";
    var projectId;
    for (var i=0;i<listProjects.length;++i)
    {
      if(listProjects[i]['id']==markers[0].getAttribute("id")){ projectId=i; break;}
    }

          for (var clef in listProjects[projectId])
          {
            
            if(clef=='Type')
            {
                html += "<tr><td><b>"+clef+"</b></td><td><select name='"+clef+"' "+(Security[listProjects[projectId]['Type']]=="0"?"disabled":modifiable)+">";
                for(var i=0;i<listTypes.length;++i)
                {
                    html+="<option value='"+listTypes[i]['Type']+"' "+(listTypes[i]['Type']==listProjects[projectId][clef]?" selected ":"")+">"+listTypes[i]['Type']+"</option>";
                }
                html+="</select></td></tr>";
            }
            else if(clef=='id') html += "<tr><td></td><td><input type='hidden' size='35' name='"+clef+"' value='"+listProjects[projectId][clef]+"'/></td></tr>";
                        else if (clef=='latitude') html+= "<tr><td><b>Latitude</b></td><td><input type='text' "+(Security[listProjects[projectId]['Type']]=="0"?"disabled":modifiable)+" size='35' name='"+clef+"' value=\""+toDMS(listProjects[projectId][clef])+"\"/></td></tr>";
                          else if (clef=='longitude') html+= "<tr><td><b>Longitude</b></td><td><input type='text' "+(Security[listProjects[projectId]['Type']]=="0"?"disabled":modifiable)+" size='35' name='"+clef+"' value=\""+toDMS(listProjects[projectId][clef])+"\"/></td></tr>";
                            else if(clef=='markerId') continue;
                              else if(clef=='Link')
                                    {
                                      if(modifiable=="" && Security[listProjects[projectId]['Type']]=="1" && listProjects[projectId][clef]=='')
                                      {
                                        html+="<tr><td><b>Narrative</b></td><td><input name='Link' disabled type='text'  size='20'>&nbsp;<a href='#' onClick=\"javascript:uploadFile();\"><img src='./img/upload_narrative.png' title='Send Narrative' border='0'></a></td></tr>";
                                      }
                                      else
                                          {
                                            html += "<tr><td><b>Narrative</b></td><td><p id='editFile'><a target='blank' href='./PDF/"+listProjects[projectId][clef]+"'><img src='./img/open_folder.png' border='0' title='Open Narrative'></a>";
                                            if(modifiable=="" && Security[listProjects[projectId]['Type']]=="1") html += "&nbsp;<a href='#' onclick='replaceFile();'><img src='./img/upload_narrative.png' title='Replace Narrative' border='0'></a></p>";
                                            html+="</td></tr>";
                                          }
                                    }
                                              else if(clef=='Gallery') html += "<tr><td><b>"+clef+"</b></td><td><input type='text' size='30' name='"+clef+"' "+(Security[listProjects[projectId]['Type']]=="0"?"disabled":modifiable)+" value='"+listProjects[projectId][clef]+"'/>&nbsp;<a href='#' onClick='viewGallery();'><img border='0' src='./img/photos.png'></a></td></tr>";
            else html += "<tr><td><b>"+clef+"</b></td><td><input type='text' size='35' name='"+clef+"' "+(Security[listProjects[projectId]['Type']]=="0"?"disabled":modifiable)+" value='"+listProjects[projectId][clef]+"'/></td></tr>";
          //
          }

          if(modifiable=="")
          {
          html=html+"<tr><tr><td colspan='2'>&nbsp;</td></tr><td colspan='2' align='center'><a href='#' onClick='update_project("+listProjects[projectId]['markerId']+");'><img src='./img/save.png'/ style='border:0px'></a>&nbsp;<a href='#' onClick='map.closeInfoWindow();'><img src='./img/cancel.png'/ style='border:0px'></a></td></tr></table></form>";
          html=html+"<br><a href='#' onClick='javascript:deleteProject("+listProjects[projectId]['markerId']+");'>delete</a></div>";
          }
          else html=html+"</table></form></div>";
          
          //GLog.write(listProjects[projectId]['markerId']);
          for(var i=0; i<markersProjects.length;++i)
          {
              if(listProjects[projectId]['markerId']==markersProjects[i].id){ markersProjects[i].openInfoWindowHtml(html); break;}
          }
  }else {document.getElementById('noResultText').innerHTML ="No result";}
  
}, "search_text="+document.searchForm.searchText.value);



}

function addProject(point){

     markerTemp=new GMarker(point);
     map.addOverlay(markerTemp);
     now = new Date();

          var html="<div style=\"overflow:auto; height:300px; width:400px;\"><h2>Create new location</h2><form name='balloon'><table width='300px'>";
          for (var clef in listProjects[0])
          {
            if(clef=='markerId') continue;
            if(clef=='Type')
            {
                html += "<tr><td><b>"+clef+"</b></td><td><select name='"+clef+"' "+modifiable+">";
                for(var i=0;i<listTypes.length;++i)
                {
                    if(Security[listTypes[i]['Type']]=="1")html+="<option value='"+listTypes[i]['Type']+"' "+(listTypes[i]['Type']==listProjects[0][clef]?" selected ":"")+">"+listTypes[i]['Type']+"</option>";
                }
                html+="</select></td></tr>";
            } else if (clef=='latitude') html += "<tr><td><b>"+clef+"</b></td><td><input type='text' name='"+clef+"' "+modifiable+" size='35' value=\""+toDMS(point.y.toFixed(4))+"\"/></td></tr>";
                    else if (clef=='longitude') html += "<tr><td><b>"+clef+"</b></td><td><input type='text' name='"+clef+"' "+modifiable+" size='35' value=\""+toDMS(point.x.toFixed(4))+"\"/></td></tr>";
                                    else if(clef=='id') html += "<tr><td></td><td><input type='hidden' size='35' name='"+clef+"'/></td></tr>";
                                      else if(clef=='As_of')html += "<tr><td><b>"+clef+"</b></td><td><input type='text' size='35' name='"+clef+"' "+modifiable+" value='"+now.getFullYear()+'-'+(now.getMonth()+1)+'-'+now.getDate()+"'/></td></tr>";
                                    else if(clef=='Link')
                                    {
                                      if(modifiable=="")
                                      {
                                        html+="<tr><td><b>Narrative</b></td><td><input name='Link' disabled type='text' size='20'>&nbsp;<a href='#' onClick=\"javascript:uploadFile();\"><img src='./img/upload_narrative.png' title='Send Narrative' border='0'></a></td></tr>";
                                      }
                                    }
                          else html += "<tr><td><b>"+clef+"</b></td><td><input type='text' size='35' name='"+clef+"' "+modifiable+" /></td></tr>";
          }
          
          html=html+"<tr><tr><td colspan='2'>&nbsp;</td></tr><td colspan='2' align='center'><a href='#' onClick='insertProject("+listProjects.length+");'><img src='./img/save.png'/ style='border:0px'></a>&nbsp;<a href='#' onClick='map.closeInfoWindow();'><img src='./img/cancel.png'/ style='border:0px'></a></td></tr></table></form></div>";

          map.openInfoWindowHtml(point,html);
}

function insertProject(projectId){

        listProjects[projectId]=new Array();
        var maxMarkerId=0;
        var markerId=0;
        for (var i=0;i<listProjects.length;++i)
        {
            if(listProjects[i]['markerId']>maxMarkerId) maxMarkerId=listProjects[i]['markerId'];
        }
        markerId=maxMarkerId+1;
        var lat=markerTemp.y;
        var lon=markerTemp.x;
        var url="./inc/insert_project.php?us="+us+"&pwd="+pwd+"&";
        var idIcone=-1;
        for(var i=0;i<document.forms["balloon"].elements.length;++i)
        {
        
          if(document.forms["balloon"].elements[i].name!='maj')
          {
              if(document.forms["balloon"].elements[i].name=='latitude')
              {
                url+="latitude="+escape(toDEC(document.forms["balloon"].elements[i].value))+"&";
                listProjects[projectId]['latitude']=toDEC(document.forms["balloon"].elements[i].value);
              }
              else if(document.forms["balloon"].elements[i].name=='longitude')
                    {
                      url+="longitude="+escape(toDEC(document.forms["balloon"].elements[i].value))+"&";
                      listProjects[projectId]['longitude']=toDEC(document.forms["balloon"].elements[i].value);
                    }
                    else url+=document.forms["balloon"].elements[i].name+"="+escape(document.forms["balloon"].elements[i].value)+"&";
              
              if(document.forms["balloon"].elements[i].name=='Type' && listProjects[projectId][document.forms["balloon"].elements[i].name]!=document.forms["balloon"].elements[i].value)
              {
                listProjects[projectId][document.forms["balloon"].elements[i].name]=document.forms["balloon"].elements[i].value;
                
                for(var j=0;j<listTypes.length;++j)
                {
                    if(listTypes[j]['Type']==document.forms["balloon"].Type.value)
                    {
                        idIcone=j;
                    }
                }
                
              }
              else if(document.forms["balloon"].elements[i].name!='longitude' && document.forms["balloon"].elements[i].name!='latitude')
                  {
                    listProjects[projectId][document.forms["balloon"].elements[i].name]=document.forms["balloon"].elements[i].value;
                  }          
          }
          
          listProjects[projectId]['markerId']=markerId;
        }
        
        //if ((lat!=-1000 && lon!=-1000) && (lat!=listProjects[projectId]['latitude'] || lon!=listProjects[projectId]['longitude']))
        //{
            var newPoint=new GLatLng(listProjects[projectId]['latitude'],listProjects[projectId]['longitude']);
        //}
        //else var newPoint=markerTemp.getPoint();
        map.closeInfoWindow();
        map.removeOverlay(markerTemp);
        //GLog.write(markerId);
        marker=createMarker(newPoint,markerId, icons[idIcone]);
        requestXML.open('get',url,true);
        //requestXML.onreadystatechange = parseResult;
        requestXML.onreadystatechange = function() {//Call a function when the state changes.
	if(requestXML.readyState == 4 && requestXML.status == 200) {
		
                listProjects[projectId]['id']=requestXML.responseText;
                //GLog.write(listProjects[projectId]['id']);
	}
}
        requestXML.send('');



}
//****************************Cookie
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

function checkCookie(c_name)
{
cookie=getCookie(c_name)
if (cookie!=null && cookie!="")
  {alert('Welcome again '+username+'!')}
else 
  {
  username=prompt('Please enter your name:',"")
  if (username!=null && username!="")
    {
    setCookie('username',username,365)
    }
  }
}

///**************************************************

//Sur activation de la touche return dan sle formulaire de recherche
function touchePressee(ev)
{
    if (!ev) ev = window.event;
    if(isIE) c = ev.keyCode;
    else     c = ev.which;
    if(c == 13)
    {   
        findProject();
        return false;
    }
	return true;
}
//---->
//]]>