/**
 * This library need to be rebuilded and couldn't use in other projects as-is
 */

/**
 * Make HTTP GET request with parameters to HTTP-server
 */
    function makeAutocompleteRequest(url) {
        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { parseAutocompleteContents(http_request); };
        http_request.open('GET', url, true);
        http_request.send(null);

    }
    
/**
 * Autocomplete the simple search form
 */	
	function autocomplete_on(search_form, block_name, agent_id) {
		var url = 'ajax_search.php?cmd=' + block_name;
		url += '&search_string=';
		if (search_form.elements['search_string'].value != '') {
			url = url + search_form.elements['search_string'].value;
			makeAutocompleteRequest(url);
		} else {
			document.getElementById('ajax_results').style.display = 'none';
		}
	}
	
/**
 * Processing result and make actions in order to result content
 */
    function parseAutocompleteContents(http_request) {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                //alert(http_request.responseText);
				response = http_request.responseText.split('|');
				if (response[0].indexOf('FALSE') != -1) {
					document.getElementById('ajax_results').innerHTML = response[1];
					document.getElementById('ajax_results').style.display = 'none';
				} else if (response[0].indexOf('TRUE') != -1) {
					var content = new String();
					var response_line = new Array();
					content = "<img height=1 width=141 /><table border='0' cellpadding='3' cellspacing='0'>"
					for (var line in response) {
						if (line>0) {
							response_line = response[line].split('^');
							content += '<tr><td id="res_line' + line + '" onMouseOver="over_line(this);" onMouseOut="out_line(this);" rel="' + response_line[0] + '" onClick="click_line(this);" align="left">';
							content += '<span class="ajax_results_line">'+response_line[1]+'</span>';
							if (line<response.length) {
								//content += "\n<br/>";
							}
							content += '</td></tr>';
						}
					}
					content += "</table>";
					
					document.getElementById('ajax_results').innerHTML = content;
					document.getElementById('ajax_results').style.display = 'inline';
				}
            } else {
				document.getElementById('errors').innerHTML = 'There was a problem with the request';
				document.getElementById('errors').style.display = 'inline';
            }
        }

    }
    
    function over_line(element) {
    	element.style.backgroundColor = '#cccccc';
    	element.style.color = '#000000';
    	element.style.cursor = 'pointer';
    }
    
    function out_line(element) {
   		element.style.backgroundColor = '#cccccc';
    	element.style.color = '#333333';
    	element.style.cursor = 'normal';
    }
    
    function click_line(element) {
    	//document.getElementById('search_string').value = element.getAttribute('rel');
    	document.getElementById('ajax_results').style.display = 'none';
    	if (document.getElementById('block_name').value == 'our_agents') {
    		document.location.href = 'our_agents.php?cmd=edit&user_id=' + element.getAttribute('rel');
    	}
    	if (document.getElementById('block_name').value == 'listings_search') {
    		document.location.href = element.getAttribute('rel') + '.listing';
    	}
    	if (document.getElementById('block_name').value == 'manage_users') {
    		document.location.href = 'manage_users.php?cmd=edit&user_id=' + element.getAttribute('rel');
    	}
    	if ((document.getElementById('block_name').value == 'admin_listings_search') || (document.getElementById('block_name').value == 'agent_listings_search') || (document.getElementById('block_name').value == 'agentall_listings_search')) {
    		var ids = element.getAttribute('rel');
    		var lid = ids.substr(1);
    		var am = ids[0];
    		if (am == '1') {
	    		document.location.href = 'manage_listings.php?cmd=edit&product_id=' + lid;
    		} else if (am == '0') {
    			document.location.href = lid + '.listing';
    		}
    	}
    }
    
    function top_position(id) {
    	obj = document.getElementById(id);
		for(i=obj, x=0, y=0; i; i = i.offsetParent)
		{
			x += i.offsetLeft;
			y += i.offsetTop;
		}
		pos = new Array();
		pos[0] = x;
		pos[1] = y;
		return pos;
    }
    
    function set_autocomplete_pos() {
		if (document.getElementById('search_string')) {
		var pos;
		pos = top_position('search_string');
		document.getElementById('ajax_results').style.top = pos[1]+22;
		document.getElementById('ajax_results').style.left = pos[0];
		document.getElementById('ajax_results').style.width = document.getElementById('search_string').style.width;
		document.getElementById('ajax_results').innerHTML = '<img height=1 width=141 />';
		document.getElementById('ajax_results').style.display = 'none';
		}
	}