 $(function() {
	$('#top-home a').html('&nbsp;');
	$('#top-twitter a').html('');
	$('#top-twitter').hover(function() {
		$(this).addClass('top-twitter-hover');
	}, function() {
		$(this).removeClass('top-twitter-hover');
	}).hide();
	$('#top-share-icon a').html('');
	$('#top-share-icon').hover(function() {
		$(this).addClass('top-share-icon-hover');
	}, function() {
		$(this).removeClass('top-share-icon-hover');
	});
	$('#menu li').hover(function() {
		$(this).addClass('menuHover');
	}, function() {
		var hide = true;
		if($(this).attr('id') == 'menu-find' && $('#menuSub').is(':visible')) hide = false;
		if(hide) $(this).removeClass('menuHover');
	})
	.click(function() {
		hideFindMenu();
	});
	var total = $('#menu-left li').length;
	$('#menu-left li').each(function(index) {
		$('<li class="divider"></li>').insertBefore(this);
		if(total == (index + 1)) {
			$('<li class="divider"></li>').insertAfter(this);
		}
	});
	var total = $('#menu-right li').length;
	$('#menu-right li').each(function(index) {
		$('<li class="divider"></li>').insertBefore(this);
		if(total == (index + 1)) {
			$('<li class="divider"></li>').insertAfter(this);
		}
	});
	$('#menuSub').hide().click(function() {
		hideFindMenu();
	});
	$('#menu-find').click(function() {
		showFindMenu();
	});
	$('#map-new-zealand-hover area').remove();
	$('#map-overlay').hide();
	$('#map-new-zealand area').each(function() {
		var region = $(this).attr('class');
		var coords = $(this).attr('coords');
		$(this).mouseover(function() {
			$('#map-overlay').attr({src : '../images/map/orange-' + region + '.png'}).show();
		});
		$('<area class="' + region + '" shape="poly" coords="' + coords + '" />').appendTo('#map-new-zealand-hover');
	});
	$('#map-new-zealand-hover area').each(function() {
		var region = $(this).attr('class');
		$(this).mouseout(function() {
			$('#map-overlay').attr({src : '../images/map-background.png'}).hide();
		}).click(function() {
			window.location.href = '/' + region.replace(/-/g, '_') + '.html';
		});
	});
	$('.black .button-thin').each(function() {
		$('<div class="button-thin button-thin-left"></div>').insertBefore(this);
		$('<div class="button-thin button-thin-right"></div>').insertAfter(this);
	});
	$('.orange .button-thin').each(function() {
		$('<div class="button-thin button-thin-left"></div>').insertBefore(this);
		$('<div class="button-thin button-thin-right"></div>').insertAfter(this);
	});
	$('.orange-button .button-thin').each(function() {
		$('<div class="button-thin button-thin-left"></div>').insertBefore(this);
		$('<div class="button-thin button-thin-right"></div>').insertAfter(this);
	});
	$('.orange-button-medium').each(function() {
		$('<div class="orange-button-medium-left"></div>').insertBefore(this);
		$('<div class="orange-button-medium-right"></div>').insertAfter(this);
	});
	$('.blue-button-medium').each(function() {
		$('<div class="blue-button-medium-left"></div>').insertBefore(this);
		$('<div class="blue-button-medium-right"></div>').insertAfter(this);
	});
	$('.blue-button-thin').each(function() {
		$('<div class="blue-button-thin-left"></div>').insertBefore(this);
		$('<div class="blue-button-thin-right"></div>').insertAfter(this);
	});
	$('.green-button-thin').each(function() {
		$('<div class="green-button-thin-left"></div>').insertBefore(this);
		$('<div class="green-button-thin-right"></div>').insertAfter(this);
	});
	$('.green-button-medium').each(function() {
		$('<div class="green-button-medium-left"></div>').insertBefore(this);
		$('<div class="green-button-medium-right"></div>').insertAfter(this);
	});
	$('.grey-button-medium').each(function() {
		$('<div class="grey-button-medium-left"></div>').insertBefore(this);
		$('<div class="grey-button-medium-right"></div>').insertAfter(this);
	});
	$('.orange-button-large').each(function() {
		$('<div class="orange-button-large-left"></div>').insertBefore(this);
		$('<div class="orange-button-large-right"></div>').insertAfter(this);
	}).hover(function() {
		$(this).prev('.orange-button-large-left:first').toggleClass('orange-button-large-left-hover');
		$(this).toggleClass('orange-button-large-hover');
		$(this).next('.orange-button-large-right:first').toggleClass('orange-button-large-right-hover');
	}, function() {
		$(this).prev('.orange-button-large-left:first').toggleClass('orange-button-large-left-hover');
		$(this).toggleClass('orange-button-large-hover');
		$(this).next('.orange-button-large-right:first').toggleClass('orange-button-large-right-hover');
	});
	$('.white-button-large').each(function() {
		$('<div class="white-button-large-left"></div>').insertBefore(this);
		$('<div class="white-button-large-right"></div>').insertAfter(this);
	}).hover(function() {
		$(this).prev('.white-button-large-left:first').toggleClass('white-button-large-left-hover');
		$(this).toggleClass('white-button-large-hover');
		$(this).next('.white-button-large-right:first').toggleClass('white-button-large-right-hover');
	}, function() {
		$(this).prev('.white-button-large-left:first').toggleClass('white-button-large-left-hover');
		$(this).toggleClass('white-button-large-hover');
		$(this).next('.white-button-large-right:first').toggleClass('white-button-large-right-hover');
	});
	$('.centerButton').each(function() {
		var divWidth = 0;
		divWidth = $(this).children('a').outerWidth() + 1;
		$(this).css({width : divWidth});
	});
	/*
	$('.rightButton').each(function() {
		$('.rightButton').each(function() {
			var divWidth = 0;
			var divHeight = 0;
			$(this).children('div').each(function() {
				divWidth += $(this).width();
				divHeight = $(this).height();
			});
			divWidth++;
			$(this).css({width : divWidth, height : divHeight});
		});
	});
	*/
	$('#criteria .rightButton').css({'float' : 'right'});
	$("#search-location-box").msDropDown({mainCSS:'dd-orange'});
	$("#search-rate-box-from").msDropDown({mainCSS:'dd-orange'});
	$("#search-rate-box-to").msDropDown({mainCSS:'dd-orange'});
	$("#search-guests-box").msDropDown({mainCSS:'dd-orange'});
	$(".product-qty select").msDropDown({mainCSS:'dd-blue'});
	$(".product-qty-blue select").msDropDown({mainCSS:'dd-blue'});
	$(".product-qty-orange select").msDropDown({mainCSS:'dd-orange'});
	$("#book-background select").msDropDown({mainCSS:'dd-orange'});
	$("#guide-background select").msDropDown({mainCSS:'dd-orange'});
	$(".form select").msDropDown({mainCSS:'dd-blue'});
	$("select.dd-orange").msDropDown({mainCSS:'dd-orange'});
	
	$('.accordian').each(function() {
		buildAccordian('accordian', $(this).children('ul:first'), 1);
	});
	$('.accordian-blue').each(function() {
		buildAccordian('accordian-blue', $(this).children('ul:first'), 1);
	});
	$('#bnb-details tr:even').css('background-color', '#fff');
	$('#formErrors').each(function() {
		var fields = $(this).val().split(',');
		for(i in fields) if(fields[i]) {
			$(':input').each(function() {
				if($(this).attr('name') == fields[i]) {
					$(this).addClass('incomplete');
					$('#label-' + fields[i]).addClass('incomplete');
				}
			});
		}
	});
	$('#form-listing-selection').submit(function() {
		// Only do this for step 1
		if($('#step').val() == '1') {
			var booklet = false;
			var web = false;
			var anniversaryDate = $('#anniversary-date').val();
			var nextBook = $('#next-book').val();
			var cutoffDate = $('#cutoff-date').val();
			$('input[type=checkbox]').each(function() {
				// TODO: This is a cheap hack for the NZ site - we might need to make this better come AU?
				if($(this).attr('checked') == true) {
					if($(this).val() == 5) {
						web = true;
					} else if($(this).val() == 6) {
						booklet = true;
						// If no anniversary date is set then this is a new listing which also includes the web listing
						if(anniversaryDate == 'today') web = true;
					}
				}
			});
			if(booklet && web) {
				return true;
			} else if(web) {
				return confirm("You have chosen to list on the website for one year from " + anniversaryDate + ".\n" +
						"If you want to list in the B&B Booklet " + nextBook + ", the additional listing fee will be due on " + cutoffDate + ".\n\n" +
						"Do you want to pay it now and avoid another invoice later?\n\n" +
						"Click 'Cancel' to go back and pay it now. Click 'OK' to carry on.");
			} else if(booklet) {
				return confirm("You have chosen to list in The B&B Booklet for the year " + nextBook + ".\n" +
						"The additional web listing fee will be due on " + anniversaryDate + ".\n\n" +
						"Do you want to pay it now and avoid another invoice later?.\n\n" +
						"Click 'Cancel' to go back and pay it now. Click 'OK' to carry on.");
			} else {
				alert("You need to select one of the payment options");
				return false;
			}
		} else {
			return true;
		}
	});
	var currentStep = 1;
	// Try get the step from an input field
	currentStep = parseInt($('#step').val());
	// If we couldn't find when then try the query string
	if(!currentStep) parseInt(getParameterByName('step'));
	if(currentStep <= 0 || !currentStep) currentStep = 1;
	var color = $('#step-counter ul:first').attr('class');
	if(!color) color = 'orange';
	$('#step-counter li').each(function(index) {
		var liColor = color;
		$(this).attr('class', color);
		if((index + 1) == currentStep) {
			liColor = $('#step-counter-active').val();
			if(!liColor) {
				if(window.location.href.indexOf('publish/') > 0) {
					liColor = 'green';
				} else {
					liColor = 'blue';
				}
			}
			$(this).removeClass(color).addClass(liColor);
		} else if((index + 1) < currentStep) {
			// Add a tick to the new registraton process
			if(color == 'grey') {
				liColor = 'medium-grey';
				$(this).removeClass(color).addClass(liColor);
				$('<div class="tick">&nbsp;</div>').appendTo(this);
			}
		}
		// Hover color
		var hoverColor = 'orange';
		if($('#step-counter-active').val() != hoverColor) {
			if(window.location.href.indexOf('publish/') > 0) {
				hoverColor = 'green';
			} else {
				hoverColor = 'blue';
			}
		}
		// Add a link to the previous steps so that the user can go back if desired
		var url = window.location.href;
		if(url.indexOf('step') > 0) url = url.substr(0, (url.indexOf('step') - 1));
		if(url.indexOf('?') >= 0) {
			url += '&amp;step=' + (index + 1);
		} else {
			url += '?step=' + (index + 1);
		}
		$(this).wrap('<a href="' + url + '" />');
		var vertical = 30 * index;
		if ($.browser.msie) {
			var horizontal = $(this).css('backgroundPositionX');
		} else {
			var currentPosition = $(this).css('background-position').split(' ');
			var horizontal = currentPosition[0];
		}
		$('<div class="number" style="background-position: ' + horizontal + ' -' + vertical + 'px;"></div>').prependTo(this);
		$(this).css('background', 'url("../images/' + liColor + '-heading.png")')
		.hover(function() {
			$(this).css('background', 'url("../images/' + hoverColor + '-heading.png")');
		}, function () {
			$(this).css('background', 'url("../images/' + liColor + '-heading.png")');
		});
	});
	// Template banner
	var banners = Array();
	banners[0] = 'trees';
	banners[1] = 'water';
	banners[2] = 'alan-jasmin';
	banners[3] = 'auckland';
	banners[4] = 'cove';
	banners[5] = 'hills';
	banners[6] = 'kate-brian';
	banners[7] = 'ned-margie';
	var bannerTotal = banners.length;
	banners.sort(randomSort);
	banners[bannerTotal] = 'egg';
	var display = 0;
	if(window.location.pathname == '/') {
		$('#banner').addClass('large');
		for(i in banners) {
			$('<div style="background: url(\'/images/banner/' + banners[i] + '-lg.jpg\') no-repeat center; height: 260px; position: absolute; width: 100%; display: block; z-index: ' + i + ';"></div>').appendTo('#banner');
		}
	} else {
		$('#banner').addClass('small');
		for(i in banners) {
			$('<div style="background: url(\'/images/banner/' + banners[i] + '-sm.jpg\') no-repeat center; height: 150px; position: absolute; width: 100%; display: block; z-index: ' + i + ';"></div>').appendTo('#banner');
		}
	}
	var ratingSelected;
	$('#review-rating tr:first').each(function() {
		$(this).children('td').each(function() {
			var i = $(this).html();
			$(this).html('<img src="/images/orange-' + i + '.png" alt="" style="cursor: pointer;" />');
			$(this).children('img').each(function() {
				$(this).attr('rel', i);
				$(this).click(function() {
					$('#rating').val(i);
					if(ratingSelected) {
						var a = $(ratingSelected).attr('rel');
						$(ratingSelected).attr('src', '/images/orange-' + a + '.png');
					}
					$(this).attr('src', '/images/black-' + i + '.png');
					ratingSelected = this;
				});
				if(i == $('#rating').val()) {
					$(this).attr('src', '/images/black-' + i + '.png');
					ratingSelected = this;
				}
			}).hover(function() {
				$(this).attr('src', '/images/black-' + i + '.png');
			}, function() {
				if(i != $('#rating').val()) {
					$(this).attr('src', '/images/orange-' + i + '.png');
				}
			});
		});
	});
	bannerTotal--;
	fadeBanner(bannerTotal);
	$('#login :input').keypress(function (e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#login').submit();
		}
	});
	$('#forgot :input').keypress(function (e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#forgot').submit();
		}
	});
	$('#email').focus();
	$('#search-town :input').keypress(function (e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#search-form').submit();
		}
	});
	$('#search-name :input').keypress(function (e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$('#search-form').submit();
		}
	});
	// Make blue member drop downs slide up if clicking on the document
	$(document).mouseup(function() {
		$('.accordian-blue-1 ul').each(function() {
			if($(this).is(':visible')) {
				$(this).trigger('click');
			}
		});
	});
});

function randomSort(a,b) {
    return( parseInt( Math.random()*10 ) %2 );
}

var cycleOnce = -1;
function fadeBanner(currentPhoto) {
	var numberOfPhotos = $('#banner div').length;
	currentPhoto = currentPhoto % numberOfPhotos;
	$('#banner div').eq(currentPhoto).fadeOut('slow', function() {
		$('#banner div').each(function(i) {
			$(this).css('zIndex', ((numberOfPhotos - i) + currentPhoto) % numberOfPhotos);
		});
		$(this).show();
		// Only cycle once so stop at zero
		if(currentPhoto != cycleOnce) {
			setTimeout(function() {
				fadeBanner(++currentPhoto);
			}, 8000);
		}
		if(cycleOnce < 0) cycleOnce = currentPhoto;
	});
}
function buildAccordian(ulClass, ul, level) {
	var ulWidth = $(ul).width();
	$(ul).children('li').each(function() {
		var li = this;
		$(this).addClass(ulClass + '-' + level).click(function() {
			var child = $(this).children('ul:first');
			if($(child).is(':visible')) {
				// Loop through children to make sure everything is hidden
				var slide = true;
				$(child).children('li').each(function() {
					if($(this).children('ul').is(':visible')) {
						slide = false;
					}
				});
				if(slide) {
					$(li).removeClass(ulClass + '-' + level + '-hover').children('.arrow').toggleClass(ulClass + '-' + level + '-arrow-hover');
					$(this).children('ul:first').slideUp('fast');
				}
			} else {
				$(li).addClass(ulClass + '-' + level + '-hover').children('.arrow').toggleClass(ulClass + '-' + level + '-arrow-hover');
				$(this).children('ul:first').slideDown('fast');
			}
		}).hover(function() {
			$(li).addClass(ulClass + '-' + level + '-hover');
		}, function() {
			toggleAccordianHover(ulClass, li, this, level);
		});
		if($(this).children('ul').length > 0) {
			$('<div class="arrow">&nbsp;</div>').prependTo(this);
		}
		$(li).children('ul:first').each(function() {
			$(this).css({width: ulWidth});
			$(this).hide();
			buildAccordian(ulClass, this, level + 1);
		});
		$(this).children('a').each(function () {
			if($(this).attr('href') == window.location.href) {
				$(li).addClass('selected');
				$(li).addClass(ulClass + '-' + level + '-hover');
			}
		});
	});
}
function toggleAccordianHover(ulClass, parent, child, level) {
	if($(child).children('ul:first').is(':visible') || $(child).hasClass('selected')) {
		$(li).addClass(ulClass + '-' + level + '-hover');
	} else {
		$(parent).removeClass(ulClass + '-' + level + '-hover');
	}
}
function showFindMenu() {
	$('#menu-find').addClass('menuHover');
	$('#menuSub').slideDown();
}
function hideFindMenu() {
	$('#menu-find').removeClass('menuHover');
	$('#menuSub').slideUp();
}
function getParameterByName(name) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
function updateStatus(status) {
	$('#status').val(status);
	$('#form').submit();
}

function calculateCheckoutTotal() {
	var total = 0;
	$('input[type=checkbox]').each(function() {
		if($(this).attr('checked') == true) {
			total = total + parseInt($(this).attr('rel'));
		}
	});
	$('#listing-payment-total').html('Total NZ$' + total + '.00');
}
function proceedToPayment() {
	$('#form-listing-selection').submit();
}
