	function addToFavorites()
	{
		title = "Mäklare.se"; 
		url = "http://www.maklare.se/";

		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title, url,"");
		} else if (window.external ) { // IE Favorite
			window.external.AddFavorite( url, title);
		}
		else {
			alert("Din webbläsare stöder inte denna funktion."); }
		$.get("/bookmark.php");
	}

	function phone_check(str)
	{
		var not_allowed = /[^0-9\s-]/;
		if (str.match(not_allowed) || str.length < 7) {
			return false;
		} else {
			return true;
		}
	}

	function trim(str) {
		return ltrim(rtrim(str));
	}
	 
	function ltrim(str) {
		chars = "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
	 
	function rtrim(str) {
		chars = "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}

	function validate_offerta_form()
	{
		if ($("#offert_job_sub").val() == "0")
		{
			alert("Du måste specificera tjänst.");
			$("#offert_job_sub").focus();
			return false;
		}
		if ($("#offert_city").val() == "0")
		{
			alert("Du måste välja både län och kommun.");
			$("#offert_city").focus();
			return false;
		}
		var offert_description = $("#offert_description").val();
		if (offert_description.length < 5 || offert_description == 'Tips: En bra och tydlig beskrivning möjliggör fler och bättre svar')
		{
			alert("Du måste skriva en beskrivning.");
			$("#offert_description").focus();
			return false;
		}
		if ($("#offert_name").val().length < 5)
		{
			alert("Du måste skriva in ditt namn.");
			$("#offert_name").focus();
			return false;
		}
		var epost = $("#offert_email").val();
		if (echeck(epost) === false)
		{
			alert("Du måste skriva in en korrekt e-postadress.");
			$("#offert_email").focus();
			return false;
		}
		var phone = $("#offert_phone").val();
		if (phone_check(phone) === false)
		{
			alert("Du måste skriva in ett giltigt telefonnummer.");
			$("#offert_phone").focus();
			return false;
		}
		if ($('#offert_terms').is(':checked') === false)
		{
			alert("Du måste godkänna användarvillkoren.");
			return false;
		}
		return true;
	}

	function activate_offerta_form()
	{
		var c = $("#city").val();
		$("#offerta_submit").bind("click", function() {
			if (validate_offerta_form())
				{
					$("#offerta_form").submit();
				}
				return false;
		});

		$("#offert_county").bind("change", function() {
			var c = $(this).val();
			$.post("/getCities.php", {c: c},
				function(data) {
					$("#offert_city").html(data);
				}, "html");			
		});

		$("#offert_job").bind("change", function() {
			var jm = $(this).val();
			$.post("/getMenuCategories.php", {id: jm},
				function(data) {
					$("#offert_job_sub").html(data);
				}, "html");			
		});

		$(".helplink").bind("click", function() {
			var id = $(this).attr("id").replace("_link", "");
			$('#' + id).slideToggle('fast');
			return false;
		});
		$("#offert_description").bind("blur", function() {
			if ($(this).val() == '')
				$(this).val("Tips: En bra och tydlig beskrivning möjliggör fler och bättre svar");
		});
		$("#offert_description").bind("click, focus", function() {
			if ($(this).val() == 'Tips: En bra och tydlig beskrivning möjliggör fler och bättre svar')
				$(this).val('');
		});
		$("#offert_city").val(c);
	}

	function validate_privatmaklaren_form()
	{
		var privatmaklaren_address = $("#privatmaklaren_address").val();
		if (privatmaklaren_address.length < 5)
		{
			alert("Du måste skriva in din adress.");
			$("#privatmaklaren_address").focus();
			return false;
		}
		if ($("#privatmaklaren_type").val() == "0")
		{
			alert("Du måste välja objekttyp.");
			$("#privatmaklaren_type").focus();
			return false;
		}
		if ($("#privatmaklaren_name").val().length < 5)
		{
			alert("Du måste skriva in ditt namn.");
			$("#privatmaklaren_name").focus();
			return false;
		}
		var epost = $("#privatmaklaren_email").val();
		if (echeck(epost) === false)
		{
			alert("Du måste skriva in en korrekt e-postadress.");
			$("#privatmaklaren_email").focus();
			return false;
		}
		var phone = $("#privatmaklaren_phone").val();
		if (phone_check(phone) === false)
		{
			alert("Du måste skriva in ett giltigt telefonnummer.");
			$("#privatmaklaren_phone").focus();
			return false;
		}
		return true;
	}

	function activate_privatmaklaren_form()
	{
		$("#privatmaklaren_submit").bind("click", function() {
			if (validate_privatmaklaren_form())
				{
					$("#privatmaklaren_form").submit();
				}
				return false;
		});
	}
	
	$(document).ready(function() {
		$("#postnummer").bind("focus", function() {
			if ($(this).val() == 'Postnummer')
				$(this).val('');
		});
		$("#postnummer").bind("blur", function() {
			if ($(this).val() == '')
				$(this).val('Postnummer');
		});
		$("#postnummer").bind("keyup", function() {
			var str = $(this).val();
			if (str.length > 2)
			{
				$.post("/getZipcodeCities.php", {z: str},
				function(data) {
					$("#city_container").html(data);
				});
			}
			else
			{
				$("#city_container").html('');
			}
		});

		$("#q").bind("focus", function() {
			if ($(this).val() == 'Sök på region eller mäklare')
				$(this).val('');
		});
		$("#q").bind("blur", function() {
			if ($(this).val() == '')
				$(this).val('Sök på region eller mäklare');
		});

		// Only for offerta forms
		activate_offerta_form();
		
		// Only for privatmaklaren forms
		activate_privatmaklaren_form();

		$("#bookmark").bind("click", function() {
			addToFavorites();
			return false;
		});

	});
	
	function echeck(str)
{
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

		 if ((lstr - ldot) < 3){
			return false;
		 }
		
 		 return true					
	}
