//*****************************************************************************
//** X
//*****************************************************************************
var XSWReq = false;
var BizMap = false;
var sessionID = false;
var sitePrefix = false;
var currentBiz = false;
var MainDiv = false;

//*****************************************************************************    
function XSWInit() {    
  if(window.XMLHttpRequest) {    
    XSWReq = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    XSWReq = new ActiveXObject("Microsoft.XMLHTTP");
  }
}
//*****************************************************************************
//** Populates the specified DIV with the data requested.
//*****************************************************************************
function XSWPopulateDIV(dataSource, divID) {

  if(window.ActiveXObject) {
    XSWReq = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if(XSWReq) {
    var divObj = document.getElementById(divID);
    
    XSWReq.onreadystatechange = function()
    {
      if(XSWReq.readyState == 4 && XSWReq.status == 200) {
        divObj.innerHTML = XSWReq.responseText;        
      }
    }
  }
  
  XSWReq.open("GET", dataSource, true, null, null);
  XSWReq.send(null);
}

//*****************************************************************************
//** Populates the specified DIV with the data requested.
//*****************************************************************************
function XSWPopulateSearch(dataSource, divID) {

  if(window.ActiveXObject) {
    XSWReq = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if(XSWReq) {
    var divObj = document.getElementById(divID);
    
    XSWReq.onreadystatechange = function()
    {
      if(XSWReq.readyState == 4 && XSWReq.status == 200) {
        divObj.innerHTML = XSWReq.responseText;
        var element = document.getElementById("FirstResult");
        if(element) {
          XSWGetCompanyData("index.html?companyData=" + element.value);
        }        
      }
    }
  }
  
  XSWReq.open("GET", dataSource, true, null, null);
  XSWReq.send(null);
}

//*****************************************************************************
//** Fetches the requested company data
//*****************************************************************************
function XSWGetCompanyData(requestURL) {
  var company = false;
  
  if(window.ActiveXObject) {
    XSWReq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  if(XSWReq) {    
    XSWReq.onreadystatechange = function()
    {
      if(XSWReq.readyState == 4 && XSWReq.status == 200) {
        eval("company=" + XSWReq.responseText);
        XSWPopulateCompanyData('BizDetail', company);
      }
    }
  }
  XSWReq.open("GET", requestURL, true, null, null);
  XSWReq.send(null);
}

//*****************************************************************************
//** Populates the specified fields on the screen.
//*****************************************************************************
function XSWPopulateCompanyData(prefix, company) {
  var element = false;
    
  element = document.getElementById(prefix + "Edit");
  if(element) {
    if(sessionID) {
      element.innerHTML = "<a href='index.html?SESSION_ID=" + sessionID + "&pageID=4&BIZ_ID=" + company.ID + "' class='BizDetailText'>EDIT</a>";
    }  
  }
  
  currentBiz = company.ID;
    
  element = document.getElementById(prefix + "Name");
  if(element) {
    if(company.Name) {
      element.innerHTML = company.Name;    
    } else {
      element.innerHTML = "";    
    }
  } 
   
  element = document.getElementById(prefix + "Address1");
  if(element) {
    if(company.Address1) {
      element.innerHTML = company.Address1;    
    } else {
      element.innerHTML = "";    
    }
  }
  
  element = document.getElementById(prefix + "Address2");
  if(element) {
    if(company.Address2) {
      element.innerHTML = "<br>" + company.Address2;    
    } else {
      element.innerHTML = "";    
    }  
  }
  
  element = document.getElementById(prefix + "EMail");
  if(element) {
    if(company.EMail) {
      element.innerHTML = company.EMail;    
      element = document.getElementById(prefix + "EMailLabel");
      if(element) {
        element.innerHTML = "Email Address:";
      }
    } else {
      element.innerHTML = "";    
      element = document.getElementById(prefix + "EMailLabel");
      if(element) {
        element.innerHTML = "";
      }
    }
  }
  
  element = document.getElementById(prefix + "Description");
  if(element) {
    if(company.Description) {
      element.innerHTML = company.Description;    
      element = document.getElementById(prefix + "DescriptionLabel");
      if(element) {
        element.innerHTML = "Description:";
      }
    } else {
      element.innerHTML = "";    
      element = document.getElementById(prefix + "DescriptionLabel");
      if(element) {
        element.innerHTML = "";
      }
    }
  }
  
  element = document.getElementById(prefix + "Phone");
  if(element) {
    if(company.Phone) {
      element.innerHTML = company.Phone;    
    } else {
      element.innerHTML = "";    
    }
  }

  element = document.getElementById(prefix + "Image");
  if(element) {
    if(company.Image) {
      if(MainDiv) {
        MainDiv.setTargetContent("<img src='XSWImages/BusinessData/" + company.Image + "' valign='middle'>");
        MainDiv.transform()
      } else {
        element.innerHTML = "<img src='XSWImages/BusinessData/" + company.Image + "'>";    
      }
    } else {
      element.innerHTML = "";    
    }
  }
    
  element = document.getElementById(prefix + "URL");
  if(element) {
    if(company.URL) {
      //element.innerHTML = "<a href='http://" + company.URL + "' target='_blank'>" + company.URL + "</a>";    
      element.innerHTML = "<a href='index.html?pageID=6&BIZ_ID=" + company.ID + "' target='_blank'>" + company.URL + "</a>";    
    } else {
      element.innerHTML = "";    
    }
  }    

  element = document.getElementById(prefix + "Map");
  if(element) {
    if(company.ID) {
      element.innerHTML = "<a href='index.html?pageID=1&BIZ_ID=" + company.ID + "' class='SECTION_TEXT'>MAP</a>";    
    } else {
      element.innerHTML = "";    
    }
  }    
  
  XSWLocateMap(company.Latitude, company.Longitude, company.Name, company.Phone);
}

//*****************************************************************************
function XSWScrollDIV(divID, anchorID) {
  var divElement = false;
  var anchorElement = false;
  
  divElement = document.getElementById(divID);
  anchorElement = document.getElementById(anchorID);
  
  if(divElement) {
    if(anchorElement) {
      divElement.scrollTop = anchorElement.offsetTop;
    }
  }
}

//*****************************************************************************
function XSWDoSearch() 
{
  var searchString = "index.html?SEARCH_MODE=";
  var element = false;
 
  element.innerHTML = "<img src='XSWImages/spinner.gif'><center>Loading...</center>";    

  element = document.getElementById("SEARCH_MODE");
  if(element) {
    searchString += element.options[element.selectedIndex].value;
  }

  element = document.getElementById("SEARCH_TERMS");
  if(element) {
    searchString += "&SEARCH_TERMS=" + element.value;
  }

  XSWPopulateSearch(searchString, "searchResults");
  return false;
}
//*****************************************************************************
function XSWDoAlphaBrowse(startingLetter) 
{
  var searchString = "index.html?SEARCH_MODE=7";
  var element = false;
 
  element.innerHTML = "<img src='XSWImages/spinner.gif'><center>Loading...</center>";    

  searchString += "&SEARCH_TERMS=" + startingLetter;

  XSWPopulateSearch(searchString, "searchResults");
  //return false;
}

//*****************************************************************************
function XSWDoCatAdd() {
  var catList = document.getElementById("BIZ_CATLIST");
  var catField = document.getElementById("BIZ_CATEGORIES");
  var catDisplay = document.getElementById("BIZ_CAT_DISP");
  var newVal = false;
  var pattern = false;
  
  if(catList && catField && catDisplay) {
    newVal = catList.options[catList.selectedIndex].value;
    pattern = new RegExp(newVal, "i");
    
    if(!catField.value.match(pattern)) {
      if(catField.value.length > 0) {
        catField.value += ", " + newVal;
      } else {
        catField.value += newVal;
      }
      catDisplay.innerHTML = catField.value;
    }
  }  
  return false;
}
//*****************************************************************************
function XSWDoCatRemove() {
  var catList = document.getElementById("BIZ_CATLIST");
  var catField = document.getElementById("BIZ_CATEGORIES");
  var catDisplay = document.getElementById("BIZ_CAT_DISP");
  var list = false;
  var pattern = false;
  var result = false;
  
  
  if(catList && catField && catDisplay) {
    list = catField.value.split(", ");
    newVal = catList.options[catList.selectedIndex].value;
    pattern = new RegExp(newVal, "i");

    for(var i = 0; i < list.length; i++) {
      if(!list[i].match(pattern)) {
        if(result) {
          result += ", " + list[i];
        } else {
         result = list[i];
        }
      }
    }
    if(result) {
      catField.value = result;    
    } else {
      catField.value = "";
    }
    catDisplay.innerHTML = catField.value;
  }
  return false;
}
//*****************************************************************************
function XSWDoBrowse() 
{
  var searchString = "index.html?SEARCH_MODE=3";
  var element = false;
 
  element.innerHTML = "<img src='XSWImages/spinner.gif'><center>Loading...</center>";    

  element = document.getElementById("BROWSE_MODE");
  if(element) {
    searchString += "&SEARCH_TERMS=" + element.options[element.selectedIndex].value;
  }

  XSWPopulateSearch(searchString, "searchResults");
  return false;
}

//*****************************************************************************
function XSWLocateMap(lat, long, bizName, bizPhone) {
  if(BizMap) {
    BizMap.setCenter(new GLatLng(lat, long),14);
    BizMap.clearOverlays();
    var bizMark = new GMarker(new GLatLng(lat, long));
    bizMark.bindInfoWindowHtml(bizName + "<br>" + bizPhone);
    BizMap.addOverlay(bizMark);
    
    //BizMap.addOverlay(addInfoWindowToMarker(,{title : "bizName"}), bizName,{}));
  }
}
//*****************************************************************************
function EBFadeBox(mFrontDIV, mBackDIV) {
  this.mTimeout = 100;
  this.mFrontDIV = document.getElementById(mFrontDIV);
  if(this.mFrontDIV) {
    this.mFrontDIV.style.opacity = 1.0;

    this.mBackDIV = document.getElementById(mBackDIV);  
    if(this.mBackDIV) {        
      //this.mBackDIV.style.position = "absolute";
      // Be sure that the front is in front. :D      
      this.mFrontDIV.style.zIndex = this.mBackDIV.style.zIndex + 1;
      
      // Make sure that they line up.
      this.mBackDIV.style.top = this.mFrontDIV.getBoundingClientRect().top;
      this.mBackDIV.style.left = this.mFrontDIV.getBoundingClientRect().left;
      //this.mBackDIV.clientWidth = this.mFrontDIV.clientWidth;
      //this.mBackDIV.clientHeight = this.mFrontDIV.clientHeight;
      
      this.mBackDIV.style.opacity = 0.0;
      this.mBackDIV.style.visibility = "visible";
     
    }
  }  
}
//*****************************************************************************
EBFadeBox.prototype.setTargetContent = function(content) {
  if(this.mBackDIV) {
      this.mBackDIV.style.top = this.mFrontDIV.getBoundingClientRect().top;
      this.mBackDIV.style.left = this.mFrontDIV.getBoundingClientRect().left;
    this.mBackDIV.innerHTML = content;
  }
}
//*****************************************************************************
EBFadeBox.prototype.transform = function() {
  var temp = false;
  if(this.mFrontDIV) {
    if(this.mFrontDIV.style.opacity > 0.1) {
      temp = Number(this.mFrontDIV.style.opacity) - 0.1;
      this.mFrontDIV.style.opacity = temp;
      temp = Number(this.mBackDIV.style.opacity) + 0.1;
      this.mBackDIV.style.opacity = temp;
      setTimeout('EBTransformDIV();', this.mTimeout);
    } else {
      this.mFrontDIV.style.opacity = 0.0;
      this.mBackDIV.style.opacity = 1.0;
      var tempContent = this.mFrontDIV.innerHTML;
      this.mFrontDIV.innerHTML = this.mBackDIV.innerHTML;
      this.mBackDIV.innerHTML = tempContent;
      this.mFrontDIV.style.opacity = 1.0;
      this.mBackDIV.style.opacity = 0.0;
    }
  }  
}
//*****************************************************************************
function EBTransformDIV() {
 if(MainDiv) {
    MainDiv.transform();
  }
}
//*****************************************************************************
