﻿var CurrentSearchItemIndex = -1;
var AutoCompleteTimer;
var Allowed = false;
document.onclick = function() {
    var SM02 = document.getElementById('SlidingMenu02');
    if (SM02) SM02.style.display = 'none';
    var SearchDropDownList = document.getElementById('SearchDropDownList');
    if (SearchDropDownList) SearchDropDownList.style.display = 'none';
    CurrentSearchItemIndex = -1
    
}
String.prototype.IsEmpty = function() {return /^\s*$/.test(this)}
function ChangeSelectedItem(dir) {
    var Items = document.getElementById('SearchDropDownList').getElementsByTagName('a');
    var NextItemIndex;
    if (Items.length == 0) return;
    if (CurrentSearchItemIndex > 0 && dir == -1) {
        NextItemIndex = ((Items[CurrentSearchItemIndex - 1].id != 'DeleteSearchHistory')? CurrentSearchItemIndex - 1: CurrentSearchItemIndex - 2);
    } else if (CurrentSearchItemIndex < Items.length - 1 && dir == 1) {
        NextItemIndex = ((Items[CurrentSearchItemIndex + 1].id != 'DeleteSearchHistory')? CurrentSearchItemIndex + 1: CurrentSearchItemIndex + 2);
    } else {
        return
    }
    if (CurrentSearchItemIndex != -1) Items[CurrentSearchItemIndex].removeAttribute('style');
    Items[NextItemIndex].style.backgroundColor = '#aaa';
    document.getElementById('SearchFld').value = Items[NextItemIndex].className;
    CurrentSearchItemIndex = NextItemIndex;
}
function SearchAutoComplete(e) {
    var KeyCode;
    if (e) {
        KeyCode = e.which;
    } else {
        KeyCode = window.event.keyCode;
    }
    if (KeyCode == 40 || KeyCode == 38) {
        ChangeSelectedItem((KeyCode == 40)?1:-1);
        return false;
    }
    window.clearTimeout(AutoCompleteTimer);
    AutoCompleteTimer = window.setTimeout('GetSeggestions()', 500);
}
function GetSeggestions() {
    var objSearchField = document.getElementById('SearchFld');
    var objSearchDropDownList = document.getElementById('SearchDropDownList');
    var objSearchSuggestion = document.getElementById('SearchSuggestion');
    var objSearchHistory = document.getElementById('SearchHistory');
    var Keyword = objSearchField.value;
    if (!Keyword.IsEmpty() && Keyword != objSearchField.defaultValue) {
        Allowed = true;
        var Ajax = new XMLHttp();
	    if (Ajax.Support) {
		    Ajax.ErrHandler = function(err) {
                objSearchHistory.style.display = 'none';
                objSearchSuggestion.style.display = 'none';
                objSearchDropDownList.style.display = 'none';
		        alert('مرورگر وب قادر به دریافت اطلاعات از سایت نمیباشد');
		    }
		    Ajax.ResHandler = function(re) {
		        if (!Allowed) return
		        var arrResult = re.split('*||*');
		        var HideDiv = true;
		        
		        if (arrResult[0].length != 0) {
		            var Seggestions = arrResult[0].split('*|*');
		            var strLinks = '';
		            for (var i=0; i<Seggestions.length-1; i++) {
		                strLinks += '<a href="#" class="' + Seggestions[i] + '" onclick="return InsertKeyword(this.className)">' + SetFormat(Seggestions[i]) + '</a>';
		            }
		            objSearchSuggestion.innerHTML = '<h3>پیشنهادها</h3>' + strLinks;
		            objSearchSuggestion.style.display = 'block';
		            HideDiv = false;
		        } else {
		            objSearchSuggestion.style.display = 'none';
		        }
		        if (arrResult[1].length != 0) {
		            var History = arrResult[1].split('*|*');
		            var strLinks = '';
		            for (var i=0; i<History.length-1; i++) {
		                strLinks += '<a href="#" class="' + History[i] + '" onclick="return InsertKeyword(this.className)">' + SetFormat(History[i]) + '</a>';
		            }
		            objSearchHistory.innerHTML = '<h4>جستجوهای پیشین <span>|</span> <a href="#" title="حذف جستجوهای پیشین" id="DeleteSearchHistory" onclick="return ClearHistory()">حذف</a></h4>' + strLinks;
		            objSearchHistory.style.display = 'block';
		            HideDiv = false;
		        } else {
		            objSearchHistory.style.display = 'none';
		        }
		        if (HideDiv) {
		            objSearchDropDownList.style.display = 'none';
		        } else {
		            objSearchDropDownList.style.display = 'block';
		        }
		    }
		    Ajax.Create('/SearchAutoComplete.aspx?keyword=' + escape(Keyword) + '&rnd=' + Math.random());
	    }
    } else {
        objSearchHistory.style.display = 'none';
        objSearchSuggestion.style.display = 'none';
        objSearchDropDownList.style.display = 'none';
        Allowed = false;
    }
    
}
function InsertKeyword(Keyword) {
    document.getElementById('SearchFld').value = Keyword;
    document.getElementById('SearchPanel').submit();
    return false
}
function SetFormat(Keyword) {
    var CurrentKeyword = document.getElementById('SearchFld').value;
    Keyword = Keyword.replace(/([a-z-_+.:#\/\\\d!]+)+/ig, '<span dir="ltr">$1</span>');
    return Keyword
}
function ClearHistory(obj) { 
    var Ajax = new XMLHttp();
    if (Ajax.Support) {
	    Ajax.ErrHandler = function(err) {
	        alert('مرورگر وب قادر به دریافت اطلاعات از سایت نمیباشد');
	    }
	    Ajax.ResHandler = function(re) {
	        document.getElementById('SearchHistory').style.display = 'none';
	    }
	    Ajax.Create('/SearchAutoComplete.aspx?action=ClearHistory&rnd=' + Math.random());
    }
    return false
}