/**** Add application wide javascripts below this point  ******/
$(document).ready(function() {
	if(!$("body").hasClass("print_friendly"))
		$('#main_image').switcher({	item: 									'.item_img', 
																pagination: 						'#image_switcher', 
																auto_rotate: 						true, 
																rotate_time: 						5000, 
																swap_container_class: 	false, 
																speed: 									"fast", 
																pagination_active_class:'active', 
																after_function: 				true
															});

	form_setup();
	if(jQuery("#twitter-ajax").length){
		if(jQuery("#twitter-ajax .loading").length) load_twitter();
	  else setTimeout(load_twitter, 30000);
	}
	
	ginitialize();
	if($('#google_map_small').length) {
	    var ltlg= new GLatLng(52.47551397,-1.90750122);
	    googlemap.setCenter(ltlg, 15);
	    var marker = new GMarker(ltlg);
	    googlemap.addOverlay(marker);
	    googlemap.addControl(new GSmallMapControl());
	}
	print_setup();
	//image_switcher();
	
	$('#main_image .item_img a').lightBox({
		overlayBgColor: '#FFF',
		overlayOpacity: 0.6,
		imageLoading: '/images/lightbox/loading.gif',
		imageBtnClose:'/images/lightbox/close.gif',
		imageBtnPrev:	'/images/lightbox/prev.gif',
		imageBtnNext: '/images/lightbox/next.gif',
		containerResizeSpeed: 350
	});
	
	$("#floorplans").lightBox({
		overlayBgColor: '#000',
		overlayOpacity: 0.6,
		imageLoading: '/images/lightbox/loading.gif',
		imageBtnClose:'/images/lightbox/close.gif',
		imageBtnPrev:	'/images/lightbox/prev.gif',
		imageBtnNext: '/images/lightbox/next.gif',
		containerResizeSpeed: 350
	});
	
	$("#floorplans").click(function(){
		$("#lightbox-container-image-box")[0].oncontextmenu = function(){return false;};
	});
	
	$("#modal").dialog({modal:true,resizable:false,autoOpen:false});
	$("a.signup").click(function(){
		$("#modal").dialog("open");
		return false;
	});
	
	
	
	$("#feedback_modal").dialog({modal:true,resizable:false,title:'Feedback',autoOpen:open});
	$("a.feedback").click(function(){
		window.scrollTo(0, 0);
		$("#feedback_modal").dialog("open");
		return false;
	});
	$("a.itunes").click(function(){
		return false;
	});
	var first = $(".offers a");
	var second = first.eq(1);
	first = first.eq(0);
	
	setInterval(function(){
		if(first.css("z-index") == 2){
			var one = first;
			var two = second;
		}else{
			var two = first;
			var one = second;
		}
		one.fadeOut("slow",function(){
			one.css("z-index",1);
			two.css("z-index",2);
			one.fadeIn("fast");
		});
	}, 5000);
		
	find_downloads();
	
	setTimeout("fade_messages()", 3500);
	
	//google_map_click();
	
	$("#text_search, #quick_text_search, #signup_name, #signup_email").hint();
	$(":submit, :image").click(function(){$("#text_search, #quick_text_search, #signup").each(function(){
	  if($(this).val() == $(this).data("defText")) { $(this).val(""); }
	}); });
  $(".per_page_dropdown").change(function(){
		$(this).parent().parent().parent().submit();
	});

	//nav animation
		var orig;
	  var origheight;
	  var origin;
	  $("#navigation li").filter(":not(#selected)").hover(function(){
	    orig = $(this).parent().find("#selected").css("background-image","none").offset().left;
	    orig = orig + ($(this).parent().find("#selected").width() / 2) -5;
	    origin = orig;
	    if($("#nav_animation").length) {
	      clearTimeout(pt);
	      orig = $("#nav_animation").offset().left;
	      var newimg = $("#nav_animation");
	    } else {
	      origheight = ($("#page").offset().top +5);
	      origheight = origheight + $("#navigation li").eq(0).height() + 105;
	      var newimg = '<img src="/images/nav_indicator.gif" id="nav_animation" />';
	      $("body").append(newimg);
	    }
		$("#nav_animation").css({position:"absolute",left:orig,top:(origheight)}).animate({left:($(this).offset().left + ($(this).width()/2))});
	  }, function(){
	    pt = setTimeout(function(){
	      $("#nav_animation").animate({left:origin,top:(origheight)}, function(){$(this).parent().find("#selected").css("background-image","url(/images/nav_indicator.gif)");}).fadeOut("fast",function(){
	        $(this).remove();
	      });
	    }, 600);
		});
		
		
		$(".diary-comments .asdkyg").css("display", "none").prev().css("display", "none");
	  $(".diary-comments a.comment-slider").click(function(){
	    $(this).siblings(".diary-comments-form").slideToggle();
	    return false;
	  });
	
	  $(".diary-comments-form form").submit(function(){
	    var loading_block = $(this).parent().parent().next(".all-comments").html("<p>comments reloading</p>");
	    var orig_form = $(this);

	    $.post($(this).attr("action"),
	      $(this).serialize() + "&ajax=1",
	      function(data){
	        loading_block.html(data);
	        orig_form.parent().slideToggle();
					$("#user_message_box").fadeOut(5000);
	        orig_form.children(".inputarea").each(function(){
	          $(this).val("");
	        });
	    	}
	    );
	    return false;
	  });
	
		$("#shortlist_button a").click(function(){
			var orig_link = $(this);
			jQuery.ajax({	url: $(this).attr("href"),
										type: "post",
										dataType: "json",
										success: function(data){
																var orig_link_jq = $(orig_link);
																if(orig_link.children("img").length){
																	if(data.type_ofdata == "added"){
																		orig_link_jq.attr("href", orig_link_jq.attr("href").replace("save","remove")).children("img").attr("src","/images/shortlist-added.gif");
																	}else {
																		orig_link_jq.attr("href", orig_link_jq.attr("href").replace("remove","save")).children("img").attr("src","/images/shortlist-add.gif");
																	}
																	if(data.count > 0){
																		$("#navigation li a.shortlist span").html(data.count);
																	}else $("#navigation li a.shortlist span").html(data.count);
																}else{
																	if(data.type_ofdata == "added"){
																		orig_link_jq.attr("href", orig_link_jq.attr("href").replace("save","remove")).html("Remove from shortlist");
																	}else orig_link_jq.attr("href", orig_link_jq.attr("href").replace("remove","save")).html("Add to shortlist");
																	if(data.count > 0){
																		$("#navigation li a.shortlist span").html(data.count);
																	}else $("#navigation li a.shortlist span").html(data.count);
																}
															}
								});
			return false;
		});
		
});

var ajax_error_count = 3;

function twitter_error(){
  if(jQuery('#twitter-ajax .loading').length && (ajax_error_count > 0)){
    ajax_error_count--;
    setTimeout(load_twitter, 10000);
  }
}

function load_twitter(){
	jQuery.ajax({
		type:'post',
		url:'/page/_twitter.ajax',
		timeout: 5000,
		success:function(response){
      if(response.length) jQuery('#twitter-ajax').replaceWith(response);
      twitter_error();
		},
		error:twitter_error
	});
}

//live search
$(document).ready(function() {
  $("#site_search_form input[type='text']").hint({populate_from:"default"});

  $('script[data-observed="site_search_f"]').bind("wax:complete", function(){
    if($("#site_search").val().length > 2) $(document).trigger("site:searched");
  });
  $(document).bind("site:searched", function(){
    $(document).trigger("dropdown");
    $("#site_search_form").addClass("search_active");
    $("#site_search_results").slideDown("slow");
    $("#site_search_form").mouseleave(function(){
      setTimeout(function(){
        $("#site_search_results").slideUp("fast");
        $("#site_search_form").removeClass("search_active");
      },500);
    });
  });
});	
$(document).ready(function() {
  $(document).keydown(function(e) {
  	switch(e.keyCode) { 
  		case 38: navigate('up'); break;
  		case 40: navigate('down'); break;
  		case 13:
  			if(currentUrl != '' && $(".dropdown:visible").length > 0) window.location = currentUrl;
  		break;
  	}
  });
});

$(document).ready(function(){
	if($("#slider").length){
		$("#slider").slider({range: true,
					min: 400,
					max: 4000,
					step: 100,
					values: [prop_min, prop_max],
					slide: function(event, ui) {
						$("#property_min_price").val(ui.values[0]);
						$("#property_max_price").val(ui.values[1]);
					}
				});
				$("#property_min_price").val($("#slider").slider("values", 0));
				$("#property_max_price").val($("#slider").slider("values", 1));
	}
	
	ginitializes();
	var openup = function(){activemarker(opentrigger);GEvent.trigger(MARKERS[opentrigger], "click");};
	if($("#tabs").length){
		$("#map_tab").css("display","block");
		$("#tabs").tabs();
		$('#tabs').bind('tabsshow', function(event, ui) {
		    if (ui.panel.id == "map_tab") {
						
						if($("#google_map").length){
							var google_map = new gmap('google_map', {"list_id":"google_listing"});
						  //setTimeout(openup, 1500);
						}
		        //
						$("ul.hide").show();
						$("body").addClass("map_view");
						return false;
		    }else {
					$("ul.hide").hide();
					$("body").removeClass("map_view");
					$("#google_listing h3 a").css("background","none").css("padding-left","0px");
				}
		});
	}
	$("a.move").click(function(){
		if($("#google_map").parent().hasClass("ui-tabs-hide")) {
			$("#tab_map").trigger("click");
			opentrigger = $(this).parent().parent().parent().parent('.mapitem')[0].__val;
			scrollTo(0,150);
		}
		return false;
	});
	
	//on property view scroll to top
	$("#to_top").click(function(){
		window.scrollTo(0, 0);
		return false;
	});
	
	//$("#google_listing h3 a").css("background","none").css("padding-left","0px");
});

// function google_map_click(){
// 	$('#property_google_map').click(function(){
// 		var loc = $('a.google_link_location').attr('href');
// 		window.location = loc;
// 	});
// }

function fade_messages(){
	$('#user_message_box').fadeOut("slow");
}

function find_downloads(){
	$('#page_copy li').children('a').each(function(){
		var href=$(this).attr('href');
		if(href.length && (href.indexOf('.pdf') || href.indexOf('.doc') || href.indexOf('.zip') ) ){
			if(!$(this).parent().parent().hasClass('downloadables')){
				$(this).parent().parent().prepend("<li class='no_icon'><h3>Related documents</h3></li>");
			}
			var ext = href.substring(href.indexOf('.')+1);
			if(add_li_class) $(this).addClass('read_more').parent().addClass('download').addClass(ext).parent().addClass('downloadables');
			else $(this).addClass('read_more').parent().addClass('download').addClass('no_icon').parent().addClass('downloadables');			
			
			var ht = $(this).html().replace(' ', '</span> ').replace('&nbsp;', '</span> ');
			ht = "<span>"+ht;
			$(this).html(ht);
		}
	});
}

// function image_switcher(){
//   $('#image_switcher a').hover(
//     function(){
//       switch_me(this);
//       return false;
//     },
//     function(){
// 			$(this).children("span.small_frame").children("img").attr('src',"/images/picture_frame_small.png");
// 		}
//   );
// }
 
// function switch_me(clicked){
// 	$(clicked).children("span.small_frame").children("img").attr('src',"/images/picture_frame_small_red.png");
// 	$('#main_image a span.image img').fadeOut(300,function(){
// 	  var atitle = $(clicked).attr('title');
// 	  var ahref = $(clicked).attr('href');
// 	  $('#main_image a').attr('title', atitle);
// 	  $('#main_image a').attr('href', ahref.replace('550.', '650.'));
// 	  $('#main_image a span.image img').attr('src', ahref);
// 		$('#main_image a span.image img').fadeIn(200);
// 	});
// }

function print_setup(){
	if($('body').hasClass('print_friendly')) window.print();
}

/*forms*/
function form_setup(){
	/*form validation*/
	$('form.validate').validate();
	/*some pretty bits*/
	$('form input[type=checkbox]').each(function(){
		jQuery.data($(this).get(0),"formclicked", {clicked:true});
		$('form label[for='+$(this).attr('id')+']').css('color', '#E2292A');
		$(this).click(function(){
			var clickedme = jQuery.data($(this).get(0), "formclicked").clicked;
			if(!clickedme){
				$('form label[for='+$(this).attr('id')+']').css('color', '#E2292A');
				jQuery.data($(this).get(0),"formclicked", {clicked:true});
			}else{
				jQuery.data($(this).get(0),"formclicked", {clicked:false});
				$('form label[for='+$(this).attr('id')+']').css('color', '#666');
			}
		});
	});
	
	$('form li.more_options').css('display', 'block');
	$('form ol.extras').css('display', 'none');
	$('form li.more_options a').click(function(){
		$('form ol.extras').slideToggle('fast');
		if($(this).hasClass('read_more')){
			$(this).removeClass('read_more').addClass('read_less').html("Fewer <span>options</span>");
		}else{
			$(this).removeClass('read_less').addClass('read_more').html("More <span>options</span>");			
		}
		return false;
	});
	if(showless){
		$('form li.more_options a').removeClass('read_more').addClass('read_less').find('span').html('less');
	}
}

/** GOOGLE MAPS **/
function ginitializes() {
	if (GBrowserIsCompatible()) {
		if($('#google_map').length){
			googlemap = new GMap2(document.getElementById('google_map'));
			geocoder = new GClientGeocoder();
		}
	}
}
function ginitialize() {
	if (GBrowserIsCompatible()) {
		if($('#google_map_small').length) googlemap = new GMap2(document.getElementById('google_map_small'));
		//else if($('#property_google_map').length) googlemap = new GMap2(document.getElementById('property_google_map'));
		geocoder = new GClientGeocoder();
	}
}
function show_address(address) {
	if(geocoder){
		geocoder.getLatLng(
								address,
								function(point) {																																	
									if(!point) {
										$('#google_map, #property_google_map').css('display', 'none');
									}
									else{
										googlemap.setCenter(point, 15);
										var marker = new GMarker(point);
										googlemap.addOverlay(marker);
										googlemap.addControl(new GSmallMapControl());										
									}
								});
	}

}
function show_addresses(address_hash, i){
	if(geocoder){
		geocoder.getLatLng(
			address_hash[i],
			function(point){
				if(!point && (i+1) < address_hash.length) show_addresses(address_hash, i+1);
				else if(!point) $('#google_map, #property_google_map').css('display', 'none');
				else{
					googlemap.setCenter(point, 15);
					var marker = new GMarker(point);
					googlemap.addOverlay(marker);
					googlemap.addControl(new GSmallMapControl());
				}
			}
		);
	}
}
