var ajax_url = '/ajax/';
function register_alerts(){
	var data = jQuery("form#subscribe").serialize();
	jQuery.post(ajax_url, data, function(response) {
		if(jQuery('.submit-message').length){
			jQuery(".submit-message").html(response);
		}
	});
}

function select_compare(reference){
	var data = {
		action: 'addComparison',
		reference: reference
	};
	show_comparison_list(data);

	if(jQuery('.btn-compare-'+reference).length){
		jQuery('.btn-compare-'+reference).hide();
	}
	if(jQuery('.btn-removecompare-'+reference).length){
		jQuery('.btn-removecompare-'+reference).show();
	}
}
function remove_select_compare(external_id, page){
	var data = {
		action: 'delComparison',
		reference: external_id
	};
	show_comparison_list(data);

	if(jQuery('.btn-compare-'+external_id).length){
		jQuery('.btn-compare-'+external_id).show();
	}
	if(jQuery('.btn-removecompare-'+external_id).length){
		jQuery('.btn-removecompare-'+external_id).hide();
	}	
	if (page == 'compare-page'){
		if(jQuery('.remove .col-'+external_id+' div').length){
			jQuery('.remove .col-'+external_id+' div').html("<img src='/assets/images/ajax-loader.gif'>");
		}
		if(jQuery('.col-'+external_id).length){
			jQuery('.col-'+external_id).hide();
		}
	}
}

function select_save(reference){
	var data = {
		action: 'addFavourite',
		reference: reference
	};
	show_favourite_list(data);
	if(jQuery('.btn-save-'+reference).length){
		jQuery('.btn-save-'+reference).hide();
	}
	if(jQuery('.btn-removesave-'+reference).length){
		jQuery('.btn-removesave-'+reference).show();
	}

}
function remove_select_save(reference){
	var data = {
		action: 'delFavourite',
		reference: reference
	};
	show_favourite_list(data);
	if(jQuery('.btn-save-'+reference).length){
		jQuery('.btn-save-'+reference).show();
	}
	if(jQuery('.btn-removesave-'+reference).length){
		jQuery('.btn-removesave-'+reference).hide();
	}
}

//function remove_select_save(external_id){
//	var data = {
//		action: 'iproperty_save_property',
//		external_id: external_id,
//		remove: '1'
//	};
//	if(jQuery('.save_property_area .property_area').length){
//		jQuery(".save_property_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");
//	}
//	jQuery.post(ajax_url, data, function(response) {
//		jQuery(".save_property_area .property_area").html(response);
//		//show button on result page if exists
//		if(jQuery('.btn-save-'+external_id).length){
//			jQuery('.btn-save-'+external_id).show();
//		}
//		if(jQuery('.btn-removesave-'+external_id).length){
//			jQuery('.btn-removesave-'+external_id).hide();
//		}
//	});
//}
function select_save_inspection(id,external_id,address,locality,start_time,end_time,latitude,longitude,ofidate, image_id){
	var data = {
		action: 'iproperty_save_inspection',
		address: address,
		locality: locality,
		external_id: external_id,
		id: id,
		start_time: start_time,
		end_time: end_time,
		latitude: latitude,
		longitude: longitude,
		ofidate: ofidate,
		image_id: image_id,
		remove: '0'
	};
	if(jQuery('.save_inspection_area .property_area').length){
		jQuery(".save_inspection_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");
	}
	if(jQuery('.btn-save-inspection-'+id).length){
		jQuery('.btn-save-inspection-'+id).hide();
	}
	if(jQuery('.btn-remove-inspection-'+id).length){
		jQuery('.btn-remove-inspection-'+id).show();
	}
	jQuery.post(ajax_url, data, function(response) {
		if(jQuery('.save_inspection_area .property_area').length){
			jQuery(".save_inspection_area .property_area").html(response);
		}
	});
}
function remove_select_save_inspection(id,page){
	var data = {
		action: 'iproperty_save_inspection',
		id: id,
		remove: '1'
	};
	if (page == 'save-inspection-page'){
		if(jQuery('.remove .col-'+id+' div').length){
			jQuery('.remove .col-'+id+' div').html("<img src='/assets/images/ajax-loader.gif'>");
		}
		jQuery.post(ajax_url, data, function(response) {
			if(jQuery('.col-'+id).length){
				jQuery('.col-'+id).hide();
			}
		});
	}else{
		if(jQuery('.save_inspection_area .property_area').length){
			jQuery(".save_inspection_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");
		}
		jQuery.post(ajax_url, data, function(response) {
			if(jQuery('.save_inspection_area .property_area').length){
				jQuery(".save_inspection_area .property_area").html(response);
			}
			//show button on result page if exists
			if(jQuery('.btn-save-inspection-'+id).length){
				jQuery('.btn-save-inspection-'+id).show();
			}
			if(jQuery('.btn-remove-inspection-'+id).length){
				jQuery('.btn-remove-inspection-'+id).hide();
			}
		});
	}
}
function remove_all_save_inspection(page){
	var data = {
		action: 'iproperty_save_inspection',
		id: '0',
		remove: '2'
	};
	if(jQuery('.save_inspection_area .property_area').length){
		jQuery(".save_inspection_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");
	}
	jQuery.post(ajax_url, data, function(response) {
		if(jQuery('.save_inspection_area .property_area').length){
			jQuery(".save_inspection_area .property_area").html(response);
		}
		//show button on result page if exists
		jQuery('[class|="btn-save-inspection"]').show();
		jQuery('[class|="btn-remove-inspection"]').hide();
	});
}
function show_similar_properties(reference){
	var data = {
		action: 'similar-properties',
		reference: reference
	};
	jQuery.post(ajax_url, data, function(response) {
		jQuery(".similar-properties .box").html(response);
	});
}
/*function save_searches(register_action){
	var data = {
		action: 'iproperty_save_searches',
		name: jQuery("#register_name").val(),
		search_params: jQuery("#register_search_params").val(),
		register_action: register_action
	};
	if(jQuery('.register_for_alert_area form').length){
		jQuery(".register_for_alert_area form").html("<img src='/assets/images/ajax-loader.gif'>");
	}
	jQuery.post(ajax_url, data, function(response) {
		jQuery(".register_for_alert_area form").html(response);
	});
}*/
function remove_select_save_search(id,name){
	if(confirm("This action cannot be undone - press OK to remove your saved search '"+name+"'")){
		var data = {
			action: 'del_saved_search',
			reference:id
		}
		jQuery(".saved_searches_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");
		jQuery.post(ajax_url, data, function(response) {
			jQuery(".saved_searches_area .property_area").html(response.data);
		}, 'json');
	}
}

function send_emailfriend(){
	var objID = "#facebox #form_emailfriend";
	if(validateForm(objID)){
		var str = jQuery(objID).serialize();
		jQuery(objID + ' .submit').hide();
		jQuery(objID + ' .img_loading').show();
		jQuery.post(ajax_url, str + '&action=send_emailfriend', function(res) {
			if(res.status!=0){
				jQuery(objID + ' .submit_message').html(res.response);
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			} else {
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
				jQuery(objID + ' .form_block').hide();
				jQuery(objID + ' .submit_message').html(res.response);
			}
		}, 'json');
	}
}
function send_emailagent(){
	var objID = "#facebox #form_emailagent";
	if(validateForm(objID)){
		var str = jQuery(objID).serialize();
		jQuery(objID + ' .submit').hide();
		jQuery(objID + ' .img_loading').show();
		jQuery.post(ajax_url, str + '&action=send_emailagent', function(res) {
			if(res.status!=0){
				jQuery(objID + ' .submit_message').html(res.response);
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			} else {
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
				jQuery(objID + ' .form_block').hide();
				jQuery(objID + ' .submit_message').html(res.response);
			}
		}, 'json');
	}
}
function send_emailoffice(){
	var objID = " #form_emailoffice";
	if(validateForm(objID)){
		var str = jQuery(objID).serialize();
		jQuery(objID + ' .submit').hide();
		jQuery(objID + ' .img_loading').show();
		jQuery.post(ajax_url, str + '&action=send_emailoffice', function(res) {
			if(res.status!=0){
				jQuery(objID + ' .submit_message').html(res.response);
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			} else {
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
				jQuery(objID + ' .form_block').hide();
				jQuery(objID + ' .submit_message').html(res.response);
			}
		}, 'json');
	}
}
function submit_alert_update(c){
	var objID = "#form_requirements_"+c;
	if(validateForm(objID)){
		var str = jQuery(objID).serialize();
		jQuery(objID + ' .submit').hide();
		jQuery(objID + ' .img_loading').show();
		jQuery.post(ajax_url, str + '&action=update-user-alert&name='+c, function(response) {
			switch(response){
				case "error":
				case "failed":
					jQuery(objID + ' .submit_message').html("The server is currently unavailable. Please try again later.");
					jQuery(objID + ' .submit').show();
					jQuery(objID + ' .img_loading').hide();
					break;
				case"email_exists":
					jQuery(objID + ' .submit_message').html("An account with this email already exists, please check your email address or go to the <a href='/Login'>Login</a> page");
					jQuery(objID + ' .submit').show();
					jQuery(objID + ' .img_loading').hide();
					break;
				case "no-search-match":
					jQuery(objID + ' .submit_message').html("This Proeprty Alert isn't found on the server - please refresh the page and try again");
					jQuery(objID + ' .submit').show();
					jQuery(objID + ' .img_loading').hide();
					break;
				default:
					jQuery(objID + ' .submit_message').html("Your Property Alert has been updated.");
					jQuery(objID + ' .submit').show();
					jQuery(objID + ' .img_loading').hide();
			}
		});
	}
	
}
function submit_register(c){
	var objID = "#form_register";
	var objID2 = "#form_requirements_"+c
	if(validateForm(objID) && validateFormEqual("#form_register .password","#form_register .confirm","Password","Confirm")){
		var str = jQuery(objID).serialize();
		//+ "&" + jQuery(objID2).serialize();
		jQuery('.submit').hide();
		jQuery('.img_loading').show();
		jQuery.post(ajax_url, str + '&action=register-user', function(response) {
			switch(response){
				case "error":
					jQuery(objID + ' .submit_message').html("The server is currently unavailable. Please try again later.");
					break;
				case"email_exists":
					jQuery(objID + ' .submit_message').html("An account with this email already exists, please check your email address or go to the <a href='/Login'>Login</a> page");
					break;
				default:
					jQuery(objID + ' .submit_message').html("Your account has been created please check your email and click the link to confirm your account.  Your can then manage your alerts.");
			}
			jQuery('.submit').show();
			jQuery('.img_loading').hide();
			jQuery(objID2 + ' .submit_message').html(jQuery(objID + ' .submit_message').html());
		});
	}
}
function submit_market_appraisal(c){
	var objID = "#form_market_appraisal";
	if(validateForm(objID)){
		var str = jQuery(objID).serialize();
		jQuery(objID + ' .submit').hide();
		jQuery(objID + ' .img_loading').show();
		jQuery.post(ajax_url, str + '&action=market-appraisal', function(response) {
			if(response == "error"){
				jQuery(objID + ' .submit_message').html("The server is currently unavailable. Please try again later.");
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			}else{
				jQuery(objID + ' .submit_message').html("Your appraisal request has been submitted.  Our team will contact you presently.");
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			}
		});
	}
	return false;

}
function submit_updatealert(c){
	var objID = "#form_requirements_"+c
	var str = jQuery(objID).serialize();
	jQuery(objID + ' .submit').hide();
	jQuery(objID + ' .img_loading').show();
	jQuery.post(ajax_url, str + '&action=iproperty_update_alert', function(response) {
		if(response == "error"){
			jQuery('.submit_message').html("Server becomes unavailable. Please try again later.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}else{
			jQuery('.submit_message').html("Your alert has been updated");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
	});
}
function submit_login(){
	var objID = "#loginform";
	var str = jQuery(objID).serialize();
	jQuery.post(ajax_url, str + '&action=user_login', function(response) {
		if(response == "email not found"){
			jQuery(objID + ' .submit_message').html("User name not found.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
		else if(response == "password incorrect"){
			jQuery(objID + ' .submit_message').html("Password is incorrect.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
		else if(response == "login failed"){
			jQuery(objID + ' .submit_message').html("Username and/or Password is incorrect.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
		else if(response == "success"){
			location.href="/alerts";
		}else{
			jQuery(objID + ' .submit_message').html("A server error has occurred.  Please try again soon.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
	});
}
function submit_sendpw(){
	var objID = "#forgotpwform";
	var str = jQuery(objID).serialize();
	jQuery.post(ajax_url, str + '&action=forgot_password', function(response) {
		if(response == "email not found"){
			jQuery(objID + ' .submit_message').html("User name not found.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}else if(response == "success"){
			jQuery(objID + ' .submit_message').html("Your password has been sent to your email.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}else if(response == "error"){
			jQuery(objID + ' .submit_message').html("Can't retrieve your password at the moment, please try again later or contact web admin.");
			jQuery(objID + ' .submit').show();
			jQuery(objID + ' .img_loading').hide();
		}
	});
}
function submit_updateprofile(){
	var objID = "#form_register";
	var str = jQuery(objID).serialize();
	if(validateForm(objID) && validateFormEqual("#form_register .password","#form_register .confirm","Password","Confirm")){
		jQuery.post(ajax_url, str + '&action=iproperty_update_profile', function(response) {
			if(response == "success"){
				jQuery(objID + ' .submit_message').html("Your profile has been updated.");
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			}else if(response == "email exists"){
				jQuery(objID + ' .submit_message').html("An account with this email already exists, please enter another email.");
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			}else if(response == "error"){
				jQuery(objID + ' .submit_message').html("Can't update your profile at the moment, please try again later or contact web admin.");
				jQuery(objID + ' .submit').show();
				jQuery(objID + ' .img_loading').hide();
			}
		});
	}
}
//** UTILITIES **//
function property_area_toggle(o){
	if(jQuery("."+o+" .open a").html() == "open"){
		jQuery("."+o+" .open a").html("close");
		jQuery("."+o+" .open").addClass("close");
		jQuery("."+o+" .property_area").slideDown();
	}else if(jQuery("."+o+" .open a").html() == "close"){
		jQuery("."+o+" .open a").html("open");
		jQuery("."+o+" .open").removeClass("close");
		jQuery("."+o+" .property_area").slideUp();
	}
}
function area_toggle(o,a){ 
	//o= area where open/close button is, a = the area to be opened/closed
	if(jQuery(o+" .open a").html() == "open"){
		jQuery(o+" .open a").html("close");
		jQuery(o+" .open").addClass("close");
		jQuery(a).slideDown();
	}else if(jQuery(o+" .open a").html() == "close"){
		jQuery(o+" .open a").html("open");
		jQuery(o+" .open").removeClass("close");
		jQuery(a).slideUp();
	}
}
function toggle(o){
	jQuery(o).toggle();
}
function validateForm(f){
	var valid = 1;
	jQuery(f+' .required').each(function() {
		var str = jQuery(this).val();
		if(jQuery.trim(str)==''){
			valid = 0;
			var requiredNotice = jQuery("<span class='required_notice'>* This field is required</span>");
			jQuery(this).next('.required_notice').remove(); // remove required_notice if there's any then add it again
			requiredNotice.insertAfter( jQuery(this) );
		}else{
			jQuery(this).next('.required_notice').remove();
		}
	});
	return (valid);
}
function validateFormEqual(a,b,aname,bname){
	var valid = 1;
	if(jQuery(a).val()!=jQuery(b).val()){
		valid = 0;
		var requiredNotice = jQuery("<span class='required_notice'>* "+aname+" and "+bname+" are not the same</span>");
		jQuery(a).next('.required_notice').remove(); // remove required_notice if there's any then add it again
		jQuery(b).next('.required_notice').remove(); // remove required_notice if there's any then add it again
		requiredNotice.insertAfter( jQuery(a) );
		requiredNotice.insertAfter( jQuery(b) );
	}else{
		jQuery(a).next('.required_notice').remove();
		jQuery(b).next('.required_notice').remove();
	}
	return (valid);
}

function show_comparison_list(){

	jQuery(".compare_property_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");

	if(arguments.length>0){
		data = arguments[0];
	} else
		var data = {
			action: 'get_comparison_html_list'
		};
	jQuery.post(ajax_url, data, function(response){
		if(response.count<2){
			jQuery(".compare_property_area .btn-compare").hide();
		}else{
			jQuery(".compare_property_area .btn-compare").show();
		}
		jQuery(".compare_property_area .property_area").html(response.data);
	}, 'json');
}

function show_favourite_list(){

	jQuery(".save_property_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");

	if(arguments.length>0){
		data = arguments[0];
	} else
		var data = {
			action: 'get_favourite_html_list'
		};
	jQuery.post(ajax_url, data, function(response){
		jQuery(".save_property_area .property_area").html(response.data);
	}, 'json');
}

function show_saved_searches(){
	jQuery(".saved_searches_area .property_area").html("<img src='/assets/images/ajax-loader.gif'>");

	var data = {
		action: 'get_saved_searches_html'
	};
	jQuery.post(ajax_url, data, function(response){
		jQuery(".saved_searches_area .property_area").html(response.data);
	}, 'json');
}
function close_facebox() { 
	parent.jQuery.facebox.close();
}
function show_password_box(){

	if(jQuery("#password_box").css('display')=='none'){
		jQuery('#change_password').html('I don\'t want to change my password');
		jQuery('#password_box').show();
	} else {
		jQuery('#change_password').html('I want to change my password');
		jQuery('#password_box input').val('');
		jQuery('#password_box').hide();
	}
}
function update_profile(){
	var objID = "#form_register";
	var str = jQuery(objID).serialize();

	jQuery('.submit').hide();
	jQuery('.img_loading').show();
	jQuery('#change_password').hide();
	jQuery.post(ajax_url, str + '&action=update-user', function(response) {
		switch(response){
			case "error":
				jQuery(objID + ' .submit_message').html("The server is currently unavailable. Please try again later.");
				break;
			case "password confirm failed":
				jQuery(objID + ' .submit_message').html("Your profile has been updated, but your password and confirmation didn't match - please try again.");
				break;
			case "password success":
				jQuery(objID + ' .submit_message').html("Your profile and password has been updated.");
				break;
			default:
				jQuery(objID + ' .submit_message').html("Your profile has been updated.");
		}
		jQuery(' .submit').show();
		jQuery(' .img_loading').hide();
		jQuery('#change_password').show();
		jQuery('#password_box input').val('');
	});
}

function replace_input_text(element, action, text){
	
	switch(action){
		case "blur":
			if(jQuery(element).val()=='')
				jQuery(element).val(text);
			break;
		case "click":
			if(jQuery(element).val()==text)
				jQuery(element).val('');
			break;
	}
}
