//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();
var search_box_id;
var select_opt = -1;
var select_max = 0;
var select_str;

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(url,txtboxid) {

		search_box_id = txtboxid;
	if(document.getElementById(search_box_id).value.length < 3){
				document.getElementById(search_box_id+'_ans').innerHTML = ''; 
	}else if ((searchReq.readyState == 4 || searchReq.readyState == 0) && (keycode!=40 && keycode!=38 && keycode!=13 && keycode!=9)) {
        var str = escape(document.getElementById(txtboxid).value);
        searchReq.open("GET", url + '?q=' + str, true);
        searchReq.onreadystatechange = handleSearchSuggest; 
        searchReq.send(null);
    } 
	
		       
}

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
	}
}

document.defaultAction = true;

//Called when the AJAX response is returned.
function handleSearchSuggest() {
    
	if (searchReq.readyState == 4 && (keycode!=40 && keycode!=38 && keycode!=13 && keycode!=9)) {
		var ss = document.getElementById(search_box_id+'_ans')
        //ss.innerHTML = ''
		var suggest = '<table><tr><th class="header" colspan="2">Films</th></tr>';
        var str = searchReq.responseText.split("\n");
        select_str = str; 
		for(i=0; i < str.length - 1; i++) {
			var str_part = str[i].split("$");
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            suggest += '<tr onmouseover="javascript:suggestOver(this, ' + i + ');" ';
            suggest += 'onmouseout="javascript:suggestOut(this)" ';
            suggest += 'onclick="javascript:setSearch(\'' + str_part[0] + '\');" ';
			suggest += 'id="' + search_box_id + '_opt_' + i +'" ';
            suggest += 'class="off" ><td><img src="' + str_part[1] + '"/></td><td><strong>' + str_part[2] + '</strong><br/>' + str_part[3] + '</td></tr>';
            
        }
		suggest += '<tr><th class="footer" colspan="2">More Results</th></tr></table>';
		ss.innerHTML = suggest;
            if(str.length-1){
			document.getElementById(search_box_id + '_opt_0').className = 'hover';
            select_opt = 0;
            select_max = (str.length-1);
            }else if(document.getElementById(search_box_id).value == ""){
				document.getElementById(search_box_id+'_ans').innerHTML = ''; 
            }else if(str.length==1){
				document.getElementById(search_box_id+'_ans').innerHTML = ''; 
            }else{
            select_opt = -1;
            select_max = 0;
            select_str = "";
			 document.getElementById(search_box_id+'_ans').innerHTML = ''; 
            }
        }
}

//Mouse over function
function suggestOver(div_value,i) {

	select_opt = i;
    div_value.className = 'hover';
}
 
//Mouse out function
function suggestOut(div_value) {
    div_value.className = 'off';
}

//Click function
function setSearch(value1) {
   location.href = value1;
    document.getElementById(search_box_id+'_suggest').innerHTML = '';
	select_opt = -1;
}

var keycode;
function handler(field,evt) {
	
	var e = evt? evt : window.event; 
	keycode = evt.keyCode;
	if(keycode == 38){ //up
		if(select_opt > 0){
        	suggestOut(document.getElementById(search_box_id + '_opt_' + select_opt));
		select_opt -= 1;
		suggestOver(document.getElementById(search_box_id + '_opt_' + select_opt),select_opt);
        }
		
	return false;	
	}else if(keycode == 40){ //down
    
		if(select_opt != -1 && (select_max-1)>select_opt){
		suggestOut(document.getElementById(search_box_id + '_opt_' + select_opt));
		select_opt += 1;
		suggestOver(document.getElementById(search_box_id + '_opt_' + select_opt),select_opt);
		}
        
	return false;			
	}else if (keycode == 13 || keycode == 9) {
			str_part = select_str[select_opt].split("$");
			location.href = str_part[0];
			return false;
	}
	return true; 
	
}


function handler_enter(field, event){

   var keyCode = event.keycode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keycode == 13 || keycode == 9) {
			str_part = select_str[select_opt].split("$");
			location.href = str_part[0];
			return false;
		} 
		else
		return true;
}

