﻿var xmlDoc;
var isFox;
var counter = 0;
var InfoNodes;
var MappedItems;
var TreeLayout;
var FocusedNodeTag;
var loadTime='';
var settings='';
var layers = '';
var AlwaysFollow =false;
var HistoryPlayBackOn = false;
var MappedItemsString = '';

function GetUnMapped(){
    MappedItemsString = MappedItems.join(',');
    return MappedItemsString;
}
function SetHistoryPlaybackMode(onoff){
    HistoryPlayBackOn = onoff
    window.status="History Playback Mode: " + HistoryPlayBackOn;
    if (HistoryPlayBackOn==false)
		setTimeout('getInfo()', 30000); 
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var http = getHTTPObject(); // We create the HTTP Object

function AddLabel(id){InfoNodes.push(id);}

function RemoveLabel(id){
	for(i=0;i<InfoNodes.length;i++){
	   if(InfoNodes[i] == id){
            delete InfoNodes[i];
            break;
      }
    }
}

function ShowLabel(id){
	 var found = false;
	 for(i=0;i<InfoNodes.length;i++){
        if(InfoNodes[i] == id)
            found = true;
    }
    return found;

}

function IsMapped(id){
	var found = true;
	 for(i=0;i<MappedItems.length;i++){
        if(MappedItems[i] == id)
            found = false;
    }
    return found;
}

function AddMapped(id){
    for(i=0;i<MappedItems.length;i++){
	   if(MappedItems[i] == id){
            delete MappedItems[i];
            break;
        }   
    }
	
}

function RemoveMapped(id){
	MappedItems.push(id);
}

function IsExpanded(id){
	var found = false;
	 for(i=0;i<TreeLayout.length;i++){
        if(TreeLayout[i] == id)
            found = true;
    }
    return found;
}

function RemoveExpanded(id){
	 for(i=0;i<TreeLayout.length;i++){
        if(TreeLayout[i] == id){
            delete TreeLayout[i];
            break;
        }   
    }
	
}

function SetAlwaysFollow(onoff){AlwaysFollow=onoff;}

function Initialize(){
	var uid = readCookie('userid');
    var cid = readCookie('clientno');
    if (settings==''){
		settings = readCookie('usersettings');
		try{
		    if (settings.split('~')[0].split('+')[1].indexOf(',') > 0)
			    InfoNodes = settings.split('~')[0].split('+')[1].split(',');
		    else if(settings.split('~')[0] != '')
			    InfoNodes = [settings.split('~')[0].split('+')[1]];
		} catch(e){InfoNodes=new Array();}
		
		try{
		    if (settings.split('~')[1].split('+')[1].indexOf(',') > 0)
			    MappedItems = settings.split('~')[1].split('+')[1].split(',');
		    else if (settings.split('~')[1] != '')
			    MappedItems = [settings.split('~')[1].split('+')[1]];
		} catch(e){MappedItems=new Array();}
		
		try{
		    if(settings.split('~')[2] != '')
			    FocusedNodeTag = settings.split('~')[2].split('+')[1];
		    else
			    FocusedNodeTag = '';
		} catch(e){FocusedNodeTag = '';}
		
		try{
		    if (settings.split('~')[3].split('+')[1].indexOf(',') > 0)
			    TreeLayout = settings.split('~')[3].split('+')[1].split(',');
		    else if (settings.split('~')[3] != '')
			    TreeLayout = [settings.split('~')[3].split('+')[1]];
		} catch(e){TreeLayout=new Array();}
		
		try{
		    if(settings.split('~')[4] != '')
			    if(settings.split('~')[4].split('+')[1]=='True')
				    AlwaysFollow = true;
		} catch(e){AlwaysFollow = true;}
			
		if( top.menu != null ) 			
		{
			if (AlwaysFollow)
				top.menu.toggle('D7', '1')
			else
				top.menu.toggle('D7', '0');
		}
	}
	if (layers ==''){
	    layers = readCookie('userlayers');
	}
	var currentTime = new Date()
	var month = currentTime.getMonth() + 1
	var day = parseInt(currentTime.getDate());
	var year = currentTime.getFullYear()
	var hours = currentTime.getHours()
	var minutes = currentTime.getMinutes()
	var offset = currentTime.getTimezoneOffset();
	hours = (parseInt(hours) + (parseInt(offset)/60))
	if (hours > 24){
		hours -= 24;
		day += 1
	}
	if (minutes < 10)
		minutes = "0" + minutes
				
	loadTime = month + "/" + day + "/" + year + ' ' + parseInt(hours)  + ":" + minutes		
	try{	 tree.LoadTree(); } catch(e){}
}

function getInfo()
{
    var uid = readCookie('userid');
    var cid = readCookie('clientno');
    if (HistoryPlayBackOn == false){
        if(uid && cid){
			var uri = window.location.href.replace("main.aspx","");
			var url = uri + "FCAWS.asmx/GetMappablesList?ClientNo=" + cid + "&userid=" + uid + "&LastFillTime=" + escape(loadTime);
            http.open("GET", url, true);
            http.onreadystatechange = handleHttpResponse;
            http.send(null);
       }
       else
            window.location = 'login.aspx'
   }

}

function handleHttpResponse() {
	if (http.readyState == 4) {
		importXml(); 
	}
} 

function importXml()
{
    if (document.implementation && document.implementation.createDocument)
    {
        isFox = true;
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(http.responseText, "text/xml");
        putItemsOnMap()
    }
    else if (window.ActiveXObject)
    {   isFox = false;
        if (xmlDoc == null){
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.onreadystatechange = function ()
            {
                if (xmlDoc.readyState == 4) putItemsOnMap()
            };
        }
     //  alert(http.responseText);
       xmlDoc.loadXML(http.responseText);
    }
    else {   
		alert('Your browser is not supported by this application.\nPlease use IE6 or IE7 or Firefox.');
        return;
    }
}
 function putItemsOnMap()
{   try{
	    if (xmlDoc.parseError.errorCode != 0){ 
		    alert('Parse Error line ' +  xmlDoc.parseError.line + ', character ' + 
				    xmlDoc.parseError.linePos + '\n' + xmlDoc.parseError.srcText);
		    return;
	    }
	} catch(e){}
	
	if (HistoryPlayBackOn == false){
	    var root = xmlDoc.getElementsByTagName('Map')[0];
		var items = root.getElementsByTagName("item");
		tree.UpdateTree(items);
		setTimeout('getInfo()', 30000); 
		var currentTime = new Date()
		var month = currentTime.getMonth() + 1
		var day = parseInt(currentTime.getDate());
		var year = currentTime.getFullYear()
		var hours = currentTime.getHours()
		var minutes = currentTime.getMinutes()
		var offset = currentTime.getTimezoneOffset();
		hours = (parseInt(hours) + (parseInt(offset)/60))
		if (hours > 24){
			hours -= 24;
			day += 1
		}
		if (minutes < 10)
			minutes = "0" + minutes
				
		loadTime = month + "/" + day + "/" + year + ' ' + parseInt(hours)  + ":" + minutes		
	}
	
}


