//Nomensa jquery init file
//author: nomensa
//website: http://www.nomensa.com

$(function(){
    $('body').jsEnabled();
    $('.formInput').nomFormFocus(); 
    $('blockquote').nomBlockquote();
	ThumbnailSwitcher(".photoGallery");
	$('#headerSectionOne li:last-child').addClass('last'); 

	// add a "rel" attrib if Opera 7+
	if(window.opera) {
		if ($("a.jqbookmark").attr("rel") != ""){ // don't overwrite the rel attrib if already set
			$("a.jqbookmark").attr("rel","sidebar");
		}
	}

	// Limit the width and character limit of address fields for brochure form
	$('#request-a-brochure input#id_field_4, #request-a-brochure input#id_field_5, #request-a-brochure input#id_field_6, #request-a-brochure input#id_field_7, #request-a-brochure input#id_field_8').attr('maxlength', 25).css("width", "180px");

	$("a.jqbookmark").click(function(event){
		event.preventDefault(); // prevent the anchor tag from sending the user off to the link
		var url = this.href;
		var title = this.title;
		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title, url,"");
		} else if( window.external ) { // IE Favorite
			window.external.AddFavorite( url, title);
		} else if(window.opera) { // Opera 7+
			return false; // do nothing - the rel="sidebar" should do the trick
		} else { // for Safari, Konq etc - browsers who do not support bookmarking scripts (that i could find anyway)
			 alert('Unfortunately, this browser does not support the requested action,'
			 + ' please bookmark this page manually.');
		}

	});
	
	externalise();
	chauntry_urls();
	destinationsRedirect();
	
	$('p.print a').click(function() {
		window.print();
		return false;
	});
	
	var $target = $('#lateDeals');
	
	$.each($target, function() {
		var $p = $(this).find('p');
		$.each($p, function () {
			$content = $(this).find('>*');
			if($content.length == 1 && $content.is('img')) {
				$content.parent().addClass('wideImageWrap');
			}
	})
		
	});
});


// ADD CLASS OF JS TO THE BODY
jQuery.fn.jsEnabled = function () {$(this).addClass("js");};

//HOLIDAY CODE TEXT REMOVAL
(function(a){jQuery.fn.nomFormFocus=function(){return this.each(function(){var c="optional";a(this).val(c);var b=a(this).attr("value");a(this).focus(function(){var d=a(this).val();if(b==d){a(this).removeClass("default-value");a(this).attr("value","")}});a(this).blur(function(){if(a(this).val()==""){a(this).addClass("default-value");a(this).val(b)}})})}})(jQuery);

// BLOCKQUOTE IMAGE ADDITION
(function(a){jQuery.fn.nomBlockquote=function(){return this.each(function(){a("p:last-child").addClass("last")})}})(jQuery);

//GALLERY THUMBNAIL SWITCHER
function ThumbnailSwitcher(b){var c=$(b);var a=new Array();var d=function(j){var m=new Object();var l=$(j);var h=l.find("img").attr("src");m.imageUrl=h.substr(0,h.indexOf(".jpg")+4);m.altText=l.find("img").attr("alt");m.click=function(){};var k;var i;m.enabled="";m.disable=function(){if(m.enabled!=false){var o=k.clone();l.replaceWith(o);l=o;m.enabled=false}};m.enable=function(){if(m.enabled!=true){var o=i.clone();l.replaceWith(o);l=o;l.find("a").click(function(p){m.click(m);return false});m.enabled=true}};if(l.find("a").length==0){i=l.clone();k=l.clone();var g=window.location;var f=$("<a href='"+g+"'></a>");i.append(f);f.append(i.find("img"));i.find("strong").remove();i.find("span").remove();m.disable()}else{i=l.clone();k=l.clone();var n=$("<strong></strong>");k.append(n);n.append(k.find("img"));k.find("a").remove();k.append('<span class="overlay"> </span>');m.enable()}return m};var e=function(g){var j=$(g);var k=j.find("img").eq(0);var f=new Array();var h=j.find("li");function i(m){j.prepend('<span class="loading"> </span>');k.one("load",function(){j.find("span.loading").remove()});k.attr("src",m.imageUrl);k.attr("alt",m.altText);for(var l=0;l<f.length;l++){if(f[l]!=m){f[l].enable()}else{f[l].disable()}}}if(h.length>=1){h.each(function(m){var l=new d(h[m]);l.click=i;f.push(l)})}};if(c.length>=1){c.each(function(f){a.push(new e(c[f]))})}};

//LINKIFY SCRIPT
(function($){$.fn.linkify=function(options){var defaults={targetElement:null,linkifiedClass:'linkified',hoverClass:'linkie-hover',focusClass:'linkie-focus',urlPrefixes:['https://','http://','www.']};var settings=$.extend({},defaults,options);function are_identical(links){var first=get_truncated_url($(links).get(0));var curr=null;var is_identical=true;$.each(links,function(index,value){curr=get_truncated_url($(this));if(curr!==first){is_identical=false;}});return is_identical;}function get_truncated_url(link){return truncate_url($(link).attr('href'));}function truncate_url(url){url=url.trim();if(settings.urlPrefixes){for(var prefix in settings.urlPrefixes){if(url.indexOf(settings.urlPrefixes[prefix])===0){url=url.substring(settings.urlPrefixes[prefix].length);}}}return url;}function bind_link(box,link_attrs){var bind_target=(settings.targetElement&&$(box).find(settings.targetElement).length>0)?$(box).find(settings.targetElement):box;if(link_attrs.target=='_blank'){$(bind_target).click(function(){window.open(link_attrs.href,link_attrs.text);});}else{$(bind_target).click(function(){window.location.href=link_attrs.href;});}$(bind_target).hover(function(){$(this).addClass(settings.hoverClass);},function(){$(this).removeClass(settings.hoverClass);});$(box).find('a').focus(function(){$(box).addClass(settings.focusClass);});$(box).find('a').blur(function(){$(box).removeClass(settings.focusClass);});}function get_attrs(link_element){var href=($(link_element).attr('href')!=="")?$(link_element).attr('href'):null;var target=($(link_element).attr('target')!=="")?$(link_element).attr('target'):null;var text=$(link_element).text();return{href:href,target:target,text:text};}return this.each(function(){var link=null;var attrs={};if($(this).find('a[href]').length>1){var links=$(this).find('a[href]');if(are_identical($(links))){attrs=get_attrs($(links).get(0));}}else{if($(this).find('a[href]').length==1){attrs=get_attrs($(this).find('a[href]'));}}if(attrs.href!=undefined){$(this).addClass(settings.linkifiedClass);bind_link($(this),attrs);}});};})(jQuery);

// EXTERNALISE - OPEN LINKS IN A NEW WINDOW 
function externalise() {
	var targetElems = $("a[class=external]");
	$(targetElems).each(function(){
		$(this).attr('target', '_blank');
	});
}

// CHAUNTRY URLS
function chauntry_urls() {
	$('a.chauntry').click(function(){
		window.open(this.href,'','height=500,width=650,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
		return false;
    });
}

// DESTINATIONS REDIRECT
function destinationsRedirect() {
	if ($('#destinations').length > 0) {
		var state;
		if ($('#cmsHeader').length > 0) {
			state = '/defacto/preview/destinations/'
		} else {
			state = '/destinations/';
		}
	
		$('#destinations select').change(function() {
			var selectValue = $(this).val();
			formUrl = state + selectValue;
			$('#destinations form').attr('action', formUrl);
		});
	}
}

