var latestQuery = null;
var lastQuery = null;
var THROTTLE_PERIOD = 1000;
var onClickValue = "";

var a=navigator.userAgent.toLowerCase();
var isIE=(a.indexOf("msie")>0)?true:false;


function analyzeEnteredLocation(B, C) {
    var E = document.getElementById(B);
    var A = E.value.toLowerCase();
    var D = document.getElementById("divAnswer");
    if (A != onClickValue.toLowerCase()) {
        if (A.length <= 2) {
            toggleBox("divAnswer", 0)
        } else {
            if (A.length <= 20) {
                if (!A.match(latestQuery)) {
                    D.innerHTML = "";
                    toggleBox("divAnswer", 0)
                }
                if (A == lastQuery) {
                    toggleBox("divAnswer", 1)
                } else {
                    retrieveSpecificCache(A, "divAnswer", B, C);
                    toggleBox("divAnswer", 1)
                }
            }
        }
    } else {
        toggleBox("divAnswer", 0)
    }
    if (A != null && A != "") {
        if (A.length > 2) {
            latestQuery = A
        }
        lastQuery = A
    }
}
function analyzeEnteredLocation2(A, B) {
    setTimeout("analyzeEnteredLocation('" + A + "',document.getElementById('" + A + "'));", THROTTLE_PERIOD)
}
var SpecificCache = new Array;
var SpecificTopKey = null;
var SpecificPreviousKey = null;
var SpecificCurrentCacheSize = 0;
var SpecificCACHESIZE = 10;
var currentKey = null;
var cacheKey = null;
var previousCacheKey = "";

function retrieveSpecificCache(loc, place, fieldId, ctrl) {
    document.getElementById("divAnswer").style.left = xstooltip_findPosX(ctrl) + 1 + "px";
    document.getElementById("divAnswer").style.top = xstooltip_findPosY(ctrl) + 20 + "px";
    if (document.getElementById("frameAnswer")) {
        document.getElementById("frameAnswer").style.left = xstooltip_findPosX(ctrl) + 1 + "px";
        document.getElementById("frameAnswer").style.top = xstooltip_findPosY(ctrl) + 20 + "px"
    }
    var getDivHeight = "";
    var divAnswer = document.getElementById(place);
    cacheKey = loc;
    if (SpecificCache[cacheKey]) {
        var result = "";
        var tempArray = SpecificCache[cacheKey].value;
        if (tempArray) {
            for (var index = 0; index < tempArray.length; index++) {
                if (tempArray[index][1] == 3) {
                    result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="airplane"><a href="javascript:void(0)" onclick="clicker(\'' + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + tempArray[index][0] + "</a></td></tr>"
                } else {
                    if (tempArray[index][1] == 2) {
                        result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="car"><a href="javascript:void(0)" onclick="clicker(\'' + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + tempArray[index][0] + "</a></td></tr>"
                    } else {
                        result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td><a href="javascript:void(0)" onclick="clicker(\'' + tempArray[index][0] + "','" + fieldId + "','" + tempArray[index][2] + "','" + tempArray[index][3] + "','" + tempArray[index][4] + "','" + tempArray[index][5] + "','" + tempArray[index][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + tempArray[index][0] + "</a></td></tr>"
                    }
                }
            }
        }
        divAnswer.innerHTML = '<table class="listing">' + result + "</table>";
        getDivHeight = document.getElementById("divAnswer").offsetHeight;
        if (document.getElementById("frameAnswer")) {
            document.getElementById("frameAnswer").style.height = getDivHeight + "px"
        }
        if (cacheKey != SpecificPreviousKey) {
            currentKey = SpecificTopKey;
            if (cacheKey != SpecificTopKey) {
                while (SpecificCache[currentKey] && SpecificCache[currentKey].next != cacheKey) {
                    currentKey = SpecificCache[currentKey].next
                }
            } else {
                SpecificTopKey = SpecificCache[SpecificTopKey].next
            }
            if (SpecificCache[currentKey]) {
                SpecificCache[currentKey].next = SpecificCache[cacheKey].next
            }
            if (SpecificCache[SpecificPreviousKey]) {
                SpecificCache[SpecificPreviousKey].next = cacheKey
            }
            SpecificCache[cacheKey].next = null;
            SpecificPreviousKey = cacheKey
        }
    } else {
        if (previousCacheKey != "" && cacheKey.match(previousCacheKey) && SpecificCache[previousCacheKey].value && SpecificCache[previousCacheKey].value.length < 10) {
            var prevKeyArray = SpecificCache[previousCacheKey].value;
            var flag = "";
            var result = "";
            for (i = 0; i < prevKeyArray.length; i++) {
                temp = prevKeyArray[i][2].toLowerCase();
                flag = temp.match(cacheKey);
                if (flag != null) {
                    if (prevKeyArray[i][1] == 3) {
                        result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="airplane"><a href="javascript:void(0)" onclick="clicker(\'' + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + prevKeyArray[i][0] + "</a></td></tr>"
                    } else {
                        if (prevKeyArray[i][1] == 2) {
                            result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="car"><a href="javascript:void(0)" onclick="clicker(\'' + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + prevKeyArray[i][0] + "</a></td></tr>"
                        } else {
                            result = result + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td><a href="javascript:void(0)" onclick="clicker(\'' + prevKeyArray[i][0] + "','" + fieldId + "','" + prevKeyArray[i][2] + "','" + prevKeyArray[i][3] + "','" + prevKeyArray[i][4] + "','" + prevKeyArray[i][5] + "','" + prevKeyArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + prevKeyArray[i][0] + "</a></td></tr>"
                        }
                    }
                }
            }
            divAnswer.innerHTML = '<table class="listing">' + result + "</table>";
            getDivHeight = document.getElementById("divAnswer").offsetHeight;
            if (document.getElementById("frameAnswer")) {
                document.getElementById("frameAnswer").style.height = getDivHeight + "px"
            }
            if (previousCacheKey != SpecificPreviousKey) {
                currentKey = SpecificTopKey;
                if (previousCacheKey != SpecificTopKey) {
                    if (SpecificCache[currentKey]) {
                        while (SpecificCache[currentKey].next != previousCacheKey) {
                            currentKey = SpecificCache[currentKey].next
                        }
                    }
                } else {
                    SpecificTopKey = SpecificCache[SpecificTopKey].next
                }
                if (SpecificCache[currentKey] && SpecificCache[currentKey].next && SpecificCache[previousCacheKey].next) {
                    SpecificCache[currentKey].next = SpecificCache[previousCacheKey].next
                }
                if (SpecificCache[SpecificPreviousKey] && SpecificCache[SpecificPreviousKey].next) {
                    SpecificCache[SpecificPreviousKey].next = previousCacheKey
                }
                SpecificCache[previousCacheKey].next = null;
                SpecificPreviousKey = previousCacheKey
            }
        } else {
            if (SpecificCurrentCacheSize >= SpecificCACHESIZE) {
                var oldest = SpecificTopKey;
                if (SpecificCache[oldest]) {
                    SpecificTopKey = SpecificCache[oldest].next
                }
                delete SpecificCache[oldest]
            } else {
                SpecificCurrentCacheSize++
            }
            if (SpecificTopKey == null) {
                SpecificTopKey = cacheKey
            }
            if (SpecificPreviousKey != null) {
                if (SpecificCache[SpecificPreviousKey]) {
                    SpecificCache[SpecificPreviousKey].next = cacheKey
                }
            }
            cacheFlag = "false";
            var url = "http://www.avis.com/car-rental/avisHome/suggest-locations.ac?SUGG_VAL=" + loc + "&SUGG_FLAG=" + cacheFlag;
            var xmlhttp = getXMLHttpObject();
            if (xmlhttp != null) {
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.readyState == 4) {
                        if (xmlhttp.status >= 200 && xmlhttp.status < 300) {
                            try {
                                var json = eval("(" + xmlhttp.responseText + ")");
                                var i = 0;
                                var smallArray = new Array();
                                var temp = "";
                                if (json.suggestionList[0] != null) {
                                    while (i < json.suggestionList.length) {
                                        if (json.suggestionList[i].suggType == 3) {
                                            smallArray[i] = new Array(json.suggestionList[i].sugg, json.suggestionList[i].suggType, json.suggestionList[i].keyword, json.suggestionList[i].city, json.suggestionList[i].stateCode, json.suggestionList[i].countryCode, json.suggestionList[i].suggVal);
                                            temp = temp + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="airplane"><a href="javascript:void(0)" onclick="clicker(\'' + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + smallArray[i][0] + "</a></td></tr>"
                                        } else {
                                            if (json.suggestionList[i].suggType == 2) {
                                                smallArray[i] = new Array(json.suggestionList[i].sugg, json.suggestionList[i].suggType, json.suggestionList[i].keyword, json.suggestionList[i].city, json.suggestionList[i].stateCode, json.suggestionList[i].countryCode, json.suggestionList[i].suggVal);
                                                temp = temp + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td class="car"><a href="javascript:void(0)" onclick="clicker(\'' + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + smallArray[i][0] + "</a></td></tr>"
                                            } else {
                                                smallArray[i] = new Array(json.suggestionList[i].sugg, json.suggestionList[i].suggType, json.suggestionList[i].keyword, json.suggestionList[i].city, json.suggestionList[i].stateCode, json.suggestionList[i].countryCode, json.suggestionList[i].suggVal);
                                                temp = temp + "<tr onmouseover=\"this.className='iehover';\" onmouseout=\"this.className='';\" onclick=\"clicker('" + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + '\'));"><td><a href="javascript:void(0)" onclick="clicker(\'' + smallArray[i][0] + "','" + fieldId + "','" + smallArray[i][2] + "','" + smallArray[i][3] + "','" + smallArray[i][4] + "','" + smallArray[i][5] + "','" + smallArray[i][6] + "');focusThisField(document.getElementById('" + fieldId + "'));\">" + smallArray[i][0] + "</a></td></tr>"
                                            }
                                        }
                                        i++
                                    }
                                }
                                divAnswer.innerHTML = '<table class="listing">' + temp + "</table>";
                                getDivHeight = document.getElementById("divAnswer").offsetHeight;
                                if (document.getElementById("frameAnswer")) {
                                    document.getElementById("frameAnswer").style.height = getDivHeight + "px"
                                }
                                SpecificCache[cacheKey] = {
                                    value: smallArray,
                                    next: null
                                };
                                SpecificPreviousKey = cacheKey;
                                previousCacheKey = cacheKey
                            } catch(e) {}
                        } else {}
                    }
                };
                xmlhttp.open("GET", url, true);
                xmlhttp.send(null)
            } else {
                alert("Your browser does not support XMLHTTP.")
            }
        }
    }
}
function chooseFirstElement() {
    highLighted = -1;
    toggleBox("divAnswer", 0);
    var B = 0;
    var E = 0;
    var A = 0;
    var C = document.getElementById("divAnswer").innerHTML;
    for (var D = 0; D < C.length; D++) {
        if (C.charAt(D) == ">") {
            B++;
            E = D + 1
        }
        if (B == 1 && C.charAt(D) == "<") {
            A = D;
            break
        }
    }
    document.getElementById("divAnswer").value = C.substring(E, A)
}
function clicker(C, B, A, G, E, D, F) {
    document.getElementById(B).value = C;
    if (B == "airportRcity") {
        if (document.getElementById("keywordID")) {
            document.getElementById("keywordID").value = A
        }
        if (document.getElementById("suggValueID")) {
            document.getElementById("suggValueID").value = F
        }
        if (document.getElementById("cityFlag")) {
            document.getElementById("cityFlag").value = "true"
        }
        if (document.getElementById("selectedValue")) {
            document.getElementById("selectedValue").value = C
        }
    }
    if (B == "location") {
        if (document.getElementById("pickupKeywordID")) {
            document.getElementById("pickupKeywordID").value = A
        }
        if (document.getElementById("pickupSuggValueID")) {
            document.getElementById("pickupSuggValueID").value = F
        }
        if (document.getElementById("pickupCityFlag")) {
            document.getElementById("pickupCityFlag").value = "true"
        }
        if (document.getElementById("pickupSelectedValue")) {
            document.getElementById("pickupSelectedValue").value = C
        }
    }
    if (B == "return_location") {
        if (document.getElementById("dropoffKeywordID")) {
            document.getElementById("dropoffKeywordID").value = A
        }
        if (document.getElementById("dropoffSuggValueID")) {
            document.getElementById("dropoffSuggValueID").value = F
        }
        if (document.getElementById("dropoffCityFlag")) {
            document.getElementById("dropoffCityFlag").value = "true"
        }
        if (document.getElementById("dropoffSelectedValue")) {
            document.getElementById("dropoffSelectedValue").value = C
        }
    }
    toggleBox("divAnswer", 0);
    onClickValue = C
}
function toggleBox(A, E) {
    try {
        if (document.layers) {
            document.layers[A].display = E ? "" : "none"
        } else {
            if (document.getElementById) {
                var D = document.getElementById(A);
                D.style.display = E ? "" : "none";
                var B = document.getElementById("frameAnswer");
                if (B) {
                    B.style.display = E ? "" : "none"
                }
            } else {
                if (document.all) {
                    document.all[A].style.display = E ? "" : "none"
                }
            }
        }
    } catch(C) {}
}
function xstooltip_findPosX(A) {
	if(isIE == true){
		var obj = A.getBoundingClientRect();
		var B = obj.left;
	}
	else{ 
	    var B = 0;
	    if (A.offsetParent) {
	        while (A.offsetParent) {
	            B += A.offsetLeft;
	            A = A.offsetParent
	        }
	    } else {
	        if (A.x) {
	            B += A.x
	        }
	    }
	}
    return B
}
function xstooltip_findPosY(B) {
    if(isIE == true){
    	var scroll = document.documentElement.scrollTop;
		var obj = B.getBoundingClientRect();
		var A = obj.top + scroll;
	}
	else{
		var A = 0;
	    if (B.offsetParent) {
	        while (B.offsetParent) {
	            A += B.offsetTop;
	            B = B.offsetParent
	        }
	    } else {
	        if (B.y) {
	            A += B.y
	        }
	    }
	}
    return A
}
function focusThisField(A) {
    A.focus()
}
var highLighted = -1;

function changeHighLight(F) {
    var D = document.getElementById("divAnswer");
    if (D.style.display != "none") {
        var C = D.getElementsByTagName("TABLE");
        if (C[0]) {
            var A = C[0].getElementsByTagName("TR")
        }
        if (F.keyCode == 40) {
            if (highLighted < A.length - 1) {
                highLighted++
            } else {
                if (highLighted == A.length - 1) {
                    highLighted = A.length - 1
                }
            }
        } else {
            if (F.keyCode == 38) {
                if (highLighted > 0) {
                    highLighted--
                } else {
                    if (highLighted == 0) {
                        highLighted = 0
                    }
                }
            } else {
                if (F.keyCode == 13) {
                    if (highLighted != -1) {
                        var E = A[highLighted].getElementsByTagName("TD");
                        var B = E[0].getElementsByTagName("A");
                        B[0].focus()
                    }
                } else {
                    if (F.keyCode == 9) {
                        chooseFirstElement()
                    } else {
                        highLighted = -1
                    }
                }
            }
        }
        if (A) {
            for (i = 0; i < A.length; i++) {
                if (highLighted == i) {
                    A[i].style.background = "#cccccc"
                } else {
                    A[i].style.background = ""
                }
            }
        }
    }
}
function addChooseElement() {
    if (document.getElementById("divAnswer")) {
        window.document.onclick = function () {
            chooseFirstElement()
        }
    }
}
if (window.addEventListener) {
    window.addEventListener("load", addChooseElement, true)
}
if (window.attachEvent) {
    window.attachEvent("onload", addChooseElement)
};
