(function() {

	var url = window.site.url;
	
	$('select').styledSelect();
	
	$('.generic_table').find('tr:odd').addClass("odd");
	
	var signInOpts = {
		content					: url + "/sign-in/form.php",
		validationUrl			: url + "/sign-in/form_validation.php",
		callback				: {
			onOpen		: function(){
				Cufon.refresh();
			},
			onSuccess	: function(){ 
				window.location = url + '/my-account/'; 
			}
		}
	};
	
	// Sign In Popup
	$(".sign_in").click(function(){
		$.rpPopup.open(signInOpts);	
		
		return false;
	});
	
	var termsOpts = {
		content					: url + "/terms/popup.php",
		callback				: {
			onOpen		: function(){
				Cufon.refresh();
			}
		}
	};
	
	$(".terms_popup").click(function(){
		$.rpPopup.open(termsOpts);	
		
		return false;
	});

	// Forgotten Password Popup
	$(".forgotten_password").live("click", function() {
		$.rpPopup.open({
			content					: url + "/forgotten-password/form.php",
			validationUrl			: url + "/forgotten-password/form_validation.php",
			callback				: {
				onOpen		: function(){
					Cufon.refresh();
				}
			}
		});
		return false;
	});
	
	
	/*$('#sector').change(function(){
		reloadFilters($(this).val());
	});*/
	
})();

/**
 * Adds a favourite property to the shortlist
 *
 * @param	$ele		jQuery object containing the clicked element (usually the "remove from favourites" button)
 * @param	callback	A callback function to run on completion
 */
function addFavourite($ele, callback)
{
	var propertyId = $ele.data('property-id');
	
	$.get(window.site.url + '/ajax/add_favourite.ajax.php?property_id=' + propertyId, function(response){		
		if (response.status == 'Error')
			openSignIn(response.message);
		else
			$ele.addClass('remove_favourite').removeClass('save_favourite');
		
		callback(response, $ele);
		
	}, 'json');

}

/**
 * Removes a favourite property from the shortlist
 *
 * @param	$ele		jQuery object containing the clicked element (usually the "remove from favourites" button)
 * @param	message		string containing a message/notification to be displayed onOpen
 */
function removeFavourite($ele, message)
{
	var showMessage = (message == false) ? false : true,
		propertyId = $ele.data('property-id');
	
	$.get(window.site.url + '/ajax/remove_favourite.ajax.php?property_id=' + propertyId, function(response){	
		if (showMessage)
		{
			var options = {
				content					: window.site.url + "/notification/notice.php",
				callback				: {
					onOpen : function(){ $('#pop_up_block').find('p').addClass(response.messageClass).text(response.message); }
				}
			};
			$.rpPopup.open(options);
		}
	}, 'json');
	
	$ele.addClass('save_favourite').removeClass('remove_favourite');
}

/**
 * Opens the Sign In popup
 *
 * @param	message		string containing a message/notification to be displayed onOpen
 */
function openSignIn(message, onSuccess)
{
	$.rpPopup.close();
	
	var signInOpts = {
		content					: window.site.url + "/sign-in/form.php",
		validationUrl			: window.site.url + "/sign-in/form_validation.php",
		callback				: {
			onOpen		: function(){
				$('#sign_in_form').before('<p class="notice">' + message + '</p>');	
				Cufon.refresh();
			},
			onSuccess	: function(){ 
				window.location = window.site.url + '/my-account/'; 
			}
		}
	};

	$.rpPopup.open(signInOpts);				 
}

/**
 * Reloads the search options based on the passed sector (student or professional)
 *
 * @param	sector	string containing the sector (student or professional)
 */
/*function reloadFilters(sector)
{
	if (sector == 'Professional')
	{		
		$.get(window.site.url + '/ajax/search-options/beds.ajax.php?sector=' + sector, function(data){	
			$('#beds')
				.html(data)
				.next('.styled_select_container')
				.remove()
				.end()
				.styledSelect()
				.next('.styled_select_container')
				.css('z-index', 99);		
			
		});
	}
	else if (sector == 'Student')
	{
		$.get(window.site.url + '/ajax/search-options/beds.ajax.php?sector=' + sector, function(data){	
			$('#beds')
				.html(data)
				.next('.styled_select_container')
				.remove()
				.end()
				.styledSelect()
				.next('.styled_select_container')
				.css('z-index', 99);		
			
		});
	}
}*/
