var ReportFrame = 0;
var MapFrame = 1;
var MiscFrame = 2;
var OverviewTab = 0;
var MapServer = "";
var Phase = "";
var PhaseLong = "";
var ClientLong = "";
var PhaseType = "";

function window.onload() {
  if (document.body.getElementsByTagName("MultiPage").length == 0) return;
  slamMap();
}
function parser(url) {
  var i = url.indexOf("//");
  if (i < 0) return url;
  var s = url.substring(i+2);
  i = s.indexOf("/");
  s = s.substring(0,i);
  if (s != window.location.hostname) return url;
  
  var n = url.indexOf("/output");
  if (n >= 0) {
    return url.substring(n);
  }
  else {
    return url;
  }
}

function getTractMineralReports(tractid,tractno) {
  var mineralUrl = "/" + AppRoot + "/reports/tractMineralReports.asp";
      mineralUrl += "?tractid=" + tractId;
      mineralUrl += "&tractno=" + tractNo;
      mineralUrl += "&layername=Mineral+Tracts";
      mineralUrl += "&phase=" + Phase;
      mineralUrl += "&phaselong=" + PhaseLong;
  
  var iframes = document.body.getElementsByTagName("IFRAME");
  var elts = document.body.getElementsByTagName("TabStrip");
  var ts = elts.length>0?elts[0]:null;
  if (ts == null) {
    return null;
  }
  ts.selectedIndex = (gp.ReportFrame + 1);
  var ifMap = iframes[gp.ReportFrame];
  ifMap.src = mineralUrl;
}
function getMpMapSize() {
  var x = document.all["tdMap"];
  var elts = document.body.getElementsByTagName("TabStrip");
  var ts = elts[0];
  var tsParent = ts.parentElement
  //alert(tsParent.innerHTML);
  //alert(ts.offsetLeft + "," + ts.offsetTop + "  " + ts.offsetWidth + "," + ts.offsetHeight + "\n===\n" + tsParent.offsetTop + "," + tsParent.offsetLeft + "  " + tsParent.offsetWidth + "," + tsParent.offsetHeight);
  elts = document.body.getElementsByTagName("TREEVIEW");
  var tv = elts[0];
  var p = tv.parentElement;
  p = p.parentElement;
  
  var w = ts.offsetWidth - 340;
  var h = tsParent.offsetHeight - 64;
  //alert(w + "," + h); 	
  if (x != null) 
    return w + "," + h;
  else 
    return null;
}
function setMapImg(imgSrc) {
  var elts = document.body.getElementsByTagName("IMG");
  var mapImg = elts.length>0?elts[1]:null;
  mapImg.src = imgSrc;
}
function slamMap() {
  var size = getMpMapSize();
  if (size == null) return;
  size = size.split(",");
  var w = size[0];
  var h = size[1];
  var url = "Maps/OverviewMapX.aspx";
      url += "?w=" + w;
      url += "&h=" + h;
      url += "&action=slam";
      //prompt("URL:",url);
      //return;
  var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
      xmlHttp.open("GET",url,false);
      xmlHttp.send();
  var imgSrc = xmlHttp.responseText;
      if (imgSrc.toUpperCase().indexOf(".JPG") >= 0) {
        var s = parser(imgSrc);
        setMapImg(s);
      }
      else {
        alert("ERROR:\n----------------------\n" + imgSrc);
      }  
}
function stList() {
  var stateList = "";
  var sep = "";
  var tn = tvw.getTreeNode("0");
  var children = tn.getChildren();
  for (var i=0;i<children.length;i++) {
    var o = children[i];
    stateList += sep + "'" + o.getAttribute("text") + "'";
    sep = ",";
  }
  return stateList;
}

function stateMap(index) {
  var size = getMpMapSize();
  if (size == null) return;
  size = size.split(",");
  var w = size[0];
  var h = size[1];
  var tn = tvw.getTreeNode(index);
  var StateName = "'" + tn.getAttribute("text") + "'"
  var url = "Maps/OverviewMapX.aspx";
      url += "?w=" + w;
      url += "&h=" + h;
      url += "&action=state";
      
  var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
      xmlHttp.open("GET",url,false);
      xmlHttp.send();
  var imgSrc = xmlHttp.responseText;
      if (imgSrc.toUpperCase().indexOf(".JPG") >= 0) {
        var s = parser(imgSrc);
        setMapImg(s);
      }
      else {
        alert("ERROR:\n----------------------\n" + imgSrc);
      }  
}
function ctyList(index) {
  var tn = tvw.getTreeNode(index);
  var countyList = "";
  sep = "";
  children = tn.getChildren();
  for (var i=0;i<children.length;i++) {
    var p = children[i];
    countyList += sep + "'" + p.getAttribute("text") + "'";
    sep = ",";
  }
  return countyList;
}

function countyMap(index) {
  var size = getMpMapSize();
  if (size == null) return;
  size = size.split(",");
  var w = size[0];
  var h = size[1];
  var tn = tvw.getTreeNode(index);
  var n = index.lastIndexOf(".");
  var parentIndex = index.substr(0,n);
  
  var StateName = "'" + tvw.getTreeNode(parentIndex).getAttribute("text") + "'";  
  var CountyName = "'" + tn.getAttribute("text") + "'"
  var children = tn.getChildren();
  
  var url = "Maps/OverviewMapX.aspx";
      url += "?w=" + w;
      url += "&h=" + h;
      url += "&action=county";
  //prompt(url,url);
  //return;    
      
  var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
      xmlHttp.open("GET",url,false);
      xmlHttp.send();
  var imgSrc = xmlHttp.responseText;
      if (imgSrc.toUpperCase().indexOf(".JPG") >= 0) {
        var s = parser(imgSrc);
        setMapImg(s);
      }
      else {
        prompt("Error",imgSrc);
      }  
}
function jobList(tn) {
  var list = "";
  sep = "";
  children = tn.getChildren();
  for (var i=0;i<children.length;i++) {
    var child = children[i];
    list += sep + "phase=" + child.getAttribute("phase");
    list += ";phaselong=" + child.getAttribute("phaselong");
    list += ";x=" + child.getAttribute("x");
    list += ";y=" + child.getAttribute("y");
    sep = "^";
  }
  return list;
}

function jobMap(index) {
  var size = getMpMapSize();
  if (size == null) return;
  size = size.split(",");
  var w = size[0];
  var h = size[1];
  
  var url = "Maps/OverviewMapX.aspx";
      url += "?w=" + w;
      url += "&h=" + h;
      url += "&action=job";
  //prompt("url",url);
  //return;    
      
  var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
      xmlHttp.open("GET",url,false);
      xmlHttp.send();
  var imgSrc = xmlHttp.responseText;
      if (imgSrc.toUpperCase().indexOf(".JPG") >= 0) {
        var s = parser(imgSrc);
        setMapImg(s);
      }
      else {
        prompt("Error",imgSrc);
      }  
}

function getMpWidth() {
  var elts = document.body.getElementsByTagName("Multipage");
  var mp = elts.length>0?elts[0]:null;
  if (mp != null) {
    return mp.offsetWidth-12;
  }
  else {
    return -1;
  }
}
function getMpHeight() {
  var elts = document.body.getElementsByTagName("Multipage");
  var mp = elts.length>0?elts[0]:null;
  if (mp != null) {
    return mp.offsetHeight-12;
  }
  else {
    return -1;
  }
}
var isSelectBlocked = false;
function doExpand() {
  setPhaseHelp();
  isSelectBlocked = true;
  var e = window.event;
      e.cancelBubble = true;
  var i = e.treeNodeIndex;
  var tn = tvw.getTreeNode(i);

  switch(tn.getAttribute("type")) {
  case "lease check":
    PhaseType = "LeaseCheck";
    break;
  case "prospect":
    PhaseType = "Prospect";
    break;
  case "project":
    PhaseType = "Project";
    break;
  }

  var p = tn.getParent();
  if (p != null) {
    var children = p.getChildren();
    for (var j=0;j<children.length;j++) {
      var c = children[j];
      if (c.getNodeIndex() != i) collapseSubTreeAt(c)
    }
  }
  tvw.makeNodeVisible("0");
  tvw.makeNodeVisible(i);
  resetTabs();
  //tn.scrollIntoView();
  //tn.setAttribute("expanded",true,1);
  isSelectBlocked = false;
  if (tn.getAttribute("type") == "job") {
    var job = tn.getAttribute("text");
    var action = "expand";
    var url = "Stylesheets/SetActiveJob.aspx?job=" + escape(job) + "&action=" + escape(action) + "&time=" + escape(new Date());
    var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
        xmlHttp.open("GET",url,false);
        xmlHttp.send();
        window.status = xmlHttp.responseText
  }
}
function collapseSubTreeAt(c) {
  var children = c.getChildren();
  for (var j=0;j<children.length;j++) {
    collapseSubTreeAt(children[j]);
  }
  c.setAttribute("expanded",false,0);
}

function resetTabs() {
  /*  
  var iframes = document.body.getElementsByTagName("IFRAME");
  if (iframes.length != 3) return;
  var elts = document.body.getElementsByTagName("TabStrip");
  if (elts.length != 1) return;
  var ts = elts[0];
  var tab;
  var frame;
  */
  var msg;
  //ReportFrame
  setTabText(ReportFrame+1,"Reports");
  msg = "<div style='font:10pt Arial'>";
  msg += "<h1>Reports Tab</h1>";
  msg += "<p>This tab displays reports, scanned leases and other material for a job.</p>";
  msg += "</div>";
  loading(msg,ReportFrame,true);
  //MapFrame
  setTabText(MapFrame+1,"Maps");
  msg = "<div style='font:10pt Arial'>";
  msg += "<h1>Maps Tab</h1>";
  msg += "<p>This tab is used for the <b>SLAM!</b> map client.</p>";
  msg += "</div>";
  loading(msg,MapFrame,true);
  //MiscFrame
  setTabText(MiscFrame+1,"Miscellaneous");
  msg = "<div style='font:10pt Arial'>";
  msg += "<h1>Miscellaneous Items</h1>";
  msg += "<p>This tab is used for miscellaneous windows that were implemented as popups.</p>";
  msg += "<p>The <b>identify</b> and <b>print</b> dialogs for the map will appear in this tab.</p>";
  msg += "</div>";
  loading(msg,MiscFrame,true);
}


function doCollapse() {
  setPhaseHelp();
  var e = window.event;
  var i = e.treeNodeIndex;
  var tn = tvw.getTreeNode(i);
  collapseSubTreeAt(tn);
  if (tn.getAttribute("type") == "job") {
    var job = tn.getAttribute("text");
    var action = "collapse";
    var url = "Stylesheets/SetActiveJob.aspx?job=" + escape(job) + "&action=" + escape(action) + "&time=" + escape(new Date());
    var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
        xmlHttp.open("GET",url,false);
        xmlHttp.send();
        window.status = xmlHttp.responseText
  }

}

function doSelectedIndexChange() {
  setPhaseHelp();
  var e = window.event;
  var i = e.newTreeNodeIndex;
  var parms = i.split(".");
  var tn = tvw.getTreeNode(i);
  switch(tn.getAttribute("type")) {
  case "slam":
    if (!isSelectBlocked)  {
      slamMap();
      ovlegend1.style.display="";
      ovlegend2.style.display="none";
    }
    break;
  case "state":
    if (!isSelectBlocked) {
      stateMap(i);
      ovlegend1.style.display="";
      ovlegend2.style.display="none";
    }  
    break;
  case "county":
    if (!isSelectBlocked) {
      countyMap(i);
      ovlegend1.style.display="none";
      ovlegend2.style.display="";
    }      
    break;
  case "lease check":
    LeaseCheckHelp.style.display = "none";
    BackgroundHelp.style.display = "none";
    break;
  case "prospect":
    ProspectHelp.style.display = "none";
    BackgroundHelp.style.display = "none";
    break;
  case "project":
    ProjectHelp.style.display = "none";
    BackgroundHelp.style.display = "none";
    break;
  case "job":
    if (!isSelectBlocked) {
      jobMap(i);
      ovlegend1.style.display="none";
      ovlegend2.style.display="";
    }
    break;  
  case "action":
    var job = tn.getParent();
    var attr = new Array();
        attr.Name = tn.getAttribute("text").replace(/ /g,"");
        attr.Phase = job.getAttribute("phase");
        Phase = attr.Phase
        attr.PhaseLong = job.getAttribute("phaselong");
        PhaseLong = attr.PhaseLong;
        attr.ClientLong = job.getAttribute("clientlong");
        ClientLong = attr.ClientLong;
    var url = "";
    var sep = "";
    for (var p in attr) {
      url += sep + p + "=" + escape(attr[p]);
      sep = "&";
    }            

    attr.MapService = job.getAttribute("mapservice");
    attr.x = job.getAttribute("x");
    attr.y = job.getAttribute("y");
    var iframes = document.body.getElementsByTagName("IFRAME");
    var elts = document.body.getElementsByTagName("TabStrip");
    var ts = elts.length>0?elts[0]:null;
    if (ts == null) {
      return null;
    }
    switch(attr.Name.toUpperCase()) {
    case "OPENMAP":
      loading("Loading " + ClientLong + ": " + PhaseLong + " map...",MapFrame);
      ts.selectedIndex = (MapFrame + 1);
      
      var tab = ts.getTab(MapFrame + 1);
      tab.setAttribute("text","Map: " + tn.getParent().getAttribute("text") + " " + tn.getParent().getParent().getAttribute("text"));

      var url = "ogmmap2/?BasicConfiguration=OgmBasic&debug=showfinalconfig&MapService=" + attr.MapService + "&" + url;
      
      var ifMap = iframes[MapFrame];
          ifMap.src = url;
      break;
    case "CONDITIONS":
      alert("Not Implemented");
      break;
    case "CURATIVECONTROLSHEET":
      loading("Loading Curative Control Sheet Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/CurativeWorksheet.htm";
      break;
    case "EXHIBITA":
      loading("Loading Exhibit A Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/AOI_ExhibitA.asp?" + url;;
      break;
    case "EXPIRATION":
      loading("Loading Expiration Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/Expirations.htm";
      break;
    case "HELDBYOTHERS":
      loading("Loading Held By Others Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      //alert("Reports/AOI_HeldByOthers.asp?" + url);
      ifReport.src = "Reports/HeldByOthers.htm";
      break;
    case "LEASECHECK":
      loading("Loading Lease Check Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "reports/LeaseCheck.asp?" + url;
      break;
    case "LEASEPURCHASE":
      loading("Loading Lease Purchase Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "reports/AOI_LeasePurchase.asp?" + url;
      break;
    case "OBLIGATION":
      loading("Loading Obligation Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "reports/Obligation.htm";
      break;
    case "OPENACREAGE":
      loading("Loading Open Acreage Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/OpenAcreage.htm";
      break;
    case "OWNERSHIP":
      loading("Loading Ownership Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "reports/ownership.htm";
      break;
    case "PERMIT":
      alert("Not Implemented");
      break;
    case "PROSPECTDETAIL":
      loading("Loading Prospect Detail Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/ProspectDetail.htm";
      break;
    case "PROSPECTSUMMARY":
      loading("Loading Prospect Summary Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/ProspectSummary.htm";
      break;
    case "PROVISION":
      loading("Loading Provision Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/Provision.htm";
      break;
    case "RENTALSDUE":
      loading("Loading Rentals Due Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/RentalsDue.htm";
      break;
    case "RUNSHEET":
      loading("Loading Runsheet Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/Runsheet.htm";
      break;
    case "SCHEDULEOFLEASES":
      loading("Loading Schedule of Leases Report ...");
      ts.selectedIndex = (ReportFrame+1);
      
      var ifReport =iframes[ReportFrame];
      ifReport.src = "Reports/ScheduleOfLeases.htm";
      break;
    default:
      alert("The report for " + tn.getAttribute("text") + " is not implemented.");
      break;
    }    
    break;
  }  
}

function loading(msg,tab,isHtml) {
  if (tab == null) tab = ReportFrame
  if (isHtml == null) isHtml = false;
  var fr = window.frames[tab];
  var d = fr.document;
      d.open();
      if (isHtml) {
        d.write(msg);
      }
      else {
        d.write("<h1 style='font:bold 12pt arial'>" + msg + "</h1>");
      }
      d.close();
}

function ovMapOnClick() {
  var e = window.event;
  var s = e.srcElement;
  alert(s.id + ": " + e.offsetX + "," + e.offsetY);
}

function ovMapMouseMove() {
  var e = window.event;
  var s = e.srcElement;
  window.status = e.offsetX + "," + e.offsetY;
}

function setTabText(tabId,tabText) {
    var gp = parent;
    var elts = gp.document.body.getElementsByTagName("TabStrip");
    var ts = elts.length>0?elts[0]:null;
    if (ts == null) {
      return null;
    }
    var tab = ts.getTab(tabId);
    tab.setAttribute("text",tabText);
}

function setPhaseHelp() {
  LeaseCheckHelp.style.display = "none";
  ProspectHelp.style.display = "none";
  ProjectHelp.style.display = "none";
  BackgroundHelp.style.display = "none";
}


    