// metadata plugin
(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);

String.prototype.linkify_tweet = function() {
	var tweet = this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(url) { 
	var wrap = document.createElement('div');
	var anch = document.createElement('a');
	anch.href = url;
	anch.target = "_blank";
	anch.innerHTML = url;
	wrap.appendChild(anch);
	return wrap.innerHTML;
	});
	tweet = tweet.replace(/(^|\s)@(\w+)/g, '$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
	return tweet.replace(/(^|\s)#(\w+)/g, '$1#<a href="http://search.twitter.com/search?q=%23$2" target="_blank">$2</a>');
};

$(document).ready(function() {
						   
	// header
	
	var searchBoxVal = "Search our site";
	var newsletterBoxVal = "Sign up for our newsletter";
	
	if ($(".searchStripe .box").val() == '') {
		$(".searchStripe .box").val(searchBoxVal);
	}
	
	$(".searchStripe .box").focus(function() {
		if ($(this).val() == searchBoxVal) {
			$(this).val("");
		}		 
	});
	
	$(".searchStripe .box").blur(function() {
		if ($(this).val() == '') {
			$(this).val(searchBoxVal);
		}
	});
	
	if ($(".newsletterStripe .box").val() == '') {
		$(".newsletterStripe .box").val(newsletterBoxVal);
	}
	
	$(".newsletterStripe .box").focus(function() {
		if ($(this).val() == newsletterBoxVal) {
			$(this).val("");
		}		 
	});
	
	$(".newsletterStripe .box").blur(function() {
		if ($(this).val() == '') {
			$(this).val(newsletterBoxVal);
		}
	});
	
	
	// ticker
	if ($("#ticker").size() > 0) {
		$("#ticker").jStockTicker({interval: 45});
	}
	
	// slideshow
	if ($('.slideshow .inner').size() > 0) {
		$('.slideshow .inner').nivoSlider({
			controlNav:false,
			controlNavThumbs:false,
			effect:'fade',
			pauseTime:5000
		});
	}
	
	// ie6
	if ($.browser.msie && $.browser.version.substr(0,1)==6) {
		$("body").addClass("ie6");
		$("body").addClass("ie7");
		DD_belatedPNG.fix('.logo,.facebook,.twitter,.youtube,.textclub,.loveit,#leftMenu,#rightLogos,#footer span,.fred,.streamline,.box,.submit,.nivo-directionNav a');
	} else if ($.browser.msie && $.browser.version.substr(0,1)==7) {
		$("body").addClass("ie7");
	}
	
	// social widget
	if ($('#featureWrap .social').size() > 0) {
		$.getJSON('/feed.php',function(data){
																													 
			var stream = '';
			
			var items = data['value']["items"];
							
			$.each(items, function(key, val) {
				if (items[key]["link"].indexOf("twitter.com") >= 0) {
					title = '@PrincesQuayHull';
					desc = items[key]["description"].replace("PrincesQuayHull: ", "").linkify_tweet();
				} else if (items[key]["link"].indexOf("facebook") >= 0) {
					title = 'Facebook';
					desc = items[key]["title"];
				} else if (items[key]["link"].indexOf("loveit") >= 0) {
					title = 'Love it! - ' + items[key]["title"];
					desc = strip_tags(items[key]["description"]);
					if (desc.length > 200) {
						desc = desc.substr(0, 197) + "...</p><p><a href='" + items[key]["link"] + "' target='_blank'>read more...</a>";
					}
				} else if (items[key]["link"].indexOf("youtube") >= 0) {
					title = 'YouTube';
					id = items[key]["link"].replace('http://www.youtube.com/watch?v=','').replace('&feature=youtube_gdata','');
					desc = items[key]["title"] + "</p><p><a href='" + items[key]["link"] + "' target='_blank'><img src='http://i.ytimg.com/vi/" + id + "/default.jpg' alt='" + items[key]["title"] + "' height='90' width='120' /></a>";
				} else {
					title = items[key]["title"];
					desc = items[key]["description"];	
				}
				if(desc !== null) {
				  if (desc.length > 0) {
					  stream += '<div class="item"><p class="source"><a href="' + items[key]["link"] + '">' + title + '</a></p><p>' + desc + '</p></div>';
				  }
				}
			});
						
			$('#featureWrap .social .loading').replaceWith(stream);
			
			$('#featureWrap .social').jScrollPane();
			
		});
	}
	
	function strip_tags (input, allowed) {
		allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');
		var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
			commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
		return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
		});
	}
	
	// maps
	if ($('.interactivemap').size() > 0) {
		$('.interactivemap').maphilight({
			fill: false,
			strokeColor: 'FF0000',
			strokeWidth: 3
		});
		
		// highlight if linked to
		var highlight = getQuerystring('highlight');
		
		if ($('#unit' + highlight).size() > 0) {
			var data = $('#unit' + highlight).data('maphilight') || {};
			data.alwaysOn = true;
			data.strokeColor = 'FAA934';
			$('#unit' + highlight).data('maphilight', data).trigger('alwaysOn.maphilight');
		}
		
		$('a.highlightShop').hover(function() {
			elem = $(this).attr("id").replace("h", "");
			if (highlight != elem) {
				var data = $('#unit' + elem).data('maphilight') || {};
				data.alwaysOn = true;
				$('#unit' + elem).data('maphilight', data).trigger('alwaysOn.maphilight');
			}
		}, function() {
			elem = $(this).attr("id").replace("h", "");
			if (highlight != elem) {
				var data = $('#unit' + elem).data('maphilight') || {};
				data.alwaysOn = false;
				$('#unit' + elem).data('maphilight', data).trigger('alwaysOn.maphilight');
			}
		});
	}
	
	function getQuerystring(key, default_) {
		if (default_==null) default_="";
		key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
		var qs = regex.exec(window.location.href);
		if(qs == null)
		return default_;
		else
		return qs[1];
	}
	
	
});
