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

/**
 * Make HTTP GET request with parameters to HTTP-server
 */
var firstStart = true;
var divName = 'pre_results'; 	// div that is to follow the mouse
                       			// (must be position:absolute)
var offX = 13;          		// X offset from mouse position
var offY = 13;          		// Y offset from mouse position

var is_following = true;
var listingId = 0;
 
    function makeAdvRequest(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() { parseAdvContents(http_request); };
        http_request.open('GET', url, true);
        http_request.send(null);

    }

/**
 * Build the GET URI and Call request function with this URI as parameter
 */
	function tryAdvSearch(search_form) 
	{
		var url = 'ajax_adv_search_results.php?ajax_search=1';
		for (var i = 0; i<search_form.elements.length; i++) {
			if (search_form.elements[i].value != '' && search_form.elements[i].value != 0 && search_form.elements[i].name != '') {
				var el_name = search_form.elements[i].name;
				if (search_form.elements[i].name.indexOf('home_features') >-1 || search_form.elements[i].name.indexOf('community_features') >-1 || search_form.elements[i].name.indexOf('heating_features') >-1 || search_form.elements[i].name.indexOf('waterfront_features') >-1 || search_form.elements[i].name.indexOf('land_features') >-1 || search_form.elements[i].name.indexOf('zoning_features') >-1) {
					if (search_form.elements[i].checked) {
						url = url + '&' + escape(search_form.elements[i].name) + '=1';
					}
				} else if (search_form.elements[i].name.indexOf('sel') >-1) {
					if (search_form.elements[i].options.length) {
						var c = 0;
						for (var k=0; k<search_form.elements[i].options.length; k++) {
							if (search_form.elements[i].options[k].selected) {
								url = url + '&' + escape(search_form.elements[i].name.substr(0,7)) + '[' + c++ + ']=' + escape(search_form.elements[i].options[k].value);
							}
						}
					}
				} else if (search_form.elements[i].name.indexOf('date_new') >-1 || search_form.elements[i].name.indexOf('price_new') >-1 || search_form.elements[i].name.indexOf('is_exclusive') >-1 ) {
					if (search_form.elements[i].checked) {
						url = url + '&' + escape(search_form.elements[i].name) + '=1';
					}
				} else if (search_form.elements[i].name.indexOf('sold') >-1) {
					if (search_form.elements[i].checked) {
						url = url + '&' + escape(search_form.elements[i].name) + '=' + escape(search_form.elements[i].value);
					}
				} else if (search_form.elements[i].name.indexOf('city') >-1) {
					if (search_form.elements[i].options.length) {
						var c = 0;
						for (var k=0; k<search_form.elements[i].options.length; k++) {
							if (search_form.elements[i].options[k].selected) {					
								url = url + '&' + escape(search_form.elements[i].name.substr(0,7)) + '[' + c++ + ']=' + escape(search_form.elements[i].options[k].value);
							}
						}
					}
				} else if (search_form.elements[i].name.indexOf('_ctl') < 0) {
					url = url + '&' + escape(search_form.elements[i].name) + '=' + escape(search_form.elements[i].value);
				} 
			}
		}
		document.getElementById('_ctl0__ctl0_btnSearch').disabled=false;
		makeAdvRequest(url);
	}

/**
 * Processing result and make actions in order to result content
 */
    function parseAdvContents(http_request) 
    {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
            	var psize = TB_getPageSize();
            	var pscroll = TB_getPageScrollTop();
		    	//document.getElementById(divName).style.left = (psize[0]/2)-70 + 'px';
		    	//document.getElementById(divName).style.top = pscroll[1]+(psize[1]/2)-50+'px';
				response = http_request.responseText.split('|');
				//var iframeWin = window.frames['ifrm'];
				if (response[0] == 'TRUE') {					
					//iframeWin.document.getElementById('res_ifr_div').innerHTML = "<br/>There are <strong>"+response[1]+"</strong> listings matching your criteria.";
					if (firstStart) {
						document.getElementById(divName+'_t').innerHTML = "There are <strong>"+response[1]+"</strong> available listings.";
						document.getElementById(divName+'_b').innerHTML = "There are <strong>"+response[1]+"</strong> available listings.";
					} else {
						document.getElementById(divName+'_t').innerHTML = "There are <strong>"+response[1]+"</strong> listings matching your criteria.";
						document.getElementById(divName+'_b').innerHTML = "There are <strong>"+response[1]+"</strong> listings matching your criteria.";
					}					
					
					//document.getElementById(divName).style.display = 'inline';
					listingId = 0;
					//document.onmousemove = follow;
					//document.onmouseup = follow;
					is_following = true;

				} else if (response[0] == 'FALSE') {
					//iframeWin.document.getElementById('res_ifr_div').innerHTML = "<br/>No listings match your criteria.";
					//document.getElementById(divName).style.display = 'inline';
					if (firstStart) {
						document.getElementById(divName+'_t').innerHTML = "No listings available.";
						document.getElementById(divName+'_b').innerHTML = "No listings available.";
					} else {
						document.getElementById(divName+'_t').innerHTML = "No listings match your criteria.";
						document.getElementById(divName+'_b').innerHTML = "No listings match your criteria.";						
					}
					listingId = 0;
					//document.onmousemove = follow;
					//document.onmouseup = follow;
					is_following = true;
				} else if (response[0] == 'SIMPLE') {
					//iframeWin.document.getElementById('res_ifr_div').innerHTML = "<br/>One listing matches your criteria.<br/><u>View Listing</u>";
					if (firstStart) {
						document.getElementById(divName+'_t').innerHTML = "Only one listing available. <a href=\""+response[1]+".listing\">Click here</a> to view this listing.";
						document.getElementById(divName+'_b').innerHTML = "Only one listing available. <a href=\""+response[1]+".listing\">Click here</a> to view this listing.";
					} else {
						document.getElementById(divName+'_t').innerHTML = "One listing matches your criteria. <a href=\""+response[1]+".listing\">Click here</a> to view this listing.";
						document.getElementById(divName+'_b').innerHTML = "One listing matches your criteria. <a href=\""+response[1]+".listing\">Click here</a> to view this listing.";
					}
					//document.getElementById(divName).style.display = 'inline';
					listingId = response[1];
					//iframeWin.document.onclick = listingClick;
					//document.onmousemove = null;
					//document.onmouseup = null;
					is_following = false;
				}
				firstStart = false;
            } else {
            	alert('There is a problem with the request =(');
				//window.frames['ifrm'].document.getElementById('res_ifr_div').innerHTML = '<br/>There was a problem with the request';
				document.getElementById(divName+'_t').innerHTML = 'There was a problem with the request';
				document.getElementById(divName+'_b').innerHTML = 'There was a problem with the request';
				//document.getElementById(divName).style.display = 'inline';
            }
        }

    }

/*function listingClick(evt)
{
	var iframeWin = window.frames['ifrm'];
	
	if (listingId != 0) {
		window.location=listingId+'.listing';
	}
}*/

function TB_getPageSize()
{
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	
	arrayPageSize = new Array(w,h)
	return arrayPageSize;
}

function TB_getPageScrollTop()
{
	var yScrolltop;
	if (self.pageYOffset) {
		yScrolltop = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScrolltop = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScrolltop = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScrolltop) 
	return arrayPageScroll;
}
    
function hideDiv()
{
    //document.getElementById(divName).style.display = 'none';
}

function mouseX(evt)
{
	if (!evt) 
		evt = window.event; 
	if (evt.pageX) 
		return evt.pageX; 
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
	else 
		return 0;
}

function mouseY(evt) 
{
	if (!evt) 
		evt = window.event; 
	if (evt.pageY) 
		return evt.pageY; 
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); 
	else 
		return 0;
}

/*function follow(evt) 
{
	if (is_following){
		var psize = TB_getPageSize();
		if (document.getElementById) {
			var obj = document.getElementById(divName).style; 
			obj.visibility = 'visible';
			if ((parseInt(mouseX(evt))+offX+parseInt(obj.width))<psize[0]) {
				obj.left = (parseInt(mouseX(evt))+offX) + 'px';
			} else {
				obj.left = (psize[0] - parseInt(obj.width)) + 'px';
			}
			obj.top = (parseInt(mouseY(evt))+offY) + 'px';
		}
	}
}*/

//document.onmousemove = follow;
//document.onmouseup = follow;
