// Collection of various scripts used throughout the site

// Show loading image on some parts of the site that may load slowly, particularly in IE

	$(function() {
		$('.hide_loading').css('display','none').hide();
	});
	 
	$(window).load(function(){
		$('#loadingdiv').remove();
		$('.hide_loading').show();
	});

// Obfuscate email address - remove span

	$(document).ready(function(){
		$(".hide").empty();
	});

// Opens link in new window whilst retaining validity

	$(function() {
		$('a[rel*=external]').click( function() {
			window.open(this.href);
			return false;
		});
	});
	
// Lightbox

	$(document).ready(function() {
		$("a.zoom").fancybox();
	});
	
	$(document).ready(function() {
		$("a.ajax_zoom").fancybox({
			autoDimensions: false,
			width: 600,
			height: 500
		});
	});
	
	$(document).ready(function() {
		$("a.ajax_compare").fancybox({
			autoDimensions: false,
			width: 800,
			height: 600
		});
	});
	
	$(document).ready(function() {
		$("a.ajax_details").fancybox({
			autoDimensions: false,
			width: 300,
			height: 200
		});
	});
	
// Toggle Fade

	(function($) {
	  $.fn.toggleFade = function(settings)
	  {
		settings = jQuery.extend(
			{
			speedIn: "normal",
			speedOut: settings.speedIn
			}, settings
		);
		return this.each(function()
		{
		  var isHidden = jQuery(this).is(":hidden");
		  jQuery(this)[ isHidden ? "fadeIn" : "fadeOut" ]( isHidden ? settings.speedIn : settings.speedOut);
		});
	  };
	})(jQuery);
	
// Sign In Form

	$(document).ready(function(){
		$("#sign_in_box, #sign_in_form").hide();			   
	});
	
	$(function() {
		$(".sign_in").click(function() {
				$("#sign_in_box, #sign_in_form").toggleFade({ speedIn : "fast"});
				$(".sign_in:first").toggleClass("open");
				$("#login_email").toggleClass("focused");
				$("#login_email").focus();  
				if(!$("#login_email").is(".focused")) $(this).focus();
				return false;
			});
	});
	
	$(function() {
		$("#sign_in_box").click(function() {
				$("#sign_in_box, #sign_in_form").toggleFade({ speedIn : "fast"});
				$(".sign_in:first").toggleClass("open");
				$("#login_email").toggleClass("focused");
			});
	});
	
	$(document).ready(function(){
		$(".forgotten").live('click', function() {  
			$.get('../forgotten.php', function(data) {
				$('#sign_in_form').html(data);
			});
			$('#sign_in_form').attr('action', '/php/apps/forgotten_app.php');
			return false;
		});
	});
	
	$(document).ready(function(){
		$(".cancel_forgotten").live('click', function() {  
			$.get('../php/inc/sign_in_form.php', function(data) {
				$('#sign_in_form').html(data);
			});
			$('#sign_in_form').attr('action', '/php/apps/login_app.php');
			return false;
		});
	});
	
	$(document).ready(function(){
		$(".close").live('click', function() {  
			$(this).parents('div.ui-widget').fadeOut();
			return false;
		});
	});

	
// Validation 

	$(document).ready(function(){
		$(".validate").validate();
	});
	
	$(document).ready(function(){
		var container = $('div.error_container');
		// validate the form when it is submitted
		$("#form_step_2").validate({
			errorContainer: container,
			errorLabelContainer: $(container),
			wrapper: 'p',
			meta: "validate"
		});
	});
	
// BubbleUp

	$(function(){
		$("#social_networks ul li a img").bubbleup({tooltip: true, scale:36});
	});
	
// Equalheight 
	
	$(document).ready(function(){
		$(".equal").equalHeights();
	});
	
	$(document).ready(function(){
		$(".buy_sell").equalHeights();
	});
	
	$(document).ready(function(){
		$(".contact").equalHeights();
	});
	
// Datepicker 

	$(document).ready(function(){
		$(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
	});
	
// File input selection

	$(document).ready(function(){
		$("#BrowserHidden").hover(
			function(){
				$(this).siblings().children(".button.browse").addClass("hover");
			}, 
			function () {
				$(this).siblings().children(".button.browse").removeClass("hover");
			}
		);
	});

	function updateFileBrowse() {
		$(this).siblings().children("#FileField").val($(this).val());
	}

	$(document).ready(function(){
		$("#BrowserHidden").change(updateFileBrowse);
	});
	
// Tabs 

	$(document).ready(function() {
		$("#tabs").tabs({
			cookie: {
				expires: 1
			}
		});
	});
	
	$(document).ready(function() {
		$("#vert_tabs").tabs().addClass('ui-tabs-vertical ui-helper-clearfix');
		$("#vert_tabs li").removeClass('ui-corner-top').addClass('ui-corner-left');
	});
	
	$(document).ready(function() {
		$(".button.next").click(function(){
			var $tabs = $('#tabs').tabs();
			var selected = $tabs.tabs('option', 'selected');
			$tabs.tabs('select', selected + 1);
		});
	});
	
// Publishing Options

	$(document).ready(function() {
		$(".publish_option").hide();
		$("#publish_now").change(function(){
			$('.publish_option').slideToggle();
		});
	});

// Removal Options

	$(document).ready(function() {
		$('#sold_extra').hide();
		$("#removal").change(function(){
			if ( $(this).val() == 'Sold' ) {
				$('#sold_extra').show();
			} else {
				$('#sold_extra').hide();
			}
		});
	});

// ALL AJAX STARTS HERE
	
// BobCaptcha
	
	$(document).ready(function(){
		$(".bobcaptcha").click(function() {
			$('#bobcaptcha').load('../bobcaptcha2.php');
			return false;
		});
	});
	
// Ajax Account Amends

	$(document).ready(function(){
		$("#get_password_update").click(function() {
			$('#password_change').load('../change_password.php');
			return false;
		});
	});

// Ajax Add and Edit Machines

	$(document).ready(function(){
		$("#add_wanted_machine").click(function() {
			$(this).fadeOut();
			$.get('../add_wanted_machine.php', function(data) {
				$('#wanted_machines').append(data);
			});
			return false;
		});
	});
	
	$(document).ready(function(){
		$(".edit_wanted_machine").click(function() {
			$(".edit_wanted_machine").fadeOut();
			$.get('../edit_wanted_machine.php?wanted_id=' + $(this).attr("rel"), function(data) {
				$('#wanted_machines').append(data);
			});
			return false;
		});
	});
	
	$(document).ready(function(){
		$("#category_select").change(function() {
			$.get('../php/apps/subcat_select.php?category_id=' + $(this).val(), function(data) {
				$('#subcategory_contain').html(data);
				$('#machine_manufacturer_name').removeAttr("disabled").val('');
				$('#machine_model_name').removeAttr("disabled").val('');
			});
			return false;
		});
	});
	
	$(document).ready(function(){
		$("#category_select").change(function() {
			var category_id = $(this).val();
			$('#category_id').val(category_id);
		});
		$("#subcategory").live('change',(function() {
			var category_id = $(this).val();
			$('#category_id').val(category_id);
			$('#machine_manufacturer_name').removeAttr("disabled").val('');
		}));
	});
	
// Tooltip

	$(function() {
		$("#add_machine :input").tooltip({
			position: "center right",
			offset: [-2, 10],
			effect: "fade",
			opacity: 0.7
		});
	});

// AUTOCOMPLETES

	$(document).ready(function() {
		$("#machine_manufacturer_name").autocomplete({
			source: "/php/apps/mep_manufacturers.php",
			minLength: 1,
			select: function(event, ui) {
				$('#machine_manufacturer_name').val(ui.item.value);
				$('#machine_manufacturer').val(ui.item.id);
				$(this).focus();
				$.ajax({
					url: "/php/apps/mep_model_groups.php?manufacturer_id=" + ui.item.id + "&category_id=" + $('#category_id').val(),
					success: function(data){
						$("#model_group_contain").html(data);
					}
				});
				$("#machine_model_name").autocomplete({
					source: "/php/apps/mep_models.php?manufacturer_id=" + ui.item.id + "&category_id=" + $('#category_id').val(),
					minLength: 1,
					select: function(event, ui) {
						$('#machine_model_name').val(ui.item.value);
						$('#machine_model').val(ui.item.id);
						$(this).focus();
					}
				});
		   }
		});
	});
	
	$(document).ready(function() {
		$('#model_group').live('change', function(){
			$("#machine_model_name").autocomplete({
				source: "/php/apps/mep_models.php?manufacturer_id=" + $('#machine_manufacturer').val() + "&category_id=" + $('#category_id').val() + "&model_group_id=" + $(this).val(),
				minLength: 1,
				select: function(event, ui) {
					$('#machine_model_name').val(ui.item.value);
					$('#machine_model').val(ui.item.id);
					$(this).focus();
				}
			});
		});
	});
	
	$(function() {
		$("input#machine_location").autocomplete({
			source: function(request, response) {
				$.ajax({
					url: "http://ws.geonames.org/searchJSON",
					dataType: "jsonp",
					data: {
						featureClass: "P",
						style: "full",
						maxRows: 12,
						name_startsWith: request.term
					},
					success: function(data) {
						response($.map(data.geonames, function(item) {
							return {
								label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
								value: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName
							}
						}))
					}
				})
			},
			minLength: 2,
			select: function(event, ui) {
				$('#machine_location').val(ui.item.value);
				$(this).focus();
			}
		});
	});
	
	
	function performdelete(DestURL) {
	var ok = confirm("Are you sure you want to delete?");
	if (ok) {location.href = DestURL;}
	return ok;
	}

// Multiselect

	$(document).ready( function() {
		$(function(){
			$(".multiselect").multiselect({searchable: false});
		});
	});
	

// Ajax Reply 

	$(document).ready(function(){
		$(".send_button").click(function() {
			$('#send').load($(".send_button").attr("href"));
			return false;
		});
	});
