function showHideAdvancedSearch(show, searchExists){
    if(show==1){
        document.getElementById("advancedSearch").style.display="block";
        if(searchExists!=null && searchExists==0){
            setCityText(document.getElementById('ci'));
            setLanguageText(document.getElementById('la'));
        }
    }else{
        document.getElementById("advancedSearch").style.display="none";
        clearSearchFields();
    }
}

function clearSearchFields(){
    document.getElementById("ci").value = "";
    document.getElementById("st").value = "";
    document.getElementById("co").value = "";
    document.getElementById("la").value = "";
}

function expandDiv(elem, expand){
    var floatingSiblingClass = (elem.className=="searchResult")? "floatingInfo": "floatingInfoSmall";
    var floatingDiv = null;
    if(!(floatingDiv = findChildByClass(elem, floatingSiblingClass)))
        return;

    if(expand==1){
        if(expandedDiv!=null){
            expandDiv(expandedDiv, 0);
        }

        if(elem.className=="searchResult"){
            elem.style.background = "url(../images/search/large_bg_active.gif)";
         }else{
            elem.style.background = "url(../images/search/small_bg_active.gif)";
        }
        elem.style.width = "778px";
        floatingDiv.style.display = "block";
        expandedDiv = elem;
    }else{
        
        if(elem.className=="searchResult"){
            elem.style.backgroundImage = "url(../images/search/large_bg_inactive.gif)";
        }else{
            elem.style.backgroundImage = "url(../images/search/small_bg_inactive.gif)";
        }
        elem.style.width = "590px";
        floatingDiv.style.display = "none";
    }
}

function keepFloatingDivOpen(elem){
    elem.style.display = 'block';

    var searchResultDiv = elem.parentNode;

    if(searchResultDiv.getAttribute('class')=="searchResult" || searchResultDiv.getAttribute('className')=="searchResult"){
        searchResultDiv.style.backgroundImage = "url(../images/search/large_bg_active.gif)";
    }else{
        searchResultDiv.style.backgroundImage = "url(../images/search/small_bg_active.gif)";
    }
    searchResultDiv.style.width="778px";
}

function findChildByClass(elem, c) {
    var children = elem.getElementsByTagName('DIV');
    for(var i=0; i<children.length; i++) {
        if(children[i].getAttribute('class') == c || children[i].getAttribute('className') == c) {
            return children[i];
        }
    }
    return null;
}

function setCityText(e){
    if (e.value == ''){
        e.value = "Enter City"
        e.style.color = '#52575A';
    }
}

function setLanguageText(e){
    if (e.value == ''){
        e.value = "Enter Language"
        e.style.color = '#52575A';
    }
}

function doSearch(){//path, id
    
    if(document.getElementById("advancedSearch").style.display=="block"){
        //pick up the advanced params
        var str = buildAdvSearchParams();
        window.location = str;
        return false;
    }
}

/*function removeCategoriesFromQueryInput(){
    var q = document.getElementById("q").value;

    if(q.indexOf("category.")>-1){
        var theLastIndex = -1;

        if(q.indexOf(" ")>-1){
             theLastIndex = q.indexOf(" ")+1;
        }else{
            theLastIndex = q.length;
        }

        var catStr = q.substring(theLastIndex, q.length);
        document.getElementById("q").value = catStr;
    }
}*/

function buildAdvSearchParams(){

    var searchElement = document.getElementById("q");
    searchElement.value = searchElement.value.replace(/"/g,"'");

    var cityElement = document.getElementById("ci");

    var city = trim(cityElement.value);
    if (city == "Enter City"){
        city = "";
    }

    var stateElement = document.getElementById("st");
    var countryElement = document.getElementById("co");
    var languageElement = document.getElementById("la");
    var language = trim(languageElement.value);
    if (language == "Enter Language" ){
        language = '';
    }
    var category = document.getElementById("categorySelect").value;

    //anchor.href="/search.htm?q=" + searchElement.value +
    var str = "/search.htm?q="+searchElement.value;

    if(category!="") str+="&cat="+category;

    if(city!="")str+=  "&ci=" + city;
    if(stateElement.value!="") str+="&st=" + trim(stateElement.value);
    if(countryElement.value!="")str += "&co=" + trim(countryElement.value);
    if(language!="") str +="&la=" + language;

    var macparam = document.getElementById("macsupport");
    if(navigator.userAgent.indexOf("Mac")!=-1 && macparam && macparam.value!=""){
        str+= "&macsupport=" + macparam.value;
    }
    
    return str;
}

function runAdvSearch(anchor){
    var str = buildAdvSearchParams();
    anchor.href = str;
    return false;
}


function addHighlight(text, largeFont){
    if(largeFont=="largeFont"){
        text = "<span class='yellowLarge'>"+text+"</span>";
    }else{
        text = "<span class='yellow'>"+text+"</span>";
    }

    return text;
}

function highlightText(text, keyWords, largeFont){

    if(keyWords!=null && keyWords!="" && keyWords.length>0){
        for(var i=0; i<keyWords.length; i++){
            var keyWord = keyWords[i];
            if(keyWord !="span" && keyWord!="yellow" && keyWord!="class"){
                text = highlightKeywords(text, keyWord, largeFont);
            }
        }
    }

    return removeBreakingChars(text);
}

function highlightKeywords(text, keyWord, largeFont){
    var newText = "";
    var keyWordIndex = -1;

    if(text!=null && text!=""){

        while(text.length>0){
            var textToLowerCase = text.toLowerCase();
            var keyWordToLowerCase = keyWord.toLowerCase();

            if(textToLowerCase.indexOf(keyWordToLowerCase)>-1){

                keyWordIndex = textToLowerCase.indexOf(keyWordToLowerCase);

                var subStringWithKeyword = text.substring(0, keyWordIndex + keyWord.length);
                var keyWordInText = text.substring(keyWordIndex, keyWordIndex + keyWord.length);//to pass to the addHighlight fn in its original case

                //get the string with the keyword in it
                var remainingString = text.substring(subStringWithKeyword.length, text.length);

                newText += text.substring(0, keyWordIndex)+ ""+addHighlight(keyWordInText, largeFont);

                text = remainingString;
            }else{
                //write out remaining text
                newText += text;
                text = "";
            }
        }
    }
    return newText;
}


