var extend = true;
var newStateList = true;

function ShowHideBlock(id, link, text)
{
    var block = document.getElementById(id);
    if(block)
    {
        if(block.style.display == 'none')
        {
            // Show
            block.style.display = 'block';
            link.innerHTML = "&lt;&lt;&lt;&nbsp;Hide";
        }
        else
        {
            // Hide
            block.style.display = 'none';
            link.innerHTML = text;
        }
    }
}

function ShowHideAdditionalPractices(id, link)
{
    ShowHideBlock('distancePracticesAdditionalBlockId_' + id, link, "More&nbsp;&gt;&gt;&gt;");
}

function ShowHideTherapistToTherapist(id, link)
{
    ShowHideBlock('therapistToTherapistBlockId_' + id, link, "Details&nbsp;&gt;&gt;&gt;");
}

function ShowAdditionalInfo(id, show)
{
    var block = document.getElementById('consultationServicesBlockId_' + id);
    if(block)
    {
        if(show)
            block.style.display = 'none';
        else
            block.style.display = 'block';
    }
        
    var block = document.getElementById('trainingLevelBlockId_' + id);
    if(block)
    {
        if(show)
            block.style.display = 'none';
        else
            block.style.display = 'inline';
    }
        
    var block = document.getElementById('addressBlockId_' + id);
    if(block)
    {
        if(show)
            block.style.display = 'inline';
        else
            block.style.display = 'none';
    }
    
    var block = document.getElementById('webpagesBlockId_' + id);
    if(block)
    {
        if(show)
            block.style.display = 'block';
        else
            block.style.display = 'none';
    }
}

function ShowWebPages(id)
{
    ShowAdditionalInfo(id, true)
}

function ShowConsultation(id)
{
    ShowAdditionalInfo(id, false)
}

function AddFavorirteClick(id, link)
{
    //command-therapist-addfavoritesecond
    link.onclick = null;
    var wRequest =  new Sys.Net.WebRequest();
    var requestString = "id=" + id + "&type=1";
    
    wRequest.set_url("/command-therapist-addfavoritesecond");
    wRequest.set_httpVerb("POST");
    wRequest.set_body(requestString);
    var callback = Function.createCallback(AdvancedRequestCompleted, link);
    wRequest.add_completed(callback);
    wRequest.invoke();
}

function AdvancedRequestCompleted(executor, a, link)
{
    if(executor.get_responseAvailable()) 
    {
        response = executor.get_responseData(); 
        if(response == 'OK')
        {
            var span = link.parentNode;
            span.removeChild(link);
            span.innerHTML = '<i>Saved in "My Favorite Therapists"</i>';
        }
    }      
}

function ChangeAddressFunction(a, b, ids)
{
    for(var i = 0; i < ids.length; i++)
    {
        var id = ids[i];
        
        CheckNameLength(id);
    }
}

function CheckNameLength(id)
{
    var nameBlock = document.getElementById('nameBlockID_' + id);
    
    if(nameBlock)
    {
        var nameBlockHeight = nameBlock.offsetHeight;
        if(nameBlockHeight > 20)
        {
            var text = nameBlock.innerHTML;
            var textArray = text.split(' ');
            var newText = new Array();
            nameBlock.style.visibility = 'hidden';
            
            var maxCount = 10;
            while(nameBlockHeight > 20)
            {
                newText.push(textArray.splice(textArray.length - 1, 1));
                nameBlock.innerHTML = textArray.join(' ');
                
                nameBlock.innerHTML += ' &gt;&gt;';
                
                nameBlockHeight = nameBlock.offsetHeight;
                
                nameBlock.innerHTML = nameBlock.innerHTML.substring(0, nameBlock.innerHTML.length-9);
                
                if(maxCount <= 0)
                    break;
                maxCount--;
            }
            
            if(nameBlock.innerHTML.charAt(nameBlock.innerHTML.length - 1) == ',')
            {
                nameBlock.innerHTML = nameBlock.innerHTML.substring(0, nameBlock.innerHTML.length-1);
                newText[newText.length - 1] = ', ' + newText[newText.length - 1];
            }
            
            if(nameBlock.innerHTML.charAt(nameBlock.innerHTML.length - 1) == ' ' && nameBlock.innerHTML.charAt(nameBlock.innerHTML.length - 2) == ',')
            {
                nameBlock.innerHTML = nameBlock.innerHTML.substring(0, nameBlock.innerHTML.length-2);
                newText[newText.length - 1] = ', ' + newText[newText.length - 1];
            }
            
            // Add link '>>'
            var link = document.createElement('a');
            link.id = 'nameBlockLinkId_' + id;
            link.href = 'javascript:void(0);';
            link.innerHTML = '&gt;&gt;';
            var callback = Function.createCallback(ShowHideName, id);
            link.onclick = callback;
            nameBlock.innerHTML += '&nbsp;';
            nameBlock.appendChild(link);
            
            var additionalNameBlock = document.createElement('span');
            additionalNameBlock.style.display = 'none';
            additionalNameBlock.id = 'additionalNameBlock_' + id;
            newText.reverse();
            additionalNameBlock.innerHTML = newText.join(' ')
            nameBlock.appendChild(additionalNameBlock);
            
            nameBlock.style.visibility = 'visible';
        }
    }
}

function ShowHideName(event, id, linkToRemove)
{
    // Fix event argument
    if(Sys.Browser.agent==Sys.Browser.InternetExplorer)
        id = id || event;
        
    var linkToRemove = linkToRemove || null;
    var nameBlock = document.getElementById('additionalNameBlock_' + id);
    var nameBlockMain = document.getElementById('nameBlockID_' + id);
    
    var link = document.getElementById('nameBlockLinkId_' + id);
    if(nameBlock)
    {
        if(nameBlock.style.display == 'none')
        {
            nameBlock.style.display = 'inline';
            //link.innerHTML = '';
            link.style.display = 'none';
            nameBlockMain.firstChild.nodeValue = nameBlockMain.firstChild.nodeValue.substring(0, nameBlockMain.firstChild.nodeValue.length-1);
            
            var span = document.createElement('span');
            span.innerHTML = '&nbsp;';
            var newLink = document.createElement('a');
            newLink.href = 'javascript:void(0);';
            newLink.innerHTML = "&lt;&lt;";
            newLink.onclick = function()
            {
                ShowHideName(null, id, span);
            };
            
            span.appendChild(newLink);
            nameBlock.appendChild(span);
            
        }
        else
        {
            nameBlock.style.display = 'none';
            //link.innerHTML = '&gt;&gt;';
            link.style.display = 'inline';
            nameBlockMain.firstChild.nodeValue += ' ';
            
            if(linkToRemove)
                linkToRemove.parentNode.removeChild(linkToRemove);
        }
    }
}

function ShowAdvancedSearch()
{
    var advTable = document.getElementById('advancedSearchTableId');
    var link = document.getElementById('advancedSearchLabelId');
    if(advTable.style.display == 'none')
    {
        advTable.style.display = 'table';
        link.innerHTML = 'Hide Advanced Search:';
    }
    else
    {
        advTable.style.display = 'none';
        link.innerHTML = 'Refine Your Results Here:';
    }
}

function remove_nbsps(string)
{
    if(typeof(string) == 'undefined' || string == null) return;
    
    return string.replace(/(&nbsp;)+/g,'');
}
            
function trim(string)
{
    return string.replace(/^\s*/, "").replace(/\s*$/, "");
}

function SubmitDisplayLoader()
{
    DisplayLoader();
    setTimeout(function()
    {
        var loaderImg = document.getElementById('loaderImage');
        if(loaderImg)
            loaderImg.src = '/images/loader.gif';
        else
            document.getElementById('loader').src = '/images/loader.gif';
    }, 0);
}

function SearchStart()
{
    SubmitDisplayLoader()
    var searchTypeOld = document.getElementsByName('searchType');
    var searchType = new Array(3);
    for(i = 0; i < searchTypeOld.length; i++)
    {
        searchType[searchTypeOld[i].value] = searchTypeOld[i];
    }
    
    if (searchType[0].checked == true)
    {
        // Name search
        flname = document.getElementById('flName').value;
        flname = flname.toLowerCase();
        flname = trim(flname);
        flname = flname.replace(/ /g,"_");
        
        if (flname == '')
            searchType[1].checked = true;
        else
            document.searchForm.action = GetTrainingFlNameLink(flname);
        
        RemoveAllAdvancedSearch();
    }
    else if (searchType[3].checked == true)
    {
        // ZIP code search
        var zip = "";
        
        if(document.getElementById('zipCodeID') != undefined)
            var zip = document.getElementById('zipCodeID').value;
        
        zip = trim(zip);
        
        if (zip == '')
            searchType[1].checked = true;
        else
            document.searchForm.action = GetTrainingZipCodeLink(zip);
        
        RemoveAllAdvancedSearch();
    }
    else
    if (searchType[1].checked == true)
    {
        if(typeof(dropDownCity) != 'undefined' && typeof(window.state) != 'undefined')
        {
            if(dropDownCity.get_SelectedIndex() == 0)
            {
                // State search
                document.searchForm.action = GetTrainingStateLink(window.state);
                //document.searchForm.action = '/controllers/index.php?action=search|search-result_extend&state=' + window.state; 
            }
            else
            {
                var tmpDiv = document.createElement('div');
                tmpDiv.innerHTML = dropDownCity._Options[dropDownCity.get_SelectedIndex()];
                
                document.searchForm.action = tmpDiv.childNodes[0].getAttribute('value');
            }
            
            RemoveAllAdvancedSearch();
        }
        else if(typeof(dropDownState) != 'undefined')
        {
            var tmpDiv0 = document.createElement('div');
            tmpDiv0.innerHTML = dropDownState._Options[dropDownState.get_SelectedIndex()];
            
            if(tmpDiv0.innerHTML == 'Choose...')
            {
                document.searchForm.action = GetTrainingReturnLink();
            }
            else
            {
                var state = GetTrainingState(tmpDiv0.childNodes[0]);
                
                state = trim(state);                                        
                state = state.replace(/ /g,"_"); 
                document.searchForm.action = GetTrainingStateLink(state);
                //document.searchForm.action = '/controllers/index.php?action=search|search-result_extend&state=' + state; 
            }
        }
    }
    else
    if (searchType[4].checked == true || searchType[5].checked == true || searchType[6].checked == true || searchType[7].checked == true || searchType[8].checked == true)
    {
        var inp = document.createElement('input');
        inp.type = 'hidden';
        
        if(searchType[4].checked == true)
        {
            serv = dropDownNoFeeGroup.get_SelectedValueText().toLowerCase();
            if(serv == 'any no-fee grp')
            {
                HideLoader();
                return;
            }
            inp.name = 'nofeegrp';
        }
        else
        if(searchType[5].checked == true)
        {
            serv = dropDownCons.get_SelectedValueText().toLowerCase();
            if(serv == 'any consultation')
            {
                HideLoader();
                return;
            }
            inp.name = 'cons';
        }
        else
        if(searchType[6].checked == true)
        {
            serv = dropDownTraining.get_SelectedValueText().toLowerCase();
            if(serv == 'any training')
            {
                HideLoader();
                return;
            }
            inp.name = 'training';
        }
        else
        if(searchType[7].checked == true)
        {
            serv = dropDownCert.get_SelectedValueText().toLowerCase();
            if(serv == 'any certification')
            {
                HideLoader();
                return;
            }
            inp.name = 'cert';
        }
        else
        if(searchType[8].checked == true)
        {
            serv = dropDownSetting.get_SelectedValueText().toLowerCase();
            if(serv == 'any setting')
            {
                HideLoader();
                return;
            }
            inp.name = 'setting';
        }

        if(typeof(window.state) != 'undefined')
        {
            var state = window.state;
            
            if(typeof(dropDownCity) != "undefined" && dropDownCity.get_SelectedIndex() != 0)
            {
                var tmpDiv = document.createElement('div');
                tmpDiv.innerHTML = dropDownCity._Options[dropDownCity.get_SelectedIndex()];
                    
                document.searchForm.action = GetTrainingCityStateLink(state, tmpDiv.childNodes[0].getAttribute('canonized').replace(/ /g,"_"));
            }
            else
            {
                // from state page
                document.searchForm.action = GetTrainingState2Link(state);
            }
        }
        else
        {
            document.searchForm.action = GetTrainingStartPageLink();
        }
        
        inp.value = serv;
        document.searchForm.appendChild(inp);
    }
    
    document.searchForm.submit();
}

function ChangeSearchRadioButton(num,name)
{
    var searchTypeOld = document.getElementsByName('searchType');
    var searchType = new Array(3);
    for(i = 0; i < searchTypeOld.length; i++)
    {
        searchType[searchTypeOld[i].value] = searchTypeOld[i];
    }
    
    switch(num)
    {
        case 0 : searchType[0].checked = true;
                 ChangeSearchType(0,1); 
                 document.getElementById("zipCodeID").value = ''; 
                 break;
        case 1 : /*GetAdvancedList();*/ searchType[1].checked = true; break;
        case 3 : searchType[3].checked = true;
                 ChangeSearchType(0,1); document.getElementById("flName").value = '';
                 break;
        case 4 : searchType[4].checked = true; 
                 ClearParameters("dropDownNoFeeGroup");
                 break;
        case 5 : searchType[5].checked = true; 
                 ClearParameters("dropDownCons");   
                 break;
        case 6 : searchType[6].checked = true; 
                 ClearParameters("dropDownTraining");   
                 break;
        case 7 : searchType[7].checked = true; 
                 ClearParameters("dropDownCert");   
                 break;
        case 8 : searchType[8].checked = true; 
                 ClearParameters("dropDownSetting");   
                 break;
    }
}

function ClearParameters(name)
{
    if(dropDownNoFeeGroup.get_Disabled() == false)
    {
        if(name != "dropDownNoFeeGroup")
        {
            dropDownNoFeeGroup.set_SelectedIndex(0);
            dropDownNoFeeGroup.set_BackgroundColor("#ffffff");
        }
        else
        {
            if(dropDownNoFeeGroup.get_SelectedValueText() != "Any No-Fee Grp")
                dropDownNoFeeGroup.set_BackgroundColor("#ffd0ae");
             else
                dropDownNoFeeGroup.set_BackgroundColor("#ffffff");
        }
    }
    
    if(dropDownCons.get_Disabled() == false)
    {
        if(name != "dropDownCons")
        {
            dropDownCons.set_SelectedIndex(0);
            dropDownCons.set_BackgroundColor("#ffffff");
        }
        else
        {
            if(dropDownCons.get_SelectedValueText() != "Any Consultation")
                dropDownCons.set_BackgroundColor("#ffd0ae");
             else
                dropDownCons.set_BackgroundColor("#ffffff");
        }
    }
    
    if(dropDownTraining.get_Disabled() == false)
    {
        if(name != "dropDownTraining")
        {
            dropDownTraining.set_SelectedIndex(0);
            dropDownTraining.set_BackgroundColor("#ffffff");
        }
        else
        {
            if(dropDownTraining.get_SelectedValueText() != "Any Training")
                dropDownTraining.set_BackgroundColor("#ffd0ae");
             else
                dropDownTraining.set_BackgroundColor("#ffffff");
        }
    }
    
    if(dropDownCert.get_Disabled() == false)
    {
        if(name != "dropDownCert")
        {
            dropDownCert.set_SelectedIndex(0);
            dropDownCert.set_BackgroundColor("#ffffff");
        }
        else
        {
            if(dropDownCert.get_SelectedValueText() != "Any Certification")
                dropDownCert.set_BackgroundColor("#ffd0ae");
             else
                dropDownCert.set_BackgroundColor("#ffffff");
        }
    }
    
    if(dropDownSetting.get_Disabled() == false)
    {
        if(name != "dropDownSetting")
        {
            dropDownSetting.set_SelectedIndex(0);
            dropDownSetting.set_BackgroundColor("#ffffff");
        }
        else
        {
            if(dropDownSetting.get_SelectedValueText() != "Any Setting")
                dropDownSetting.set_BackgroundColor("#ffd0ae");
             else
                dropDownSetting.set_BackgroundColor("#ffffff");
        }
    }
}

function ChangeSearchType(n,changeAll)
{
    changeAll = changeAll || 0;
    
    if(n == 0)      //  F/L search
    {
        // Disable
        if(changeAll == 1)
        {
            var searchTypeOld = document.getElementsByName('searchType');
            var searchType = new Array(3);
            for(i = 0; i < searchTypeOld.length; i++)
            {
                searchType[searchTypeOld[i].value] = searchTypeOld[i];
            }
            
            //searchType[2].disabled = true;
        
            var list = [];
            var listUnsortoed = document.getElementsByName('advancedSearch');
            for(var i = 0; i < listUnsortoed.length; i++)
                list[listUnsortoed[i].value] = listUnsortoed[i];
            
            for(i in list)
            {
                list[i].disabled = true;
                list[i].checked = true;
            }
        }
        
        
        //document.getElementById('prPopulationsID').disabled = true;
        //if(typeof(dropDownPopulations) != 'undefined')
         //   dropDownPopulations.set_Disabled(true);
    }
    else
    if(n == 1)      //  state search
    {
        //  Enable
        
        var list = [];
        var listUnsortoed = document.getElementsByName('advancedSearch');
        for(var i = 0; i < listUnsortoed.length; i++)
            list[listUnsortoed[i].value] = listUnsortoed[i];
            
        for(i in list)
        {
            list[i].disabled = false;
        }
        
        if(changeAll == 1)
        {
            var searchTypeOld = document.getElementsByName('searchType');
            var searchType = new Array(3);
            for(i = 0; i < searchTypeOld.length; i++)
            {
                searchType[searchTypeOld[i].value] = searchTypeOld[i];
            }
            searchType[2].disabled = false;
            
            for(i in list)
            {
                list[i].disabled = false;
            }
            
            list[0].checked = true;
        }
    }
}

function ClearAdvancedSearch(name)
{
    SubmitDisplayLoader();
    var form = document.searchForm;
    var startDelete = false;
    for(var i = 0; i < form.childNodes.length; i++)
    {
        var inp = form.childNodes[i];
        if(inp.tagName == "INPUT" && inp.getAttribute('advanced') == 'true')
        {
            if(inp.name == name)
                startDelete = true;
            else
            if(startDelete)
            {
                // remove from mult
                var str = document.searchForm.mult.value;
                str = str.split(';');
                var newArray = [];
                for(var j = 0; j < str.length; j++)
                {
                    if(str[j] != inp.name)
                        newArray.push(str[j]);
                }
                
                document.searchForm.mult.value = newArray.join(';');
                inp.parentNode.removeChild(inp);
                i--;
            }
        }
        
    }
    
    form.submit();
}

function RemoveAdvancedSearch(name)
{
    SubmitDisplayLoader();
    var form = document.searchForm;
    if(document.searchForm[name])
    {
        var inp = document.searchForm[name];
        inp.parentNode.removeChild(inp);
        
        var inp = document.searchForm.mult;
        inp.parentNode.removeChild(inp);
    }
    
    form.submit();
}

function StartFilter(type,order)
{
    var form = document.searchForm;
    form.searchFilterType.value = type;
    form.searchFilterOrder.value = order;
    form.submit();
}

function RemoveAllAdvancedSearch()
{
    // remove advanced search
    var form = document.searchForm;
    
    if(form.mult)
        form.removeChild(form.mult);
        
    for(var i = 0; i < form.childNodes.length; i++)
    {
        var inp = form.childNodes[i];
        if(inp.tagName == "INPUT" && inp.getAttribute('advanced') == 'true')
        {
            inp.parentNode.removeChild(inp);
            i--;
        }
    }
}

function SendMailFormClick(id)
{
    var form = document.SendMailForm;
    form.tOid.value = id;
    form.submit();
}

// Load advanced parameters on city change
function GetAdvancedList()
{
    if(typeof(dropDownCity) != 'undefined' && typeof(window.state) != 'undefined')
    {
        if(dropDownCity.get_SelectedIndex() != 0)
        {
            var tmpDiv = document.createElement('div');
            tmpDiv.innerHTML = dropDownCity._Options[dropDownCity.get_SelectedIndex()];
            
            var city = tmpDiv.childNodes[0].getAttribute('canonized');
        }
        else
            var city = '';
        
        var wRequest =  new Sys.Net.WebRequest();
        var requestString = "getadavanced=true&state=" + window.state + "&city=" + city + "&country=" + GetCountry();
        
        wRequest.set_url("/views/search/training-search-engine.php?rqid=" + Math.random());
        wRequest.set_httpVerb("POST");
        wRequest.set_body(requestString);
        wRequest.add_completed(AdvancedRequestCompleted);
        wRequest.invoke();
        
        SetEnableAdvancedOption(false);
    }
}

function SetEnableAdvancedOption(enable)
{
    parameters = {"NoFeeGrp" : 'dropDownNoFeeGroup', "Consultation" : 'dropDownCons', "Training" : 'dropDownTraining', "Certification" : 'dropDownCert', "Settings" : 'dropDownSetting'};
        
    for(name in parameters)
    {
        var selectId = parameters[name];
        
        if(typeof(window[selectId]) != 'undefined')
        {
            if(window[selectId].get_Options().length == 1 && window[selectId].get_Options()[0].indexOf('Any') !== -1)
                window[selectId].set_Disabled(true);
            else
                window[selectId].set_Disabled(!enable);
        }
    }
}

function AdvancedRequestCompleted(executor, eventArgs)
{
    if(executor.get_responseAvailable()) 
    {
        response = executor.get_responseData(); 
        response = parseXML(response);
        
        parameters = {"NoFeeGrp" : 'dropDownNoFeeGroup', "Consultation" : 'dropDownCons', "Training" : 'dropDownTraining', "Certification" : 'dropDownCert', "Settings" : 'dropDownSetting'};
        
        for(name in parameters)
        {
            var selectId = parameters[name];
            if(typeof(window[selectId]) != 'undefined')
            {
                var select = window[selectId];
                select.set_SelectedIndex(0);
                var first = select.get_SelectedValue();
                
                asOptions = [first];
                node = response.getElementsByTagName(name)[0].getElementsByTagName('name');
                
                for(var i = 0; i < node.length; i++)
                {
                    asOptions.push(node[i].firstChild.nodeValue);
                }
                
                select.set_Options(asOptions)
                
            }
        }
    } 
    
    SetEnableAdvancedOption(true);
}