var CurrentSearchPage = 1;
var MarkerExist = false;
function processData(method)
{
    document.getElementById ('ProcesingRequest').style.display ='block';
    if (method=='province')
    {
        makeRequest("CMSAjax.aspx?Action=GetRangeDropdown",'range');
        document.getElementById('suburb').innerHTML = "<select style='width:290px' class='InputFieldsfog' name='ddlSuburb' id='ddlSuburb' ></select>";

    }
    
    if (method=='provinceReg')
    {
        makeRequest("CMSAjax.aspx?Action=GetRangeDropdownReg",'range');
        //makeRequest("CMSAjax.aspx?Action=GetTownDropdownReg&Province="+document.getElementById("ddlProv").value+"&Start=A&End=C",'town');
        //document.getElementById ('suburb').innerHTML ="<select style='margin-top:1px;width:200px;left:0px;position:relative;margin-bottom:3px' class='InputFieldsd' name='ddlSuburb' id='ddlSuburb' ></select>";
    } 
    if (method=='range')
    {
    
        var rangarr = new Array();
        rangarr = document.getElementById("ddlTownRange").value.split('-');
        makeRequest("CMSAjax.aspx?Action=GetTownDropdown&Province="+document.getElementById("ddlProv").value+"&Start="+rangarr[0]+"&End="+rangarr[1],'town');
        document.getElementById ('suburb').innerHTML ="<select style='width:290px' class='InputFieldsfog' name='ddlSuburb' id='ddlSuburb' ></select>";
    }
    if (method=='rangeReg')
    {
        var rangarr = new Array();
        rangarr = document.getElementById("ddlTownRange").value.split('-');
        makeRequest("CMSAjax.aspx?Action=GetTownDropdownReg&Province="+document.getElementById("ddlProv").value+"&Start="+rangarr[0]+"&End="+rangarr[1],'town');
        document.getElementById ('suburb').innerHTML ="<select style='margin-top:1px;width:200px;left:0px;position:relative;margin-bottom:3px' class='InputFieldsd' name='ddlSuburb' id='ddlSuburb' ></select>";
    }
    if (method=='town')
    {
        makeRequest("CMSAjax.aspx?Action=GetSuburbDropdown&Province="+document.getElementById("ddlProv").value+"&Town="+document.getElementById("ddlTown").value,'suburb');
    }
    
    if (method=='townReg')
    {
        makeRequest("CMSAjax.aspx?Action=GetSuburbDropdownReg&Province="+document.getElementById("ddlProv").value+"&Town="+document.getElementById("ddlTown").value,'suburb');
    }
    
    if (method=='member')
    {
        if(document.getElementById("MemberNumber").value!='')
        makeRequest("CMSAjax.aspx?Action=GetMemberDetails&Field=z_scheme&member="+document.getElementById("MemberNumber").value,'member');
    }
    
    document.getElementById ('ProcesingRequest').style.display ='none';
}

function makeRequest(url,div) {
       var RightNow = new Date ();
	   url = url + "&RightNow=" + RightNow.getTime();
	   if (window.XMLHttpRequest) { // Mozilla, Safari,...
           http_request = new XMLHttpRequest();
       } else if (window.ActiveXObject) { // IE
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
       }
       if(div=='range')
       {
        http_request.onreadystatechange = alertRangeContents;
        }
       else if(div=='town')
        http_request.onreadystatechange = alertTownContents;
       else if(div=='suburb')
        http_request.onreadystatechange = alertSuburbContents;
       else if(div=='member')
           http_request.onreadystatechange = alertmember; 
       http_request.open('GET', url, true);
       http_request.send(null);

   }
//----------------------------------------------------------------------------------------
   function alertRangeContents() 
   {
   
       if (http_request.readyState == 4) {
            var msg = http_request.responseText;
           if (http_request.status == 200 && msg.indexOf("Error")<0) {
               document.getElementById('range').innerHTML = http_request.responseText;
               makeRequest("CMSAjax.aspx?Action=GetTownDropdown&Province=" + document.getElementById("ddlProv").value + "&Start=A&End=C", 'town');
           } 
       }
       
   }

    function addOption(selectbox,text,value )
    {
    var optn = document.createElement("OPTION");
    optn.text = text;
    optn.value = value;
    selectbox.options.add(optn);
    }


   function alertmember() 
   {
       if (http_request.readyState == 4) {
            var msg = http_request.responseText;
           if (http_request.status == 200 && msg.indexOf("Error")<0) {
            var disp = new Array("Dentist","General Practitioner","Optometrist","Pharmacist"); 
            var i;
            for(i=ddltype.options.length-1;i>=0;i--)
            {
                ddltype.remove(i);
            }
            if(http_request.responseText == 'TC' || http_request.responseText == 'TD' || http_request.responseText == 'TE' )
                {
                    addOption(ddltype,'General Practitioner','General Practitioner');
                }
            else
                {
                    for (var i=0; i < disp.length;++i)
                    {
                        addOption(ddltype, disp[i], disp[i]);
                    }
                }
           }
       }
       
   }
   
   function alertTownContents() 
   {
       if (http_request.readyState == 4) {
            var msg = http_request.responseText;
           if (http_request.status == 200 && msg.indexOf("Error")<0) {
						document.getElementById ('town').innerHTML = http_request.responseText;
           }
       }
       
   }
   
   function alertSuburbContents() 
   {
       if (http_request.readyState == 4) {
            var msg = http_request.responseText;
           if (http_request.status == 200 && msg.indexOf("Error")<0) {
						document.getElementById ('suburb').innerHTML = http_request.responseText;
           }
       }
       
   }

 var http_request = false;
 var SearchUrl ="";
 var PagingUrl =""
 
function CurrentPage(ThisElement )
{
   var ChildrenOfParent = ThisElement.parentNode.childNodes; 
  
   for ( var i = 0; i < ChildrenOfParent.length; i ++ )
        {
            if ( ChildrenOfParent[i].id == "" )  
                {
                    ChildrenOfParent[i].className = "PagingNorm";
                } 
        }
   ThisElement.className = "PagingHigh";
   
}

function PageThroughResults(thisElement,thisPage,MemberNumber,ServiceProvider,Province,Town,Suburb)
{
    var myURL = "cmsAjax.aspx?Action=doResultPaging&MemberNumber=" + MemberNumber + "&Provider=" + ServiceProvider + "&Province=" + Province + "&Town=" + Town + "&Suburb=" + Suburb + "&PagingID="+thisPage;
    RunAjax(myURL, 'PagingResultDisplay');
    CurrentPage(thisElement);
}

function PageThroughNetworkResults(thisElement,thisPage,MemberNumber,ServiceProvider,Province,Town,Suburb)
{
    var myURL = "cmsAjax.aspx?Action=doNetworkResultPaging&MemberNumber=" + MemberNumber + "&Provider=" + ServiceProvider + "&Province=" + Province + "&Town=" + Town + "&Suburb=" + Suburb + "&PagingID="+thisPage;
    RunAjax(myURL, 'PagingResultDisplay');
    CurrentPage(thisElement);
}

function PageThroughResultsGmap(thisElement, thisPage, MemberNumber, ServiceProvider, Province, Town, Suburb) {
    CurrentSearchPage = thisPage;
    var myURL = "cmsAjax.aspx?Action=doResultPagingGmap&MemberNumber=" + MemberNumber + "&Provider=" + ServiceProvider + "&Province=" + Province + "&Town=" + Town + "&Suburb=" + Suburb + "&PagingID=" + thisPage;
    RunAjax(myURL, 'PagingResultDisplayGmapNEW');
    CurrentPage(thisElement);
}

function PagingResultDisplay(AjaxResponse)
{
    document.getElementById('searchresults').innerHTML = AjaxResponse;
}

function PagingResultDisplayGmap(AjaxResponse) {
    document.getElementById('searchresults').innerHTML = AjaxResponse;
    //SetUpMarkers();
}

function PagingResultDisplayGmapNEW(AjaxResponse) {
    var headertext = "<div id=\"myResults\">" +
                    "<table class=\"lookupresults\"><thead>" +
                        "<tr>" +
                            "<th>Doctor</th>" +
                            "<th>Address</th>" +
                            "<th>Telephone</th>" +
                        "</tr></thead>";
    var footer = "</table></div><div class=\"error\">For referral to a specialist, it is important to obtain relevant referral from attending practitioner.</div>";
    document.getElementById('ProcesingRequest').style.display = 'none';
    var resultformatted = headertext + SearchResponseXYNEW(AjaxResponse) + footer;
    document.getElementById('searchresults').innerHTML = resultformatted;
    SearchResponseXYAddMarker(AjaxResponse);
    //SetUpMarkers();
}

function doSearch()
{
    SearchUrl ="cmsAjax.aspx?Action=doSearch";
    PagingUrl ="cmsAjax.aspx?Action=doPaging";
    document.getElementById ('ValidationMessages').style.visibility='hidden';
    document.getElementById ('memberdiv').style.visibility='hidden';
    document.getElementById ('provincediv').style.visibility='hidden';
    document.getElementById ('towndiv').style.visibility='hidden';
    document.getElementById ('ValidationMessages').style.visibility='hidden';
    
    if ( document.getElementById ('MemberNumber').value.length == 0 )
    {
        document.getElementById ('memberdiv').innerHTML = "Please enter your member number";
        document.getElementById ('memberdiv').style.visibility='visible';
        return false;
    }
    
    if ( ! IsNumericMem(document.getElementById ('MemberNumber').value) )
    {
        document.getElementById ('memberdiv').innerHTML = "Please enter a valid numeric member number";
        document.getElementById ('memberdiv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlProv').value.length == 0 )
    {
        document.getElementById ('provincediv').innerHTML = "Please select a suburb to search in";
        document.getElementById ('provincediv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlTown').value.length == 0 )
    {
        document.getElementById ('towndiv').innerHTML = "Please select a town to search in";
        document.getElementById ('towndiv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlSuburb').value.length == 0 )
    {
        document.getElementById ('ValidationMessages').innerHTML = "Please select a suburb to search in";
        document.getElementById ('ValidationMessages').style.visibility='visible';
        return false;
    }
    
    /*
        Before doing the search clear out text from
        the main div(searchresults),then check if
    */
    document.getElementById ('searchresults').innerHTML="";
    document.getElementById ('paging').innerHTML="";
    SearchUrl= SearchUrl +"&MemberNumber=" + document.getElementById ('MemberNumber').value + "&Provider=" + document.getElementById ('ddltype').value + "&Province=" + document.getElementById ('ddlProv').value + "&Town=" + document.getElementById ('ddlTown').value + "&Suburb=" + document.getElementById ('ddlSuburb').value +"&PagingID=1";
    PagingUrl= PagingUrl +"&MemberNumber=" + document.getElementById ('MemberNumber').value + "&Provider=" + document.getElementById ('ddltype').value + "&Province=" + document.getElementById ('ddlProv').value + "&Town=" + document.getElementById ('ddlTown').value + "&Suburb=" + document.getElementById ('ddlSuburb').value;
    document.getElementById ('ProcesingRequest').style.display ='block';
    RunAjax(SearchUrl, 'SearchResponse');
}

function doNetworkSearch()
{
    SearchUrl ="cmsAjax.aspx?Action=doNetworkSearch";
    PagingUrl ="cmsAjax.aspx?Action=doNetworkPaging";
    document.getElementById ('ValidationMessages').style.visibility='hidden';
    document.getElementById ('memberdiv').style.visibility='hidden';
    document.getElementById ('provincediv').style.visibility='hidden';
    document.getElementById ('towndiv').style.visibility='hidden';
    document.getElementById ('ValidationMessages').style.visibility='hidden';
    
    if ( document.getElementById ('MemberNumber').value.length == 0 )
    {
        document.getElementById ('memberdiv').innerHTML = "Please enter your member number";
        document.getElementById ('memberdiv').style.visibility='visible';
        return false;
    }
    
    if ( ! IsNumericMem(document.getElementById ('MemberNumber').value) )
    {
        document.getElementById ('memberdiv').innerHTML = "Please enter a valid numeric member number";
        document.getElementById ('memberdiv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlProv').value.length == 0 )
    {
        document.getElementById ('provincediv').innerHTML = "Please select a suburb to search in";
        document.getElementById ('provincediv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlTown').value.length == 0 )
    {
        document.getElementById ('towndiv').innerHTML = "Please select a town to search in";
        document.getElementById ('towndiv').style.visibility='visible';
        return false;
    }
    
    if ( document.getElementById ('ddlSuburb').value.length == 0 )
    {
        document.getElementById ('ValidationMessages').innerHTML = "Please select a suburb to search in";
        document.getElementById ('ValidationMessages').style.visibility='visible';
        return false;
    }
    
    /*
        Before doing the search clear out text from
        the main div(searchresults),then check if
    */
    document.getElementById ('searchresults').innerHTML="";
    document.getElementById ('paging').innerHTML="";
    SearchUrl= SearchUrl +"&MemberNumber=" + document.getElementById ('MemberNumber').value + "&Provider=" + document.getElementById ('ddltype').value + "&Province=" + document.getElementById ('ddlProv').value + "&Town=" + document.getElementById ('ddlTown').value + "&Suburb=" + document.getElementById ('ddlSuburb').value +"&PagingID=1";
    PagingUrl= PagingUrl +"&MemberNumber=" + document.getElementById ('MemberNumber').value + "&Provider=" + document.getElementById ('ddltype').value + "&Province=" + document.getElementById ('ddlProv').value + "&Town=" + document.getElementById ('ddlTown').value + "&Suburb=" + document.getElementById ('ddlSuburb').value;
    document.getElementById ('ProcesingRequest').style.display ='block';
    RunAjax(SearchUrl, 'SearchResponse');
}
function SearchResponse(AJAXresponse)
{
    document.getElementById ('ProcesingRequest').style.display ='none';
    document.getElementById('searchresults').innerHTML = AJAXresponse;
    RunAjax(PagingUrl, 'PagingResponse');
}

function ResultSearchResponse(AJAXresponse) {
    if (AJAXresponse.indexOf("error") > 0) {
        _gaq.push(['_trackEvent', 'FOG Search', document.getElementById('ddltype').value + ' - ' + AJAXresponse.substring(AJAXresponse.indexOf(":") + 1, AJAXresponse.lastIndexOf("-->")), document.getElementById("ddlProv").value + ' - ' + document.getElementById("ddlTown").value, parseInt(AJAXresponse.substring(AJAXresponse.indexOf("=") + 1, AJAXresponse.indexOf("-->")))]);
        document.getElementById('ProcesingRequest').style.display = 'none';
        document.getElementById('searchresults').innerHTML = AJAXresponse;
    }
    else {
        var headertext = "<div id=\"myResults\">" +
                    "<table class=\"lookupresults\"><thead>" +
                        "<tr>" +
                            "<th>Doctor</th>" +
                            "<th>Address</th>" +
                            "<th>Telephone</th>" +
                        "</tr></thead>";
        var footer = "</table></div><div class=\"error\">For referral to a specialist, it is important to obtain relevant referral from attending practitioner.</div>";
        document.getElementById('ProcesingRequest').style.display = 'none';
        var resultformatted = headertext + SearchResponseXYNEW(AJAXresponse) + footer;
        document.getElementById('searchresults').innerHTML = resultformatted;
        SearchResponseXYAddMarker(AJAXresponse);
        RunAjax(PagingUrl, 'PagingResponse');
    }
}

function PagingResponse(AJAXresponse) 
{
    document.getElementById('paging').innerHTML = AJAXresponse;
    _gaq.push(['_trackEvent', 'FOG Search', document.getElementById('ddltype').value + ' - ' + AJAXresponse.substring(AJAXresponse.indexOf(":") + 1, AJAXresponse.lastIndexOf("-->")), document.getElementById("ddlProv").value + ' - ' + document.getElementById("ddlTown").value, parseInt(AJAXresponse.substring(AJAXresponse.indexOf("=") + 1, AJAXresponse.indexOf("-->")))]);
    if (AJAXresponse.indexOf("PagingHigh") > -1) 
    {
        document.getElementById('paging').className = "pagingarea";
    }
    else 
    {
        document.getElementById('paging').className = "";
    }
}

function IsNumericMem(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;


   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function doXYSearch() {
    doSearchGmap();
    //SetUpMarkers();
}

function SetUpMarkers() {
    var addressSearch = document.getElementById("ddlSuburb").value.replace("all", "") + "," + document.getElementById("ddlTown").value + "," + document.getElementById("ddlProv").value;
    map.clearOverlays();
    geocoder = new GClientGeocoder();
    geocoder.getLatLng(
                    addressSearch,
                    function (point) {
                        if (!point) {
                            //alert('No Point');
                        }
                        else {
                            //point.toString();
                            doSearchDrag(point.x, point.y);
                        }
                    }
                );
}

function doSearchDrag(X, Y) {
    map.clearOverlays();
    SearchUrl = "cmsAjax.aspx?Action=doXYSearchDropDown";
    SearchUrl = SearchUrl + "&MemberNumber=" + document.getElementById('MemberNumber').value + "&Provider=" + document.getElementById('ddltype').value + "&Province=" + document.getElementById('ddlProv').value + "&Town=" + document.getElementById('ddlTown').value + "&Suburb=" + document.getElementById('ddlSuburb').value + "&PagingID=" + CurrentSearchPage;
    RunAjax(SearchUrl, 'SearchResponseXY');
}

function SearchResponseXY(AJAXresponse) {
    var addarray = AJAXresponse.split("#");
    for (ai = 0; ai < addarray.length; ai++) {
        var itemarray = addarray[ai].split("|");
        if (itemarray.length == 3) {
            AddMarker(itemarray[0].toUpperCase(), itemarray[1].toUpperCase(), itemarray[2].toUpperCase(), map);
        }
    }
}

function SearchResponseXYNEW(AJAXresponse) {
    var fogresults = "";
    var addarray = AJAXresponse.split("#");
    for (ai = 0; ai < addarray.length; ai++) {
        var itemarray = addarray[ai].split("|");
        if (itemarray.length == 8) {
            fogresults += "<tr><td>" + itemarray[0] + "</td><td><span id='row" + ai + "'>" + itemarray[1] + itemarray[2] + itemarray[3] + "</span></td><td>" + itemarray[5] + "</td></tr>";
        }
    }
    return fogresults;
}

function ValidateBuildingValue(strBuilding) {
    var addresstype = ["road", "street", "way", "ave", "avenue", "circle", "drive", "crescent", "lane", "boulevard", "cres"];
    for (i = 0; i < addresstype.length; i++) {
        if (strBuilding.toLowerCase().indexOf(addresstype[i]) > -1)
            return true;
    }
    return false;
}

function SearchResponseXYAddMarker(AJAXresponse) {
    var fogresults = "";
    var addarray = AJAXresponse.split("#");
    for (ai = 0; ai < addarray.length; ai++) {
        var itemarray = addarray[ai].split("|");
        if (itemarray.length == 8) {
            //name, tel, street, suburb, map, row
            //name, street, suburb, town, tel
            //name, building, street, suburb, town, tel
            if (itemarray[6] != "0E-10") {
                if (itemarray[2] != "")
                    AddMarkerNew(itemarray[0].toUpperCase(), itemarray[5].toUpperCase(), itemarray[2].toUpperCase(), itemarray[3].toUpperCase(), map, "row" + ai, itemarray[6], itemarray[7]);
                else if (itemarray[1] != "")
                    AddMarkerNew(itemarray[0].toUpperCase(), itemarray[5].toUpperCase(), itemarray[1].toUpperCase(), itemarray[3].toUpperCase(), map, "row" + ai, itemarray[6], itemarray[7]);
            }

        }
    }
    return fogresults;
}


function doSearchGmap() {
    SearchUrl = "cmsAjax.aspx?Action=doSearchGmap";
    PagingUrl = "cmsAjax.aspx?Action=doPagingGmap";
    document.getElementById('ValidationMessages').style.visibility = 'hidden';
    document.getElementById('memberdiv').style.visibility = 'hidden';
    document.getElementById('provincediv').style.visibility = 'hidden';
    document.getElementById('towndiv').style.visibility = 'hidden';
    document.getElementById('ValidationMessages').style.visibility = 'hidden';

    if (document.getElementById('MemberNumber').value.length == 0) {
        document.getElementById('memberdiv').innerHTML = "Please enter your member number";
        document.getElementById('memberdiv').style.visibility = 'visible';
        return false;
    }

    if (!IsNumericMem(document.getElementById('MemberNumber').value)) {
        document.getElementById('memberdiv').innerHTML = "Please enter a valid numeric member number";
        document.getElementById('memberdiv').style.visibility = 'visible';
        return false;
    }

    if (document.getElementById('ddlProv').value.length == 0) {
        document.getElementById('provincediv').innerHTML = "Please select a province to search in";
        document.getElementById('provincediv').style.visibility = 'visible';
        return false;
    }

    if (document.getElementById('ddlTown').value.length == 0) {
        document.getElementById('towndiv').innerHTML = "Please select a town to search in";
        document.getElementById('towndiv').style.visibility = 'visible';
        return false;
    }

    if (document.getElementById('ddlSuburb').value.length == 0) {
        document.getElementById('ValidationMessages').innerHTML = "Please select a suburb to search in";
        document.getElementById('ValidationMessages').style.visibility = 'visible';
        return false;
    }
    /*
    Before doing the search clear out text from
    the main div(searchresults),then check if
    */
    document.getElementById('searchresults').innerHTML = "";
    document.getElementById('paging').innerHTML = "";
    SearchUrl = SearchUrl + "&MemberNumber=" + document.getElementById('MemberNumber').value + "&Provider=" + document.getElementById('ddltype').value + "&Province=" + document.getElementById('ddlProv').value + "&Town=" + document.getElementById('ddlTown').value + "&Suburb=" + document.getElementById('ddlSuburb').value + "&PagingID=1";
    PagingUrl = PagingUrl + "&MemberNumber=" + document.getElementById('MemberNumber').value + "&Provider=" + document.getElementById('ddltype').value + "&Province=" + document.getElementById('ddlProv').value + "&Town=" + document.getElementById('ddlTown').value + "&Suburb=" + document.getElementById('ddlSuburb').value;
    document.getElementById('ProcesingRequest').style.display = 'block';
    RunAjax(SearchUrl, 'ResultSearchResponse');
}
