$(document).ready(function (){
	initButtons();
	//init top nav
	$("#header li.selectable").click(function (){
			var page = $(this).attr('ref');
			location.href = page;
		});
		
	$("#header li.selected").click(function (){
		var page = $(this).attr('ref');
		location.href = page;
	});
});

function thumbWithVideoFound() {
	var hasVideo = false;
	$(".mmThumbContainer").each(function(){
		var $this = $(this);
		var type = $this.attr("ref3");
		if (type=="Video") {
			hasVideo = true;
			return true;
		}
	});
	return hasVideo;
}

function initButtons () {
	$(".blackButton.selectable").mousedown(function (){
		$(this).addClass('active');
	});
	$(".blackButton.selectable").mouseup(function (){
		$(this).removeClass('active');
	});
	$(".blackButton.selectable").mouseout(function (){
		$(this).removeClass('active');
	});
	$(".blackButtonTall").click(function (){
		$(".blackButtonTall").removeClass('active');
		$(".subListButton").addClass('hiddenDiv');
		var $activeBroker = $(this);
		$activeBroker.addClass('active');
		$(".subListButton[ref=" + $activeBroker.attr("id") + "]").removeClass("hiddenDiv");
	});
	$(".subListButton").click(function (){
		$(".subListButton").removeClass('active');
		$(this).addClass('active');
	});
	$(".listTab").click(function (){
		$(".listTab").removeClass('active');
		$(this).addClass('active');
	});
}

function initAds() {
	initVerticalAds();
	initMainAds();
	initFooterAds();
	$(".adlink").click(function() {
		var $this = $(this);
		var link = $this.attr("ref");
		if (link.length==0) {
			var id = $this.attr("ref2");
			//look for mmThumbContainer or pThumbContainer with the same id
			var $selected = $(".mmThumbContainer[ref='" + id + "']");
			if ($selected.size()==0) {
				$selected = $(".pThumbContainer[ref='" + id + "']");
			}
			if ($selected.size()>0) {
				var contenttype = $selected.attr("ref3");
				var url = $selected.attr("ref2");
				$("#playerOverlay").overlay({
					mask: '#000', 
					//fixed: true,
					//top:'10%',
					//left:'center',
					//effect: 'apple',
					load: true,
					// when the overlay is closed, unload our player
					onClose: function() {
						unloadContent();
					}
				});
				loadContent(id, url, contenttype);
				var name = $(".mmThumbTitle", $selected).html();
				$(".overlay .playerDescription").html(name);
			}
		} else {
			location.href = link;
		}
	});
}


function preloadImage($imgList, index) {
	if ($imgList.size()<=index) {
		//no image exists at this index
		return;
	}
	var $img = $imgList.eq(index);
	$img.attr("src", $img.attr("src2"));
}


function initVerticalAds() {
	if ($(".leftContentScroll").size()==0) {
		window.setTimeout(initVerticalAds, 250);
		return;
	}
	var $imgList = $(".leftContentScroll img");
	preloadImage($imgList, 0);
	if ($imgList.size()<2) {
		return;
	}
	preloadImage($imgList, 1);
	$(".leftContentScroll").scrollable({
		circular: true,
		onBeforeSeek : function(event, i) {
			preloadImage($imgList, i+1);
		}
	}).autoscroll({
		interval: 5000
	});
	//pause
	$(".leftContentScroll").data("scrollable").pause();
	window.setTimeout(function(){
		$(".leftContentScroll").data("scrollable").play();
	},1500);
}

function initMainAds() {
	if ($(".adSpaceScroll").size()==0) {
		window.setTimeout(initMainAds, 250);
		return;
	}
	var $imgList = $(".adSpaceScroll img");
	preloadImage($imgList, 0);
	if ($imgList.size()<2) {
		return;
	}
	preloadImage($imgList, 1);
	$(".adSpaceScroll").scrollable({
		circular: true,
		onBeforeSeek : function(event, i) {
			preloadImage($imgList, i+1);
		}
	}).autoscroll({
		interval: 5000
	});
}

function initFooterAds() {
	if ($(".bottomScroll").size()==0) {
		window.setTimeout(initFooterAds, 250);
		return;
	}
	var $imgList = $(".bottomScroll img");
	preloadImage($imgList, 0);
	if ($imgList.size()<2) {
		return;
	}
	preloadImage($imgList, 1);
	$(".bottomScroll").scrollable({
		circular: true,
		onBeforeSeek : function(event, i) {
			preloadImage($imgList, i+1);
		},
		vertical:true
	}).autoscroll({
		interval: 5000
	});
	//pause
	$(".bottomScroll").data("scrollable").pause();
	window.setTimeout(function(){
		$(".bottomScroll").data("scrollable").play();
	},3250);
}

function initScrollableAds() {
	$(".adSpaceScroll").scrollable({circular: true}).autoscroll({
		interval: 5000
	});
	$(".leftContentScroll").scrollable({circular: true}).autoscroll({
		interval: 5000
	});
	$(".bottomScroll").scrollable({vertical: true, circular: true}).autoscroll({
		interval: 5000
	});
}

function loadLeftNav(categoryid, subcategoryid, type, maxletters) {
	var url = contextRoot + '/getleftnav.php';
	var query = 'cat=' + categoryid + '&maxletters=' + maxletters + '&type=' + type + '&subcat=' + subcategoryid;
	var response = submitParentRequest(url, query);
	return response;
}

function loadGalleryInfo(categoryid, type) {
	var url = contextRoot + '/getgalleryinfo.php';
	var query = 'cat=' + categoryid + '&type=' + type;
	var response = submitParentRequest(url, query);
	return response;
}

function loadMediaRoomInfo(categoryid) {
	var url = contextRoot + '/getmediaroominfo.php';
	var query = 'cat=' + categoryid;
	var response = submitParentRequest(url, query);
	return response;
}

function loadThumbs(categoryid) {
	var url = contextRoot + '/getthumbs.php';
	var query = 'cat=' + categoryid + getRtmpQuery();;
	var response = submitParentRequest(url, query);
	return response;
}
/*
function loadGalleryThumbs(type, searchTxt, maxletters, categoryid, cattype, includelocation) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/getgallerythumbs.php';
	var query = 'cat=' + categoryid + '&type=' + type + '&search=' + searchTxt + '&maxletters=' + maxletters + '&cattype=' + cattype + '&loc=' + includelocation;
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}*/

function loadGalleryThumbs(type, searchTxt, city, zip, state, maxletters, categoryid, cattype, includelocation) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/getgallerythumbs.php';
	var query = 'cat=' + categoryid + '&type=' + type + '&search=' + searchTxt + '&maxletters=' + maxletters + '&cattype=' + cattype + '&loc=' + includelocation;
	/*
	if (city!="" && city!="-") {
		query = query + '&city=' + city;
	}
	if (state!="" && state!="-") {
		query = query + '&state=' + state;
	}
	if (zip!="") {
		query = query + '&zip=' + zip;
	}
	*/
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}

function loadGalleryThumbsForListings(type, searchTxt, range1From, range1To, maxletters, categoryid, cattype, includelocation) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/getgallerythumbs.php';
	var query = 'cat=' + categoryid + '&type=' + type + '&search=' + searchTxt + '&maxletters=' + maxletters + '&cattype=' + cattype + '&loc=' + includelocation;
	if (range1From!="") {
		query = query + '&searchnum1From=' + range1From;
	}
	if (range1To!="") {
		query = query + '&searchnum1To=' + range1To;
	}
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}

function loadGalleryThumbsForListingsSearch(type, searchTxt, city, zip, state, range1From, range1To, propertyTypeId, bed, bath, maxletters, categoryid, cattype, includelocation) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/getgallerythumbs.php';
	var query = 'cat=' + categoryid + '&type=' + type + '&search=' + searchTxt  + '&maxletters=' + maxletters + '&cattype=' + cattype + '&loc=' + includelocation;
	if (city!="" && city!="-") {
		query = query + '&city=' + city;
	}
	if (state!="" && state!="-") {
		query = query + '&state=' + state;
	}
	if (zip!="") {
		query = query + '&zip=' + zip;
	}
	
	if (propertyTypeId!="noType") {
		query = query + '&classifierId=' + propertyTypeId;
	}
	if (bed!="any") {
		query = query + '&searchtxt1=' + bed;
	}
	if (bath!="any") {
		query = query + '&searchtxt2=' + bath;
	}
	if (range1From!="") {
		query = query + '&searchnum1From=' + range1From;
	}
	if (range1To!="") {
		query = query + '&searchnum1To=' + range1To;
	}

	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}

function loadGalleryThumbsForBusinesses(type, searchTxt, city, zip, state, businessTypeId, maxletters, categoryid, cattype, includelocation) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/getgallerythumbs.php';
	var query = 'cat=' + categoryid + '&type=' + type + '&search=' + searchTxt + '&maxletters=' + maxletters + '&cattype=' + cattype + '&loc=' + includelocation;
	if (city!="" && city!="-") {
		query = query + '&city=' + city;
	}
	if (state!="" && state!="-") {
		query = query + '&state=' + state;
	}
	if (zip!="") {
		query = query + '&zip=' + zip;
	}
	if (businessTypeId!="noType") {
		query = query + '&classifierId=' + businessTypeId;
	}
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}

function loadGalleryThumbsForMyList(json, maxletters) {
	//type=broker&search=&cat=86&maxletters=80
	var url = contextRoot + '/loadgallerythumbs.php';
	var query = 'json=' + json + '&maxletters='  + maxletters;
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	//alert(response);
	return response;
}




function loadAds(categoryid) {
	var url = contextRoot + '/getadreel.php';
	var query = 'cat=' + categoryid;
	//alert(url + "?" + query);
	//alert("before notify, jsessionid= " + jsessionid);
	var response = submitParentRequest(url, query);
	return response;
}

function submitParentRequest(theurl, thequery) {
	if (thequery.length==0) {
		thequery = "realtybuz=true";
	}
	if (jsessionid.length>0) {
		//alert("in submit = " + jsessionid);
		thequery = thequery + "&sess=" + jsessionid;
	}
	return $.ajax({
    	  url: theurl + "?" + thequery,
    	  cache: false,
    	  async: false
    	 }).responseText;
}

function initDetails(categoryid) {
	updateDetails(categoryid);
	$(".mmimages").each(function() {
		var $container = $(this);
		var contentLength = $(".pThumbContainer", $container).size();
		var widthtxt = $(".pThumbContainer").css("width");
		widthtxt = widthtxt.substring(0, widthtxt.length-2);
		var width = (parseInt(widthtxt) +5) * contentLength;
		$container.css("width", width + "px");
	});
	
}

function updateDetails(categoryid) {
	var html = loadDetails(categoryid) + '<br clear="all"/>';
	$("#aboutContainer").html(html);
}

function loadDetails(categoryid) {
	var url = contextRoot + '/getdetails.php';
	var query = 'cat=' + categoryid;
	var response = submitParentRequest(url, query);
	return response;
}


function initMap() {
	//If initmap complains about no maptypeid, check your google api js tag
	if ($("#map_canvas").width()==0){
		window.setTimeout(initMap, 500);
		return;
	}

	if (locations==null || locations.length==0) {
		//alert("no locations");
		return;
	}
	//center map around first location
	var latlng = new google.maps.LatLng(locations[0].latitude,locations[0].longitude);
	var myOptions = {
	  zoom: 13,
	  center: latlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById("map_canvas"),
		myOptions);
	var addressHtml = "";
	for (var i=0; i<locations.length; i++) {
		//add marker
		var locationname = locations[i].name;
		latlng = new google.maps.LatLng(locations[i].latitude,locations[i].longitude);
		var marker = new google.maps.Marker({
		  position: latlng,
		  title: locationname
		});
		marker.setMap(map);
		//create address string for google maps link
		var dirAddress = locations[i].street1 + ', ' + locations[i].city + ' ' + locations[i].state + ' ' + locations[i].zip;
		dirAddress = escape(dirAddress);
		//add new address
		var newAddress = '<div class="contactInfoText">'
			+ '<b>' +locationname + '</b><br />'
			+ locations[i].street1 + '<br />';
			if (locations[i].street2.length>0) {
				newAddress = newAddress + locations[i].street2 + '<br />';
			}
			newAddress = newAddress + locations[i].city + ', ' + locations[i].state + ' ' + locations[i].zip + '<br />'
			+ '<a href="http://maps.google.com/maps?f=d&source=s_d&daddr='+ dirAddress +'&ie=UTF8&z=10"><u>Get Directions</u></a><br />'
			+ locations[i].name2 + '<br />'
			+ locations[i].description
			+ '</div>';
		addressHtml = addressHtml + newAddress;
		
		
	}
	$(".contactLocationContainer").html(addressHtml);
	
}

//Var needs to be here, DONT REMOVE!
//location array (JSON) is set on document ready
//e.g. [{"id":"29", "name":"Home", "name2":"", "street1":"118 Brown Street", "street2":"", "city":"Hendersonville", "state":"TN", "zip":"37075", "country":"US", "longitude":"-86.090859", "latitude":"36.001738", "title":"", "description":""}]

var locations;

function updateLocations() {
	var response = locationsJsonString; // loadLocations(categoryid);
	if (!$.browser.msie) {
		response = response.trim();
	}
	locations = eval('(' + response + ')');
}

function initLocations() {
	var response = locationsJsonString;
	if (!$.browser.msie) {
		response = response.trim();
	}
	locations = eval('(' + response + ')');
}

function initAgentLocations() {
	var response = locationsJsonStringAgent;
	if (!$.browser.msie) {
		response = response.trim();
	}
	locations = eval('(' + response + ')');
}



function loadLocations(categoryid) {
	var url = contextRoot + '/getlocations.php';
	var query = 'cat=' + categoryid;
	var response = submitParentRequest(url, query);
	return response;
}


function loadJSONFromCookie() {
	//var myList;
	//var listingText = getCookie('myList');
	if (myListJSON.length>0 && myListJSON!="undefined") {
		return myListJSON;
	} else {
		return "[]";
	}
}

function getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

function setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}



function loadListingsForMyList(json) {
	var html = loadGalleryThumbsForMyList(json, 80);
	$("#listingContainer").html(html);
	var count = $("#listingContainer .mmThumbContainer").size();
	var label = "Listings (" + count + ")";
	$("#listingLink").html(label);
}

function getMyListCount() {
	//var listingText = getCookie('myList');
	if (myListJSON.length>0 && myListJSON!="undefined") {
		var myList = eval(myListJSON);
		return myList.length;
	}
	return 0;
}

function addToMyList(id) {
	//alert("addToMyList");
	var $listLink = $(".listLink[ref=" + id + "]");
	//if there is a tooltip, look for button
	if ($listLink.size()==0) {
		$listLink = $("#addToMyListingsButton");
	}
	
	if ($listLink.html().indexOf("Remove")>-1) {
		removeFromMyList(id);
		return;
	}
	
	$listLink.text("Remove from My List");
	var myList;
	if (myListJSON.length>0 && myListJSON!="undefined") {
		myList = eval(myListJSON);
		for (var i=0; i<myList.length;i++){
			if ( myList[i] == id) {
				//already exists, don't add
				return;
			}
		}
	} else {
		myList = new Array();
	}
	myList.push(parseInt(id));
	myListJSON = JSON.stringify(myList);
	setCookie('myList', myListJSON,1);
	$("#myListCountDiv").html(getMyListCount());
	//viewMyList();
}

function resetMyList() {
	setCookie('myList', '',1);
}


function removeFromMyList(id) {
	var $listLink = $(".listLink[ref=" + id + "]");
	//if there is a tooltip, look for button
	if ($listLink.size()==0) {
		$listLink = $("#addToMyListingsButton");
	}
	$listLink.text("Add to My List");
	var myList;
	if (myListJSON.length>0 && myListJSON!="undefined") {
		myList = eval(myListJSON);
		for (var i=0; i<myList.length;i++){
			if ( myList[i] == id) {
				myList.splice(i,1);
				break;
			}
		}
	} else {
		myList = new Array();
	}
	myListJSON = JSON.stringify(myList);
	//alert("saving " + myListJSON);
	setCookie('myList', myListJSON,1);
	$("#myListCountDiv").html(getMyListCount());
}



function viewMyList() {
	var url = contextRoot + "/mylist.php";
	location.href = url;
}

