
/* - jquery-embedlinks-0.4.1.js - */
// http://www.sitasurrey.co.uk/portal_javascripts/jquery-embedlinks-0.4.1.js?original=1
(function($){var FLASH_VERSION_REQUIRED="9.0.0";var defaultOptions={maxwidth:800,maxheight:800,apiKey:''};
function getDimensions(width,height,maxwidth,maxheight){if(width<maxwidth&&height<maxheight){return [width,height]}
else if(width>height){return [width*maxwidth/width,height*maxwidth/width]}
else return [width*maxheight/height,height*maxheight/height]}
function extend(SuperCon,SubCon){SubCon.prototype=new SuperCon()}
function log(){if(window.console&&navigator.userAgent.match(/Firefox/)!==null){console.log.apply(this,arguments)}
else if(arguments[0]&&window.console){console.log(arguments[0].toString())}}
log();
function Provider(id,urlSchemeStart){this.id=id;this.urlSchemeStart=urlSchemeStart;this.apiEndPoint='http://api.embed.ly/1/oembed'}
Provider.prototype.handlesUrl=function(url){return url.indexOf(this.urlSchemeStart)===0||url.indexOf(this.urlSchemeStart.match(/^http:\/\/www\./)?'http://'+this.urlSchemeStart.substring(11):'http://www.'+this.urlSchemeStart.substring(7))===0};Provider.prototype.embedLink=function(anchor,newOptions){var options=$.extend({},defaultOptions,newOptions);var url=this.apiEndPoint+'?url='+escape(anchor.attr('href'))+'&format=json'+'&maxwidth='+options.maxwidth+'&maxheight='+options.maxheight+'&key='+options.apiKey+'&callback=?';var provider=this;$.getJSON(url, function(data){provider.onJson(data,anchor,options)})};Provider.prototype.parseData=function(data){var parsedData={};parsedData.width=parseInt(data.width,10);parsedData.height=parseInt(data.height,10);return parsedData};Provider.prototype.validateData=function(parsedData,options){for(var property in parsedData){if(parsedData.hasOwnProperty(property)){var value=parsedData[property];if((typeof value==="number"&&isNaN(value))||typeof value==="undefined"){return false}}}
var dimensions=getDimensions(parsedData.width,parsedData.height,options.maxwidth,options.maxheight);parsedData.width=dimensions[0];parsedData.height=dimensions[1];if(options.controlerHeight){parsedData.height+=options.controlerHeight}
return true};Provider.prototype.onJson=function(data,anchor,options){var parsedData=this.parseData(data);if(this.validateData(parsedData,options)){this.render(parsedData,anchor,data,options)}
return parsedData};Provider.prototype.render=function(parsedData,anchor,data,options){};
function Flickr(id,urlSchemeStart){Provider.call(this,id,urlSchemeStart)}
extend(Provider,Flickr);Flickr.prototype.parseData=function(data){var parsedData=Provider.prototype.parseData.call(this,data);parsedData.url=data.url;return parsedData};Flickr.prototype.render=function(parsedData,anchor,data,options){anchor.replaceWith('<img width="'+parsedData.width+'" height="'+parsedData.height+'" src="'+parsedData.url+'"/>')};
function iFrameProvider(id,urlSchemeStart){Provider.call(this,id,urlSchemeStart)}
extend(Provider,iFrameProvider);iFrameProvider.prototype.parseData=function(data){var parsedData=Provider.prototype.parseData.call(this,data);if(data.html&&data.html.match(/^<iframe/)){parsedData.html=data.html}
return parsedData};iFrameProvider.prototype.render=function(parsedData,anchor,data,options){parsedData.html&&anchor.after(parsedData.html).remove()}
function VideoProvider(id,urlSchemeStart){Provider.call(this,id,urlSchemeStart)}
extend(Provider,VideoProvider);VideoProvider.prototype.parseData=function(data){var parsedData=Provider.prototype.parseData.call(this,data);parsedData.flashSrc=undefined;if(data.html&&data.html.match(/^<(?:object|embed).*?type=(?:\"|')application\/x-shockwave-flash(?:\"|')/i)!==null){parsedData.flashSrc=data.html.match(/^<(?:object|embed).*?(?:src|data)=(?:"|')([^'"]*?)(?:"|')/i)[1]}
return parsedData};VideoProvider.prototype.render=function(parsedData,anchor,data,options){if(swfobject&&swfobject.hasFlashPlayerVersion(FLASH_VERSION_REQUIRED)){var uid=anchor.attr('id')?anchor.attr('id'):Math.random().toString().replace(/^0\./,'jquery_embedlinks_');anchor.attr('id',uid);var extractedParams={};var paramTags=data.html.match(/<param name=(?:'|").*?(?:'|")\s+?value=(?:'|").*?(?:'|")/gi);if(paramTags!==null){$.each(paramTags, function(i,paramTag){var matchedParamTag=paramTag.match(/<param name=(?:'|")(.*?)(?:'|")\s+?value=(?:'|")(.*?)(?:'|")/i);extractedParams[matchedParamTag[1]]=matchedParamTag[2]})}
extractedParams.allowFullScreen="true";var qsObj=options[this.id+"_querystring"];var flashSrc=parsedData.flashSrc;if(qsObj!==undefined){flashSrc+=(flashSrc.match(/\?/)===null)?"?":"&";$.each(qsObj, function(name,value){flashSrc+=name+"="+value+"&"});flashSrc=flashSrc.replace(/&$/,'')}
swfobject.embedSWF(flashSrc,uid,parsedData.width+'',parsedData.height+'',FLASH_VERSION_REQUIRED,null,null,extractedParams,{id:uid+'_id'})}};
function YouTubeProvider(id,urlSchemeStart){VideoProvider.call(this,id,urlSchemeStart)}
extend(VideoProvider,YouTubeProvider);YouTubeProvider.prototype.onJson=function(data,anchor,options){data.width=640;data.height=360;VideoProvider.prototype.onJson(data,anchor,options)}
var providers=[new iFrameProvider('youtube','http://www.youtube.com/watch?v='),new iFrameProvider('vimeo','http://vimeo.com/'),new Flickr('flickr','http://www.flickr.com/photos/'),new VideoProvider('qik','http://qik.com/')];var getProvider=function(url){for(var i=0 ;i<providers.length ;i++){if(providers[i].handlesUrl(url)){return providers[i]}}
return null};$.fn.embedLinks=function(options){if(navigator.appVersion.match(/MSIE 6/)!=null){return}
return this.each(function(){if(this.nodeName==='A'){var anchor=$(this);var provider=getProvider(anchor.attr('href'));if(provider!==null){provider.embedLink(anchor,options)}}})};$.embedLinks=function(options){var cssPath='';$.each(providers, function(i,provider){cssPath+='a[href^=\''+provider.urlSchemeStart+'\'], ';cssPath+=provider.urlSchemeStart.match(/^http:\/\/www\./)?'a[href^=\'http://'+provider.urlSchemeStart.substring(11)+'\']':'a[href^=\'http://www.'+provider.urlSchemeStart.substring(7)+'\']'
if(i<providers.length-1){cssPath+=','}});$(cssPath).embedLinks(options)}})(jQuery);

