(function(o){var K=o.$LAB,y="UseLocalXHR",z="AlwaysPreserveOrder",u="AllowDuplicates",A="CacheBust",B="BasePath",C=/^[^?#]*\//.exec(location.href)[0],D=/^\w+\:\/\/\/?[^\/]+/.exec(C)[0],i=document.head||document.getElementsByTagName("head"),L=(o.opera&&Object.prototype.toString.call(o.opera)=="[object Opera]")||("MozAppearance"in document.documentElement.style),q=document.createElement("script"),E=typeof q.preload=="boolean",r=E||(q.readyState&&q.readyState=="uninitialized"),F=!r&&q.async===true,M=!r&&!F&&!L;function G(a){return Object.prototype.toString.call(a)=="[object Function]"}function H(a){return Object.prototype.toString.call(a)=="[object Array]"}function N(a,c){var b=/^\w+\:\/\//;if(/^\/\/\/?/.test(a)){a=location.protocol+a}else if(!b.test(a)&&a.charAt(0)!="/"){a=(c||"")+a}return b.test(a)?a:((a.charAt(0)=="/"?D:C)+a)}function s(a,c){for(var b in a){if(a.hasOwnProperty(b)){c[b]=a[b]}}return c}function O(a){var c=false;for(var b=0;b<a.scripts.length;b++){if(a.scripts[b].ready&&a.scripts[b].exec_trigger){c=true;a.scripts[b].exec_trigger();a.scripts[b].exec_trigger=null}}return c}function t(a,c,b,d){a.onload=a.onreadystatechange=function(){if((a.readyState&&a.readyState!="complete"&&a.readyState!="loaded")||c[b])return;a.onload=a.onreadystatechange=null;d()}}function I(a){a.ready=a.finished=true;for(var c=0;c<a.finished_listeners.length;c++){a.finished_listeners[c]()}a.ready_listeners=[];a.finished_listeners=[]}function P(d,f,e,g,h){setTimeout(function(){var a,c=f.real_src,b;if("item"in i){if(!i[0]){setTimeout(arguments.callee,25);return}i=i[0]}a=document.createElement("script");if(f.type)a.type=f.type;if(f.charset)a.charset=f.charset;if(h){if(r){e.elem=a;if(E){a.preload=true;a.onpreload=g}else{a.onreadystatechange=function(){if(a.readyState=="loaded")g()}}a.src=c}else if(h&&c.indexOf(D)==0&&d[y]){b=new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){b.onreadystatechange=function(){};e.text=b.responseText+"\n//@ sourceURL="+c;g()}};b.open("GET",c);b.send()}else{a.type="text/cache-script";t(a,e,"ready",function(){i.removeChild(a);g()});a.src=c;i.insertBefore(a,i.firstChild)}}else if(F){a.async=false;t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}else{t(a,e,"finished",g);a.src=c;i.insertBefore(a,i.firstChild)}},0)}function J(){var l={},Q=r||M,n=[],p={},m;l[y]=true;l[z]=false;l[u]=false;l[A]=false;l[B]="";function R(a,c,b){var d;function f(){if(d!=null){d=null;I(b)}}if(p[c.src].finished)return;if(!a[u])p[c.src].finished=true;d=b.elem||document.createElement("script");if(c.type)d.type=c.type;if(c.charset)d.charset=c.charset;t(d,b,"finished",f);if(b.elem){b.elem=null}else if(b.text){d.onload=d.onreadystatechange=null;d.text=b.text}else{d.src=c.real_src}i.insertBefore(d,i.firstChild);if(b.text){f()}}function S(c,b,d,f){var e,g,h=function(){b.ready_cb(b,function(){R(c,b,e)})},j=function(){b.finished_cb(b,d)};b.src=N(b.src,c[B]);b.real_src=b.src+(c[A]?((/\?.*$/.test(b.src)?"&_":"?_")+~~(Math.random()*1E9)+"="):"");if(!p[b.src])p[b.src]={items:[],finished:false};g=p[b.src].items;if(c[u]||g.length==0){e=g[g.length]={ready:false,finished:false,ready_listeners:[h],finished_listeners:[j]};P(c,b,e,((f)?function(){e.ready=true;for(var a=0;a<e.ready_listeners.length;a++){e.ready_listeners[a]()}e.ready_listeners=[]}:function(){I(e)}),f)}else{e=g[0];if(e.finished){j()}else{e.finished_listeners.push(j)}}}function v(){var e,g=s(l,{}),h=[],j=0,w=false,k;function T(a,c){a.ready=true;a.exec_trigger=c;x()}function U(a,c){a.ready=a.finished=true;a.exec_trigger=null;for(var b=0;b<c.scripts.length;b++){if(!c.scripts[b].finished)return}c.finished=true;x()}function x(){while(j<h.length){if(G(h[j])){try{h[j++]()}catch(err){}continue}else if(!h[j].finished){if(O(h[j]))continue;break}j++}if(j==h.length){w=false;k=false}}function V(){if(!k||!k.scripts){h.push(k={scripts:[],finished:true})}}e={script:function(){for(var f=0;f<arguments.length;f++){(function(a,c){var b;if(!H(a)){c=[a]}for(var d=0;d<c.length;d++){V();a=c[d];if(G(a))a=a();if(!a)continue;if(H(a)){b=[].slice.call(a);b.unshift(d,1);[].splice.apply(c,b);d--;continue}if(typeof a=="string")a={src:a};a=s(a,{ready:false,ready_cb:T,finished:false,finished_cb:U});k.finished=false;k.scripts.push(a);S(g,a,k,(Q&&w));w=true;if(g[z])e.wait()}})(arguments[f],arguments[f])}return e},wait:function(){if(arguments.length>0){for(var a=0;a<arguments.length;a++){h.push(arguments[a])}k=h[h.length-1]}else k=false;x();return e}};return{script:e.script,wait:e.wait,setOptions:function(a){s(a,g);return e}}}m={setGlobalDefaults:function(a){s(a,l);return m},setOptions:function(){return v().setOptions.apply(null,arguments)},script:function(){return v().script.apply(null,arguments)},wait:function(){return v().wait.apply(null,arguments)},queueScript:function(){n[n.length]={type:"script",args:[].slice.call(arguments)};return m},queueWait:function(){n[n.length]={type:"wait",args:[].slice.call(arguments)};return m},runQueue:function(){var a=m,c=n.length,b=c,d;for(;--b>=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this);


function loadCss(url) {
    var link = document.createElement("link");
    link.type = "text/css";
    link.rel = "stylesheet";
    link.href = url;
    document.getElementsByTagName("head")[0].appendChild(link);
}

function loadInfographic(obj){
	if(!obj.id){ log("you need an image key specified!"); return; }
	$LAB
 	.script("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js")
 	.wait(function(){
			$ig = jQuery.noConflict();
			init_infographics(obj);
		});
}

function sailTheFailWhale(img,id){
	img.src= "http://www.charlesheflin.com/wp-content/uploads/2010/06/fail-whale.jpg";
	img.onerror = "";
	$ig.ajax({ type: "POST", url: "http://www.educationnews.org/ig_api/lib/ig.central.class.php", data: { action : "ig_down", data : id }});
}

function getRefLinkInfo(obj){
	var b = $ig("span#ednews-"+obj.id);
	b.partner_url = b.find('a').attr('href');
	b.partner_text = b.find('a').text();
	return b
}

function chkInfo(obj, data){
	var b = getRefLinkInfo(obj);
	// var $b = $ig("span#ednews-"+obj.id);
	var partner_url = b.partner_url;
	var partner_check = partner_url && data.partners && data.partners.indexOf(partner_url) > -1;
	return partner_check;
}

function calculateX(y, a, b){
	return y * a / b;
}

function init_infographics(obj){
	var b = getRefLinkInfo(obj);
	$ig.getJSON("http://www.educationnews.org/ig_api/lib/ig.central.class.php?action=getImage&id="+obj.id+"&atext="+b.partner_text+"&jsoncallback=?", 
		function(data){
			//console.dir(data);
			if(! chkInfo(obj, data))
			{
				return;
			}
			$ig("span#ednews-"+obj.id).wrap('<div class="ednews-wrap" id="ednews-wrap-'+obj.id+'" />');
			$ig("span#ednews-"+obj.id).remove();
			var $b = $ig("div#ednews-wrap-"+obj.id);
			var defaults = { warp : false };
			var options = $ig.extend(true,defaults,obj);
	
			if(options.height && !options.width){
				if((options.height > data.height) && options.warp === false ){
					options.height = data.height;
				}
				// options.width = "auto";
				options.width = calculateX(options.height, data.width, data.height);
				
			}
			if(options.width && !options.height){
				if((options.width > data.width) && options.warp === false ){
					options.width = data.width;
				}
				// options.height = "auto";
				options.height = calculateX(options.width, data.height, data.width);
			}
			if(!options.width && !options.height){
				options.width = data.width;
				options.height = data.height;
			}else{
				if((options.width > data.width) && options.warp === false ){
					options.width = data.width;
				}
				if((options.height > data.height) && options.warp === false ){
					options.height = data.height;
				}
			}
			$b.css("width",options.width);
			String.prototype.escapeHTML = function () {
				return(
					this.replace(/&/g,'&amp;').
					replace(/>/g,'&gt;').
					replace(/</g,'&lt;').
					replace(/"/g,'&quot;')
				);
			};

			var info_bar = '<div class="ednews-ebar ednews-ednews clearfix ' + data.type + '">' +
			'	<div class="ednews-popup clearfix"><!-- ednews-popup -->' +
			'		<div class="ednews-info"><!-- ednews-info --> ' +
			'			<h2>Research Sources:</h2>' +
			'           ' + (data.sources ? data.sources : "") +
			'		</div><!-- END embed Info -->' +
			'		<div class="ednews-codewrap ' + data.type + '"><!-- Codewrap -->' +
			'			<h2>Embed Graphic</h2>' +
			'			<div class="clearfix">' +
			'				' + data.embedText +
		
			'			</div><!-- END Codewrap -->' +
			'		</div>' +
			'	</div><!-- ednews-popup -->' +
			'	<div class="ednews-nav">' +
			'		<ul class="clearfix">' +
			'			<li class="ednews-brand"><a href="http://www.educationnews.org" title="Education News">Education News</a></li>' +
			'			<li class="ednews-creator">' +
			'				' + (data.created_by ? data.created_by : "") +
			'			</li>' +
			'			<li class="ednews-sourcesbtn"><a href="#" title="Sources">Sources</a></li>' +
			'			<li class="ednews-embedbtn"><a href="#" title="Embed This Graphic">Embed Graphic</a></li>' +
			'		</ul>' +
			'	</div>' +
			'</div>';
		
		
			var structure_video = '<div class="infovideo">' +
			'	<!-- Begin VideoJS -->' +
			'	<div class="video-js-box ednews-css" width="' + options.width + '">' +
			'		<video id="ednews-video-' + data.id + '" class="video-js" width="' + options.width + '" height="' + options.height + '" controls preload poster="' + data.thumb +'">' +
			'		  <source src="' + data.mp4 +'" type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\' />' +
			'		  <source src="' + data.webm + '" type=\'video/webm; codecs="vp8, vorbis"\' />' +
			'		  <source src="' + data.ogg +'" type=\'video/ogg; codecs="theora, vorbis"\' />' +
			'		  <!-- Flash Fallback. Use any flash video player here. Make sure to keep the vjs-flash-fallback class. -->' +
			'		  <object class="vjs-flash-fallback" width="' + options.width + '" height="' + options.height + '" type="application/x-shockwave-flash"' +
			'			data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf">' +
			'			<param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />' +
			'			<param name="allowfullscreen" value="true" />' +
			'			<param name="wmode" value="opaque" />' +
			'			<param name="flashvars" value=\'config={"playlist":["' + data.thumb +'", {"url": "' + data.mp4 +'","autoPlay":false,"autoBuffering":true}]}\' />' +
			'			<!-- Image Fallback. Typically the same as the poster image. -->' +
			'			<img src="' + data.thumb +'" width="' + options.width + '" height="' + options.height + '" alt="Poster Image"' +
			'			  title="No video playback capabilities." />' +
			'		  </object>' +
			'		</video>' +
			'</div>' +
			'<!-- End VideoJS -->' +
			'</div>'  + info_bar;
			loadCss("http://www.educationnews.org/ig_api/assets/css/embed/ednews-embed.css");
			if(data.type == "video"){
				loadCss("http://www.educationnews.org/ig_api/assets/css/video-js.css");
				$LAB
				.script("http://www.educationnews.org/ig_api/assets/js/libs/video.js")
				.wait(function($){
						VideoJS.setup("ednews-video-" + data.id, {controlsHiding: false, controlsBelow: true, controlsAtStart: true});						// VideoJS.setupAllWhenReady({controlsHiding: false,
                        //                            controlsAtStart: true});
						$ig('div#ednews-wrap-'+obj.id+' .ednews-video-info').css('width', options.width - 40);
						setTimeout(function(){ $ig('div#ednews-wrap-'+obj.id+' .ednews-video-info').hide(); }, 4000);
					});
				$ig(structure_video).appendTo($b);}
			else if(data.type == "image"){
//				loadCss("http://www.educationnews.org/ig_api/assets/css/ednews-embed.css");
				$ig("<img/>", {
						src: data.url,
						height: options.height,
						width:  options.width ,
						onerror: "sailTheFailWhale(this," + data.id + ");"
						}).appendTo($b);
		
				$ig(info_bar).appendTo($b);
				//$ig("div#ednews-wrap-"+obj.id+" > img").wrap('<a href="' + data.by_url +'" />');
			}


			//click the embed button to reveal hidden embed information

			// $ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn > a, div#ednews-wrap-'+obj.id+' .ednews-sourcesbtn').toggle(function(){
			// 	$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').addClass('ednews-embedbtn-clicked');
			// 	//$ig('div.bakedœ-popup').css('display','block');
			// 	$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeIn();
		
			// },function(){
			// 	$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').removeClass('ednews-embedbtn-clicked');
			// 	//$ig('div.ednews-popup').css('display','none');
			// 	$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeOut();});
			// });



			$ig('div#ednews-wrap-'+obj.id+' .ednews-sourcesbtn > a,').click(function(){
				
				if($ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').hasClass('open')){
					if($ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').hasClass('open')){
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').css('display','none');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').addClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').css('display','block');
						$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').removeClass('ednews-embedbtn-clicked');
					}else{
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').removeClass('ednews-embedbtn-clicked');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeOut();
					}
				}else{
					$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').removeClass('ednews-embedbtn-clicked');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').addClass('open');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').addClass('open').css('display','block');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').removeClass('open').css('display','none');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeIn(function(){
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap div textarea').addClass('throw-left');
					});
				}
				return false;
			});

			$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn > a').click(function(){
				
				if($ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').hasClass('open')){
					if($ig('div#ednews-wrap-'+obj.id+' div.ednews-info').hasClass('open')){
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').css('display','none');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').addClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').css('display','block');
						$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').addClass('ednews-embedbtn-clicked');
					}else{
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').removeClass('open');
						$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').removeClass('ednews-embedbtn-clicked');
						$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeOut();
					}
				}else{
					$ig('div#ednews-wrap-'+obj.id+' .ednews-embedbtn').addClass('ednews-embedbtn-clicked');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').addClass('open');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-codewrap').addClass('open').css('display','block');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-info').removeClass('open').css('display','none');
					$ig('div#ednews-wrap-'+obj.id+' div.ednews-popup').stop(true, true).fadeIn();
				}
				return false;
			});

			});

// console.dir($ig('div#ednews-wrap-'+obj.id+' .video-js-box'));
// 			setTimeout(function(){
// 				$ig('div#ednews-wrap-'+obj.id+' .video-js-box').css('width','100%');
// 			}, 5000);

}//end function


