// JavaScript Document
function getQueryParam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}

function addCookie(NameOfCookie, cookieValue, expires) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24; //minutes

    }
    var expires_date = new Date(today.getTime() + (expires));

    if (document.cookie.length > 0) {
        document.cookie = NameOfCookie + "=" + escape(cookieValue) + ";expires=" + expires_date.toGMTString();
    }
    return null;
}

function getCookie(NameOfCookie) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');


        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == NameOfCookie) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

function removeCookie(NameOfCookie) {
    if (document.cookie.length > 0) {
        begin = document.cookie.indexOf(NameOfCookie + "=");
        if (begin != -1) {
            document.cookie = NameOfCookie + "=;expires=Thu, 01-Jan-1970 00:00:01 GMT;";
        }
    }
}

function stopEvent(e) {
    if (!e) e = window.event;
    if (e.stopPropagation) {
        e.stopPropagation();
    } else {
        e.cancelBubble = true;
    }
}


function HandleReturnCancelKey(event, target) {
    if (event.keyCode == 13) {
        var defaultButton;
        defaultButton = document.getElementById(target);

        if (defaultButton && typeof (defaultButton.click) != "undefined") {
            defaultButton.click();
            if (event.stopPropagation) event.stopPropagation();
            else event.cancelBubble = true;

            event.returnValue = false;
            return false;
        }
    }
    if (event.keyCode == 27) {
        var cancelButton = document.getElementById("CancelButton");

        if (cancelButton && typeof (cancelButton.click) != "undefined") {
            cancelButton.click();
            if (event.stopPropagation) event.stopPropagation();
            else event.cancelBubble = true;

            event.returnValue = false;
            return false;
        }
    }
    return true;
}

function OpenNewWindow(URL,Width,Height) {
	day = new Date();
	id = day.getTime();

	var winl = (screen.width-Width)/2; 
	var wint = (screen.height-Height)/2; 

	if (winl < 0) winl = 0; 
	if (wint < 0) wint = 0; 

    var popW = Width, popH = Height;
    var leftPos = winl, topPos = wint;

    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" + popW+',height='+popH+',top='+topPos+',left='+leftPos + "');");
}

function OpenNewScrollWindow(URL,Width,Height) {
	day = new Date();
	id = day.getTime();
	
	var winl = (screen.width-Width)/2; 
	var wint = (screen.height-Height)/2; 

	if (winl < 0) winl = 0; 
	if (wint < 0) wint = 0; 

    var popW = Width, popH = Height;
    var leftPos = winl, topPos = wint;

    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + popW+',height='+popH+',top='+topPos+',left='+leftPos + "');");

}

function CloseUpdateParent(bUpdate){
	window.opener.location = window.opener.location;
	window.close();
}

function CloseRedirectParent(URL){
	window.opener.location.href = URL;
	window.close();
}

function checkbox_toggle(form_name, name, value) {
	form = document.getElementById(form_name);
    checkboxes = form.getElementsByTagName('input');

	for (i = 0; i < form.length; i++) {
		var regex = new RegExp(name, "i");
		if (regex.test(checkboxes[i].getAttribute('name'))) {
			if (value == '1') {
				checkboxes[i].checked = true;
			} else {
				checkboxes[i].checked = false;
			}
		}
	}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

function PopUpNotification(message)
{
	alert(message);
}


function SaveUserSearch(searchName)
{
	CurrentSearchString = document.getElementById("CurrentSearchString").value;
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	 {
	 	alert ("Browser does not support HTTP Request");
	 	return;
	 }
	
	var url="ajax/save_search.php";
	url=url+"?user_search="+escape(CurrentSearchString)+"&user_search_name="+searchName;	
	xmlHttp.onreadystatechange=SaveUserSearch_StateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function SaveUserSearch_StateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 	if(  xmlHttp.responseText != "" )
	  	alert( xmlHttp.responseText );
 } 
}

function SaveUserFavorites(listing_id,add)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	 {
	 	alert ("Browser does not support HTTP Request");
	 	return;
	 }
	
	var url="ajax/save_favorite.php";
	url=url+"?mls_listing_id="+listing_id+"&add_favorite="+add;
	xmlHttp.onreadystatechange=SaveUserFavorites_StateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function SaveUserFavorites_StateChanged() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 	if(  xmlHttp.responseText != "" )
	  	alert( xmlHttp.responseText );

 } 
}

function ToggleFavs(listing_id,image_tag, check_id){
	if( jsg_IsMember == false )
	{
		PopUpNotification( "You have to be a Registered Member to save your favorites." );
		return;	
	}
	
	var fav_check = document.getElementById(check_id);
	fav_check.checked = !fav_check.checked;
	image_tag.src = (fav_check.checked) ? "images/buttons/Fav_gold_24.png" : "images/buttons/Fav_gray_24.png";
	
	SaveUserFavorites(listing_id,fav_check.checked);
}

function ShowMap(map_dialog, map_area, lat, long)
{	
	var map = document.getElementById(map_dialog);

	map.style.visibility = "visible";
	

	if (GBrowserIsCompatible()) {
       var map = new GMap2(document.getElementById(map_area));
        map.setCenter(new GLatLng(lat, long), 14);
		
		var point = new GLatLng(lat, long);
    	map.addOverlay(new GMarker(point));

		map.setUIToDefault();
    }

}

function CloseMap(map_area)
{
	var map = document.getElementById(map_area);

	map.style.visibility = "hidden";
}