dojo.require("dojo.parser");
dojo.require("dojo.data.ItemFileReadStore");

dojo.require("dijit.Dialog");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.layout.AccordionContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");


var g_nMaxRecords = 50;
var g_nStartRec = 1;
var g_nEndRec = g_nMaxRecords;
var g_sCurrentSearch = "";


function init() {
  dojo.parser.parse(dojo.byId("wrapper"));
  
  showControl("wrapper", 1, 750);
}

function showControl(element, opacity, duration) {
  if (!dojo.byId(element)) return;
    
  dojo.anim(element, {opacity: opacity}, duration);
  dojo.style(element,"display","block");
  dojo.style(element,"visibility","visible");
}


function doCurrentSearch(){
  switch(g_sCurrentSearch){
  case "address":
    searchByAddress();
    break;
  case "pin":
    searchByPin();
    break;
  case "subdivision":
    searchBySubName();
    break;
  case "ownername":
    searchByOwnerName();
    break;
  }
}

function getNextRecords(){
  g_nStartRec = g_nStartRec + g_nMaxRecords;
  g_nEndRec = g_nStartRec + g_nMaxRecords - 1;
  doCurrentSearch();
}

function getPreviousRecords(){
  g_nStartRec = g_nStartRec - g_nMaxRecords;
  g_nEndRec = g_nEndRec - g_nMaxRecords;
  doCurrentSearch();
}


function openMapWindow(){
  document.location = 'gisviewer.php';
}

function parseSearchResponse(origRequest){
  var sReply = origRequest.responseText;
  $("resultsDiv").innerHTML = sReply;
}

function resetStartRec(){
  g_nStartRec = 1;
  g_nEndRec = g_nMaxRecords;
}

function searchByAddress(){
  var sAddress = $("autoCompleteStreetName").value;
  var sServiceUrl = "ajax/ajaxAddressSearch.php";
  g_sCurrentSearch = "address";
  sAddress = trimString(sAddress);

  if(sAddress.length > 1){
    showLoading();
    var myAjax = new Ajax.Request(sServiceUrl,{method:'post',parameters:'address=' + sAddress + '&startrec=' + g_nStartRec + '&endrec=' + g_nEndRec,onComplete:parseSearchResponse});
  } else {
    alert("Please enter an Address to search.");
  }
}

function searchByOwnerName(){
  var sOwnerName = $("autoCompleteOwnerName").value;
  var sServiceUrl = "ajax/ajaxOwnerNameSearch.php";
  g_sCurrentSearch = "ownername";
  sOwnerName = trimString(sOwnerName);

  if(sOwnerName.length > 1){
    showLoading();
    var myAjax = new Ajax.Request(sServiceUrl,{method:'post',parameters:'ownername=' + sOwnerName + '&startrec=' + g_nStartRec + '&endrec=' + g_nEndRec,onComplete:parseSearchResponse});
  } else {
    alert("Please enter an owner name to search.");
  }
}

function searchByPin(){
  var sPin = $("autoCompleteParcelNumber").value;
  var sServiceUrl = "ajax/ajaxPinSearch.php";
  g_sCurrentSearch = "pin";
  sPin = trimString(sPin);

  if(sPin.length > 1){
    showLoading();
    var myAjax = new Ajax.Request(sServiceUrl,{method:'post',parameters:'pin=' + sPin + '&startrec=' + g_nStartRec + '&endrec=' + g_nEndRec,onComplete:parseSearchResponse});
  } else {
    alert("Please enter a PIN to search.");
  }
}


function showLoading(){
  $("resultsDiv").innerHTML = "<p>Searching...</p>";
}

function toggleDiv(sName){
  var sAccordId = sName.substr(0,7);
  var elem = $(sName);
  Effect.toggle(elem,'slide',{duration:.5});

  //flip the browse image to up or down
  if(sAccordId.substr(0,6)== "accord"){
    var browseImgElem = $(sAccordId + "BrowseImg");
    if(browseImgElem.src.indexOf("collapse.png") != -1){
      browseImgElem.src = "images/expand.png";
    } else {
      browseImgElem.src = "images/collapse.png";
    }
  }
}


function trimString(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

function zoomToParcel(sPin){
  document.location = 'gisviewer.php?pin=' + sPin;
}


dojo.addOnLoad(init);