var debugMode=false;var path;if(debugMode){var path=window.location.protocol+"//"+window.location.host+window.location.pathname.slice(0,window.location.pathname.indexOf("/exoplanets")+12)}else{var path=window.location.protocol+"//"+window.location.host}if(!(console)){var console={};console.log=function(){}}px=function(n){if(n==undefined||isNaN(n)){return"0px"}return n+"px"};var QDEBUG=false;var QINCLUDED={};var QUEUE=[];var QRUNNING=0;var QTIMER=null;var QTOLOAD=0;var QLOADED=0;includeCSS=function(css,media){var headID=document.getElementsByTagName("head")[0];var cssNode;if(/\.css/.exec(css)){if(QINCLUDED[css]){return}cssNode=document.createElement("link");cssNode.type="text/css";if(media){cssNode.media=media}cssNode.rel="stylesheet";cssNode.href=css+(debugMode==true?"?"+parseInt(Math.random()*100000):"")}else{cssNode=document.createElement("style");cssNode.innerText=css}headID.appendChild(cssNode)};includeCSS(path+"/css/exoPlanets.css");imageLoader={init:function(){this.imageObject=new Image()},preloadImage:function(image){this.imageObject.src=image}};imageLoader.init();progressBar={init:function(){this.progressMask=document.createElement("div");this.progressMask.className="progressMask";this.progressBarBG=document.createElement("div");this.progressBarBG.className="progressBarBG";this.progressBar=document.createElement("div");this.progressBar.className="progressBar";this.loadingText=document.createElement("div");this.loadingText.className="loadingText";this.loadingText.appendChild(document.createTextNode("Loading..."));document.body.appendChild(this.progressMask);document.body.appendChild(this.progressBarBG);document.body.appendChild(this.progressBar);document.body.appendChild(this.loadingText);this.updateProgress();var uP=this.updateProgress;var context=this;this.ProgressTimer=setInterval(function(){uP.apply(context)},50)},updateProgress:function(){document.body.style.overflow="hidden";this.docW=window.innerWidth;this.docH=window.innerHeight;var w=this.docW*0.8;var h=20;this.progressMask.style.width=px(this.docW);this.progressMask.style.height=px(this.docH);this.progressBarBG.style.top=px(this.docH/2-h/2);this.progressBarBG.style.left=px(this.docW/2-w/2);this.progressBarBG.style.width=px(w);this.progressBar.style.top=px(this.docH/2-h/2);this.progressBar.style.left=px(this.docW/2-w/2);this.progressBar.style.width=px(w*QLOADED/QTOLOAD);this.loadingText.style.width=px(this.docW);this.loadingText.style.left=px(0);this.loadingText.style.top=px(this.docH/2+h/2+10)},clear:function(){clearInterval(this.ProgressTimer);this.progressBar.parentNode.removeChild(this.progressBar);this.progressBarBG.parentNode.removeChild(this.progressBarBG);this.progressMask.parentNode.removeChild(this.progressMask);this.loadingText.parentNode.removeChild(this.loadingText);document.body.style.overflow=""}};progressBar.init();function Q(f,name){if(QRUNNING>0){if(QDEBUG){console.log("[Q]: Queue splicing "+name)}QUEUE.splice(QRUNNING-1,0,[f,name]);QRUNNING+=1}else{if(QDEBUG){console.log("[Q]: Queue pushing "+name)}QUEUE.push([f,name])}if(QTIMER==null){QTIMER=setInterval(function(){if(QUEUE.length==0){clearInterval(QTIMER);QTIMER=null}else{if(QRUNNING>0){return}else{QRUNNING=1;fname=QUEUE.shift();if(QDEBUG){console.log("[Q]: running "+fname[1])}fname[0]();QRUNNING--}}},10)}}include=function(script){Q(function(){if(QINCLUDED[script]){if(QDEBUG){console.log("[Q]: Not reloading "+script)}return}QINCLUDED[script]=true;QTOLOAD+=1;var head=document.getElementsByTagName("HEAD")[0];elm=document.createElement("script");elm.type="text/javascript";var node=head.appendChild(elm);node.onreadystatechange=function(){if(!this.loaded&&(this.readyState=="loaded")){this.loaded=true;if(QDEBUG){console.log("[Q]: Include Complete "+script)}QRUNNING=0;QLOADED+=1}};node.onload=function(){if(this.loaded){return}this.loaded=true;if(QDEBUG){console.log("[Q]: Include Complete "+script)}QRUNNING=0;QLOADED+=1};node.src=script+(debugMode==true?"?"+parseInt(Math.random()*100000):"");QRUNNING++},script)};include(path+"/javascript/prototype.js");include(path+"/javascript/base64.js");include(path+"/javascript/canvas2image.js");Q(function(){Cookie={data:{},options:{expires:1,domain:"",path:"",secure:false},init:function(options,data){Cookie.options=Object.extend(Cookie.options,options||{});var payload=Cookie.retrieve();if(payload){Cookie.data=payload.evalJSON()}else{Cookie.data=data||{}}Cookie.store()},getData:function(key){return Cookie.data[key]},setData:function(key,value){Cookie.data[key]=value;Cookie.store()},removeData:function(key){delete Cookie.data[key];Cookie.store()},retrieve:function(){var start=document.cookie.indexOf(Cookie.options.name+"=");if(start==-1){return null}if(Cookie.options.name!=document.cookie.substr(start,Cookie.options.name.length)){return null}var len=start+Cookie.options.name.length+1;var end=document.cookie.indexOf(";",len);if(end==-1){end=document.cookie.length}return unescape(document.cookie.substring(len,end))},store:function(){var expires="";if(Cookie.options.expires){var today=new Date();expires=Cookie.options.expires*86400000;expires=";expires="+new Date(today.getTime()+expires)}document.cookie=Cookie.options.name+"="+escape(Object.toJSON(Cookie.data))+Cookie.getOptions()+expires},erase:function(){document.cookie=Cookie.options.name+"="+Cookie.getOptions()+";expires=Thu, 01-Jan-1970 00:00:01 GMT"},getOptions:function(){return(Cookie.options.path?";path="+Cookie.options.path:"")+(Cookie.options.domain?";domain="+Cookie.options.domain:"")+(Cookie.options.secure?";secure":"")}};hsv2rgb=function(h,s,v){var s=s/100,v=v/100;var hi=Math.floor((h/60)%6);var f=(h/60)-hi;var p=v*(1-s);var q=v*(1-f*s);var t=v*(1-(1-f)*s);var rgbarr=[];switch(hi){case 0:rgbarr=[v,t,p];break;case 1:rgbarr=[q,v,p];break;case 2:rgbarr=[p,v,t];break;case 3:rgbarr=[p,q,v];break;case 4:rgbarr=[t,p,v];break;case 5:rgbarr=[v,p,q];break}var rgb={};rgb.r=Math.min(255,Math.round(rgbarr[0]*256)),rgb.g=Math.min(255,Math.round(rgbarr[1]*256)),rgb.b=Math.min(255,Math.round(rgbarr[2]*256));var r=Math.round(rgb.r).toString(16);if(r.length==1){r="0"+r}var g=Math.round(rgb.g).toString(16);if(g.length==1){g="0"+g}var b=Math.round(rgb.b).toString(16);if(b.length==1){b="0"+b}rgb.hex="#"+r+g+b;return rgb};rgb2hsb=function(r,g,b){var r=(r/255),g=(g/255),b=(b/255);var min=Math.min(Math.min(r,g),b),max=Math.max(Math.max(r,g),b),delta=max-min;var value=max,saturation,hue;if(max==min){hue=0}else{if(max==r){hue=(60*((g-b)/(max-min)))%360}else{if(max==g){hue=60*((b-r)/(max-min))+120}else{if(max==b){hue=60*((r-g)/(max-min))+240}}}}if(hue<0){hue+=360}if(max==0){saturation=0}else{saturation=1-(min/max)}var hsv={};hsv.h=Math.round(hue);hsv.s=Math.round(saturation*100);hsv.v=Math.round(value*100);return hsv};rgb2hex=function(red,green,blue){var r=Math.round(red).toString(16);if(r.length==1){r="0"+r}var g=Math.round(green).toString(16);if(g.length==1){g="0"+g}var b=Math.round(blue).toString(16);if(b.length==1){b="0"+b}hex="#"+r+g+b;return hex};Object.extend(Hash.prototype,{has:function(key){return(key in this._object)}});function str_repeat(i,m){for(var o=[];m>0;o[--m]=i){}return(o.join(""))}sprintf=function(){var i=0,a,f=arguments[i++],o=[],m,p,c,x;while(f){if(m=/^[^\x25]+/.exec(f)){o.push(m[0])}else{if(m=/^\x25{2}/.exec(f)){o.push("%")}else{if(m=/^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxXP])/.exec(f)){if(((a=arguments[m[1]||i++])==null)||(a==undefined)){throw ("Too few arguments.")}if(/[^s]/.test(m[7])&&(typeof(a)!="number")){throw ("Expecting number but found "+typeof(a))}switch(m[7]){case"b":a=a.toString(2);break;case"c":a=String.fromCharCode(a);break;case"d":a=parseInt(a);break;case"e":a=m[6]?a.toExponential(m[6]):a.toExponential();break;case"f":a=m[6]?parseFloat(a).toFixed(m[6]):parseFloat(a);break;case"o":a=a.toString(8);break;case"s":a=((a=String(a))&&m[6]?a.substring(0,m[6]):a);break;case"u":a=Math.abs(a);break;case"x":a=a.toString(16);break;case"X":a=a.toString(16).toUpperCase();break;case"P":a=m[6]?a.toExponential(m[6]):a.toExponential();break}if(m[7]!="P"){a=(/[def]/.test(m[7])&&m[2]&&a>0?"+"+a:a);c=m[3]?m[3]=="0"?"0":m[3].charAt(1):" ";x=m[5]-String(a).length;p=m[5]?str_repeat(c,x):"";o.push(m[4]?a+p:p+a)}else{if(1<=Math.abs(a)&&Math.abs(a)<10){a=String(/[def]/.test(m[7])&&m[2]&&a>0?"+"+a:a).replace("e+0","")}else{a=String(/[def]/.test(m[7])&&m[2]&&a>0?"+"+a:a);a=a.replace("e+","&times;10<sup>").replace("e-","&times;10<sup>-")+"</sup>"}j=a.indexOf("&");for(var i=j-1;i>0;i--){if(a[i]!="0"){break}}if(a[i]=="."){i--}a=a.slice(0,i+1)+a.slice(j);c=m[3]?m[3]=="0"?"0":m[3].charAt(1):" ";x=m[5]-String(a).length;p=m[5]?str_repeat(c,x):"";o.push(m[4]?a+p:p+a)}}else{throw ("Huh ?!")}}}f=f.substring(m[0].length)}return o.join("")};humanReadable=function(number,precision){format="%."+(precision==null?3:precision)+(((Math.abs(number)>=1000||Math.abs(number)<0.001)&&number!=0)?"e":"f");return sprintf(format,number)};BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1){return data[i].identity}}else{if(dataProp){return data[i].identity}}}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1){return}return parseFloat(dataString.substring(index+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init()},"Global Utility Functions");include(path+"/exogui/exoLayout.js");include(path+"/exogui/exoTooltips.js");var _gaq=_gaq||[];_gaq.push(["_setAccount","UA-9825700-1"]);_gaq.push(["_trackPageview"]);(function(){var ga=document.createElement("script");ga.type="text/javascript";ga.async=true;ga.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";(document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(ga)})();