function callFormTB(msg,height,width,form,params)
{
	$("#formDiv").html('');
	var url = "index.cfm?event=shs.thickbox&form=" + form + "&" + params;
	$.get(url, function(data){
		$("#formDiv").html(data);
		tb_show(msg,"#TB_inline?height="+height+"&width="+width+"&inlineId=formDiv",true);
	});
}

function getSearchParams(formId)
{
	var inputs = [];
	$(':input', $('#'+formId)).each(function() {
		if(this.name.indexOf('asm') == -1 && this.value != '' && this.type != 'button')
		{
			if(	this.type == 'select-multiple' || this.type == 'select-one')
			{	var select = [];
				for(var i=0;i<this.length;i++)
				{ 
					if(this[i].selected)
					{ select.push(this[i].value); }
				}
				inputs.push(this.name + '=' + select.join(','));
			} else if(this.type == 'radio') {
				for(var i=0;i<this.length;i++)
				{ 
					if(this[i].checked)
						inputs.push(this[i].name + '=' + this[i].value);
				}
			} else if(this.type == 'checkbox') {
				if(this.checked == true)
					inputs.push(this.name + '=' + this.value);
			} else {
				inputs.push(this.name + '=' + escape(this.value));
			}
		}
		});
	return inputs.join('&');
}

function getCheckbox(ref){
	var checkBoxValue = [];
	$('input:checked[name='+ref+']').each(function() {
		checkBoxValue.push(this.value);
	});
	return checkBoxValue.join(',');
}

function cancelTB()
{
	tb_remove();
}

function checkEmailLogin(email,rid,redirect)
{
	$.getJSON("index.cfm?event=shs.ajaxCheckEmailLogin&email="+email+"&rid="+rid, function(json){
		var name = json.NAME;
		var id = json.ID;
		if(name!='')
		{
			SetCookie('name',name,false);
			SetCookie('id',id,false);
			cancelTB();
		}else{
			$("#errorLogin").css("display","inline");
		}
	});
}

function createAccount(fname,lname,email,phone,updates,rid,params)
{
	$.getJSON("index.cfm?event=shs.ajaxCreateAccount&fname="+fname+"&lname="+lname+"&email="+email+"&phone="+phone+"&rid="+rid+"&updates="+updates+"&"+params, function(json){
		var name = json.NAME;
		var id = json.ID;
		if(id !='' && name != '')
		{
			SetCookie('name',name,false);
			SetCookie('id',id,false);
			submitSearch('address', false);
			cancelTB();
		} else if(id == 'confirmation'){
			cancelTB();
			callFormTB('Confirmation Email',200,200,'confirmation','');
		}
	});
}

function SetCookie (name, value, deleteCookie)
{
  var argv = SetCookie.arguments;  
  var argc = SetCookie.arguments.length;
  var date = new Date();
  if(deleteCookie){ date.setTime(date.getTime()-(24*60*60*1000)); }
  else { date.setTime(date.getTime()+(1000*24*60*60*1000)); }
  var path = (argc > 3) ? argv[3] : null;  
  var domain = (argc > 4) ? argv[4] : null;  
  var secure = (argc > 5) ? argv[5] : false;  
  document.cookie = name + "=" +escape( value ) + ";expires=" + date.toGMTString() +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
  
}

function GetCookie (name) {
    var arg = name + "=";  
    var alen = arg.length;  
    var clen = document.cookie.length;  
    var i = 0;  
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        {
            return getCookieVal (j);    
        }
        i = document.cookie.indexOf(" ", i) + 1;    
        if (i == 0) break;   
    }  
    return null;
}

function getCookieVal (offset) {
    var endstr = document.cookie.indexOf (";", offset);  
    if (endstr == -1) { endstr = document.cookie.length; }
    return unescape(document.cookie.substring(offset, endstr));
}

var lastSavedSearch;

function saveSearch(params)
{
	if(GetCookie('id')==null)
	{
		lastSavedSearch = params;
		callFormTB('Register to search for recent Homes Sales',300,600,'register','');
	} else {
		var url = "index.cfm?event=shs.ajaxSaveSearch&"+params;
		$.getJSON(url, function(data){
			var result = $.trim(data.VALUE);
			if(result == 'T')
				$('#message').html('Your search has been saved.');
				$('#message').css('display','block');

		});
	}
}

function slideIt(value,elem,handle){
	var sel = $('#'+elem)[0];
	var thisIndex = 0;
	for(var i = 0; i < sel.options.length;i++)
		if(sel.options[i].value == value)
		{
			sel.options[i].selected = true;
			thisIndex = i;	
		}
	var thisLeft = Math.ceil((thisIndex / (sel.options.length-1))* 100);
	$('#handle_'+elem).parents('.ui-slider:eq(0)').slider("moveTo", thisLeft,handle);
	$('#tooltiptext_'+elem).html(sel.options[thisIndex].text).attr('aria-valuetext',sel.options[thisIndex].text).attr('aria-valuenow',value);
}


function getDistance(p1,p2) {
	var lat1 = p1.lat();
	var lon1 = p1.lng();
	var lat2 = p2.lat();
	var lon2 = p2.lng();	
	var R = 3959;
	var dLat = (lat2-lat1) * Math.PI / 180;
	var dLon = (lon2-lon1) * Math.PI / 180;
	var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
		Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) *
		Math.sin(dLon/2) * Math.sin(dLon/2);
	var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
	var d = R * c;
	return d.toFixed(3);
}

