
function SkyWindow2(options){this.options=options?options:{};if(typeof this.options.proj!='object')this.options.proj=new EquidistantProjection(this.options.ra,this.options.de,null,0,false);if(!document.imgURL)document.imgURL="http://sky-map.org/img/";if(!document.activeServers)document.activeServers=['http://server1.sky-map.org','http://server2.sky-map.org','http://server5.sky-map.org','http://server6.sky-map.org','http://server8.sky-map.org','http://server9.sky-map.org'];this.attach=function(parentWnd){this.parentWnd=parentWnd;this.createSkyWindow2(this.options);if(typeof this.options.allowTopPanel=='undefined'||this.options.allowTopPanel)this.createTopPanelWindow();if(this.options.showRightPanel){var rp=this.rp=new rightPanel(this.mapWnd);rp.top=30;rp.right=this.mapWnd.offsetLeft+this.mapWnd.offsetWidth-3;rp.bottom=this.mapWnd.offsetTop+this.mapWnd.offsetHeight-2;rp.width=250;rp.minWidth=0;rp.style.zIndex=110;rp.style.fontFamily="verdana";rp.show(true);}
var tms=this.tms=new TileManagerSkymap(this.options.proj,this.options);tms.attach(this.mapWnd,rp);tms.show(true);this.setShowTopPanel(this.options.showTopPanel)
if(this.options.pbox&&this.options.pbox.show&&tms.tileLayerStickers)tms.tileLayerStickers.addBox(this.options.pbox);document.ondragstart=function(e){return false;};this.mapWnd.onmousedown=function(e){if(e&&e.preventDefault){var t=e.target;if(t){var nName=t.nodeName.toLowerCase();if(nName=="img"){e.preventDefault();return false;}
while(t){if(t.nodeName=="a"){e.preventDefault();return false;}
t=t.parentNode;}}}
return false;}
return this;};this.detach=function(){if(this.parentWnd){if(this.tms){this.tms.detach();this.tms=undefined;}
if(this.mapWnd){this.parentWnd.removeChild(this.mapWnd);this.mapWnd=undefined;}
if(this.tp){this.parentWnd.removeChild(this.tp);this.tp=undefined;}
if(this.rp){this.parentWnd.removeChild(this.rp);this.rp=undefined;}
this.parentWnd=undefined;}};this.createSkyWindow2=function(){var map=document.createElement("DIV");map.id="map";map.UNSELECTABLE="on";var s=map.style;s.position="absolute";s.left="0px";s.top="0px";s.width=this.parentWnd.clientWidth+"px";s.height=this.parentWnd.clientHeight+"px";s.backgroundColor="black";s.userSelect="none";s.MozUserSelect="none";this.parentWnd.appendChild(this.mapWnd=map);};this.getTopPanelWidth=function(){var w=500;if(this.parentWnd&&this.parentWnd.clientWidth<w)w=this.parentWnd.clientWidth;return w;};this.createTopPanelWindow=function(){var skyWnd=this;var tp=this.tp=document.createElement("DIV");tp.id="top_panel";tp.UNSELECTABLE="on";s=tp.style;s.position="absolute";s.left="0px";s.top="0px";s.width=this.options.showTopPanel?this.getTopPanelWidth():12;s.height=this.options.showTopPanel?34:12;s.zIndex=101;s.color="white";s.border="1px solid #404060";s.overflow="hidden";s.userSelect="none";s.MozUserSelect="none";this.parentWnd.appendChild(tp);var tpbg=document.createElement("DIV");tpbg.id="top_panel_bg";tpbg.UNSELECTABLE="on";s=tpbg.style;s.position="absolute";s.left="0px";s.top="0px";s.width="100%";s.height="100%";s.padding="0px";s.margin="0px";s.backgroundColor="#C0C0FF";s.opacity="0.3";s.filter="alpha (opacity=30)";s.userSelect="none";s.MozUserSelect="none";tp.appendChild(tpbg);var tpin=tp.inner=document.createElement("TABLE");tpin.id="top_panel_inner";tpin.cellpadding=0;tpin.cellspacing=0;tpin.border=0;tpin.UNSELECTABLE="on";s=tpin.style;s.position="absolute";s.left="0px";s.top="0px";s.width="100%";s.color="white";s.fontSize="9pt";s.fontFamily="Verdana";s.visibility=this.options.showTopPanel?"":"hidden";s.userSelect="none";s.MozUserSelect="none";tp.appendChild(tpin);var tr=tpin.insertRow(-1);var td=tr.insertCell(-1);td.style.width="1px";td.style.cursor="default";td.UNSELECTABLE="on";td.innerHTML="&nbsp;Survey:";td=tr.insertCell(-1);td.style.width="1px";var fs=document.createElement("SELECT");fs.id="d_survey";s=fs.style;s.backgroundColor="black";s.color="white";s.border="1px solid #336699";fs.onkeyup=function(){skyWnd.switchLayer(this.value);};fs.onchange=function(){skyWnd.switchLayer(this.value);};var asurveys=['DSS2','DSS2','SDSS','SDSS-III','SDSS7','SDSS-II','IRAS','Infrared (IRAS)','GALEX','Ultraviolet (GALEX)','RASS','X-Ray (RASS3)','HALPHA','H-Alpha','astrophoto','Astrophoto','skymap','SKY-MAP'];var i,ssel=false;for(i=0;i<asurveys.length;i+=2){var op=document.createElement("OPTION");op.value=asurveys[i];op.text=asurveys[i+1];if(this.options.imgSource==asurveys[i])op.selected=ssel=true;if(asurveys[i]=="astrophoto"&&this.options.imgSource&&this.options.imgSource.toUpperCase().substring(0,4)=="IMG_")op.selected=ssel=true;if(asurveys[i]=="skymap"&&!ssel){op.selected=true;this.options.imgSource="skymap";}
try{fs.add(op,null);}catch(ex){fs.add(op);}}
td.appendChild(fs);td=tr.insertCell(-1);td.style.width="1px";td.style.cursor="default";td.UNSELECTABLE="on";td.innerHTML="&nbsp;&nbsp;";td=tr.insertCell(-1);td.style.width="180px";var st=document.createElement("INPUT");st.type="text";st.id="search_field";st.maxLength=64;st.size=24;st.UNSELECTABLE="off";s=st.style;s.width="100%";s.height="20px";s.userSelect="normal";s.MozUserSelect="normal";s.backgroundColor="black";s.color="white";s.border="1px solid #336699";s.userSelect="normal";s.MozUserSelect="normal";st.value="Find Object";st.onclick=function(){if(this.value=='Find Object')
this.value='';};st.onblur=function(){if(this.value=='')
this.value='Find Object';};st.onkeypress=function(e){onReturn(e,function(){skyWnd.findObject(st.value);return false;});};td.appendChild(st);td=tr.insertCell(-1);td.style.width="1px";var sb=new Image;sb.id="searchButton";sb.src=document.imgURL+"find.gif";sb.title="Find Object";sb.style.cursor="pointer";sb.style.zIndex=30;sb.onclick=function(){skyWnd.findObject(st.value);return false;};sb.border=0;td.appendChild(sb);td=tr.insertCell(-1);td.align="right";var opt=document.createElement("SPAN");opt.id="menu_options";opt.title="View options";s=opt.style;s.fontWeight="bold";s.border="1px solid gray";s.cursor="pointer";s.marginRight="10px";opt.onclick=function(){skyWnd.showOptionsDlg(this);};opt.innerHTML="Options";td.appendChild(opt);var tpex=tp.expandBtn=new Image;tpex.id="top_panel_expand";tpex.src=document.imgURL+"expand_plus.gif";tpex.title="Show Top Controls Panel";tpex.width=12;tpex.height=12;tpex.border=0;s=tpex.style;s.position='absolute';s.top='0px';s.left='0px';s.cursor='pointer';s.width='12px';s.height='12px';s.visibility=this.options.showTopPanel?"hidden":"";tpex.onclick=function(){skyWnd.setShowTopPanel(true);};tpex.GALLERYIMG="no";tpex.UNSELECTABLE="on";tp.appendChild(tpex);var cls=tp.closeBtn=new Image;cls.id="top_panel_close";cls.src=document.imgURL+"close3.gif";cls.title="Hide Top Controls Panel";cls.width=11;cls.height=11;cls.border=0;s=cls.style;s.position='absolute';s.top='0px';s.right='0px';s.cursor='pointer';s.width='11px';s.height='11px';s.visibility=this.options.showTopPanel?"":"hidden";cls.onclick=function(){skyWnd.setShowTopPanel(false);};tp.appendChild(cls);cls.GALLERYIMG="no";cls.UNSELECTABLE="on";};this.findObject=function(v){if(v=="Find Object"||v==""){alert("Please enter object name, catalogId or equatorial coordinates in text field (i.e. \"Sirius\", \"M 100\", \"HD 12345\", \"alpha cen\", \"02 31 48.70 +89 15 51.0\" ...)");}else{var s=new SimpleSearch(this.tms).search(v);}};this.switchLayer=function(name){this.tms.setImgSource(name);this.tms.redraw();};this.setShowTopPanel=function(b){var tp=this.tp;if(!tp)return;var tx=tp.expandBtn,tt=tp.inner,tc=tp.closeBtn;tp.style.width=b?this.getTopPanelWidth():12;tp.style.height=b?34:12;tx.style.visibility=b?"hidden":"";tc.style.visibility=tt.style.visibility=b?"":"hidden";if(this.tms&&this.tms.tMgr&&this.tms.tMgr.panzoomControl&&this.tms.tMgr.panzoomControl.wnd)this.tms.tMgr.panzoomControl.wnd.style.top=b?45:15;if(this.tms&&this.tms.tileLayerPos&&this.tms.tileLayerPos.wnd)this.tms.tileLayerPos.wnd.style.top=b?34:0;};this.showOptionsDlg=function(menuElement){var title="Options";var tt=this;var body="<table cellpadding=0 cellspacing=0 width='100%' style='font-family:verdana;font-size:10pt;color:white'>"+"<tr align=top><td><input type=checkbox id='show_pad'><label for='show_pad'>show pad controls</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_pos'><label for='show_pos'>show position</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_scale'><label for='show_scale'>show scale</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_status'><label for='show_status'>show status</label></td></tr>"+"<tr align=top><td style='border-top:1px solid gray'><input type=checkbox id='show_grid'><label for='show_grid'>show grid</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_const'><label for='show_const'>show constellations</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_galaxies'><label for='show_galaxies'>show galaxies</label></td></tr>"+"<tr align=top><td><input type=checkbox id='show_stars'><label for='show_stars'>show stars</label></td></tr>"+"</table>";var width=200,height=250,left=getAbsoluteLeft(menuElement),top=getAbsoluteTop(menuElement)+20;var addPlaceDlg=new PromptWindow("optionsDlg",title,body,left,top,width,height,true,"OK",function(dlg){},"Cancel",function(dlg,method){}).show();if(this.tms.tilePad)$('show_pad').checked=true;if(this.tms.tileLayerPos)$('show_pos').checked=true;if(this.tms.tileScale)$('show_scale').checked=true;if(this.tms.tileStatus)$('show_status').checked=true;if(this.tms.getSkymapSettings().showGrid)$('show_grid').checked=true;if(this.tms.getSkymapSettings().showConstLines)$('show_const').checked=true;if(this.tms.getSkymapSettings().showGalaxies)$('show_galaxies').checked=true;if(this.tms.getSkymapSettings().showStars)$('show_stars').checked=true;$('show_pad').onclick=$('show_pos').onclick=$('show_scale').onclick=$('show_status').onclick=$('show_grid').onclick=$('show_const').onclick=$('show_galaxies').onclick=$('show_stars').onclick=function(){tt.setOption(this);};};this.setOption=function(e){if(e.id=="show_pad")this.tms.showPad(e.checked);if(e.id=="show_pos")this.tms.showPos(e.checked);if(e.id=="show_scale")this.tms.showScale(e.checked);if(e.id=="show_status")this.tms.showStatus(e.checked);if(e.id=="show_grid"){this.tms.getSkymapSettings().showGrid=e.checked;this.tms.updateLayers();this.tms.redraw();}
if(e.id=="show_const"){this.tms.getSkymapSettings().showConstLines=this.tms.getSkymapSettings().showConstBoundaries=e.checked;if(!e.checked)this.tms.getSkymapSettings().showConstNames=false;this.tms.updateLayers();this.tms.redraw();}
if(e.id=="show_galaxies"){this.tms.getSkymapSettings().showGalaxies=e.checked;this.tms.updateLayers();this.tms.redraw();}
if(e.id=="show_stars"){this.tms.getSkymapSettings().showStars=e.checked;this.tms.updateLayers();this.tms.redraw();}};}
function initSkyWindow2(wnd,options){return new SkyWindow2(options).attach(wnd);}
function TileManagerSkymap(proj,options){if(options){}else{options={};}
this.options=options;this.survey=options.survey?options.survey:"";this.imgSource="";this.mainLayer=null;this.skymapLayer=null;this.mainSkymapLayerOptions={transparent:false,custom:true,language:"EN",showGrid:options.showGrid,showConstLines:options.showConstLines,showConstBoundaries:options.showConstBoundaries,showConstNames:options.showConstNames,showStars:options.showStars,showGalaxies:options.showGalaxies};this.skymapLayerOptions={transparent:true,custom:true,language:"EN",showGrid:options.showOverlayGrid,showConstLines:options.showOverlayConstLines,showConstBoundaries:options.showOverlayConstBoundaries,showConstNames:options.showOverlayConstNames,showStars:options.showOverlayStars,showGalaxies:options.showOverlayGalaxies};var tm=new TileManager();this.tMgr=tm;tm.skymap=this;tm.proj=proj;tm.buffer=typeof options.buffer=='number'?options.buffer:1;tm.maxZoom=15;if(options.jpegQuality)this.tMgr.jpegQuality=options.jpegQuality;if(typeof options.allowMove!='undefined'&&!options.allowMove)tm.allowMove=false;if(typeof options.allowZoom!='undefined'&&!options.allowZoom)tm.allowZoom=false;tm.onBeforeTilesArrayInit=function(nx,ny){};tm.onZoomChange=function(zoom){var degPerPixel=40/256/Math.pow(2,zoom);this.proj.setResolution(degPerPixel);if(typeof this.skymap.tileScale!="undefined")this.skymap.tileScale.setScale(degPerPixel);};tm.onShift=function(sx,sy){try{if(Math.abs(this.shiftX*this.proj.getResolution())>50||Math.abs(this.shiftY*this.proj.getResolution())>50){var pd=this.proj.revProjection(-this.shiftX,-this.shiftY);this.skymap.setPosition(pd);}}catch(err){}};tm.onControlZoomZero=function(){var pd=this.proj.revProjection(-this.shiftX,-this.shiftY);this.skymap.setPosition(pd);return true;};this.onTileLoadRequestSaved=tm.onTileLoadRequest;tm.onTileLoadRequest=function(tileLayer,tile,src){if(this.skymap.onTileLoadRequestSaved)this.skymap.onTileLoadRequestSaved(tileLayer,tile,src);if(this.skymap.onTileLoadRequest)this.skymap.onTileLoadRequest(tileLayer,tile,src);};this.attach=function(wnd,rPanel){this.wnd=wnd;this.rPanel=rPanel;if(this.tMgr)this.tMgr.attach(wnd);if(this.options.zoom)this.setZoom(this.options.zoom);if(this.options.imgSource)this.setImgSource(this.options.imgSource);};this.detach=function(){if(this.tMgr)this.tMgr.detach();};this.showScale=function(b){var ex=false;if(this.tileScale)ex=true;if(b!=ex){if(b){this.tileScale=new TileScale(this.wnd,this.options);if(this.tMgr&&this.tMgr.proj)this.tileScale.setScale(this.tMgr.proj.getResolution());}else{this.tileScale.reset();this.tileScale=false;}}};this.showStatus=function(b){var ex=false;if(this.tileStatus)ex=true;if(b!=ex)if(b)document.tileStatus=this.tileStatus=new TileStatus(this.wnd,this.options);else{this.tileStatus.reset();document.tileStatus=this.tileStatus=false;}};this.showPos=function(b){var ex=false;if(this.tileLayerPos)ex=true;if(b!=ex)if(b){this.tMgr.addLayer(this.tileLayerPos=new TilePosition(this.wnd,this.options));this.tileLayerPos.setZIndex(98);}else{this.tileLayerPos.reset();this.tileLayerPos=false;}};this.showPad=function(b){var ex=false;if(this.tilePad)ex=true;if(b!=ex)if(b)this.tMgr.setPanzoomControl(this.tilePad=new PanzoomCompact(),(this.options.panZoomControlLeft?this.options.panZoomControlLeft:10),(this.options.panZoomControlTop?this.options.panZoomControlTop:15));else{this.tMgr.removePanzoomControl();this.tilePad=false;}};this.showLabels=function(b){if(b)
this.tMgr.addLayer(this.tileLayerLabels=new TileLayerLabels("labels",this.tMgr.proj));else{this.tMgr.removeLayer("labels");this.tileLayerLabels=undefined;}};this.showStickers=function(b){if(b){this.tMgr.addLayer(this.tileLayerStickers=new TileLayerStickers("stickers",this.tMgr.proj));this.tileLayerStickers.setZIndex(97);}else{this.tMgr.removeLayer("stickers");this.tileLayerStickers=undefined;}};this.getSkymapSettings=function(){return this.isInSkymapMode()?this.mainSkymapLayerOptions:this.skymapLayerOptions;};this.isInSkymapMode=function(){return this.mainLayer&&this.mainLayer.name=="skymap";};this.setPosition=function(pd){var pr=this.roundPosition(pd.ra,pd.de,this.tMgr.proj);if(pr.ra!=this.tMgr.proj.getRA()||pr.de!=this.tMgr.proj.getDE()){this.tMgr.proj.setCenter(pr.ra,pr.de);var p1=this.tMgr.proj.projection(pd.ra,pd.de);this.tMgr.shiftX=-p1.x;this.tMgr.shiftY=-p1.y;this.tMgr.tilesArrayInit();}else{var p1=this.tMgr.proj.projection(pd.ra,pd.de);this.tMgr.setCenter(-p1.x,-p1.y);}};this.getPosition=function(){return this.tMgr?this.tMgr.getCenterCoord():undefined;};this.roundPosition=function(newRA,newDE,proj){if(this.mainLayer&&this.mainLayer.roundPosition)return this.mainLayer.roundPosition(newRA,newDE,proj);var a=proj.getResolution()*this.tMgr.tileWidth;if(a<20&&this.imgSource!=""&&!((this.imgSource=="SDSS3"||this.imgSource=="SDSS4"||this.imgSource=="SDSS5"||this.imgSource=="SDSS6")&&proj.getResolution()<0.002083))a=20;var t_ra=Math.round(newRA*15.0/a)/15.0*a;if(t_ra>=24)t_ra-=24;else if(t_ra<0)t_ra+=24;var t_de=Math.round(newDE/a)*a;if(t_de<-90)t_de=-90;else if(t_de>90)t_de=90;return{ra:t_ra,de:t_de};}
this.setZoom=function(z){this.tMgr.setZoom(z);this.tMgr.onZoomChange(z);};this.getZoom=function(){return this.tMgr.getZoom();};this.moveTo=function(pd){};this.setSurvey=function(s){this.survey=s;};this.updateLayers=function(){var isrc=this.imgSource;var src="skymap";if(isrc=="astrophoto")isrc="IMG_all";if(isrc.substr(0,4)=="IMG_")src="astrophoto";else if(isrc.substring(0,4)=="DSS2"||isrc=="IRAS"||isrc=="HALPHA"||isrc=="RASS"||isrc=="GALEX")src="dss";else if(isrc.substring(0,4)=="SDSS")src="sdss";if(this.mainLayer)this.tMgr.removeLayer(this.mainLayer.name);if(this.skymapLayer){this.tMgr.removeLayer(this.skymapLayer.name);this.skymapLayer=false;}
if(src=="astrophoto"){this.tMgr.addLayer(this.mainLayer=TileLayerAstrophoto(this.tMgr.proj,isrc,this.survey));this.checkAddSkymapLayer();}else if(src=="dss"){this.tMgr.addLayer(this.mainLayer=TileLayerDSS(this.tMgr.proj,isrc,isrc));this.checkAddSkymapLayer();}else if(src=="sdss"){this.tMgr.addLayer(this.mainLayer=TileLayerSDSS(this.tMgr.proj,isrc,isrc));this.checkAddSkymapLayer();}else{this.tMgr.addLayer(this.mainLayer=TileLayerSkymap(this.tMgr.proj,this.mainSkymapLayerOptions));}
if(src=="astrophoto"&&this.survey==""){if(!this.layerAstroPhotoInfo)this.layerAstroPhotoInfo=TileLayerAstrophotoInfo(this.tMgr.proj,isrc,this.mainLayer,this.rPanel);this.tMgr.addLayer(this.layerAstroPhotoInfo);}else if(this.layerAstroPhotoInfo){this.tMgr.removeLayer(this.layerAstroPhotoInfo.name);this.layerAstroPhotoInfo=null;}
this.mainLayer.imgSource=isrc;};this.setImgSource=function(isrc){this.imgSource=isrc;this.updateLayers();};this.checkAddSkymapLayer=function(opt){if(this.skymapLayer){this.tMgr.removeLayer(this.skymapLayer.name);this.skymapLayer=false;}
var v=this.skymapLayerOptions;if(typeof opt=='object'){if(typeof opt.showGrid!='undefined')v.showGrid=opt.showGrid;if(typeof opt.showConstLines!='undefined')v.showConstLines=opt.showConstLines;if(typeof opt.showConstBoundaries!='undefined')v.showConstBoundaries=opt.showConstBoundaries;if(typeof opt.showConstNames!='undefined')v.showConstNames=opt.showConstNames;if(typeof opt.showStars!='undefined')v.showStars=opt.showStars;if(typeof opt.showGalaxies!='undefined')v.showGalaxies=opt.showGalaxies;if(typeof opt.showConstellations!='undefined')v.showConstLines=v.showConstBoundaries=opt.showConstellations;}
if(v.showGrid||v.showConstLines||v.showConstBoundaries||v.showConstNames||v.showStars||v.showGalaxies){this.tMgr.addLayer(this.skymapLayer=TileLayerSkymap(this.tMgr.proj,v));}}
this.show=function(b){if(this.tMgr)this.tMgr.show(b);this.showScale(b&&this.options.showScale);this.showStatus(b&&this.options.showStatus);this.showPos(b&&this.options.showPosition);this.showPad(b&&this.options.showPanZoomControl);this.showStickers(b&&this.options.showStickers);this.showLabels(b&&this.options.showLabels);};this.redraw=function(){this.tMgr.tilesArrayInit();};this.updateImgLoaded=function(){if(this.tileStatus)this.tileStatus.setText(this.tMgr.getTilesLoaded()+" tiles loaded");var t=this;setTimeout(function(){t.updateImgLoaded();},1000);}
this.updateImgLoaded();}
function rightPanel(parent,width){this.parent=parent;this.left=0;this.top=0;this.maxWidth=width?width:250;this.minWidth=this.width;this.imgURL="http://sky-map.org/img/";this.width=0;this.height=0;this.bottom=0;this.right=0;this.toShow=false;this.d_main=document.createElement("DIV");this.d_main.id="RightPanel_div";var s=this.style=this.d_main.style;s.visibility='hidden';s.border="0px";s.margin="0px";s.padding="0px";s.position="absolute";s.overflow="hidden";this.parent.appendChild(this.d_main);this.spaceBetweenItems=5;this.setRight=function(r){this.right=r;};this.setBottom=function(r){this.bottom=r;};this.onresize=function(){if(!this.toShow){this.d_main.style.visibility='hidden';return;}
var h=this.bottom-this.top;this.updatePosX();var exp=new Array();var pos_y=0,i,item,a;var nc=this.d_main&&this.d_main.childNodes?this.d_main.childNodes.length:0;for(i=0;i<nc;i++){item=this.d_main.childNodes.item(i).ownerItem;if(item&&item.visible()){item.onresize();if(item.isExpanded){exp.push(item);}else{item.setY(pos_y);item.resetHeight();pos_y+=item.getHeight()+this.spaceBetweenItems;}}}
if(exp.length>0){this.updateWidth(this.maxWidth);var rm=h-pos_y-2;var hItem=Math.round((rm-this.spaceBetweenItems*(exp.length-1))/exp.length);var rm2=rm,n2=0;for(i=0;i<exp.length;i++){item=exp[i];item.setY(pos_y);item.resetHeight();if(item.getHeight()>hItem)n2++;else rm2-=item.getHeight()+this.spaceBetweenItems;}
hItem=Math.round((rm2-this.spaceBetweenItems*(n2-1))/n2);var itemToApplyRem=-1;var t_rm=rm;for(i=0;i<exp.length;i++){item=exp[i];a=item.getHeight();if(a>hItem){itemToApplyRem=i;a=hItem;}
t_rm-=a+(i+1<exp.length?this.spaceBetweenItems:0);}
for(i=0;i<exp.length;i++){item=exp[i];item.setY(pos_y);item.resetHeight();a=item.getHeight();if(a>hItem)a=hItem+(i==itemToApplyRem?t_rm:0);pos_y+=a;rm-=a;item.setHeight(a);if(i+1<exp.length){pos_y+=this.spaceBetweenItems;rm-=this.spaceBetweenItems;}}}else if(pos_y!=0){this.updateWidth(Math.min(this.maxWidth,Math.max(this.minWidth,this.getMinHeaderWidth())));}
if(pos_y==0){this.d_main.style.visibility='hidden';}else{this.d_main.style.visibility='visible';this.height=Math.min(h,pos_y+2);}
this.draw();};this.updateWidth=function(w){this.width=w;this.left=this.right-this.width;var nc=this.d_main&&this.d_main.childNodes?this.d_main.childNodes.length:0;for(var i=0;i<nc;i++){var item=this.d_main.childNodes.item(i).ownerItem;if(item)item.updateWidth(w);}};this.getMinHeaderWidth=function(){var minWidth=0;var nc=this.d_main&&this.d_main.childNodes?this.d_main.childNodes.length:0;for(var i=0;i<nc;i++){var item=this.d_main.childNodes.item(i).ownerItem;if(item&&item.visible()){var t=item.getMinHeaderWidth();if(minWidth<t)minWidth=t;}}
return minWidth;};this.addItem=function(title,options){var t=new rightPanelItem(this,title,options);this.d_main.appendChild(t.d_main);return t;};this.removeItem=function(item){this.d_main.removeChild(item.d_main);this.onresize();};this.show=function(b){this.toShow=b;this.onresize();};this.updatePosX=function(){var left=this.right-this.width;this.left=left;this.draw();};this.draw=function(){this.d_main.style.left=this.left+"px";this.d_main.style.top=this.top+"px";this.d_main.style.width=this.width+"px";this.d_main.style.height=this.height+"px";var nc=this.d_main&&this.d_main.childNodes?this.d_main.childNodes.length:0;for(var i=0;i<nc;i++)this.d_main.childNodes.item(i).ownerItem.draw();};}
function rightPanelItem(parentObj,title,options){this.parentObj=parentObj;this.title=title;if(options)this.options=options;else this.options={canCollapse:true,canClose:false};if(typeof this.options.canCollapse=='undefined')this.options.canCollapse=true;if(typeof this.options.canClose=='undefined')this.options.canClose=false;this.isExpanded=!this.options.canCollapse||this.options.expanded==true;this.left=0;this.top=0;this.width=parentObj.width;this.height=0;this.d_main=document.createElement("SPAN");this.d_main.ownerItem=this;var s=this.style=this.d_main.style;s.visibility='hidden';s.border="1px solid gray";s.position="absolute";s.left="0px";this.d_bg=document.createElement("DIV");this.d_bg.id="panelItem_d_bg";s=this.d_bg.style;s.position="absolute";s.left="0px";s.top="0px";s.width="100%";s.height="100%";s.margin="0px";s.backgroundColor='black';s.opacity=0.5;s.filter='alpha (opacity=50)';this.d_main.appendChild(this.d_bg);this.d_header=document.createElement("TABLE");this.d_header.id="panelItem_d_header";this.d_header.parentItem=this;this.d_header.cellSpacing=0;this.d_header.cellPadding=0;this.d_header.border=0;s=this.d_header.style;s.position="absolute";s.left="0px";s.top="0px";s.width="100%";s.height="18px";s.overflow="hidden";s.backgroundColor="#404040";s.color="white";s.fontSize="8pt";s.border="0px";this.d_headerRow=this.d_header.insertRow(-1);this.d_main.appendChild(this.d_header);if(this.options.canCollapse){this.btn_collapse=new Image;this.btn_collapse.parentItem=this;s=this.btn_collapse.style;s.border=0;s.width='15px';s.height='15px';s.cursor='pointer';this.btn_collapse.onclick=function(){this.title=='Collapse'?this.parentItem.collapse():this.parentItem.expand();}
this.btn_collapse.srcCollapse=this.parentObj.imgURL+'collapse.gif';this.btn_collapse.srcExpand=this.parentObj.imgURL+'expand.gif';this.btn_collapse.GALLERYIMG='no';this.btn_collapse.title='Collapse';var td=this.d_headerRow.insertCell(-1);td.style.width='15px';td.style.padding="1px";td.appendChild(this.btn_collapse);}
this.d_title=document.createElement("SPAN");this.d_title.id="panelItem_d_title";this.d_title.parentItem=this;s=this.d_title.style;s.overflow="hidden";s.color="white";s.fontSize="8pt";s.whiteSpace='nowrap';this.d_title.innerHTML='&nbsp;'+this.title;if(this.options.canCollapse){s.cursor='pointer';this.d_title.onclick=function(){this.title=='Collapse'?this.parentItem.collapse():this.parentItem.expand();}}
var td1=this.d_headerRow.insertCell(-1);td1.style.paddingLeft="1px";td1.appendChild(this.d_title);if(this.options.canClose){this.btn_close=new Image;this.btn_close.parentItem=this;s=this.btn_close.style;s.border=0;s.width='15px';s.height='15px';s.cursor='pointer';this.btn_close.onclick=function(){this.parentItem.close();}
this.btn_close.src=this.parentObj.imgURL+'icon_close.gif';this.btn_close.GALLERYIMG='no';this.btn_close.title='Close';var td2=this.d_headerRow.insertCell(-1);td2.style.width='16px';td2.style.textAlign='right';td2.appendChild(this.btn_close);}
this.d_body=document.createElement("SPAN");this.d_body.id="panelItem_d_body";this.d_body.parentItem=this;s=this.d_body.style;s.position="absolute";s.left="0px";s.top="18px";s.width="100%";s.overflowX="hidden";s.overflowY="auto";s.color="white";s.fontSize="8pt";this.d_main.appendChild(this.d_body);this.show=function(b){if(b!=this.visible()){this.d_main.style.visibility=b?'':'hidden';this.parentObj.onresize();}};this.visible=function(){return this.d_main.style.visibility!='hidden';};this.setY=function(y){this.top=y;};this.setHeight=function(h){this.d_body.style.height=(h-this.d_body.offsetTop)+'px';this.onresize();};this.getHeight=function(){return this.d_header.offsetHeight+(this.isExpanded?this.d_body.offsetHeight:0);};this.resetHeight=function(){this.d_body.style.height=null;};this.onresize=function(){var w=this.parentObj.width;var h=this.getHeight()+(document.all?2:0);if(w>0)this.width=w;if(h>0)this.height=h;if(this.btn_collapse){this.btn_collapse.src=this.isExpanded?this.btn_collapse.srcCollapse:this.btn_collapse.srcExpand;this.btn_collapse.title=this.isExpanded?'Collapse':'Expand';this.d_title.title=this.isExpanded?'Collapse':'Expand';this.d_body.style.visibility=this.isExpanded?'':'hidden';}};this.getLeft=function(){return getAbsoluteLeft(this.d_main);};this.getTop=function(){return getAbsoluteTop(this.d_main);};this.updateWidth=function(w){this.width=w;};this.getMinHeaderWidth=function(){var t=this.d_title.style.width;this.d_title.style.width='';this.d_title.innerHTML=this.d_title.innerHTML;var r=this.d_title.offsetWidth+(this.btn_close?this.btn_close.offsetWidth:0)+(this.btn_collapse?this.btn_collapse.offsetWidth:0)+6;this.d_title.style.width=t;return r;};this.collapse=function(){this.isExpanded=false;this.updateTitle();this.parentObj.onresize();if(this.onCollapse)this.onCollapse();};this.expand=function(){this.isExpanded=true;this.updateTitle();this.parentObj.onresize();if(this.onExpand)this.onExpand();};this.close=function(){if(this.onClose)this.onClose();this.parentObj.removeItem(this);};this.updateTitle=function(){if(this.isExpanded)
this.setTitle(this.titleExpanded?this.titleExpanded:this.title);else
this.setTitle(this.titleCollapsed?this.titleCollapsed:this.title);};this.setTitle=function(t){this.d_title.style.fontWeight=this.isExpanded?"bold":"normal";this.d_title.innerHTML=this.title=t;};this.setBody=function(t){var scrollTop=this.d_body.scrollTop;this.d_body.innerHTML=t;if(scrollTop>0)this.d_body.scrollTop=scrollTop;if(this.isExpanded)this.parentObj.onresize();};this.draw=function(){this.d_main.style.left=this.left+"px";this.d_main.style.top=this.top+"px";this.d_main.style.width=(this.width-(document.all?0:2))+"px";this.d_main.style.height=this.height+"px";};this.reset=function(){if(this.parentObj)this.parentObj.removeItem(this);};this.onresize();}
function SimpleSearch(tms)
{this.tms=tms;dwr.engine.setRpcType(dwr.engine.ScriptTag);Search._path="http://server1.sky-map.org/dwr";this.search=function(searchString){this.lastSearchString=searchString;if(this.searchPlanet(searchString))return;var g_loading=$("d_loading");if(g_loading){g_loading.innerHTML="Searching...";g_loading.style.visibility='';}
var thisSearch=this;Search.findByName(searchString,function(data){var g_loading=$("d_loading");if(g_loading){g_loading.innerHTML='';g_loading.style.visibility='hidden';}
if(data.result&&data.result.length>0){if(data.result.length==1){thisSearch.onSearchFound(data.result[0].ra,data.result[0].de,data.result[0].radius*2,data.result[0].VMag);}else{var menu1=new Array();var n=0;menu1[n++]='<div style="font-weight:bold;background-color:green;color:white;width:250px;height:19px;">&nbsp;Search Results:</div>';for(var i=0;i<data.result.length;i++){menu1[n++]='<a href="#" onclick="new SimpleSearch().onSearchFound('+data.result[i].ra+','+data.result[i].de+','+(data.result[i].radius*2)+','+data.result[i].VMag+');return false;" style="font-family:Sans-Serif;font-size:8pt;font-weight:normal;font-style:italic;white-space:nowrap;overflow:hidden">'+data.result[i].name+'</a>';}
menuWidth='250px';var x=200,y=110;var s=$("search");if(s){x=getAbsoluteLeft(s);y=getAbsoluteTop(s)+s.offsetHeight+1;}
dropdownmenu({offsetLeft:x,offsetTop:y,offsetHeight:0,offsetParent:null},{type:"click"},menu1,menuWidth);}}else{window.alert("Search: \""+data.searchString+"\" not found");}});if(typeof _gat=="undefined"){var a=document.createElement('script');a.src='https://www.google-analytics.com/ga.js';a.onload=function(){try{wikiskyGATracker=_gat._getTracker("UA-1162068-1");wikiskyGATracker._trackEvent('search','submitNew',searchString);}catch(e){}};document.body.appendChild(a);}};this.onSearchFound=function(newRA,newDE,size,VMag){var show_box=true;var box_var_size=false;var box_width=50;var box_height=50;var zoom;var cvset=false;if(size&&size>0){zoom=Math.round(6-Math.log(size)/Math.log(2));box_width=(this.tms.tileWidth*size);box_height=(this.tms.tileHeight*size);box_var_size=true;}
if(!cvset&&VMag&&VMag!=0){zoom=Math.round(3+VMag);}
if(zoom)this.tms.setZoom(Math.max(1,Math.min(12,zoom)));this.onNewPosition({ra:newRA,de:newDE});var pbox={show:show_box,ra:newRA,de:newDE,size:{x:box_width,y:box_height},varSize:box_var_size,border:"1px solid white",canClose:true};this.tms.tileLayerStickers.addBox(pbox);return true;};this.searchPlanet=function(searchString)
{if("sol"==searchString.toLowerCase())searchString="Sun";for(var p=0;p<PlanetNames.length;p++){var planetName=PlanetNames[p];if(planetName.toLowerCase()==searchString.toLowerCase()){var pd=new Planets().setDate(new Date())[planetName];if(pd){var boxStickObject=planetName;var show_box=true;var box_width=50;var box_height=50;var box_var_size=false;pd.ra/=15.0;this.onNewPosition(pd);return true;}}}
return false;};this.onNewPosition=function(pd){this.tms.setPosition(pd);};};
function ProjectionFactory(projType,ra,de,scale,rotation,reverse){switch(projType){case 1:return new DirectProjection(ra,de,scale,rotation,reverse);case 2:return new AitoffProjection(ra,de,Math.round(360/scale),Math.round(180/scale),reverse);case 3:return new TangentProjection(ra,de,scale,rotation,reverse);default:return new EquidistantProjection(ra,de,scale,rotation,reverse);}}
function escapeHtml(s){if(!s)return s;var div=document.createElement('div');var text=document.createTextNode(s);div.appendChild(text);return div.innerHTML;}
function unescapeHtml(s){if(!s)return s;var div=document.createElement('div');div.innerHTML=s.replace(/<\/?[^>]+>/gi,'');return div.childNodes[0]?div.childNodes[0].nodeValue:'';}
function onReturn(ev,actionEnter,actionEsc){if(!ev)ev=window.event;if(ev&&ev.keyCode){if(actionEnter&&ev.keyCode==13)actionEnter(ev.srcElement?ev.srcElement:ev.currentTarget);if(actionEsc&&ev.keyCode==27)actionEsc(ev.srcElement?ev.srcElement:ev.currentTarget);}}
function createCookie(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();}
document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function eraseCookie(name){createCookie(name,"",-1);}
function getAbsoluteTop(e){return e?e.offsetTop+getAbsoluteTop(e.offsetParent):0;}
function getAbsoluteLeft(e){return e?e.offsetLeft+getAbsoluteLeft(e.offsetParent):0;}
function getMousePos(evnt){if(document.all)evnt=event;this.evnt=evnt;var g=(document.all)?event.srcElement:evnt.currentTarget;this.g=g;if(document.all)this.x=evnt.offsetX;else this.x=evnt.layerX-1;if(document.all)this.y=evnt.offsetY;else this.y=evnt.layerY-1;}
function getAbsMousePos(e){if(!e)e=window.event;if(e.pageX||e.pageY){this.x=e.pageX;this.y=e.pageY;}
else if(e.clientX||e.clientY){this.x=e.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;this.y=e.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}}
function ietruebody(){return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body}
function windowWidth(){var w=0;if(typeof window.innerWidth=='number'){w=window.innerWidth;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){w=document.documentElement.clientWidth;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){w=document.body.clientWidth;}
return w;}
function windowHeight(){var h=0;if(typeof window.innerWidth=='number'){h=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){h=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){h=document.body.clientHeight;}
return h;}
function formatTxtPos(ra,de){if(typeof ra=="object"){de=ra.de;ra=ra.ra;}
return formatTxtRA(ra)+" "+formatTxtDE(de);}
function formatTxtRA(ra){if(ra<0){ra+=24;}else if(ra>=24){ra-=24;}
var hh=Math.floor(ra).toFixed(0);if(hh.length==1){hh="0"+hh;}
var mm=Math.floor(((ra-Math.floor(ra))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((ra*60-Math.floor(ra*60))*60).toFixed(2);if(ss.length==4){ss="0"+ss;}
return hh+" "+mm+" "+ss+"";}
function formatTxtDE(de){var deg=Math.floor(Math.abs(de)).toFixed(0);if(deg.length==1){deg="0"+deg;}
if(de<0){deg="-"+deg;}else{deg="+"+deg;}
var mm=Math.floor(Math.abs((Math.abs(de)-Math.floor(Math.abs(de)))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((Math.abs(de)*60-Math.floor(Math.abs(de*60)))*60).toFixed(1);if(ss.length==3){ss="0"+ss;}
return deg+" "+mm+" "+ss+"";}
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){if(oldonload)oldonload();func();}}}
var $;if(!$){$=function(s){return document.getElementById(s)};}
function PromptWindow(name,title,body,left,top,width,height,sync,actionName,action,cancelName,cancel){if(document["prompt_"+name])document["prompt_"+name].onCancel(4);document["prompt_"+name]=this;this.name=name;this.title=title;this.lef=left;this.top=top;this.width=width;this.height=height;if(!actionName&&actionName!=false)actionName="OK";if(!cancelName&&cancelName!=false)cancelName="Cancel";this.actionName=actionName;this.promptAction=action;this.cancelName=cancelName;this.promptCancel=cancel;if(width>windowWidth())width=windowWidth();if(height>windowHeight())height=windowHeight();if(left=="CENTER")left=Math.round((windowWidth()-width)/2);if(top=="CENTER")top=Math.round((windowHeight()-height)/2);if(left<0)left=0;else if(left>windowWidth()-20-width)left=windowWidth()-20-width;if(top<0)top=0;else if(top>windowHeight()-20-height)top=windowHeight()-20-height;var w=document.createElement("DIV");this.mainWnd=w;w.onmousemove=function(evnt){if(!evnt)evnt=event;var g=$("prompt_wnd_"+name);if(g.moving){var mp=new getAbsMousePos(evnt);g.style.left=(g.initPos.x+mp.x-g.pX)+"px";g.style.top=(g.initPos.y+mp.y-g.pY)+"px"}};w.onmouseup=function(evnt){var g=$("prompt_wnd_"+name);g.moving=false;};var s=w.style;s.zIndex="101";if(sync){w.id="PromptTopWnd_"+name;s.width="100%";s.height="100%";s.border="0";s.padding="0";s.margin="0";s.position="absolute";s.top="0px";s.left="0px";var wFade=document.createElement("DIV");s=wFade.style;s.width="100%";s.height="100%";s.position="absolute";s.top="0px";s.left="0px";s.backgroundColor="#202020";s.opacity="0.7";s.filter="alpha(opacity=70)";w.appendChild(wFade);var w2=w;w=document.createElement("DIV");w2.appendChild(w);s=w.style;}
this.dialogWnd=w;this.style=s;w.promptClass=this;w.id="prompt_wnd_"+name;s.position="absolute";s.top=top+"px";s.left=left+"px";s.width=width+"px";s.height=height+"px";s.border="1px solid gray";s.color="white";s.backgroundColor="black";this.onmousedown=function(evnt){var p=this.parentNode;p.moving=true;p.initPos={x:p.offsetLeft,y:p.offsetTop};var mp=new getAbsMousePos(evnt);p.pX=mp.x;p.pY=mp.y};this.onmouseup=function(evnt){this.parentNode.moving=false;};this.setBody=function(body){this.dialogWnd.innerHTML="<div id='prompt_wnd_header_"+this.name+"' "+"style='width:100%;height:18px;color:white;font-size:10pt;font-weight:bold;background-color:#000080;text-align:center;white-space:nowrap;overflow:hide;border-bottom:1px solid #404040;cursor:move' "+"onselectstart='return false' "+">"+this.title+"</div>"+"<img src='http://sky-map.org/img/icon_close.gif' style='position:absolute;top:1px;left:"+(this.width-16)+"px;cursor:pointer' onclick='document[\"prompt_"+this.name+"\"].onCancel(2)'>"+
body+"<div style='position:absolute;top:"+(this.height-28)+"px;left:0px;width:100%;text-align:right'>"+
(this.actionName!=false?"<input id='prompt_wnd_action_"+this.name+"' type=submit value='"+this.actionName+"' onclick='document[\"prompt_"+this.name+"\"].onAction()'> &nbsp; ":"")+
(this.cancelName!=false?"<input id='prompt_wnd_cancel_"+this.name+"' type=submit value='"+this.cancelName+"' onclick='document[\"prompt_"+this.name+"\"].onCancel(1)'> &nbsp;":"")+"</div>";};this.setBody(body);w.onAction=function(){this.promptClass.onAction();};w.onCancel=function(m){this.promptClass.onCancel(m);};this.show=function(){if(this.mainWnd){document.body.appendChild(this.mainWnd);var e=$("prompt_wnd_header_"+this.name);e.onmousedown=this.onmousedown;e.onmouseup=this.onmouseup;}
return this;};this.setBackgroundColor=function(c){this.style.backgroundColor=c;return this;};this.setColor=function(c){this.style.color=c;return this;};this.setTimeout=function(seconds,showTimer){if(this.timer)clearTimeout(this.timer);if(seconds>0){if(showTimer==1&&$("prompt_wnd_action_"+this.name))$("prompt_wnd_action_"+this.name).value=this.actionName+" ("+seconds+")";else if(showTimer==2&&$("prompt_wnd_cancel_"+this.name))$("prompt_wnd_cancel_"+this.name).value=this.cancelName+" ("+seconds+")";this.timer=setTimeout("document[\"prompt_"+name+"\"].setTimeout("+(seconds-1)+","+showTimer+")",1000);}else{this.onCancel(3);}
return this;}
this.onAction=function(){if(this.timer)clearTimeout(this.timer);if(this.promptAction){var b=this.promptAction(this);if(b==false)return;}
this.mainWnd.style.visibility="hidden";this.clear();};this.onCancel=function(method){if(this.timer)clearTimeout(this.timer);if(this.promptCancel){var b=this.promptCancel(this,method);if(b==false)return;}
this.mainWnd.style.visibility="hidden";this.clear();};this.clear=function(){if(this.timer)clearTimeout(this.timer);if(this.mainWnd)document.body.removeChild(this.mainWnd);this.mainWnd=null;if(document["prompt_"+this.name])document["prompt_"+this.name]=null;};}
function MessageWindow(name,body,left,top,width,height,timeoutSec,timeoutCallback,options){if(document["msgWnd_"+name])document["msgWnd_"+name].clear();document["msgWnd_"+name]=this;this.name=name;this.timeoutSec=timeoutSec;this.timeoutCallback=timeoutCallback;if(!options)options={};this.options=options;if(width>windowWidth())width=windowWidth();if(height>windowHeight())height=windowHeight();if(left=="CENTER")left=Math.round((windowWidth()-width)/2);if(top=="CENTER")top=Math.round((windowHeight()-height)/2);if(left<0)left=0;else if(left>windowWidth()-20-width)left=windowWidth()-20-width;if(top<0)top=0;else if(top>windowHeight()-20-height)top=windowHeight()-20-height;var w=document.createElement("DIV");this.mainWnd=w;w.onmousemove=function(evnt){this.promptClass.restartTimer();};var s=w.style;s.zIndex="102";this.style=s;w.promptClass=this;w.id="msgWnd_wnd_"+name;s.position="absolute";s.top=top+"px";s.left=left+"px";s.width=width+"px";s.height=height+"px";s.color=(options.color)?options.color:"white";s.fontSize=(options.fontSize)?options.fontSize:"10pt";s.fontWeight=(options.fontWeight)?options.fontWeight:"normal";s.fontStyle=(options.fontStyle)?options.fontStyle:"";s.fontFamily=(options.fontFamily)?options.fontFamily:"";s.backgroundColor=(options.bgColor)?options.bgColor:"black";s.overflow="visible";s.visibility="hidden";document.body.appendChild(w);if(options.rounded){w.innerHTML=body+"<br><br>";this.rC=new RoundedCorners();var cornerX=options.cornerX?options.cornerX:20;var cornerY=options.cornerY?options.cornerY:20;var stemWidth=options.stem?options.stemWidth?options.stemWidth:cornerX:0;var stemHeight=options.stem?options.stemHeight?options.stemHeight:cornerY:0;var stemY=options.stem?options.stemY?options.stemY:25:0;var hc=options.headColor?options.headColor:options.title?'darkgray':null;var okAction=function(){if(this.parentNode.promptClass)this.parentNode.promptClass.clear();else if(this.parentNode.parentNode.promptClass)this.parentNode.parentNode.promptClass.clear();};this.rC.addTarget(w,cornerX,cornerY,s.backgroundColor,options.bgbgColor?options.bgbgColor:"black",0,height,null,{stemWidth:stemWidth,stemHeight:stemHeight,stemY:stemY,headColor:hc,title:options.title,ok:1,okAction:okAction});this.rC.init();}else{s.border=(options.border)?options.border:"1px solid gray";w.innerHTML="<img src='http://sky-map.org/img/icon_close.gif' style='position:absolute;top:1px;left:"+(width-16)+"px;cursor:pointer' onclick='this.parentNode.promptClass.clear()'>"+body;}
this.show=function(){if(this.mainWnd){this.mainWnd.style.visibility="";}
return this;};this.setBackgroundColor=function(c){this.style.backgroundColor=c;return this;};this.setColor=function(c,bg){this.style.color=c;if(bg)this.style.backgroundColor=bg;return this;};this.setTimeout=function(seconds){if(this.timer)clearTimeout(this.timer);if(seconds>0){this.timer=setTimeout("document[\"msgWnd_"+name+"\"].setTimeout("+(seconds-1)+")",1000);}else if(seconds>-this.secondsToFade){var op=1+seconds/this.secondsToFade;this.style.opacity=op;this.style.filter="alpha(opacity="+Math.round(op*100)+")";this.timer=setTimeout("document[\"msgWnd_"+name+"\"].setTimeout("+(seconds-0.1)+")",100);}else{this.clear();if(this.timeoutCallback)this.timeoutCallback(this);}
return this;}
this.secondsToFade=3.5;this.restartTimer=function(){this.setTimeout(this.timeoutSec);this.style.opacity="1.0";this.style.filter="alpha(opacity=100)";};this.clear=function(){if(this.timer)clearTimeout(this.timer);if(this.mainWnd)document.body.removeChild(this.mainWnd);this.mainWnd=null;if(document["msgWnd_"+this.name])document["msgWnd_"+this.name]=null;};this.restartTimer();}
function TileManager(){this.isShown=false;this.wnd=null;this.wndWidth=0;this.wndHeight=0;this.wndCenterX=0;this.wndCenterY=0;this.overlapX=0;this.overlapY=0;this.shiftX=0;this.shiftY=0;this.zoom=-1;this.view="";this.tileWidth=256;this.tileHeight=256;this.buffer=0;this.layers=new Array();this.nTilesX=0;this.nTilesY=0;this.maxZoom=10;this.panStep=16;this.panPeriod=30;this.smoothZoomSteps=5;this.smoothZoomPeriod=120;this.panzoomControl=null;this.allowClick=true;this.allowMove=true;this.allowZoom=true;if(document.tileCache)this.tileCache=document.tileCache;else this.tileCache=document.tileCache=new Array();if(document.tileCacheKeys)this.tileCacheKeys=document.tileCacheKeys;else this.tileCacheKeys=document.tileCacheKeys=new Array();if(document.maxCacheSize)this.maxCacheSize=document.maxCacheSize;else this.maxCacheSize=document.maxCacheSize=2000;this.attach=function(wnd){this.wnd=wnd;this.setWndSize(wnd.clientWidth,wnd.clientHeight);wnd.tMgr=this;wnd.style.overflow="hidden";if(this.panzoomControl){wnd.appendChild(this.panzoomControl.wnd);this.panzoomControl.wnd.style.zIndex=99;}
var d=this.wndControls=document.createElement("DIV");d.id="controls";d.tMgr=this;d.style.position="absolute";d.style.left="0";d.style.top="0";d.style.width="100%";d.style.height="100%";d.style.zIndex=100;d.UNSELECTABLE="on";if(document.all){d.style.backgroundColor="black";d.style.opacity=0.0;d.style.filter='alpha (opacity=0)';}
d.onmousedown=function(evnt){if(!this.tMgr.allowClick)return;this.btnDown=true;this.tMgr._onmousedown(evnt);};d.onmouseup=function(evnt){this.btnDown=false;if(!this.tMgr.allowClick)return;this.style.cursor="";this.tMgr._onmouseup(evnt);};d.onmousemove=function(evnt){if(this.btnDown)this.style.cursor="move";this.tMgr._onmousemove(evnt);};d.onmousewheel=function(event){if(!this.tMgr.allowZoom||this.inMouseWheelEvent)return;this.inMouseWheelEvent=true;try{var d=0;var p=this.tMgr.getMousePos(event);if(!event)event=window.event;if(event.wheelDelta){d=event.wheelDelta/120;if(window.opera)d=-d;}else if(event.detail){d=-event.detail/3;}
if(d){if(d<0)this.tMgr.zoomChange(-1,p);else if(d>0)this.tMgr.zoomChange(1,p);}
if(event.preventDefault)
event.preventDefault();}catch(err){}
this.inMouseWheelEvent=false;event.returnValue=false;};if(d.addEventListener)d.addEventListener('DOMMouseScroll',d.onmousewheel,false);if(wnd.eventWnd)wnd.removeChild(wnd.eventWnd);wnd.appendChild(d);wnd.eventWnd=d;};this.detach=function(){this.show(false);if(this.wnd){if(this.wndControls){this.wnd.removeChild(this.wndControls);this.wndControls=undefined;}
this.wnd=undefined;}};this.setWndSize=function(width,height){this.wndWidth=width;this.wndHeight=height;this.updateOverlap();this.wndCenterX=Math.floor(width/2);this.wndCenterY=Math.floor(height/2);};this.updateOverlap=function(){this.overlapX=Math.floor((this.wndWidth-this.tileWidth*this.nTilesX)/2);this.overlapY=Math.floor((this.wndHeight-this.tileHeight*this.nTilesY)/2);};this.addLayer=function(tileLayer){this.layers.push(tileLayer);tileLayer.zIndex=this.layers.length;if(this.wnd&&this.wnd.eventWnd)this.wnd.eventWnd.style.zInfex=this.layers.length+1;tileLayer.init(this);};this.removeLayer=function(name){for(var i in this.layers){if(this.layers[i].name==name){var layer=this.layers[i];this.layers.splice(i,1);layer.reset();}}};this.getLayerByName=function(name){for(var i in this.layers){if(this.layers[i].name==name)return this.layers[i];}
return null;};this.setPanzoomControl=function(control,left,top){this.removePanzoomControl();this.panzoomControl=control;if(this.wnd)this.wnd.appendChild(control.wnd);var s=control.wnd.style;s.position="absolute";s.left=left+"px";s.top=top+"px";s.visibility="";s.zIndex=99;};this.removePanzoomControl=function(){if(this.panzoomControl){if(this.wnd&&this.panzoomControl.wnd)this.wnd.removeChild(this.panzoomControl.wnd);this.panzoomControl=null;}};this.show=function(b){this.isShown=b;if(b){this.checkInitTilesArray();}else{this.tilesArrayReset();}};this.shift=function(sx,sy){if(this.inSmoothZoomMode)return;if(this.tilesLock)return;this.tilesLock=true;try{if(sx!=0||sy!=0){this.shiftX+=sx;this.shiftY+=sy;for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].shift)this.layers[i].shift(sx,sy);}
if(this.onShift)this.onShift(sx,sy);}catch(err){}
this.tilesLock=false;};this.getTilesLoaded=function(){var n=0;for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].tilesLoaded)n+=this.layers[i].tilesLoaded;return n;};this.setCenter=function(x,y){this.shift(x-this.shiftX,y-this.shiftY);};this.ajdustShift=function(sx,sy){this.shiftX+=sx;this.shiftY+=sy;for(var i=0;i<this.layers.length;i++)if(this.layers[i].ajdustShift)this.layers[i].ajdustShift(sx,sy);};this.getCenter=function(){return{x:this.shiftX,y:this.shiftY};};this.getCenterCoord=function(){return this.proj.revProjection(-this.shiftX,-this.shiftY);};this.getPointOnMap=function(p){return{x:p.x-this.wndCenterX-this.shiftX,y:p.y-this.wndCenterY-this.shiftY};};this.getPointInWindow=function(p){return{x:p.x+this.wndCenterX+this.shiftX,y:p.y+this.wndCenterY+this.shiftY};};this.getShiftTiles=function(){return{x:Math.round(this.shiftX/this.tileWidth+(this.nTilesX%2)/2),y:Math.round(this.shiftY/this.tileHeight+(this.nTilesY%2)/2)};};this.getShiftTile=function(){var p=this.getShiftTiles();return{x:this.shiftX-(p.x-(this.nTilesX%2)/2)*this.tileWidth,y:this.shiftY-(p.y-(this.nTilesY%2)/2)*this.tileHeight};};this.getTilePosition=function(x,y){var p=this.getShiftTile();return{x:Math.round(this.overlapX+x*this.tileWidth+p.x),y:Math.round(this.overlapY+y*this.tileHeight+p.y)};};this.getTileByPoint=function(x,y){var p=this.getTilePosition(0,0);return{x:Math.floor((x-p.x)/this.tileWidth),y:Math.floor((y-p.y)/this.tileHeight)};};this.checkInitTilesArray=function(){var nx_new=Math.ceil((this.wndWidth+this.tileWidth*(this.buffer+1)-1)/this.tileWidth);var ny_new=Math.ceil((this.wndHeight+this.tileHeight*(this.buffer+1)-1)/this.tileHeight);if(nx_new!=this.nTilesX||ny_new!=this.nTilesY){this.tilesArrayInit(nx_new,ny_new);}};this.tilesArrayInit=function(nx,ny){if(this.inTilesArrayInit)return;this.inTilesArrayInit=true;if(nx)this.nTilesX=nx;if(ny)this.nTilesY=ny;this.updateOverlap();if(this.onBeforeTilesArrayInit)this.onBeforeTilesArrayInit(this.nTilesX,this.nTilesY);for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].tilesArrayInit)this.layers[i].tilesArrayInit(this.nTilesX,this.nTilesY,true,null);this.inTilesArrayInit=false;};this.tilesArrayReset=function(){for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].tilesArrayReset)this.layers[i].tilesArrayReset();};this.onTileLoadRequest=function(tileLayer,tile,src){};this.onTileLoaded=function(tile){var s=tile.src;if(s){var t=s.indexOf('/',8);if(t>0)s=s.substring(t+1);}
if(!this.tileCache[s]){this.tileCache[s]=tile;this.tileCacheKeys.push(s);if(this.tileCacheKeys.length>this.maxCacheSize){var d=this.tileCacheKeys.shift();this.tileCache[d]=undefined;}}};this.zoomChange=function(delta,p){this.setZoom(this.zoom+delta,p);};this.setZoom=function(z,p){if(this.inSmoothZoomMode)return;if(this.tilesLock)return;this.tilesLock=true;try{if(!p)p={x:this.wndCenterX,y:this.wndCenterY};if(z<0)z=0;else if(z>this.maxZoom)z=this.maxZoom;if(this.zoom!=z){if(this.panzoomControl&&this.panzoomControl.setZoom)this.panzoomControl.setZoom(z);var delta=0;if(this.zoom!=-1){delta=z-this.zoom;this.zoom=z;var pw=Math.pow(2,delta);var pcx=p.x-this.wndCenterX,pcy=p.y-this.wndCenterY;this.shiftX=(this.shiftX-pcx)*pw+pcx;this.shiftY=(this.shiftY-pcy)*pw+pcy;}else{this.zoom=z;}
if(delta!=0){if(this.isShown)for(var i=0;i<this.layers.length;i++)if(this.layers[i].onZoomChange)this.layers[i].onZoomChange(delta,p);if(this.onZoomChange)this.onZoomChange(this.zoom,delta,p);if(Math.abs(delta)<4&&this.smoothZoomSteps>0){this.inSmoothZoomMode=true;this.smoothZoom(this.smoothZoomSteps,delta,p);}}}}catch(err){}
this.tilesLock=false;};this.getZoom=function(){return this.zoom;}
this.smoothZoom=function(step,delta,p){if(this.tilesLock){var tt=this,step2=step,delta2=delta,p2=p;setTimeout(function(){tt.smoothZoom(step2,delta2,p2);},this.smoothZoomPeriod);return;}
this.tilesLock=true;try{for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].smoothZoom)this.layers[i].smoothZoom(step,delta,p);if(step>0){var tp=this,step3=step-1,delta3=delta,p3=p;setTimeout(function(){tp.smoothZoom(step3,delta3,p3);},this.smoothZoomPeriod);}
else this.inSmoothZoomMode=false;}catch(err){}
this.tilesLock=false;};this.actionByName=function(action){switch(action){case"up":if(this.allowMove)if(!this.onControlUp||!this.onControlUp())this.shift(0,this.panStep);break;case"down":if(this.allowMove)if(!this.onControlDown||!this.onControlDown())this.shift(0,-this.panStep);break;case"left":if(this.allowMove)if(!this.onControlLeft||!this.onControlLeft())this.shift(this.panStep,0);break;case"right":if(this.allowMove)if(!this.onControlRight||!this.onControlRight())this.shift(-this.panStep,0);break;case"zoomIn":if(this.allowZoom)if(!this.onControlZoomIn||!this.onControlZoomIn())this.zoomChange(1);break;case"zoomOut":if(this.allowZoom)if(!this.onControlZoomOut||!this.onControlZoomOut())this.zoomChange(-1);break;case"zoomZero":if(this.allowZoom)if(!this.onControlZoomZero||!this.onControlZoomZero())this.setZoom(0);break;}};this.onresize=function(){if(this.wndWidth!=this.wnd.clientWidth||this.wndHeight!=this.wnd.clientHeight){this.setWndSize(this.wnd.clientWidth,this.wnd.clientHeight);this.checkInitTilesArray();}};this._onclick=function(pm,p){if(this.panzoomControl&&this.panzoomControl.getActionByPoint){var a=this.panzoomControl.getActionByPoint(p.x,p.y);if(a=="up"||a=="down"||a=="left"||a=="right"){return;}else if(a){this.actionByName(a);return;}}
if(this.onclick)if(this.onclick(pm,p))return;for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].onclick)if(this.layers[i].onclick(pm,p))break;if(typeof _gat=="undefined"){var a=document.createElement('script');a.src='https://www.google-analytics.com/ga.js';a.onload=function(){try{wikiskyGATracker=_gat._getTracker("UA-1162068-1");wikiskyGATracker._trackEvent('tilemanager','_onclick');}catch(e){}};document.body.appendChild(a);}else if(typeof wikiskyGATracker!="undefined"){try{wikiskyGATracker._trackEvent('tilemanager','_onclick');}catch(e){}}};this._onmousedown=function(evnt){var p=this.getMousePos(evnt);this.posPrevShift=this.posDown=p;if(this.panzoomControl&&this.panzoomControl.getActionByPoint){var a=this.panzoomControl.getActionByPoint(p.x,p.y);if(a){if(a=="up"||a=="down"||a=="left"||a=="right"){this.mouseDownPanAction=a;this.repeatAction();}}}
var pm=this.getPointOnMap(p);if(this.onmousedown)this.onmousedown(pm,p);for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].onmousedown)this.layers[i].onmousedown(pm,p);};this._onmouseup=function(evnt){this.posPrevShift=null;var p=this.getMousePos(evnt);this.mouseDownPanAction=null;var pm=this.getPointOnMap(p);if(this.onmouseup)this.onmouseup(pm,p,this.posDown);if(this.posDown&&p.x==this.posDown.x&&p.y==this.posDown.y)if(this._onclick(pm,p))return;for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].onmouseup)if(this.layers[i].onmouseup(pm,p))break;if(typeof _gat=="undefined"){var a=document.createElement('script');a.src='https://www.google-analytics.com/ga.js';a.onload=function(){try{wikiskyGATracker=_gat._getTracker("UA-1162068-1");wikiskyGATracker._trackEvent('tilemanager','onMouseUp');}catch(e){}};document.body.appendChild(a);}else if(typeof wikiskyGATracker!="undefined"){try{wikiskyGATracker._trackEvent('tilemanager','onMouseUp');}catch(e){}}};this._onmousemove=function(evnt){var p=this.getMousePos(evnt);this.mousePos=p;if(this.allowMove&&this.posPrevShift){var sx=p.x-this.posPrevShift.x,sy=p.y-this.posPrevShift.y;this.shift(sx,sy);this.posPrevShift=p;return;}
if(this.mouseDownPanAction&&this.panzoomControl&&this.panzoomControl.getActionByPoint){var a=this.panzoomControl?this.panzoomControl.getActionByPoint(p.x,p.y):false;if(a==this.mouseDownPanAction){}else{if(a=="up"||a=="down"||a=="left"||a=="right"){this.mouseDownPanAction=a;}}}
if(a){hideddrivetip();return;}
var pm=this.getPointOnMap(p);if(this.onmousemove)if(this.onmousemove(pm,p))return;for(var i=0;i<this.layers.length;i++)if(this.layers[i]&&this.layers[i].onmousemove)if(this.layers[i].onmousemove(pm,p))continue;};this.repeatAction=function(){if(this.mouseDownPanAction){this.actionByName(this.mouseDownPanAction);var tt=this;setTimeout(function(){tt.repeatAction();},this.panPeriod);}};this.getMousePos=function(evnt){if(document.all)evnt=event;this.evnt=evnt;var g=(document.all)?event.srcElement:evnt.currentTarget;this.g=g;var x,y;if(document.all)x=evnt.offsetX;else x=evnt.layerX-1;if(document.all)y=evnt.offsetY;else y=evnt.layerY-1;return{x:x,y:y};};}
function TileLayerSkymap(proj,options){this.proj=proj;this.init_angle=40.0;this.init_grid_ra_step=4.0;this.init_grid_de_step=60.0;this.init_vmag=7.0;this.showGrid=options&&options.showGrid!='undefined'?options.showGrid:true;this.showConstellationLines=options&&options.showConstLines!='undefined'?options.showConstLines:true;this.showConstellationBoundaries=options&&options.showConstBoundaries!='undefined'?options.showConstBoundaries:true;this.showConstellationNames=options&&options.showConstNames!='undefined'?options.showConstNames:false;this.showStars=options&&options.showStars!='undefined'?options.showStars:true;this.showGalaxies=options&&options.showGalaxies!='undefined'?options.showGalaxies:true;this.showTileBorders=options&&options.showTileBorders!='undefined'?options.showTileBorders:false;this.transparent=options&&options.transparent!='undefined'?options.transparent:false;this.custom=options&&options.custom!='undefined'?options.custom:false;this.language=options&&options.language?options.language:"EN";var layer1=new TileLayer("skymap");this.tileLayer=layer1;layer1.skymap=this;if(document.skymapServers)layer1.activeServers=document.skymapServers;else if(document.activeServers)layer1.activeServers=document.activeServers;else Server.getActiveServers({callback:function(data){if(data)layer1.activeServers=data;},errorHandler:function(errStr,ex){}});layer1.getTileSource=function(sx,sy,e){var x_shift=-128-sx,y_shift=-128-sy;var zoom=this.tMgr.getZoom();var angle=(40/Math.pow(2,zoom));var k=Math.pow(2,zoom);var gridRA=init_grid_ra_step/k;var gridDE=init_grid_de_step/k;return this.getActiveServer()+"map?w=256&h=256&ra="+this.skymap.proj.getRA()+"&de="+this.skymap.proj.getDE()+"&angle="+angle+"&mag="+(8+zoom)+"&grid_ra_step="+gridRA+"&grid_de_step="+gridDE+"&x_shift="+x_shift+"&y_shift="+y_shift+"&show_grid="+(this.skymap.showGrid?"1":"0")+"&show_const_lines="+(this.skymap.showConstellationLines?"1":"0")+"&show_const_boundaries="+(this.skymap.showConstellationBoundaries?"1":"0")+"&borders="+(this.skymap.showTileBorders?"1":"0")+"&show_const_names="+(this.skymap.showConstellationNames?"1":"0")+"&show_stars="+(this.skymap.showStars?"1":"0")+"&show_galaxies="+(this.skymap.showGalaxies?"1":"0")+"&language="+this.skymap.language+"&zoom="+(1+zoom)+(this.skymap.transparent?"&background_color=transparent":"")+(this.skymap.custom?"&custom=1":"");};layer1.getActiveServer=function(){if(typeof this.activeServers!='undefined'&&this.activeServers.length!=0){var n=Math.floor(Math.random()*this.activeServers.length);if(n<0)n=0;else if(n>=this.activeServers.length)n=this.activeServers.length-1;if(typeof this.activeServers[n]!='undefined'){return this.activeServers[n]+'/';}}
return'';};return layer1;}
function TileLayerDSS(proj,imgSource,survey){var layer1=new TileLayer("DSS");layer1.proj=proj;layer1.imgSource=imgSource;layer1.survey=survey;if(document.imgcutServers)layer1.activeServers=document.imgcutServers;else if(document.activeServers)layer1.activeServers=document.activeServers;else Server.getActiveImgServers({callback:function(data){if(data)layer1.activeServers=data;},errorHandler:function(errStr,ex){}});layer1.showTileBorders=false;layer1.showImgBorders=false;layer1.getTileSource=function(sx,sy,e){var x_shift=-128-sx,y_shift=-128-sy;var angle=Math.round(this.proj.getResolution()*this.tMgr.tileWidth*1e10)/1e10;var quality=(this.tMgr&&this.tMgr.jpegQuality&&this.tMgr.jpegQuality!=0.8)?"&jpeg_quality="+this.tMgr.jpegQuality:"";return this.getActiveServer(x_shift,y_shift)+"imgcut?img_id=all&survey="+this.survey+"&angle="+angle+"&ra="+this.proj.getRA()+"&de="+this.proj.getDE()+"&x_shift="+x_shift+"&y_shift="+y_shift+"&borders="+(this.showTileBorders?"1":"0")+"&img_borders="+(this.showImgBorders?"1":"0")+quality;};layer1.getActiveServer=function(x,y){if(this.activeServers&&this.activeServers.length>0){if(x||y)
var n=Math.abs(Math.round((x+y)/256))%this.activeServers.length;else
var n=Math.floor(Math.random()*this.activeServers.length);if(n<0)n=0;else if(n>=this.activeServers.length)n=this.activeServers.length-1;if(this.activeServers[n]){return this.activeServers[n]+'/';}}
return'';};layer1.roundPosition=function(newRA,newDE,proj){var a=proj.getResolution()*this.tMgr.tileWidth;if(a<20)a=20;var t_ra=Math.round(newRA*15.0/a)/15.0*a;if(t_ra>=24)t_ra-=24;else if(t_ra<0)t_ra+=24;var t_de=Math.round(newDE/a)*a;if(t_de<-90)t_de=-90;else if(t_de>90)t_de=90;return{ra:t_ra,de:t_de};};return layer1;}
function TileLayerSDSS(proj,imgSource,survey){var layer1=new TileLayer("SDSS");layer1.proj=proj;layer1.imgSource=imgSource;layer1.survey=survey;if(document.imgcutServers)layer1.activeServers=document.imgcutServers;else if(document.activeServers)layer1.activeServers=document.activeServers;else Server.getActiveImgServers({callback:function(data){if(data)layer1.activeServers=data;},errorHandler:function(errStr,ex){}});layer1.showTileBorders=false;layer1.showImgBorders=false;layer1.getTileSource=function(sx,sy,e){if((imgSource!="SDSS3"&&imgSource!="SDSS4"&&imgSource!="SDSS5"&&imgSource!="SDSS6")||this.proj.getResolution()>=0.002083){var x_shift=-128-sx,y_shift=-128-sy;var angle=Math.round(this.proj.getResolution()*this.tMgr.tileWidth*1e10)/1e10;var quality=(this.tMgr&&this.tMgr.jpegQuality&&this.tMgr.jpegQuality!=0.8)?"&jpeg_quality="+this.tMgr.jpegQuality:"";return this.getActiveServer(x_shift,y_shift)+"imgcut?img_id=all&survey="+this.survey+"&angle="+angle+"&ra="+this.proj.getRA()+"&de="+this.proj.getDE()+"&x_shift="+x_shift+"&y_shift="+y_shift+"&borders="+(this.showTileBorders?"1":"0")+"&img_borders="+(this.showImgBorders?"1":"0")+quality;}
var pd=this.proj.revProjection(128+sx,128+sy);var dr=7;if(imgSource=="SDSS3")dr=3;else if(imgSource=="SDSS4")dr=4;else if(imgSource=="SDSS5")dr=5;else if(imgSource=="SDSS6")dr=6;return"http://casjobs.sdss.org/ImgCutoutDR"+dr+"/getjpeg.aspx?width=256&height=256&ra="+Math.round(pd.ra*15*1e8)/1e8+"&dec="+Math.round(pd.de*1e8)/1e8+"&scale="+Math.round(proj.getResolution()*3600*1e7)/1e7;};layer1.getActiveServer=function(x,y){if(this.activeServers&&this.activeServers.length>0){if(x||y)
var n=Math.abs(Math.round((x+y)/256))%this.activeServers.length;else
var n=Math.floor(Math.random()*this.activeServers.length);if(n<0)n=0;else if(n>=this.activeServers.length)n=this.activeServers.length-1;if(this.activeServers[n]){return this.activeServers[n]+'/';}}
return'';};return layer1;}
function TileLayerAstrophoto(proj,imgSource,survey){var layer1=new TileLayer("astrophoto");layer1.proj=proj;layer1.imgSource=imgSource;layer1.survey=survey;if(document.imgcutServers)layer1.activeServers=document.imgcutServers;else if(document.activeServers)layer1.activeServers=document.activeServers;else Server.getActiveImgServers({callback:function(data){if(data)layer1.activeServers=data;},errorHandler:function(errStr,ex){}});layer1.showTileBorders=false;layer1.showImgBorders=(survey=="");layer1.getTileSource=function(sx,sy,e){var x_shift=-128-sx,y_shift=-128-sy;var angle=Math.round(this.proj.getResolution()*this.tMgr.tileWidth*1e10)/1e10;return this.getActiveServer(x_shift,y_shift)+"imgcut?img_id="+this.imgSource.substr(4)+(this.survey!=""?"&survey="+this.survey:"")+"&angle="+angle+"&ra="+this.proj.getRA()+"&de="+this.proj.getDE()+"&x_shift="+x_shift+"&y_shift="+y_shift+"&borders="+(this.showTileBorders?"1":"0")+"&img_borders="+(this.showImgBorders?"1":"0");};layer1.getActiveServer=function(x,y){if(this.activeServers&&this.activeServers.length>0){if(x||y)
var n=Math.abs(Math.round((x+y)/256))%this.activeServers.length;else
var n=Math.floor(Math.random()*this.activeServers.length);if(n<0)n=0;else if(n>=this.activeServers.length)n=this.activeServers.length-1;if(this.activeServers[n]){return this.activeServers[n]+'/';}}
return'';};layer1.roundPosition=function(newRA,newDE,proj){var a=proj.getResolution()*this.tMgr.tileWidth;if(a<20)a=20;var t_ra=Math.round(newRA*15.0/a)/15.0*a;if(t_ra>=24)t_ra-=24;else if(t_ra<0)t_ra+=24;var t_de=Math.round(newDE/a)*a;if(t_de<-90)t_de=-90;else if(t_de>90)t_de=90;return{ra:t_ra,de:t_de};};return layer1;}
function TileLayerAstrophotoInfo(proj,imgSource,imgLayer,rPanel){var layer1=new TileLayer("astrophoto_info");layer1.proj=proj;layer1.imgSource=imgSource;layer1.imgLayer=imgLayer;layer1.imgsShowAll=false;layer1.imgsToShow=new Array();layer1.imgsToHide=new Array();dwr.engine.setRpcType(dwr.engine.ScriptTag);Images._path="http://server1.sky-map.org/dwr";var t_src=imgSource.split(":");if(t_src&&t_src.length>0&&t_src[0].substring(0,4)=="IMG_")t_src[0]=t_src[0].substring(4);for(var i in t_src){if(t_src[i]=="all")layer1.imgsShowAll=true;else{var t=1*t_src[i];if(t>0)layer1.imgsToShow[t]=true;else if(t<0)layer1.imgsToHide[-t]=true;}}
if(rPanel){layer1.RP_imgs=rPanel.addItem('Astro Images',{canClose:false,canCollapse:true});layer1.RP_imgs.expand();layer1.RP_imgs.show(true);layer1.RP_imgs.layer=layer1;layer1.RP_imgs.onExpand=function(){this.layer.checkLoadTiles();};layer1.onReset=function(){this.RP_imgs.reset();};}
layer1.createNewTile=function(x,y,visible){var tp=this.tMgr.getTilePosition(x,y);var tw=this.tMgr.tileWidth,th=this.tMgr.tileHeight;var t;t=document.createElement("DIV");t.tileLayer=this;t.id=this.name+'_i'+x+''+y;t.indexX=x;t.indexY=y;t.style.position='absolute';t.style.left=tp.x+'px';t.style.top=tp.y+'px';t.style.visibility=visible?"":"hidden";t.style.zIndex=this.zIndex;t.style.width=tw+'px';t.style.height=th+'px';t.style.borderBottom="1px solid #404040";t.style.borderRight="1px solid #404040";t.style.color="#C0C0C0";t.style.fontSize="7pt";t.style.fontFamily="verdana";t.style.whiteSpace="normal";t.style.wordWrap="break-word";t.style.overflow="hidden";t.UNSELECTABLE="on";t.complete=true;this.onTileLoaded(t);if(this.onNewTile)this.onNewTile(t);return t;};layer1.onBeforeTilesArrayInit=function(nx,ny,visible,exArea){this.tilesData=null;};layer1.checkLoadTiles=function(){this.loadShiftX=null;this.loadShiftY=null;var xN=this.tMgr.nTilesX,yN=this.tMgr.nTilesY;var ps=this.tMgr.getShiftTiles();var rx=-ps.x-Math.floor(xN/2),ry=-ps.y-Math.floor(yN/2);var tw=this.tMgr.tileWidth,th=this.tMgr.tileHeight;for(var x=0;x<this.tiles.length;x++){for(var y=0;y<this.tiles[x].length;y++){this.loadTile(this.tiles[x][y],(x+rx)*tw,(y+ry)*th);}}
this.forceLoadTiles();};layer1.loadTile=function(tile,x,y,force){try{this.tilesLoaded++;var shiftX=-this.tMgr.tileWidth/2-x,shiftY=-this.tMgr.tileHeight/2-y;tile.innerHTML="&nbsp;xy={"+shiftX+","+shiftY+"}";if(force||!this.tilesData||!this.tilesData[shiftX+","+shiftY]){if(!this.loadShiftX)this.loadShiftX=new Array();if(!this.loadShiftY)this.loadShiftY=new Array();this.loadShiftX.push(shiftX);this.loadShiftY.push(shiftY);}else{tile.imgs=this.tilesData[shiftX+","+shiftY];}}catch(e){}};layer1.forceLoadTiles=function(){if(!this.RP_imgs||!this.RP_imgs.isExpanded)return;if(this.loadShiftX&&this.loadShiftX.length){var layer=this;var loadShiftX=this.loadShiftX;var loadShiftY=this.loadShiftY;this.loadShiftX=null;this.loadShiftY=null;var ra=this.proj.getRA(),de=this.proj.getDE(),res=this.proj.getResolution(),rot=this.proj.getRotation(),rev=this.proj.getReverse();Images.getImgListInArea(4,ra,de,res,rot,rev,this.tMgr.tileWidth,this.tMgr.tileHeight,loadShiftX,loadShiftY,this.imgSource,{callback:function(data){if(data&&ra==layer.proj.getRA()&&de==layer.proj.getDE()&&res==layer.proj.getResolution()&&rot==layer.proj.getRotation()&&rev==layer.proj.getReverse()){if(!layer.tilesData)layer.tilesData=new Array();var xN=layer.tMgr.nTilesX,yN=layer.tMgr.nTilesY;var ps=layer.tMgr.getShiftTiles();var tw=layer.tMgr.tileWidth,th=layer.tMgr.tileHeight;var rx=-tw/2+(ps.x+Math.floor(xN/2))*tw,ry=-th/2+(ps.y+Math.floor(yN/2))*th;for(var i=0;layer.tilesData&&i<loadShiftX.length;i++){if(!data[i])continue;layer.tilesData[loadShiftX[i]+","+loadShiftY[i]]=data[i];var x=(rx-loadShiftX[i])/tw,y=(ry-loadShiftY[i])/th;if(x<0||y<0||x>=xN||y>=yN)continue;if(layer.tiles&&layer.tiles[x]&&layer.tiles[x][y]){layer.tiles[x][y].imgs=data[i];}else{}}
layer.updateVisibleImgsList();}}});}else{this.updateVisibleImgsList();}};layer1.onShift=function(sx,sy){this.updateVisibleImgsList();};layer1.updateVisibleImgsList=function(){if(!this.tiles||!this.imgListByRes)return;if(!this.RP_imgs||!this.RP_imgs.isExpanded)return;var newList=new Array();var m=this.tMgr;var xN=m.nTilesX,yN=m.nTilesY;var tw=m.tileWidth,th=m.tileHeight;var imgsInTiles=new Array();var minX=0,maxX=xN,minY=0,maxY=yN;var tp=m.getTilePosition(0,0);if(tp.x<=0)minX=Math.floor((-tp.x)/tw);if(tp.y<=0)minY=Math.floor((-tp.y)/th);maxX=Math.min(Math.ceil((m.wndWidth-tp.x+20)/tw),xN);maxY=Math.min(Math.ceil((m.wndHeight-tp.y)/th),yN);for(var x=minX;x<maxX;x++){for(var y=minY;y<maxY;y++){var a=this.tiles[x][y].imgs;if(a)for(var i in a)if(a[i]>0)imgsInTiles[a[i]]=true;else if(!imgsInTiles[-a[i]])imgsInTiles[-a[i]]=false;}}
if(!this.arraysEqual(this.imgsInTiles,imgsInTiles)){this.imgsInTiles=imgsInTiles;for(var i in this.imgListByRes){if(imgsInTiles[this.imgListByRes[i]]==true)newList.push(this.imgListByRes[i]);else if(imgsInTiles[this.imgListByRes[i]]==false)newList.push(-this.imgListByRes[i]);}
this.updateImgsTable(newList);}else{}};layer1.updateImgsTable=function(newList){if(!this.RP_imgs||!this.RP_imgs.isExpanded)return;var s="";if(!this.imgDetails)this.imgDetails=new Array();var imgToGetDetails=new Array();for(var i=0;i<newList.length;i++){var aid=newList[i],id=Math.abs(aid);var title;if(this.imgDetails[id])title=this.imgDetails[id].description;else{imgToGetDetails.push(id);title="Image#"+id;}
var toShow=true;if(this.imgsToHide[id])toShow=false;else if(aid<0)toShow=false;else if(!this.imgsShowAll&&!this.imgsToShow[id])toShow=false;s+="<tr valign=bottom><td nowrap><a href='#' style='color:"+(toShow?"white":"gray")+"' onclick='$(\"pr_imgs_body_tbl\").layer.onImgLinkClick(this,"+id+");return false' onmouseover='$(\"pr_imgs_body_tbl\").layer.showLabel("+id+")' onmouseout='hideddrivetip();'>"+title+"</a></td></tr>";}
if(imgToGetDetails.length>0){var layer=this;Images.getImgDetails(imgToGetDetails,{callback:function(data){if(data){for(var i in data)layer.imgDetails[imgToGetDetails[i]]=data[i];layer.imgsInTiles=null;layer.updateVisibleImgsList();}}});}
this.RP_imgs.setBody("<table id='pr_imgs_body_tbl' cellspacing=0 cellpadding=0 border=0 style='color:white;font-family:verdana;font-size:8pt'>"+s+"</table>");$("pr_imgs_body_tbl").layer=this;};layer1.onImgLinkClick=function(lnk,imgId){if(lnk.style.color=="white"){lnk.style.color="gray";this.imgsToShow[imgId]=false;if(this.imgsShowAll)this.imgsToHide[imgId]=true;}else{lnk.style.color="white";this.imgsToHide[imgId]=false;if(!this.imgsShowAll)this.imgsToShow[imgId]=true;}
var newSrc=this.getImgSourceString();if(this.imgLayer){this.imgSource=this.imgLayer.imgSource=newSrc;var xN=this.tMgr.nTilesX,yN=this.tMgr.nTilesY;var ps=this.tMgr.getShiftTiles();var tw=this.tMgr.tileWidth,th=this.tMgr.tileHeight;var rx=-ps.x-Math.floor(xN/2),ry=-ps.y-Math.floor(yN/2);for(var x=0;x<xN;x++){for(var y=0;y<yN;y++){if(this.arrayContains(this.tiles[x][y].imgs,imgId)){var sx=(rx+x)*tw,sy=(ry+y)*th;this.imgLayer.loadTile(this.imgLayer.tiles[x][y],sx,sy,true);this.loadTile(this.tiles[x][y],sx,sy,true);}}}
if(this.imgLayer.forceLoadTiles)this.imgLayer.forceLoadTiles();if(this.forceLoadTiles)this.forceLoadTiles();}
if(this.onImgSourceChanged)this.onImgSourceChanged(newSrc);};layer1.showLabel=function(imgId){var d=this.imgDetails[imgId];var id6=""+imgId;while(id6.length<6)id6="0"+id6;ddrivetip("<table id='tile_layer_img_info_label' cellspacing=0 cellpadding=0 borders=0 style='color:black;font-size:8pt'><tr style='background-color:lightgray'><td align=center colspan=2 nowrap style='font-weight:bold'>"+escapeHtml(d.description)+"</td></tr><tr valign=top><td><img src='http://images.sky-map.org/star_img_thumb/"+id6.substring(0,3)+"/"+id6+".jpeg'></td><td><table border=0 cellspacing=0 cellpadding=2 style='color:black;font-size:8pt'><tr><td nowrap align=right>Resolution:</td><td nowrap>"+this.formatAngle(d.resolution)+"/pixel"+"</td></tr><tr><td nowrap align=right>Dimensions:</td><td nowrap>"+d.width+"x"+d.height+" pixels</td></tr><tr><td nowrap align=right>Coverage:</td><td nowrap>"+this.formatAngle(d.width*d.resolution)+" x "+this.formatAngle(d.height*d.resolution)+"</td></tr><tr><td nowrap align=right>Author:</td><td></td></tr></table></td></tr></table>","yellow",0,0,{maxWidth:200,backgroundColor:'yellow',color:'black',border:'2px solid red',fontSize:'8pt'});};layer1.getImgSourceString=function(){var s;for(var i in this.imgsToShow){if(this.imgsToShow[i])
if(s)s+=":"+i;else s=""+i;}
for(var i in this.imgsToHide){if(this.imgsToHide[i])
if(s)s+=":-"+i;else s="-"+i;}
if(this.imgsShowAll){if(s)s+=":all";else s="all";}
return"IMG_"+s;};layer1.arraysEqual=function(a1,a2){if(typeof a1!="object")return typeof a2!="object";if(a1==null)return a2==null;else if(a2==null)return false;for(var i in a1)if(a1[i]!=a2[i])return false;for(var i in a2)if(a1[i]!=a2[i])return false;return true;};layer1.arrayContains=function(a,v){if(!a)return false;if(v<0)v=-v;for(var i in a)if(Math.abs(a[i])==v)return true;return false;};layer1.formatAngle=function(a){var u,k,r=10;if(a>=1){u="&deg;";k=1;}
else if(a>=1/60){u="&prime;";k=60;}
else{u="&Prime;";k=3600;if(a*3600<1)r=100;if(a*3600<.1)r=1000;if(a*3600<.01)r=10000;}
return(Math.round(a*k*r)/r)+u;};Images.getImgListSortedByResolution({callback:function(data){if(data){layer1.imgListByRes=data;layer1.updateVisibleImgsList();}}});return layer1;}
function PanzoomCompact(){this.name="PanzoomCompact";this.imgURL="http://sky-map.org/img/";var d=document.createElement("DIV");this.wnd=d;d.id=this.name;var s=d.style;s.width="36px";s.height="112px";this.createButton=function(id,left,top,width,height){var t=new Image;t.tileLayer=this;t.id=this.name+'_'+id;t.border=0;t.style.position='absolute';t.style.left=left+'px';t.style.top=top+'px';t.style.width=width+'px';t.style.height=height+'px';t.src=this.imgURL+this.name+"/"+id+".gif";t.GALLERYIMG='no';this.wnd.appendChild(t);return t;};this.up=this.createButton("up",9,0,18,18);this.left=this.createButton("left",0,18,18,18);this.right=this.createButton("right",18,18,18,18);this.down=this.createButton("down",9,36,18,18);this.zoomIn=this.createButton("zoomIn",9,58,18,18);this.zoomZero=this.createButton("zoomZero",9,76,18,18);this.zoomOut=this.createButton("zoomOut",9,94,18,18);this.getActionByPoint=function(x,y){if(this.wnd){x-=this.wnd.offsetLeft;y-=this.wnd.offsetTop;}
if(this._testPoint(this.up,x,y))return"up";if(this._testPoint(this.left,x,y))return"left";if(this._testPoint(this.right,x,y))return"right";if(this._testPoint(this.down,x,y))return"down";if(this._testPoint(this.zoomIn,x,y))return"zoomIn";if(this._testPoint(this.zoomZero,x,y))return"zoomZero";if(this._testPoint(this.zoomOut,x,y))return"zoomOut";return null;};this._testPoint=function(e,x,y){return x>=e.offsetLeft&&x<e.offsetLeft+e.offsetWidth&&y>=e.offsetTop&&y<e.offsetTop+e.offsetHeight;}}
function TileScale(parentWnd,options){this.name="scale";this.parentWnd=parentWnd;this.options=options;this.height=options&&options.scaleHeight?options.scaleHeight:8;this.maxLen=options&&options.scaleMaxLen?options.scaleMaxLen:110;this.scale=0;var color=options&&options.scaleColor?options.scaleColor:"white";this.color=color;this.lineWidth=options&&options.scaleLineWidth?options.scaleLineWidth:2;var t1=document.createElement("DIV");this.ruler=t1;s=t1.style;t1.id="scale_ruler";s.position="absolute";s.left="15px";s.bottom="10px";s.height=this.height+"px";s.zIndex=100;s.borderLeft=this.lineWidth+"px solid "+color;s.borderRight=this.lineWidth+"px solid "+color;s.borderBottom=this.lineWidth+"px solid "+color;parentWnd.appendChild(t1);var t2=document.createElement("SPAN");this.capt=t2;s=t2.style;t2.id="scale_caption";s.position="absolute";s.top="-7px";s.left="0px";s.color=color;s.fontSize="8pt";s.fontWeight="bold";s.fontFamily="verdana";s.textAlign="center";t1.appendChild(t2);this.reset=function(){if(this.parentWnd&&this.ruler)this.parentWnd.removeChild(this.ruler);}
this.setColor=function(c){this.color=c;this.ruler.style.borderLeft=this.lineWidth+"px solid "+c;this.ruler.style.borderRight=this.lineWidth+"px solid "+c;this.ruler.style.borderBottom=this.lineWidth+"px solid "+c;this.capt.style.color=c;};this.setLineWidth=function(lw){this.lineWidth=lw;this.ruler.style.borderLeft=lw+"px solid "+this.color;this.ruler.style.borderRight=lw+"px solid "+this.color;this.ruler.style.borderBottom=lw+"px solid "+this.color;};this.setMaxSize=function(mw){this.maxLen=mw;this.redraw();};this.setHeight=function(h){this.height=h;this.ruler.style.height=h+"px";};this.setScale=function(scale){this.scale=scale;this.redraw();};this.redraw=function(){if(!this.scale)return;var m=this.scale*this.maxLen;var unit,k;if(m>=1){unit="&deg;";k=1;m=this._roundM(m);}
else if(m>=1/60){unit="&prime;";k=60;m=this._roundM(m*k);}
else if(m>=1/3600){unit="&Prime;";k=3600;m=this._roundM(m*k);}
else if(m>=1/3600/2){unit="&Prime;";k=3600;m=this._roundM(m*k*2)/2;}
else if(m>=1/3600/4){unit="&Prime;";k=3600;m=this._roundM(m*k*4)/4;}
else if(m>=1/3600/5){unit="&Prime;";k=3600;m=this._roundM(m*k*5)/5;}
else if(m>=1/3600/10){unit="&Prime;";k=3600;m=this._roundM(m*k*10)/10;}
else{unit="&Prime;";k=3600;m=Math.round(m*k*100)/100;}
var sz=Math.round(m/this.scale/k);this.ruler.style.width=sz+"px";this.capt.style.width=sz+"px";this.capt.innerHTML=m+unit;};this._roundM=function(m){if(m>=60)m=60;else if(m>=45)m=45;else if(m>=30)m=30;else if(m>=15)m=15;else if(m>=10)m=10;else if(m>=5)m=5;else if(m>=2)m=2;else if(m>=1)m=1;return m;};}
function TileStatus(parentWnd){this.name="status";this.parentWnd=parentWnd;this.prefLen=80;this.maxLen=110;this.scale=0;var t1=document.createElement("SPAN");this.wnd=t1;s=t1.style;s.position="absolute";s.right="0px";s.bottom="0px";t1.id="status";s.border="1px solid #808080";s.padding="2px";s.backgroundColor="#404040";s.color="white";s.fontSize="8pt";s.zIndex=100;s.fontWeight="normal";s.fontFamily="verdana";t1.innerHTML="Loading..."
parentWnd.appendChild(t1);this.reset=function(){if(this.parentWnd&&this.wnd)this.parentWnd.removeChild(this.wnd);}
this.setText=function(msg){this.msg=msg;this.wnd.innerHTML=msg;};}
function TilePosition(parentWnd,options){this.name="position";this.parentWnd=parentWnd;if(!options)options={};this.options=options;this.tMgr=null;this.zIndex=98;var t1=document.createElement("SPAN");t1.id="d_pos";this.wnd=t1;s=t1.style;s.position="absolute";s.right="3px";s.top="0px";s.color=options.posColor?options.posColor:"white";s.fontSize=options.posFontSize?options.posFontSize:"9pt";s.zIndex=98;s.textAlign="right";s.fontWeight=options.posFontWeight?options.posFontWeight:"bold";s.fontFamily=options.posFontFamily?options.posFontFamily:"verdana";parentWnd.appendChild(this.elementPos=t1);this.init=function(tMgr){this.tMgr=tMgr;if(this.elementPos){this.elementPos.style.zIndex=this.zIndex;}};this.reset=function(){if(this.parentWnd&&this.wnd){this.parentWnd.removeChild(this.wnd);this.tMgr=null;}}
this.setZIndex=function(z){if(this.zIndex!=z){this.zIndex=z;if(this.elementPos)this.elementPos.style.zIndex=z;}};this.onmousemove=function(p){if(this.tMgr&&this.tMgr.proj&&p){var pd=this.tMgr.proj.revProjection(p.x,p.y);if(this.elementPos)this.elementPos.innerHTML="("+this.formatRA(pd.ra)+" "+this.formatDE(pd.de)+")";}};this.shift=function(sx,sy){if(this.tMgr&&this.tMgr.mousePos)this.onmousemove(this.tMgr.getPointOnMap(this.tMgr.mousePos));};this.formatRA=function(ra){if(ra<0){ra+=24;}else if(ra>=24){ra-=24;}
var hh=Math.floor(ra).toFixed(0);if(hh.length==1){hh="0"+hh;}
var mm=Math.floor(((ra-Math.floor(ra))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((ra*60-Math.floor(ra*60))*60).toFixed(2);if(ss.length==4){ss="0"+ss;}
return hh+"<sup>h</sup>"+mm+"<sup>m</sup>"+ss+"<sup>s</sup>";}
this.formatDE=function(de){var deg=Math.floor(Math.abs(de)).toFixed(0);if(deg.length==1){deg="0"+deg;}
if(de<0){deg="-"+deg;}else{deg="+"+deg;}
var mm=Math.floor(Math.abs((Math.abs(de)-Math.floor(Math.abs(de)))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((Math.abs(de)*60-Math.floor(Math.abs(de*60)))*60).toFixed(1);if(ss.length==3){ss="0"+ss;}
return deg+"&deg;"+mm+"&prime;"+ss+"&Prime;";}}
function TileLayerStickers(name,proj){this.tMgr=null;this.name=name;this.proj=proj;this.visible=true;this.zIndex=98;this.imgURL="http://sky-map.org/img/";this.stickers=new Array();this.init=function(tMgr){this.tMgr=tMgr;};this.reset=function(){for(var i in this.stickers){if(this.stickers[i]){try{this.tMgr.wnd.removeChild(this.stickers[i].obj);}catch(e){}}}
this.stickers=new Array();if(this.onReset)this.onReset();};this.setZIndex=function(z){if(this.zIndex!=z){this.zIndex=z;for(var i in this.stickers)if(this.stickers[i])this.stickers[i].style.zIndex=z;}};this.addSticker=function(e,stickTo,shift){e.layer=this;e.UNSELECTABLE="on";var s={obj:e,stickTo:stickTo,shift:shift};e.style.zIndex=this.zIndex;if(!e.parent&&this.tMgr&&this.tMgr.wnd)this.tMgr.wnd.appendChild(e);this.stickers.push(s);this.updatePos(s);};this.removeSticker=function(s){for(var i in this.stickers){if(this.stickers[i]&&(s==this.stickers[i]||s==this.stickers[i].obj)){var t=this.stickers.splice(i,1);if(t&&t.length>0&&t[0].obj){try{this.tMgr.wnd.removeChild(t[0].obj);}catch(e){}}
break;}}};this.addImg=function(ra,de,imgPath){var im=new Image;im.ra=ra;im.de=de;im.src=imgPath;im.GALLERYIMG='no';this.addSticker(im,"map","center");return im;};this.addBox=function(ra,de,size,relSize,border,canClose){if(typeof ra=="object"){de=ra.de;size=ra.size;relSize=ra.varSize;border=ra.border;canClose=ra.canClose;ra=ra.ra;}
var d=document.createElement("DIV");d.ra=ra;d.de=de;var sx=size,sy=size;if(typeof size=="object"&&size.x&&size.y){sx=size.x;sy=size.y;}
if(relSize){d.relSize=true;d.relSizeX=sx;d.relSizeY=sy;}else{d.style.width=Math.round(sx)+"px";d.style.height=Math.round(sy)+"px";}
if(!border)border="1px solid white";d.style.border=border;if(canClose){var cb=new Image;cb.id="sticker_close_btn";cb.src=this.imgURL+"close3.gif";cb.style.width="11px";cb.style.height="11px";cb.border=0;d.appendChild(cb);d.onclick=function(p){var e=this.firstChild;if(e&&e.id=="sticker_close_btn"){if(p.x>=e.offsetLeft&&p.x<e.offsetLeft+e.offsetWidth&&p.y>=e.offsetTop&&p.y<e.offsetTop+e.offsetHeight){this.layer.removeSticker(this);return true;}}
return false;};d.style.textAlign="right";}
this.addSticker(d,"map","center");return d;};this.updatePos=function(s){this.updateSize(s.obj);var pw;if(s.stickTo=="map"){var p=this.proj.projection(s.obj.ra,s.obj.de);pw=this.tMgr.getPointInWindow(p);}else{pw={x:s.stickTo.offsetLeft,y:s.stickTo.offsetTop};}
var c=this.topLeftCorner(s);if(c){pw.x+=c.x;pw.y+=c.y;}
s.obj.style.position="absolute";s.obj.style.left=Math.round(pw.x)+"px";s.obj.style.top=Math.round(pw.y)+"px";};this.topLeftCorner=function(s){var ret={x:0,y:0};if(s.shift=="center"){ret.x=-s.obj.offsetWidth/2;ret.y=-s.obj.offsetHeight/2;}else if(s.shift&&(s.shift.x||s.shift.y)){if(s.shift.x=="center")ret.x=-s.obj.offsetWidth/2;else if(s.shift.x)ret.x=s.shift.x;if(s.shift.y=="center")ret.y=-s.obj.offsetHeight/2;else if(s.shift.y)ret.y=s.shift.y;}
return ret;};this.updateSize=function(s,resolution){if(s.relSize&&s.relSizeX&&s.relSizeY){if(!resolution)resolution=this.proj.getResolution();var bw=Math.round(s.relSizeX/resolution);var bh=Math.round(s.relSizeY/resolution);var minSize=s.canClose?13:3;if(bw<minSize)bw=minSize;if(bh<minSize)bh=minSize;if(bw>20000||bh>20000){s.style.visibility="hidden";return null;}
s.style.visibility="";s.style.width=bw+"px";s.style.height=bh+"px";}
return s;};this.updatePositions=function(){for(var i in this.stickers)this.updatePos(this.stickers[i]);};this.tilesArrayInit=function(nx,ny,visible,exArea){this.updatePositions();};this.shift=function(sx,sy){for(var i in this.stickers){var s=this.stickers[i].obj;if(s.style.visibility!="hidden"){s.style.left=(s.offsetLeft+sx)+"px";s.style.top=(s.offsetTop+sy)+"px";}}};this.onZoomChange=function(delta,p){if(!this.tMgr.smoothZoomSteps)this.updatePositions();else this.oldResolution=this.proj.getResolution();};this.smoothZoom=function(step,delta,p){if(step==0){this.updatePositions();return;}
if(step==this.tMgr.smoothZoomSteps){for(var j in this.stickers){var a=this.stickers[j].obj;a.origX=a.offsetLeft;a.origY=a.offsetTop;}}
var k=Math.pow(2,delta*(this.tMgr.smoothZoomSteps-step+1)/this.tMgr.smoothZoomSteps);for(var i in this.stickers){var s=this.stickers[i];var e=s.obj;if(e.relSize){this.updateSize(e,this.oldResolution/k);e.style.left=Math.round(p.x+(e.origX-p.x)*k)+"px";e.style.top=Math.round(p.y+(e.origY-p.y)*k)+"px";}else{var c=this.topLeftCorner(s);e.style.left=Math.round(p.x+c.x+(e.origX-c.x-p.x)*k)+"px";e.style.top=Math.round(p.y+c.y+(e.origY-c.y-p.y)*k)+"px";}}};this.onclick=function(pm,p){for(var i in this.stickers){if(this.stickers[i]){var e=this.stickers[i].obj;if(e&&e.onclick&&p.x>=e.offsetLeft&&p.x<e.offsetLeft+e.offsetWidth&&p.y>=e.offsetTop&&p.y<e.offsetTop+e.offsetHeight)
if(e.onclick({x:p.x-e.offsetLeft,y:p.y-e.offsetTop},pm,p))
return true;}}
return false;};this.onmousedown=function(pm,p){for(var i in this.stickers){if(this.stickers[i]){var e=this.stickers[i].obj;if(e&&e.onmousedown&&p.x>=e.offsetLeft&&p.x<e.offsetLeft+e.offsetWidth&&p.y>=e.offsetTop&&p.y<e.offsetTop+e.offsetHeight)
e.onmousedown({x:p.x-e.offsetLeft,y:p.y-e.offsetTop},pm,p);}}};this.onmouseup=function(pm,p){for(var i in this.stickers){if(this.stickers[i]){var e=this.stickers[i].obj;if(e&&e.onmouseup&&p.x>=e.offsetLeft&&p.x<e.offsetLeft+e.offsetWidth&&p.y>=e.offsetTop&&p.y<e.offsetTop+e.offsetHeight)
e.onmouseup({x:p.x-e.offsetLeft,y:p.y-e.offsetTop},pm,p);}}};this.onmousemove=function(p){for(var i in this.stickers){if(this.stickers[i]){var e=this.stickers[i].obj;if(e&&e.onmouseover&&p.x>=e.offsetLeft&&p.x<e.offsetLeft+e.offsetWidth&&p.y>=e.offsetTop&&p.y<e.offsetTop+e.offsetHeight){e.onmouseover(e.overPos={x:p.x-e.offsetLeft,y:p.y-e.offsetTop},pm,p);}else if(e&&e.overPos&&e.onmouseout){e.overPos=null;e.onmouseout();}}}};}
function TileLayerLabels(name,proj,langId){this.tMgr=null;this.name=name;this.proj=proj;this.visible=true;this.langId=langId;this.labels=new Array();this.radPerDeg=Math.PI/180.0;this.constellationNames=null;this.objectViewUrl="http://sky-map.org/starview";dwr.engine.setRpcType(dwr.engine.ScriptTag);Labels._path="http://server1.sky-map.org/dwr";this.init=function(tMgr){this.loadLocales();this.tMgr=tMgr;};this.reset=function(){this.labels=new Array();if(this.onReset)this.onReset();};this.tilesArrayInit=function(nx,ny,visible,exArea){this.labels=new Array();};this.setLanguage=function(langId){if(this.langId!=langId){this.langId=langId;this.labels=new Array();this.loadLocales();}};this.loadLocales=function(){if(!this.langId)this.langId="EN";var target=this;Labels.getConstellationNames(this.langId,{callback:function(data){target.constellationNames=data;},errorHandler:function(errStr,ex){}});};this.onZoomChange=function(delta,p){this.labels=new Array();};this.openObjectPage=function(obj,pm,p){if(!obj)return false;window.open(this.objectViewUrl+"?object_type="+obj.objType+"&object_id="+obj.objId+(typeof adam!="undefined"?("&amount="+adam):"")+(typeof gid!="undefined"?("&gid="+gid):""),"_blank");return true;};this.onclick=function(pm,p){var fit=this.getElement(pm,p);if(fit){return this.openObjectPage(fit,pm,p);}
return false;};this.onmousemove=function(pm,p){var fit=this.getElement(pm,p);if(fit){ddrivetip(this.getLabelHtml(fit),"yellow",0,0,{maxWidth:200,backgroundColor:'yellow',color:'black',border:'2px solid red',fontSize:'8pt'});return true;}else{if($('tile_layer_label_tip'))
hideddrivetip();}
return false;};this.getLabelHtml=function(l){return"<table id='tile_layer_label_tip' cellspacing=0 cellpadding=0 borders=0 style='color:black;font-size:8pt'><tr style='background-color:lightgray'><td align=center colspan=2 nowrap style='font-weight:bold'>"+escapeHtml(l.objName)+"</td></tr><tr><td nowrap align=right>&nbsp;Object class:&nbsp;</td><td nowrap style='font-weight:bold'>"+this.getObjTypeName(l.objType)+"&nbsp;</td></tr><tr><td nowrap align=right>&nbsp;Constellation:&nbsp;</td><td nowrap>"+this.constellationNames[l.constellation-1]+"&nbsp;</td></tr><tr><td nowrap align=right>&nbsp;Position:&nbsp;</td><td nowrap>("+formatRA(l.ra)+" "+formatDE(l.de)+")&nbsp;</td></tr>"+(l.ellipse?"<td nowrap align=right>&nbsp;Apparent dimensions:&nbsp;</td><td nowrap>"+(Math.round(l.ellipse.major*this.proj.getResolution()*6000)/100)+"&prime; x "+(Math.round(l.ellipse.minor*this.proj.getResolution()*6000)/100)+"&prime;&nbsp;</td></tr>":"")+"<tr><td nowrap align=right>&nbsp;Visual magnitude:&nbsp;</td><td nowrap>"+(l.magnitude<99?l.magnitude:"unknown")+"&nbsp;</td></tr><tr><td nowrap align=right>&nbsp;Distance:&nbsp;</td><td nowrap>"+(l.distance?l.distance+" light-years":"unknown")+"&nbsp;</td></tr></table>";};this.getElement=function(pm,p){var m=this.tMgr;var cTile=m.getTileByPoint(p.x,p.y);var ps=m.getShiftTiles();var rx=-ps.x-Math.floor(m.nTilesX/2),ry=-ps.y-Math.floor(m.nTilesY/2);var tileShiftX=-128-(cTile.x+rx)*m.tileWidth,tileShiftY=-128-(cTile.y+ry)*m.tileHeight;var lblName=""+tileShiftX+","+tileShiftY;var fit=null;var a=this.labels[lblName];if(!a){if(a!=0){this.labels[lblName]=0;var target=this;Labels.getLabelsCompact(this.proj.getRA(),this.proj.getDE(),this.proj.getResolution(),this.proj.getRotation(),this.proj.getReverse(),tileShiftX,tileShiftY,tileShiftX+m.tileWidth,tileShiftY+m.tileHeight,100,25,this.langId,{callback:function(data){if(data){data=target.unpack(data);if(target.proj.getRA()==data.ra&&target.proj.getDE()==data.de&&target.proj.getResolution()==data.resolution&&target.proj.getRotation()==data.rotation&&target.proj.getReverse()==data.reverse)
{target.labels[""+data.left+","+data.top]=data;}}},errorHandler:function(errStr,ex){}});}}else if(a.labelsData){var px=a.left+pm.x+128,py=a.top+pm.y+128;for(var i in a.labelsData){var lbl=a.labelsData[i];if(lbl.square){if(Math.abs(lbl.square.x-px)<=lbl.square.radius*4&&Math.abs(lbl.square.y-py)<=lbl.square.radius*4){fit=lbl;break;}}else if(lbl.ellipse){var r1=lbl.ellipse.major/2;var x0=lbl.ellipse.x-a.left-128,y0=lbl.ellipse.y-a.top-128;if(pm.x>=x0-r1&&pm.x<=x0+r1&&pm.y>=y0-r1&&pm.y<=y0+r1){var r2=lbl.ellipse.minor/2;var rotation=lbl.ellipse.rotation;if(this.checkPointInEllipse(pm,x0,y0,r1,r2,rotation)){fit=lbl;break;}}}}}
return fit;};this.unpack=function(data){if(typeof data=="object")return data;var ds=data.split("|");var dp=ds[0].split(",");var res={ra:1*dp[0],de:1*dp[1],resolution:1*dp[2],rotation:1*dp[3],reverse:dp[4]=="true",left:1*dp[5],top:1*dp[6],right:1*dp[7],bottom:1*dp[8],maxStars:1*dp[9],maxMagnitude:1*dp[10],labelsData:new Array()};for(var i=1;i<ds.length;i++){var d=ds[i].split(",");var lbl={objType:1*d[0],objId:1*d[1],objName:d[2],constellation:1*d[3],ra:1*d[4],de:1*d[5],magnitude:1*d[6],distance:1*d[7]};if(d[8]=="sq")lbl.square={x:1*d[9],y:1*d[10],radius:1*d[11]};else if(d[8]=="el")lbl.ellipse={x:1*d[9],y:1*d[10],major:1*d[11],minor:1*d[12],rotation:1*d[13]};res.labelsData.push(lbl);}
return res;};this.checkPointInEllipse=function(p,x0,y0,r1,r2,angle){var alpha=(angle-this.proj.getRotation())*this.radPerDeg;var x2=x0-r2*Math.cos(alpha);var y2=y0+r2*Math.sin(alpha);var d1sq=(p.x-x2)*(p.x-x2)+(p.y-y2)*(p.y-y2);var d2sq=(x2-x0)*(x2-x0)+(y2-y0)*(y2-y0);var d3sq=(p.x-x0)*(p.x-x0)+(p.y-y0)*(p.y-y0);var G=d2sq+d3sq-d1sq;var A=G*G/(4*d2sq*d3sq);var C=d3sq*(A/(r2*r2)+(1-A)/(r1*r1));return(C<=1);};this.getObjTypeName=function(t){switch(t){case 1:return"Star";case 2:return"Galaxy";case 3:return"Nebula";case 4:return"Cluster";case 5:return"Constellation";case 6:return"Asteroid";case 7:return"Comet";case 8:return"Planet";default:return"Unknown("+t+")";}};}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(Search==null)var Search={};Search._path='/dwr';Search.findByName=function(p0,callback){dwr.engine._execute(Search._path,'Search','findByName',p0,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(Server==null)var Server={};Server._path='/dwr';Server.getActiveServers=function(callback){dwr.engine._execute(Server._path,'Server','getActiveServers',callback);}
Server.getActiveImgServers=function(callback){dwr.engine._execute(Server._path,'Server','getActiveImgServers',callback);}
var PlanetNames=new Array("Mercury","Venus","Sun","Mars","Jupiter","Saturn","Uranus","Neptune","Pluto");function Planets(){this.setDate=function(date){this.date=date;this.year=date.getUTCFullYear();this.month=date.getUTCMonth()+1;this.day=date.getUTCDate();this.hour=date.getUTCHours();this.mins=date.getUTCMinutes();this.secs=date.getUTCSeconds();this.dn=this.day_number(this.year,this.month,this.day,this.hour,this.mins,this.secs);for(var p=0;p<9;p++){this[PlanetNames[p]]=this.get_coord(p,this.dn);}
return this;};this.day_number=function(y,m,d,hour,mins,secs)
{var h=hour+mins/60+secs/3600;var rv=367*y
-Math.floor(7*(y+Math.floor((m+9)/12))/4)
+Math.floor(275*m/9)+d-730531.5+h/24;return rv;}
this.get_coord=function(pn,d)
{var p=this.mean_elements(pn,d);var e=this.mean_elements(2,d);var me=this.mod2pi(e.L-e.w);var ve=this.true_anomaly(me,e.e);var re=e.a*(1-e.e*e.e)/(1+e.e*Math.cos(ve));var xe=re*Math.cos(ve+e.w);var ye=re*Math.sin(ve+e.w);var ze=0.0;var mp=this.mod2pi(p.L-p.w);var vp=this.true_anomaly(mp,p.e);var rp=p.a*(1-p.e*p.e)/(1+p.e*Math.cos(vp));var xh=rp*(Math.cos(p.O)*Math.cos(vp+p.w-p.O)-Math.sin(p.O)*Math.sin(vp+p.w-p.O)*Math.cos(p.i));var yh=rp*(Math.sin(p.O)*Math.cos(vp+p.w-p.O)+Math.cos(p.O)*Math.sin(vp+p.w-p.O)*Math.cos(p.i));var zh=rp*(Math.sin(vp+p.w-p.O)*Math.sin(p.i));if(pn==2)xh=yh=zh=0;var xg=xh-xe;var yg=yh-ye;var zg=zh-ze;var ecl=23.439281*this.RADS;var xeq=xg;var yeq=yg*Math.cos(ecl)-zg*Math.sin(ecl);var zeq=yg*Math.sin(ecl)+zg*Math.cos(ecl);return{ra:this.mod2pi(Math.atan2(yeq,xeq))*this.DEGS,de:Math.atan(zeq/Math.sqrt(xeq*xeq+yeq*yeq))*this.DEGS,rvec:Math.sqrt(xeq*xeq+yeq*yeq+zeq*zeq)};}
this.mean_elements=function(i,d)
{var p={};var cy=d/36525;switch(i)
{case 0:p.a=0.38709893+0.00000066*cy;p.e=0.20563069+0.00002527*cy;p.i=7.00487-23.51*cy/3600;p.O=48.33167-446.30*cy/3600;p.w=77.45645+573.57*cy/3600;p.L=252.25084+538101628.29*cy/3600;break;case 1:p.a=0.72333199+0.00000092*cy;p.e=0.00677323-0.00004938*cy;p.i=3.39471-2.86*cy/3600;p.O=76.68069-996.89*cy/3600;p.w=131.53298-108.80*cy/3600;p.L=181.97973+210664136.06*cy/3600;break;case 2:p.a=1.00000011-0.00000005*cy;p.e=0.01671022-0.00003804*cy;p.i=0.00005-46.94*cy/3600;p.O=-11.26064-18228.25*cy/3600;p.w=102.94719+1198.28*cy/3600;p.L=100.46435+129597740.63*cy/3600;break;case 3:p.a=1.52366231-0.00007221*cy;p.e=0.09341233+0.00011902*cy;p.i=1.85061-25.47*cy/3600;p.O=49.57854-1020.19*cy/3600;p.w=336.04084+1560.78*cy/3600;p.L=355.45332+68905103.78*cy/3600;break;case 4:p.a=5.20336301+0.00060737*cy;p.e=0.04839266-0.00012880*cy;p.i=1.30530-4.15*cy/3600;p.O=100.55615+1217.17*cy/3600;p.w=14.75385+839.93*cy/3600;p.L=34.40438+10925078.35*cy/3600;break;case 5:p.a=9.53707032-0.00301530*cy;p.e=0.05415060-0.00036762*cy;p.i=2.48446+6.11*cy/3600;p.O=113.71504-1591.05*cy/3600;p.w=92.43194-1948.89*cy/3600;p.L=49.94432+4401052.95*cy/3600;break;case 6:p.a=19.19126393+0.00152025*cy;p.e=0.04716771-0.00019150*cy;p.i=0.76986-2.09*cy/3600;p.O=74.22988-1681.40*cy/3600;p.w=170.96424+1312.56*cy/3600;p.L=313.23218+1542547.79*cy/3600;break;case 7:p.a=30.06896348-0.00125196*cy;p.e=0.00858587+0.00002510*cy;p.i=1.76917-3.64*cy/3600;p.O=131.72169-151.25*cy/3600;p.w=44.97135-844.43*cy/3600;p.L=304.88003+786449.21*cy/3600;break;case 8:p.a=39.48168677-0.00076912*cy;p.e=0.24880766+0.00006465*cy;p.i=17.14175+11.07*cy/3600;p.O=110.30347-37.33*cy/3600;p.w=224.06676-132.25*cy/3600;p.L=238.92881+522747.90*cy/3600;break;default:window.alert("function mean_elements() failed!");}
p.i*=this.RADS;p.O*=this.RADS;p.w*=this.RADS;p.L=this.mod2pi(p.L*this.RADS);return p;}
this.true_anomaly=function(M,e)
{var V,E1;var E=M+e*Math.sin(M)*(1.0+e*Math.cos(M));do
{E1=E;E=E1-(E1-e*Math.sin(E1)-M)/(1-e*Math.cos(E1));}
while(Math.abs(E-E1)>this.EPS);V=2*Math.atan(Math.sqrt((1+e)/(1-e))*Math.tan(0.5*E));if(V<0)V=V+(2*Math.PI);return V;}
this.abs_floor=function(x)
{var r;if(x>=0.0)r=Math.floor(x);else r=Math.ceil(x);return r;}
this.mod2pi=function(x)
{var b=x/(2*Math.PI);var a=(2*Math.PI)*(b-this.abs_floor(b));if(a<0)a=(2*Math.PI)+a;return a;}
this.DEGS=180/Math.PI;this.RADS=Math.PI/180;this.EPS=1.0e-12;};
var menu4=new Array()
menu4[0]='<a href="adopt_services.jsp"  ONMOUSEOVER="service_label8();"  ONMOUSEOUT="hideddrivetip();"><font color=white>Inhabit a Star</font></a>'
menu4[1]='<a href="add_new_media.jsp"  ONMOUSEOVER="service_label15();"  ONMOUSEOUT="hideddrivetip();"><font color=white><nobr>Add New Media to the Sky</nobr></font></a>'
menu4[2]='<a href="adopt_services.jsp?iii=gift"  ONMOUSEOVER="gift_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>A Star is the Best Gift!</font></a>'
var menu1=new Array();menu1[0]='<a href="javascript:img_source=\'DSS2\';updateImages();"  ONMOUSEOVER="dss2_label();"  ONMOUSEOUT="hideddrivetip();"><b><font color=white>DSS2 All Sky Survey</font></b></a>';menu1[1]='<a href="javascript:img_source=\'SDSS\';updateImages();"  ONMOUSEOVER="sdss_label();"  ONMOUSEOUT="hideddrivetip();"><b><font color=white>SDSS-III Sloan Digital Sky Survey</font></b></a>';menu1[2]='<a href="javascript:img_source=\'IRAS\';updateImages();"  ONMOUSEOVER="iras_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>Infrared Sky Survey (IRAS)</font></a>';menu1[3]='<a href="javascript:img_source=\'HALPHA\';updateImages();"  ONMOUSEOVER="halpha_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>H-Alpha Sky Survey</font></a>';menu1[4]='<a href="javascript:img_source=\'RASS\';updateImages();"  ONMOUSEOVER="rass_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>X-Ray Sky Survey (RASS3)</font></a>';menu1[5]='<a href="javascript:img_source=\'GALEX\';updateImages();"  ONMOUSEOVER="galex_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>Ultraviolet Sky Survey (GALEX)</font></a>';menu1[6]='<a href="javascript:img_source=\'IMG_all\';updateImages();"  ONMOUSEOVER="photosurvey_label();"  ONMOUSEOUT="hideddrivetip();"><font color=white>Astro Photo Survey</font></a>';menu1[7]='<a href="javascript:img_source=\'\';updateImages();"><b><font color=white>SKY-MAP</font><font color=red face=Arial>.ORG</font></b></a>';menu1[8]='<a href="javascript:img_source=\'SDSS7\';updateImages();"  ONMOUSEOVER="sdss_label();"  ONMOUSEOUT="hideddrivetip();"><b><font color=white>SDSS-II (Data Release 7)</font></b></a>';menu1[9]='<a><font color=white size=-1 style=\'font-size:7pt;font-weight:normal;\'>More surveys are coming...</font></a>';function getWhite(){return'#FFFFFF'}
function getGray(){return'#B0B0B0'}
function getUnderline(){return'underline'}
function getNone(){return'none'}
function get200px(){return'200px'}
var menuS=new Array();menuS[0]='<a href="javascript:img_source=\'DSS2\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();dss2_label();"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">Open Sponsor&#8217;s Website</a>';menuS[1]='<a href="javascript:img_source=\'DSS2\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();dropdownmenu1(this, event, top_sponsors, get200px());"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">20 Latest Top Sponsors</a>';menuS[2]='<a href="javascript:img_source=\'IRAS\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();iras_label();"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">The Sky of All Top Sponsors</a>';menuS[3]='<a href="javascript:img_source=\'HALPHA\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();halpha_label();"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">How to Become a Top Sponsor?</a>';menuS[4]='<a href="javascript:img_source=\'RASS\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();rass_label();"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">Why to Sponsor SKY-MAP?</a>';menuS[5]='<a href="javascript:img_source=\'IMG_all\';updateImages();" style="color:#B0B0B0;text-decoration:none;" ONMOUSEOVER="this.style.color=getWhite();this.style.textDecoration=getUnderline();photosurvey_label();"  ONMOUSEOUT="this.style.color=getGray();this.style.textDecoration=getNone();hideddrivetip();">> Shoot Your Star!</a>';var menu2=new Array()
menu2[0]='<a href="http://cnn.com">CNN</a>'
menu2[1]='<a href="http://msnbc.com">MSNBC</a>'
menu2[2]='<a href="http://news.bbc.co.uk">BBC News</a>'
var menu3=new Array()
menu3[0]='<a href="http://news.com">News.com</a>'
menu3[1]='<a href="http://wired.com">Wired</a>'
menu3[2]='<a href="http://news.bbc.co.uk/2/hi/technology/default.stm">BBC Technology</a>'
var menuwidth='165px'
var menubgcolor='black'
var menubgcolor1='#404040'
var disappeardelay=250
var hidemenu_onclick="yes"
var ie4=document.all
var ns6=document.getElementById&&!document.all
if(ie4||ns6){document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')
document.write('<div id="dropmenudiv1" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor1+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')}
function getposOffset(what,offsettype){var totaloffset=(offsettype=="left")?what.offsetLeft:what.offsetTop;var parentEl=what.offsetParent;while(parentEl!=null){totaloffset=(offsettype=="left")?totaloffset+parentEl.offsetLeft:totaloffset+parentEl.offsetTop;parentEl=parentEl.offsetParent;}
return totaloffset;}
function showhide(obj,e,visible,hidden,menuwidth){if(ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top="-500px"
if(menuwidth!=""){dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth}
if(e.type=="click"&&obj.visibility==hidden||e.type=="mouseover")
obj.visibility=visible
else if(e.type=="click")
obj.visibility=hidden}
function iecompattest(){return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body}
function clearbrowseredge(obj,whichedge){var edgeoffset=0
if(whichedge=="rightedge"){var windowedge=ie4&&!window.opera?iecompattest().scrollLeft+iecompattest().clientWidth-15:window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if(windowedge-dropmenuobj.x<dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth}
else{var topedge=ie4&&!window.opera?iecompattest().scrollTop:window.pageYOffset
var windowedge=ie4&&!window.opera?iecompattest().scrollTop+iecompattest().clientHeight-15:window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if(windowedge-dropmenuobj.y<dropmenuobj.contentmeasure){edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge}}
return edgeoffset}
function populatemenu(what){if(ie4||ns6)
dropmenuobj.innerHTML=what.join("")}
function dropdownmenu(obj,e,menucontents,menuwidth){if(window.event)event.cancelBubble=true
else if(e.stopPropagation)e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById?document.getElementById("dropmenudiv"):dropmenudiv
populatemenu(menucontents)
if(ie4||ns6){showhide(dropmenuobj.style,e,"visible","hidden",menuwidth)
dropmenuobj.x=getposOffset(obj,"left")
dropmenuobj.y=getposOffset(obj,"top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj,"rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj,"bottomedge")+obj.offsetHeight+"px"}
return clickreturnvalue()}
function dropdownmenu1(obj,e,menucontents,menuwidth){if(window.event)event.cancelBubble=true
else if(e.stopPropagation)e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById?document.getElementById("dropmenudiv1"):dropmenudiv1
populatemenu(menucontents)
if(ie4||ns6){showhide(dropmenuobj.style,e,"visible","hidden",menuwidth)
dropmenuobj.x=getposOffset(obj,"left")
dropmenuobj.y=getposOffset(obj,"top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj,"rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj,"bottomedge")+obj.offsetHeight+"px"}
return clickreturnvalue()}
function clickreturnvalue(){if(ie4||ns6)return false
else return true}
function contains_ns6(a,b){while(b.parentNode)
if((b=b.parentNode)==a)
return true;return false;}
function dynamichide(e){if(ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if(ns6&&e.currentTarget!=e.relatedTarget&&!contains_ns6(e.currentTarget,e.relatedTarget))
delayhidemenu()}
function hidemenu(e){if(typeof dropmenuobj!="undefined"){if(ie4||ns6)
dropmenuobj.style.visibility="hidden"}}
function delayhidemenu(){if(ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)}
function clearhidemenu(){if(typeof delayhide!="undefined")
clearTimeout(delayhide)}
if(hidemenu_onclick=="yes")
document.onclick=hidemenu
function EquidistantProjection(ra,de,scale,rotation,reverse){this.radPerDeg=Math.PI/180;this.radPerHour=Math.PI/12;this.PI_2=Math.PI/2;this.PI2=Math.PI*2;this.getRA=function(){return this.ra;}
this.getDE=function(){return this.de;}
this.getResolution=function(){return this.degPerPixel;}
this.getRotation=function(){return this.rotateDeg;}
this.getReverse=function(){return this.reverse;}
this.getShiftX=function(){return this.shiftX;}
this.getShiftY=function(){return this.shiftY;}
this.setCenter=function(ra,de){this.ra=ra;this.de=de;this.sin_fi1=Math.sin(de*Math.PI/180);this.cos_fi1=Math.cos(de*Math.PI/180);};this.setResolution=function(p_degPerPixel){this.degPerPixel=p_degPerPixel;this.radPerPixel=p_degPerPixel*Math.PI/180;};this.setRotation=function(p_rotateDeg){this.rotateDeg=p_rotateDeg;this.rotateRad=p_rotateDeg*Math.PI/180;this.sin_r=Math.sin(-this.rotateRad);this.cos_r=Math.cos(-this.rotateRad);};this.setReverse=function(p_reverse){this.reverse=p_reverse;};this.setShift=function(s_x,s_y){this.shiftX=s_x;this.shiftY=s_y;};this.projection=function(ra2,de2){var la=ra2*this.radPerHour;var fi=de2*this.radPerDeg;var sin_fi=Math.sin(fi);var cos_fi=Math.cos(fi);var la_la0=la-this.ra*this.radPerHour;var sin_la_la0=Math.sin(la_la0);var cos_la_la0=Math.cos(la_la0);var c=Math.acos(this.sin_fi1*sin_fi+this.cos_fi1*cos_fi*cos_la_la0);var k=(c===0)?0:-c/Math.sin(c)/this.radPerPixel;var x1=cos_fi*sin_la_la0;var y1=(this.cos_fi1*sin_fi-this.sin_fi1*cos_fi*cos_la_la0);var x=(this.reverse?-k:k)*(x1*this.cos_r-y1*this.sin_r)+this.shiftX;var y=k*(x1*this.sin_r+y1*this.cos_r)+this.shiftY;return{x:x,y:y};};this.revProjection=function(px1,py1){px1-=this.shiftX;py1-=this.shiftY;var x=(px1*(this.reverse?1:-1)*this.cos_r-py1*this.sin_r)*this.radPerPixel;var y=-(px1*(this.reverse?1:-1)*this.sin_r+py1*this.cos_r)*this.radPerPixel;var c=Math.sqrt(x*x+y*y);var sin_c=Math.sin(c);var cos_c=Math.cos(c);var fi=c===0?this.de:Math.asin(cos_c*this.sin_fi1+y*sin_c*this.cos_fi1/c)/this.radPerDeg;var ala,t=0,atan;if(Math.abs(this.de-90)<1e-9){ala=y===0?0:-x/y;t=-y;atan=y===0?Math.PI/(x<0?-2:2):Math.atan(ala);}else if(Math.abs(this.de+90)<1e-9){ala=y===0?0:x/y;t=y;atan=y===0?Math.PI/(x<0?-2:2):Math.atan(ala);}else{t=c*this.cos_fi1*cos_c-y*this.sin_fi1*sin_c;ala=t===0?0:x*sin_c/t;atan=Math.atan(ala);}
if(t<0){atan=atan-Math.PI;}
var la=this.ra+atan/this.radPerHour;if(la<0){la+=24;}else if(la>=24){la-=24;}
return{ra:la,de:fi};};this.setCenter(ra,de);this.setResolution(scale);this.setRotation(rotation);this.setReverse(reverse);this.setShift(0,0);}
function TangentProjection(ra,de,scale,rotation,reverse){this.radPerDeg=Math.PI/180;this.radPerHour=Math.PI/12;this.PI_2=Math.PI/2;this.PI2=Math.PI*2;this.getRA=function(){return this.ra;}
this.getDE=function(){return this.de;}
this.getResolution=function(){return this.degPerPixel;}
this.getRotation=function(){return this.rotateDeg;}
this.getReverse=function(){return this.reverse;}
this.getShiftX=function(){return this.shiftX;}
this.getShiftY=function(){return this.shiftY;}
this.setCenter=function(ra,de){this.ra=ra;this.de=de;this.sin_fi1=Math.sin(de*Math.PI/180);this.cos_fi1=Math.cos(de*Math.PI/180);};this.setResolution=function(p_degPerPixel){this.degPerPixel=p_degPerPixel;this.radPerPixel=p_degPerPixel*Math.PI/180;};this.setRotation=function(p_rotateDeg){this.rotateDeg=p_rotateDeg;this.rotateRad=p_rotateDeg*Math.PI/180;this.sin_r=Math.sin(-this.rotateRad);this.cos_r=Math.cos(-this.rotateRad);};this.setReverse=function(p_reverse){this.reverse=p_reverse;};this.setShift=function(s_x,s_y){this.shiftX=s_x;this.shiftY=s_y;};this.projection=function(ra2,de2){var x1=0,y1=0;if(this.ra!=ra2||this.de!=de2){var r0=(ra2-this.ra)*this.radPerHour;var DE2=de2*this.radPerDeg;var sin_de2=Math.sin(DE2),cos_de2=Math.cos(DE2),cos_ra2=Math.cos(r0);var radius=Math.acos(this.sin_fi1*sin_de2+this.cos_fi1*cos_de2*cos_ra2);if(radius<Math.PI){var theta=1e30,sinA=0,cosA=0;if(this.de>=90.0){theta=Math.PI-r0;if(theta<0.0)theta+=this.PI2;if(theta>=0.0)theta-=this.PI2;}else if(this.de<=-90.0){theta=r0;if(theta<0.0)theta+=this.PI2;if(theta>=0.0)theta-=this.PI2;}else{var sin_ra2=Math.sin(r0);var sin_r=Math.sin(radius),cos_r=Math.cos(radius);sinA=cos_de2*sin_ra2/sin_r;cosA=(sin_de2-this.sin_fi1*cos_r)/(this.cos_fi1*sin_r);if(this.rotateRad!=0){theta=Math.atan2(sinA,cosA);if(theta<0.0)theta+=this.PI2;}}
var k=Math.tan(radius)/this.radPerPixel;if(theta!=1e30){theta+=this.rotateRad;x1=(this.reverse?k:-k)*Math.sin(theta);y1=-k*Math.cos(theta);}else{x1=(this.reverse?k:-k)*sinA;y1=-k*cosA;}}}
return{x:x1+this.shiftX,y:y1+this.shiftY};};this.revProjection=function(px1,py1){if(this.reverse)px1=-px1;px1-=this.shiftX;py1-=this.shiftY;var x=px1*this.radPerPixel;var y=py1*this.radPerPixel;var radius=Math.atan(Math.sqrt(x*x+y*y));var theta=Math.atan2(y,x)+this.rotateRad+this.PI_2;var sin_t=this.sin_fi1*Math.cos(radius)+this.cos_fi1*Math.sin(radius)*Math.cos(theta);var sin_decl=sin_t;var cos_decl=Math.sqrt(1-sin_t*sin_t);var decl=Math.atan2(sin_t,cos_decl);var rra=0.0;if(cos_decl!=0.0){if(this.de>=90){theta=Math.atan2(-x,-y);rra=12+this.ra-(this.rotateRad+theta)/this.radPerHour;}else if(this.de<=-90){theta=Math.atan2(-x,-y);rra=this.ra+(this.rotateRad+theta)/this.radPerHour;}else{sin_t=Math.sin(theta)*Math.sin(radius)/cos_decl;var cos_t=(Math.cos(radius)-sin_decl*this.sin_fi1)/(cos_decl*this.cos_fi1);rra=this.ra-Math.atan2(sin_t,cos_t)/this.radPerHour;}}
if(rra<0){rra+=24;}else if(rra>=24){rra-=24;}
return{ra:rra,de:decl/this.radPerDeg};};this.setCenter(ra,de);this.setResolution(scale);this.setRotation(rotation);this.setReverse(reverse);this.setShift(0,0);}
function AitoffProjection(ra,de,width,height,reverse){this.radPerDeg=Math.PI/180;this.radPerHour=Math.PI/12;this.PI_2=Math.PI/2;this.PI2=Math.PI*2;this.getRA=function(){return this.ra;}
this.getDE=function(){return this.de;}
this.getResolution=function(){return this.degPerPixel;}
this.getRotation=function(){return 0;}
this.getReverse=function(){return this.reverse;}
this.getShiftX=function(){return 0;}
this.getShiftY=function(){return 0;}
this.setCenter=function(ra,de){this.ra=ra;this.de=de;};this.setResolution=function(p_degPerPixel){this.degPerPixel=p_degPerPixel;this.radPerPixel=p_degPerPixel*Math.PI/180;this.width=Math.round(360.0/p_degPerPixel);this.height=Math.round(180.0/p_degPerPixel);};this.setRotation=function(p_rotateDeg){};this.setReverse=function(p_reverse){this.reverse=p_reverse;};this.setShift=function(s_x,s_y){};this.projection=function(RA,DE){var f=DE*this.radPerDeg;var q=(RA-12)*this.radPerHour;var a=Math.acos(Math.cos(f)*Math.cos(q/2));var xx=0;var yy=0;if(a!=0.0){a=-a/Math.PI/Math.sin(a);xx=a*width*Math.cos(f)*Math.sin(q/2);yy=a*height*Math.sin(f);}
return{x:Math.round(xx+this.width/2),y:Math.round(yy+this.height/2)};};this.revProjection=function(x,y){x=x-this.width/2;y=y-this.height/2;if(x===0&&y===0){return{ra:12,de:0};}
var V=0.0,S=0.0;var R1=-this.width/Math.PI;var R2=-this.height/Math.PI;V=y*y/R2/R2+x*x/R1/R1;S=x*x*R2*R2/(R1*R1*y*y+x*x*R2*R2);var T=0.0,Z=0.0;Z=Math.cos(Math.sqrt(V));T=S*(1-Z*Z)+Z*Z;var f=0.0,q=0.0;f=Math.acos(Math.sqrt(T));q=2*Math.acos(Z/Math.cos(f));var RA=(x<0?1:-1)*q/this.radPerHour+12;var DE=(y<0?1:-1)*f/this.radPerDeg;return{ra:RA,de:DE};};this.setCenter(ra,de);this.width=width;this.height=height;this.setReverse(reverse);}
function DirectProjection(ra,de,scale){this.getRA=function(){return this.ra;}
this.getDE=function(){return this.de;}
this.getResolution=function(){return this.scale;}
this.getRotation=function(){return 0;}
this.getReverse=function(){return false;}
this.getShiftX=function(){return this.adjX;}
this.getShiftY=function(){return this.adjY;}
this.setCenter=function(ra,de){this.ra=ra;this.de=de;};this.setResolution=function(scale){this.scale=scale;};this.setRotation=function(p_rotateDeg){};this.setReverse=function(p_reverse){};this.setShift=function(s_x,s_y){this.adjX=s_x;this.adjY=s_y;};this.projection=function(ra,de){var y=(this.de-de)/this.scale-this.adjX;var x=(this.ra-ra)/this.scale*Math.cos(de*Math.PI/180)-this.adjY;return{x:x,y:y};};this.revProjection=function(x,y){var de=this.de-(y+this.adjX)*this.scale;var ra=this.ra-(x+this.adjY)*this.scale/Math.cos(de*Math.PI/180);return{ra:ra,de:de};};this.setCenter(ra,de);this.setResolution(scale);this.setRotation(0);this.setReverse(false);this.setShift(0,0);}
function RoundedCorners()
{this.targets=new Array();this.addTarget=function(div,xRadius,yRadius,color,bgColor,padding,heightOfContent,whichCorners,options){var index=this.targets.length;if(typeof options!='object')options={};this.targets[index]={div:div,xRadius:xRadius,yRadius:yRadius,color:color,bgColor:bgColor,padding:padding,heightOfContent:heightOfContent,whichCorners:whichCorners,options:options};};this.init=function(){for(var targetCounter=0 in this.targets){var trgt=this.targets[targetCounter];var xRadius=trgt.xRadius;var yRadius=trgt.yRadius;var rgbColor=new RGBColor(trgt.color);if(!rgbColor.ok)rgbColor=new RGBColor("gray");var rgbBGColor=new RGBColor(trgt.bgColor);if(!rgbBGColor.ok)rgbBGColor=new RGBColor("white");var rgbHeaderColor=(trgt.options.headColor)?new RGBColor(trgt.options.headColor):rgbColor;var heightOfContent=trgt.heightOfContent;var corners=trgt.whichCorners;if(!corners)corners={tl:1,tr:1,bl:1,br:1};var factorX=xRadius/yRadius;var obj=typeof trgt.div=='object'?trgt.div:document.getElementById(trgt.div);obj.style.backgroundColor='transparent';var objW=obj.offsetWidth;var objH=obj.offsetHeight;var content=obj.innerHTML;obj.innerHTML='';var objOrig=obj;var drawStem=(trgt.options.stemWidth&&trgt.options.stemHeight&&trgt.options.stemY);if(drawStem){obj=document.createElement('DIV');obj.style.width=objW+"px";objOrig.appendChild(obj);objOrig.style.width=(objOrig.offsetWidth+trgt.options.stemWidth)+"px";}
if(corners.tl||corners.tr){var topBar_container=document.createElement('DIV');topBar_container.style.height=yRadius+'px';obj.appendChild(topBar_container);var currentAntialiasSize=0;var savedRestValue=0;for(no=1;no<=yRadius;no++){var marginSize=(xRadius-(this.getY((yRadius-no),yRadius,factorX)));var marginSize_decimals=(xRadius-(this.getY_withDecimals((yRadius-no),yRadius,factorX)));var restValue=xRadius-marginSize_decimals;var antialiasSize=xRadius-marginSize-Math.floor(savedRestValue)
var foregroundSize=xRadius-(marginSize+antialiasSize);var el=document.createElement('DIV');el.style.height='1px';if(corners.tl)el.style.marginLeft=marginSize+'px';if(corners.tr)el.style.marginRight=marginSize+'px';topBar_container.appendChild(el);var y=topBar_container;for(var no2=1;no2<=antialiasSize;no2++){var blendMode;switch(no2){case 1:if(no2==antialiasSize)
blendMode=((restValue+savedRestValue)/2)-foregroundSize;else{var t=this.getY_withDecimals((xRadius-marginSize-no2),xRadius,1/factorX);blendMode=(restValue-foregroundSize-antialiasSize+1)*(t-(yRadius-no))/2;}
break;case antialiasSize:var t=this.getY_withDecimals((xRadius-marginSize-no2+1),xRadius,1/factorX);blendMode=1-(1-(t-(yRadius-no)))*(1-(savedRestValue-foregroundSize))/2;break;default:var t2=this.getY_withDecimals((xRadius-marginSize-no2),xRadius,1/factorX);var t=this.getY_withDecimals((xRadius-marginSize-no2+1),xRadius,1/factorX);blendMode=((t+t2)/2)-(yRadius-no);}
el.style.backgroundColor=this.__blendColors(rgbBGColor,rgbHeaderColor,blendMode);y.appendChild(el);y=el;var el=document.createElement('DIV');el.style.height='1px';el.style.overflow='hidden';if(corners.tl)el.style.marginLeft='1px';if(corners.tr)el.style.marginRight='1px';el.style.backgroundColor=rgbHeaderColor.src;}
y.appendChild(el);savedRestValue=restValue;}
if(trgt.options.title){var e=document.createElement('DIV');e.style.position="absolute";e.style.top="0px";e.style.left=xRadius+"px";e.style.width=(obj.offsetWidth-xRadius*2)+"px";e.style.height=yRadius+"px";e.style.textAlign="center";e.innerHTML=trgt.options.title;obj.appendChild(e);}}
var contentDiv=document.createElement('DIV');contentDiv.className=obj.className;contentDiv.style.border='1px solid '+trgt.color;if(trgt.options.borderColor){contentDiv.style.borderLeft='1px solid '+trgt.options.borderColor;contentDiv.style.borderRight='1px solid '+trgt.options.borderColor;}
contentDiv.innerHTML=content;contentDiv.style.backgroundColor=trgt.color;contentDiv.style.paddingLeft=trgt.padding+'px';contentDiv.style.paddingRight=trgt.padding+'px';if(!heightOfContent)heightOfContent='';heightOfContent=heightOfContent+'';if(heightOfContent.length>0&&heightOfContent.indexOf('%')==-1)heightOfContent=heightOfContent+'px';if(heightOfContent.length>0)contentDiv.style.height=heightOfContent;obj.appendChild(contentDiv);if(corners.bl||corners.br){var bottomBar_container=document.createElement('DIV');bottomBar_container.style.height=yRadius+'px';bottomBar_container.style.overflow='hidden';obj.appendChild(bottomBar_container);var currentAntialiasSize=0;var savedRestValue=0;var errorOccured=false;var arrayOfDivs=new Array();for(no=1;no<=yRadius;no++){var marginSize=(xRadius-(this.getY((yRadius-no),yRadius,factorX)));var marginSize_decimals=(xRadius-(this.getY_withDecimals((yRadius-no),yRadius,factorX)));var restValue=(xRadius-marginSize_decimals);var antialiasSize=xRadius-marginSize-Math.floor(savedRestValue)
var foregroundSize=xRadius-(marginSize+antialiasSize);var el=document.createElement('DIV');el.style.overflow='hidden';el.style.height='1px';if(corners.bl)el.style.marginLeft=marginSize+'px';if(corners.br)el.style.marginRight=marginSize+'px';bottomBar_container.insertBefore(el,bottomBar_container.firstChild);var y=bottomBar_container;for(var no2=1;no2<=antialiasSize;no2++){switch(no2){case 1:if(no2==antialiasSize)
blendMode=((restValue+savedRestValue)/2)-foregroundSize;else{var t=this.getY_withDecimals((xRadius-marginSize-no2),xRadius,1/factorX);blendMode=(restValue-foregroundSize-antialiasSize+1)*(t-(yRadius-no))/2;}
break;case antialiasSize:var t=this.getY_withDecimals((xRadius-marginSize-no2+1),xRadius,1/factorX);blendMode=1-(1-(t-(yRadius-no)))*(1-(savedRestValue-foregroundSize))/2;break;default:var t2=this.getY_withDecimals((xRadius-marginSize-no2),xRadius,1/factorX);var t=this.getY_withDecimals((xRadius-marginSize-no2+1),xRadius,1/factorX);blendMode=((t+t2)/2)-(yRadius-no);}
el.style.backgroundColor=this.__blendColors(rgbBGColor,rgbColor,blendMode);if(y==bottomBar_container)arrayOfDivs[arrayOfDivs.length]=el;try{var firstChild=y.getElementsByTagName('DIV')[0];y.insertBefore(el,y.firstChild);}catch(e){y.appendChild(el);errorOccured=true;}
y=el;var el=document.createElement('DIV');el.style.height='1px';el.style.overflow='hidden';if(corners.bl)el.style.marginLeft='1px';if(corners.br)el.style.marginRight='1px';}
if(errorOccured){for(var divCounter=arrayOfDivs.length-1;divCounter>=0;divCounter--){bottomBar_container.appendChild(arrayOfDivs[divCounter]);}}
el.style.backgroundColor=trgt.color;y.appendChild(el);savedRestValue=restValue;}}
if(drawStem){for(var i=1;i<trgt.options.stemHeight;i++){var e=document.createElement('DIV');e.style.position="absolute";e.style.top=(trgt.options.stemY+i)+"px";e.style.left=obj.offsetWidth+"px";e.style.overflow="hidden";e.style.height="1px";e.style.width=Math.round(0.5+(1-Math.abs(i/trgt.options.stemHeight*2-1))*trgt.options.stemWidth)+'px';e.style.backgroundColor=trgt.color;objOrig.appendChild(e);}}
if(trgt.options.ok){var e=document.createElement('input');e.type="button";e.value="OK";e.style.position="relative";e.style.left=Math.round(obj.offsetWidth/2-15)+"px";e.style.top="-30px";e.onclick=trgt.options.okAction;obj.appendChild(e);}}};this.getY=function(x,maxX,factorX){return Math.ceil(this.getY_withDecimals(x,maxX,factorX));};this.getY_withDecimals=function(x,maxX,factorX){return Math.max(0,factorX*Math.sqrt((maxX*maxX)-(x*x)));};this.__blendColors=function(colorA,colorB,blendMode){var red=Math.round(colorA.r+(colorB.r-colorA.r)*blendMode).toString(16);var green=Math.round(colorA.g+(colorB.g-colorA.g)*blendMode).toString(16);var blue=Math.round(colorA.b+(colorB.b-colorA.b)*blendMode).toString(16);if(red.length==1)red='0'+red;if(green.length==1)green='0'+green;if(blue.length==1)blue='0'+blue;return'#'+red+green+blue;};}
function TileLayer(name){this.tMgr=null;this.name=name;this.visible=true;this.zIndex=1;this.tiles=null;this.currentShiftTiles={x:0,y:0};this.smoothZoomSteps=6;this.imgURL="http://sky-map.org/img/";this.defaultImage=this.imgURL+"Loading.gif";this.tilesLoaded=0;this.init=function(tMgr){this.tMgr=tMgr;};this.reset=function(){this.tilesArrayReset();if(this.onReset)this.onReset();};this.tilesArrayInit=function(nx,ny,visible,exArea){if(typeof visible=='undefined')visible=this.visible;if(this.onBeforeTilesArrayInit)this.onBeforeTilesArrayInit(nx,ny,visible,exArea);var oldTiles=this.tiles;if(nx>0&&ny>0){this.currentShiftTiles=this.tMgr.getShiftTiles();var newTiles=new Array(nx);for(var x=0;x<nx;x++)newTiles[x]=new Array(ny);this.tiles=newTiles;this.reloadTiles(0,0,this.tMgr.nTilesX,this.tMgr.nTilesY,true,visible,exArea);}
if(oldTiles)this.tilesArrayReset(oldTiles);if(this.onAfterTilesArrayInit)this.onAfterTilesArrayInit(nx,ny,visible,exArea);};this.tilesArrayReset=function(tiles){var glbl=!tiles;if(glbl)tiles=this.tiles;if(!tiles)return;for(var i=0;tiles&&i<tiles.length;i++){for(var j=0;tiles[i]&&j<tiles[i].length;j++){this.destroyTile(tiles[i][j]);tiles[i][j]=null;}
tiles[i]=null;}
if(glbl)this.tiles=null;var t=this.oldZoomTiles;this.oldZoomTiles=null;if(t)for(var k in t)if(t[k]&&t[k].tiles!=tiles)this.tilesArrayReset(t[k].tiles);};this.createNewTile=function(x,y,visible){var tp=this.tMgr.getTilePosition(x,y);var tw=this.tMgr.tileWidth,th=this.tMgr.tileHeight;var t=new Image;t.tileLayer=this;t.id=this.name+'_i'+x+''+y;t.indexX=x;t.indexY=y;t.border=0;t.style.position='absolute';t.style.left=tp.x+'px';t.style.top=tp.y+'px';t.style.visibility='hidden';t.style.zIndex=this.zIndex;t.style.width=tw+'px';t.style.height=th+'px';t.GALLERYIMG='no';t.UNSELECTABLE="on";t.setVisibleOnLoad=visible;t.onload=function(){if(this.setVisibleOnLoad)this.style.visibility='';if(!this.parentNode)this.tileLayer.tMgr.wnd.appendChild(this);if(this.tileLayer.onTileLoaded)this.tileLayer.onTileLoaded(this);};t.onerror=function(){if(this.retryCount)this.retryCount++;else this.retryCount=1;if(this.retryCount<5){var s=this.src;if(s.substring(0,13).toLowerCase()=='http://server'){var t=s.indexOf('/',14);if(t>0){s=this.tileLayer.getActiveServer()+s.substring(t+1);}}
this.src=s+'';}else{this.tileLayer.onTileLoadFailed(this);}};t.setPosition=function(x,y){this.style.left=x+'px';this.style.top=y+'px';};t.setSize=function(x,y){this.style.width=x+'px';this.style.height=y+'px';};t.setVisible=function(visible,visibleOnLoad){if(typeof visible=="boolean")this.style.visibility=visible?"":"hidden";if(typeof visibleOnLoad=="boolean")this.setVisibleOnLoad=visibleOnLoad;};t.stopLoading=function(){this.onload=null;this.onerror=null;if(this.src&&!this.complete)this.src=this.tileLayer.defaultImage;};if(this.onNewTile)this.onNewTile(t);return t;};this.destroyTile=function(tile){if(!tile)return;if(tile.stopLoading)tile.stopLoading();try{if(tile.parentNode&&this.tMgr&&this.tMgr.wnd)this.tMgr.wnd.removeChild(tile);}
catch(e){}};this.loadTile=function(tile,x,y){this.tilesLoaded++;var s=this.getTileSource(x,y,tile);if(this.onTileLoadRequest)this.onTileLoadRequest(tile,s);if(this.tMgr.onTileLoadRequest)this.tMgr.onTileLoadRequest(this,tile,s);tile.src=s;};this.forceLoadTiles=function(){};this.getTileSource=function(x,y,e){return this.defaultImage;};this.reloadTiles=function(minX,minY,maxX,maxY,create,visible,exArea){var fn=function(x,y,thisLayer,p,visb){if(p.loaded[x*xN+y])return;var tp=thisLayer.tMgr.getTilePosition(x,y),lft=tp.x,rht=lft+p.tw,top=tp.y,btm=top+p.th;var isVisible=!(rht<0||lft>=p.wndW||btm<0||top>p.wndH);if(isVisible==visb){if(!p.exArea||lft<p.exArea.minX||rht>=p.exArea.maxX||top<p.exArea.minY||btm>p.exArea.maxY){var t=thisLayer.tiles[x][y];if(!t)if(p.create)t=thisLayer.tiles[x][y]=thisLayer.createNewTile(x,y,p.visible);else return;thisLayer.loadTile(t,(x+p.rx)*p.tw,(y+p.ry)*p.th);p.loaded[x*xN+y]=true;}else{}}else if(!isVisible){}};var xN=this.tMgr.nTilesX,yN=this.tMgr.nTilesY;var ps=this.tMgr.getShiftTiles();var rx=-ps.x-Math.floor(xN/2),ry=-ps.y-Math.floor(yN/2);var tw=this.tMgr.tileWidth,th=this.tMgr.tileHeight;var prm={xN:xN,yN:yN,rx:rx,ry:ry,tw:tw,th:th,wndW:this.tMgr.wndWidth,wndH:this.tMgr.wndHeight,create:create,visible:visible,loaded:new Array(xN*yN)};if(exArea){if(exArea.minX<0)exArea.minX=-99999;if(exArea.minY<0)exArea.minY=-99999;if(exArea.maxX>this.tMgr.wndWidth)exArea.maxX=99999;if(exArea.maxY>this.tMgr.wndHeight)exArea.maxY=99999;prm.exArea=exArea;this.spiralIterator(minX,minY,maxX,maxY,fn,this,prm,true);prm.exArea=null;}
this.spiralIterator(minX,minY,maxX,maxY,fn,this,prm,true);this.spiralIterator(minX,minY,maxX,maxY,fn,this,prm,false);this.forceLoadTiles();};this.spiralIterator=function(minX,minY,maxX,maxY,callback,param1,param2,param3){var x=Math.floor((maxX-minX-1)/2);var y=Math.floor((maxY-minY-1)/2);var dir=0;var dX=[1,0,-1,0],dY=[0,1,0,-1];var mm=Math.max(maxX-minX,maxY-minY);for(var p=1;p<=mm;p++){for(var s=0;s<2;s++){for(var m=0;m<p;m++){if(x>=minX&&x<maxX&&y>=minY&&y<maxY)callback(x,y,param1,param2,param3);x+=dX[dir];y+=dY[dir];}
if(++dir==4)dir=0;}}};this.shift=function(sx,sy){if(this.tiles){var m=this.tMgr,ps=m.getShiftTiles(),xN=m.nTilesX,yN=m.nTilesY;if(this.currentShiftTiles.x!=ps.x||this.currentShiftTiles.y!=ps.y){var px=ps.x-this.currentShiftTiles.x;var py=ps.y-this.currentShiftTiles.y;if(Math.abs(px)>=xN||Math.abs(py)>=yN){this.reloadTiles(0,0,xN,yN,false,true,null);}else{var a=new Array(xN);for(var x=0;x<xN;x++)a[x]=new Array(yN);for(var x=0;x<xN;x++)for(var y=0;y<yN;y++)a[x][y]=this.tiles[(x-px+xN)%xN][(y-py+yN)%yN];this.tiles=a;var minX=Math.max(0,px),maxX=Math.min(xN,px+xN),minY=Math.max(0,py),maxY=Math.min(yN,py+yN);var rx=-ps.x-Math.floor(xN/2),ry=-ps.y-Math.floor(yN/2);var tw=m.tileWidth,th=m.tileHeight;var xN2=Math.ceil(xN/2).yN2=Math.ceil(yN/2);var fn=function(x,y,thisLayer,p,visb){if(x<p.minX||x>=p.maxX||y<p.minY||y>=p.maxY){var tp=thisLayer.tMgr.getTilePosition(x,y),lft=tp.x,rht=lft+p.tw,top=tp.y,btm=top+p.th;var isVisible=!(rht<0||lft>=p.wndW||btm<0||top>p.wndH);if(isVisible==visb){var t=thisLayer.tiles[x][y];if(t){if(t.setVisible){t.setVisible(false,thisLayer.visible);}
thisLayer.loadTile(t,(x+p.rx)*p.tw,(y+p.ry)*p.th,t);}}}};var prm={minX:minX,minY:minY,maxX:maxX,maxY:maxY,rx:rx,ry:ry,tw:tw,th:th,wndW:m.wndWidth,wndH:m.wndHeight};this.spiralIterator(0,0,xN,yN,fn,this,prm,true);this.spiralIterator(0,0,xN,yN,fn,this,prm,false);this.forceLoadTiles();}
this.currentShiftTiles=ps;}
var p0=m.getTilePosition(0,0),tW=m.tileWidth,tH=m.tileHeight;for(var x=0,x1=p0.x;x<xN;x++,x1+=tW){for(var y=0,y1=p0.y;y<yN;y++,y1+=tH){var t=this.tiles[x][y];if(t&&t.setPosition){t.setPosition(x1,y1);}}}}else{}
if(this.oldZoomTiles){for(var k in this.oldZoomTiles){if(!this.oldZoomTiles[k])continue;var ozt=this.oldZoomTiles[k];if(!ozt||!ozt.tiles)continue;ozt.x0+=sx;ozt.y0+=sy;var x0=Math.round(ozt.x0),y0=Math.round(ozt.y0),w=Math.round(ozt.currentWidth),h=Math.round(ozt.currentHeight);for(var x=0,x2=x0;ozt.tiles&&x<ozt.tiles.length;x++,x2+=w){for(var y=0,y2=y0;ozt.tiles&&ozt.tiles[x]&&y<ozt.tiles[x].length;y++,y2+=h){var t=ozt.tiles[x][y];if(t&&t.setPosition){t.setPosition(x2,y2);}}}}}
if(this.onShift)this.onShift(sx,sy);};this.adjustShift=function(sx,sx){if(this.currentShiftTiles){this.currentShiftTiles.x+=sx;this.currentShiftTiles.y+=sy;}};this.onZoomChange=function(delta,p){var inSmoothZoom=false;var m=this.tMgr;if(m.smoothZoomSteps>0&&Math.abs(delta)<4){var tiles=this.tiles;if(tiles){this.tiles=null;this.stopLoadingTiles(tiles);var ozts=this.oldZoomTiles;if(!ozts)ozts=new Array();ozts.push({tiles:tiles});this.oldZoomTiles=ozts;inSmoothZoom=true;}}
if(!inSmoothZoom){this.tilesArrayInit(m.nTilesX,m.nTilesY,true,null);}};this.cleanOldZoomTiles=function(){if(this.cleanOldTilesTimer){clearTimeout(this.cleanOldTilesTimer);this.cleanOldTilesTimer=null;}
if(this.tiles){var nt=this.countLoadingTiles(this.tiles,false);if(nt==0){var t=this.oldZoomTiles;this.oldZoomTiles=null;for(var k in t){if(!t[k])continue;var ozt=t[k].tiles;if(ozt)this.tilesArrayReset(ozt);}
return;}else{}}
var tt=this;this.cleanOldTilesTimer=setTimeout(function(){tt.cleanOldZoomTiles();},5000);};this.smoothZoom=function(step,delta,p){if(!this.oldZoomTiles)return;var m=this.tMgr;if(step==0){this.tiles=null;var tt=this;this.cleanOldTilesTimer=setTimeout(function(){tt.cleanOldZoomTiles();},5000);if(delta<0){var k=Math.pow(2,delta);var p0=m.getTilePosition(0,0);var minX=p.x-(p.x-p0.x)*k,minY=p.y-(p.y-p0.y)*k;var maxX=minX+m.tileWidth*m.nTilesX*k,maxY=minY+m.tileHeight*m.nTilesY*k;var exArea={minX:minX,minY:minY,maxX:maxX,maxY:maxY};}
this.tilesArrayInit(m.nTilesX,m.nTilesY,true,exArea);return;}
if(step==this.tMgr.smoothZoomSteps){for(var i in this.stickers){var e=this.stickers[i].obj;e.origX=e.offsetLeft;e.origY=e.offsetTop;}}
var ozts=this.oldZoomTiles;if(ozts){var coef=Math.pow(2,delta/m.smoothZoomSteps);for(var k in ozts){var ozt=ozts[k];if(!ozt||!ozt.tiles)continue;var xN=ozt.tiles.length,yN=ozt.tiles[0].length;if(!ozt.currentWidth){ozt.x0=ozt.tiles[0][0].offsetLeft;ozt.y0=ozt.tiles[0][0].offsetTop;ozt.currentWidth=m.tileWidth;ozt.currentHeight=m.tileHeight;}
var x0=Math.round(ozt.x0=p.x-(p.x-ozt.x0)*coef),y0=Math.round(ozt.y0=p.y-(p.y-ozt.y0)*coef);ozt.currentWidth*=coef;ozt.currentHeight*=coef;var w=Math.round(ozt.currentWidth),h=Math.round(ozt.currentHeight);for(var x=0;x<xN;x++){for(var y=0;y<yN;y++){if(ozt.tiles&&ozt.tiles[x][y]){var t=ozt.tiles[x][y];if(t&&t.setPosition)t.setPosition(Math.round(x0+x*w),Math.round(y0+y*h));if(t&&t.setSize)t.setSize(Math.round(w),Math.round(h));}}}}}}
this.countLoadingTiles=function(tiles,loaded){if(!tiles||!tiles.length||!tiles[0]||!tiles[0].length)return 0;var n=0,xN=tiles.length,yN=tiles[0].length;for(var x=0;x<xN;x++)for(var y=0;tiles[x]&&y<yN;y++)if(tiles[x][y]&&tiles[x][y].complete==loaded)n++;return n;};this.stopLoadingTiles=function(tiles){if(!tiles||!tiles.length||!tiles[0]||!tiles[0].length)return;var xN=tiles.length,yN=tiles[0].length;for(var x=0;x<xN;x++)for(var y=0;tiles[x]&&y<yN;y++){try{if(tiles[x][y]&&tiles[x][y].stopLoading)tiles[x][y].stopLoading();}
catch(e){}}};this.onTileLoaded=function(tile){if(this.tMgr&&this.tMgr.onTileLoaded)this.tMgr.onTileLoaded(tile);};this.onTileLoadFailed=function(tile){};this.onNewTile=function(tile){};}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(Images==null)var Images={};Images._path='/dwr';Images.getImgListInArea=function(p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,callback){dwr.engine._execute(Images._path,'Images','getImgListInArea',p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,callback);}
Images.getImgListSortedByResolution=function(callback){dwr.engine._execute(Images._path,'Images','getImgListSortedByResolution',callback);}
Images.getImgTitles=function(p0,callback){dwr.engine._execute(Images._path,'Images','getImgTitles',p0,callback);}
Images.getImgDetails=function(p0,callback){dwr.engine._execute(Images._path,'Images','getImgDetails',p0,callback);}
Images.getImgByURL=function(p0,callback){dwr.engine._execute(Images._path,'Images','getImgByURL',p0,callback);}
Images.getImgByHash=function(p0,callback){dwr.engine._execute(Images._path,'Images','getImgByHash',p0,callback);}
Images.solve=function(p0,p1,callback){dwr.engine._execute(Images._path,'Images','solve',p0,p1,callback);}
Images.getSolveResult=function(p0,callback){dwr.engine._execute(Images._path,'Images','getSolveResult',p0,callback);}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;if(Labels==null)var Labels={};Labels._path='/dwr';Labels.getLabelsCompact=function(p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,callback){dwr.engine._execute(Labels._path,'Labels','getLabelsCompact',p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,callback);}
Labels.getConstellationNames=function(p0,callback){dwr.engine._execute(Labels._path,'Labels','getConstellationNames',p0,callback);}
Labels.getLabels=function(p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,callback){dwr.engine._execute(Labels._path,'Labels','getLabels',p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,callback);}
var centerRA,centerDE;var degPerPixel,radPerPixel;var rotateDeg=0,rotateRad=0,m_reverse=false;var shiftX=0,shiftY=0;var sin_fi1,cos_fi1;var sin_r=0,cos_r=1;var radPerDeg=Math.PI/180,radPerHour=Math.PI/12,PI_2=Math.PI/2,PI2=Math.PI*2;function setCenter(ra,de){centerRA=ra;centerDE=de;sin_fi1=Math.sin(de*Math.PI/180);cos_fi1=Math.cos(de*Math.PI/180);}
function setResolution(p_degPerPixel){degPerPixel=p_degPerPixel;radPerPixel=p_degPerPixel*Math.PI/180;}
function setRotation(p_rotateDeg){rotateDeg=p_rotateDeg;rotateRad=p_rotateDeg*Math.PI/180;sin_r=Math.sin(-rotateRad);cos_r=Math.cos(-rotateRad);}
function setReverse(p_reverse){m_reverse=p_reverse;}
function setShift(s_x,s_y){shiftX=s_x;shiftY=s_y;}
function formatRA(ra){if(ra<0){ra+=24;}else if(ra>=24){ra-=24;}
var hh=Math.floor(ra).toFixed(0);if(hh.length==1){hh="0"+hh;}
var mm=Math.floor(((ra-Math.floor(ra))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((ra*60-Math.floor(ra*60))*60).toFixed(2);if(ss.length==4){ss="0"+ss;}
return hh+"<sup>h</sup>"+mm+"<sup>m</sup>"+ss+"<sup>s</sup>";}
function formatDE(de){var deg=Math.floor(Math.abs(de)).toFixed(0);if(deg.length==1){deg="0"+deg;}
if(de<0){deg="-"+deg;}else{deg="+"+deg;}
var mm=Math.floor(Math.abs((Math.abs(de)-Math.floor(Math.abs(de)))*60)).toFixed(0);if(mm.length==1){mm="0"+mm;}
var ss=((Math.abs(de)*60-Math.floor(Math.abs(de*60)))*60).toFixed(1);if(ss.length==3){ss="0"+ss;}
return deg+"&deg;"+mm+"&prime;"+ss+"&Prime;";}
function extendNumber(num,len){var s=''+num;while(s.length<len)s='0'+s;return s;}
function getProjection(ra2,de2){var la=ra2*radPerHour;var fi=de2*radPerDeg;var sin_fi=Math.sin(fi);var cos_fi=Math.cos(fi);var la_la0=la-centerRA*radPerHour;var sin_la_la0=Math.sin(la_la0);var cos_la_la0=Math.cos(la_la0);var c=Math.acos(sin_fi1*sin_fi+cos_fi1*cos_fi*cos_la_la0);var k=(c===0)?0:-c/Math.sin(c)/radPerPixel;var x1=cos_fi*sin_la_la0;var y1=(cos_fi1*sin_fi-sin_fi1*cos_fi*cos_la_la0);this.x=(m_reverse?-k:k)*(x1*cos_r-y1*sin_r)+shiftX;this.y=k*(x1*sin_r+y1*cos_r)+shiftY;}
function getRevProjection(px1,py1){px1-=shiftX;py1-=shiftY;var x=(px1*(m_reverse?1:-1)*cos_r-py1*sin_r)*radPerPixel;var y=-(px1*(m_reverse?1:-1)*sin_r+py1*cos_r)*radPerPixel;var c=Math.sqrt(x*x+y*y);var sin_c=Math.sin(c);var cos_c=Math.cos(c);var fi=c===0?centerDE:Math.asin(cos_c*sin_fi1+y*sin_c*cos_fi1/c)/radPerDeg;var ala,t=0,atan;if(Math.abs(centerDE-90)<1e-9){ala=y===0?0:-x/y;t=-y;atan=y===0?Math.PI/(x<0?-2:2):Math.atan(ala);}else if(Math.abs(centerDE+90)<1e-9){ala=y===0?0:x/y;t=y;atan=y===0?Math.PI/(x<0?-2:2):Math.atan(ala);}else{t=c*cos_fi1*cos_c-y*sin_fi1*sin_c;ala=t===0?0:x*sin_c/t;atan=Math.atan(ala);}
if(t<0){atan=atan-Math.PI;}
var la=centerRA+atan/radPerHour;if(la<0){la+=24;}else if(la>=24){la-=24;}
this.ra=la;this.de=fi;}
function getTanProjection(ra2,de2){var x1=0,y1=0;if(centerRA!=ra2||centerDE!=de2){var r0=(ra2-centerRA)*radPerHour;var RA2=ra2*radPerHour,DE2=de2*radPerDeg;var sin_de2=Math.sin(DE2),cos_de2=Math.cos(DE2),cos_ra2=Math.cos(r0);var radius=Math.acos(sin_fi1*sin_de2+cos_fi1*cos_de2*cos_ra2);if(radius<Math.PI){var theta=1e30,sinA=0,cosA=0;if(centerDE>=90.0){theta=Math.PI-r0;if(theta<0.0)theta+=PI2;if(theta>=0.0)theta-=PI2;}else if(centerDE<=-90.0){theta=r0;if(theta<0.0)theta+=PI2;if(theta>=0.0)theta-=PI2;}else{var sin_ra2=Math.sin(r0);var sin_r=Math.sin(radius),cos_r=Math.cos(radius);sinA=cos_de2*sin_ra2/sin_r;cosA=(sin_de2-sin_fi1*cos_r)/(cos_fi1*sin_r);if(rotateRad!=0){theta=Math.atan2(sinA,cosA);if(theta<0.0)theta+=PI2;}}
var k=Math.tan(radius)/radPerPixel;if(theta!=1e30){theta+=rotateRad;x1=(m_reverse?k:-k)*Math.sin(theta);y1=-k*Math.cos(theta);}else{x1=(m_reverse?k:-k)*sinA;y1=-k*cosA;}}}
this.x=x1+shiftX;this.y=y1+shiftY;}
function getRevTanProjection(px1,py1){if(m_reverse)px1=-px1;px1-=shiftX;py1-=shiftY;var x=px1*radPerPixel;var y=py1*radPerPixel;var radius=Math.atan(Math.sqrt(x*x+y*y));var theta=Math.atan2(y,x)+rotateRad+PI_2;var sin_t=sin_fi1*Math.cos(radius)+cos_fi1*Math.sin(radius)*Math.cos(theta);var sin_decl=sin_t;var cos_decl=Math.sqrt(1-sin_t*sin_t);var decl=Math.atan2(sin_t,cos_decl);var rra=0.0;if(cos_decl!=0.0){if(centerDE>=90){theta=Math.atan2(-x,-y);rra=12+centerRA-(rotateRad+theta)/radPerHour;}else if(centerDE<=-90){theta=Math.atan2(-x,-y);rra=centerRA+(rotateRad+theta)/radPerHour;}else{sin_t=Math.sin(theta)*Math.sin(radius)/cos_decl;var cos_t=(Math.cos(radius)-sin_decl*sin_fi1)/(cos_decl*cos_fi1);rra=centerRA-Math.atan2(sin_t,cos_t)/radPerHour;}}
if(rra<0){rra+=24;}else if(rra>=24){rra-=24;}
this.ra=rra;this.de=decl/radPerDeg;}
function getAitoffProjection(width,height,RA,DE){var f=DE/180.0*Math.PI;var q=(RA-12)/12.0*Math.PI;var a=Math.acos(Math.cos(f)*Math.cos(q/2));var xx=0;var yy=0;if(a!=0.0){a=-a/Math.PI/Math.sin(a);xx=a*width*Math.cos(f)*Math.sin(q/2);yy=a*height*Math.sin(f);}
xx=xx+width/2;yy=yy+height/2;this.x=Math.round(xx);this.y=Math.round(yy);}
function getRevAitoffProjection(width,height,x,y){x=x-width/2;y=y-height/2;if(x===0&&y===0){this.ra=12;this.de=0;return;}
var V=0.0,S=0.0;var R1=-width/Math.PI;var R2=-height/Math.PI;V=y*y/R2/R2+x*x/R1/R1;S=x*x*R2*R2/(R1*R1*y*y+x*x*R2*R2);var T=0.0,Z=0.0;Z=Math.cos(Math.sqrt(V));T=S*(1-Z*Z)+Z*Z;var f=0.0,q=0.0;f=Math.acos(Math.sqrt(T));q=2*Math.acos(Z/Math.cos(f));var DE=0.0,RA=0.0;DE=(y<0?1:-1)*f/radPerDeg;RA=(x<0?1:-1)*q/radPerHour+12;this.ra=RA;this.de=DE;}
function checkPointInEllipse(p,x0,y0,r1,r2,angle){var x2=x0-r2*Math.cos(angle-rotateRad);var y2=y0+r2*Math.sin(angle-rotateRad);var d1sq=(p.x-x2)*(p.x-x2)+(p.y-y2)*(p.y-y2);var d2sq=(x2-x0)*(x2-x0)+(y2-y0)*(y2-y0);var d3sq=(p.x-x0)*(p.x-x0)+(p.y-y0)*(p.y-y0);var cosG=(d2sq+d3sq-d1sq)/(2*Math.sqrt(d2sq)*Math.sqrt(d3sq));var A=cosG*cosG;var B=1-A;var C=d3sq*(A/(r2*r2)+B/(r1*r1));return(C<=1);}
var SIDEREAL_GMST=-100;var SIDEREAL_GAST=-200;var SIDEREAL_LMST=-300;var SIDEREAL_LAST=-400;function julian_date(now_time_tm_year,now_time_tm_mon,now_time_tm_day,now_time_tm_hour,now_time_tm_min,now_time_tm_sec){var year=now_time_tm_year;var month=now_time_tm_mon+1;var day=now_time_tm_day;var UT=now_time_tm_hour+now_time_tm_min/60.0+now_time_tm_sec/3600.0;var JD=367*year-
toInt(7.0*(year+toInt((month+9.0)/12.0))/4.0)-
toInt(3.0*(toInt((year+(month-9.0)/7.0)/100.0)
+1.0)/4.0)+
toInt(275.0*month/9.0)+
day+1721028.5+UT/24.0;return(JD);}
function toInt(nmb){if(nmb>0)return Math.floor(nmb)
if(nmb<0)return Math.ceil(nmb)
return nmb;}
function FDoY(Y,M,D){return(Date.UTC(Y,M,D)-Date.UTC(Y,1,1))/86400000+1;}
function sidereal_time(time_now_tm_year,time_now_tm_mon,time_now_tm_day,time_now_tm_hour,time_now_tm_min,time_now_tm_sec,type,longitude){var JD_J2000,JD_now,JD_diff;var gmst,gast,JC,eqtime,last,lmst;time_ref_tm_sec=0;time_ref_tm_min=0;time_ref_tm_hour=12;time_ref_tm_day=1;time_ref_tm_mon=0;time_ref_tm_year=100;JD_J2000=julian_date(time_ref_tm_year,time_ref_tm_mon,time_ref_tm_day,time_ref_tm_hour,time_ref_tm_min,time_ref_tm_sec);JD_now=julian_date(time_now_tm_year,time_now_tm_mon,time_now_tm_day,time_now_tm_hour,time_now_tm_min,time_now_tm_sec);JD_diff=JD_now-JD_J2000;JC=JD_diff/36525.0;gmst=280.46061837+360.98564736629*JD_diff+
0.0003887933*Math.pow(JC,2)-
Math.pow(JC,3)/38710000.0;while(gmst>=360.0)
gmst-=360.0;gmst=gmst/15.0;if(type==SIDEREAL_GMST)
return(gmst);var day_of_year=FDoY(time_now_tm_year,time_now_tm_mon+1,time_now_tm_day);eqtime=(-0.49+0.3*day_of_year/365.0+
0.07*Math.cos(2.0*6.2831853*(day_of_year-35.0)/365.0))/3600.0;gast=gmst+eqtime;while(gast>24.0)gast-=24.0;if(type==SIDEREAL_GAST)return gast;last=gast+24.0+longitude/15.0;while(last>24.0)last-=24.0;if(type==SIDEREAL_LAST)return last;lmst=gmst+24.0+longitude/15.0;while(lmst>24.0)
lmst-=24.0;if(type==SIDEREAL_LMST)
return lmst;return lmst;}
function arrayContains(p_array,p_element){var i;for(i=0;i<p_array.length;i++){if(p_array[i]==p_element)return i;}
return-1;}
function Point(x,y){this.x=x;this.y=y;}
var SDSS_array=[[[149,156]],[[148.5,156]],[[146,156],[187,188]],[[143.5,155.5],[179,182],[184.5,189],[193,196.5]],[[142,155.5],[170.5,175],[177,198],[201,205.5]],[[141,154],[166,168],[169,208]],[[140,152.5],[164,211]],[[139,150.5],[159.5,160.5],[161.5,213.5],[231.5,234]],[[138,150.5],[158,216],[231,236.5]],[[137,150.5],[157,217.5],[230,238.5]],[[136,219],[229.5,239.5]],[[134.5,221.5],[229.5,240.5]],[[133.5,223.5],[231,242]],[[132.5,225.5],[233,243]],[[132,226.5],[234.5,244]],[[131,227.5],[235.5,244.5]],[[130.5,228.5],[236.5,244.5]],[[130,229],[237,245]],[[129.5,231],[238,245]],[[129,233.5],[238.5,245.5]],[[128,235.5],[239,246]],[[127,237.5],[239.5,247.5]],[[126,238],[240,248]],[[125.5,238.5],[241.5,249]],[[124,239],[242.5,250]],[[123.5,239.5],[243.5,250.5]],[[122.5,239.5],[245,251]],[[121.5,240],[245.5,251]],[[120.5,240.5],[246,251.5]],[[120,241],[246.5,251.5]],[[119.5,242],[246.5,251.5]],[[119.5,242.5],[246.5,252.5]],[[119,243],[246.5,253.5]],[[119,244],[247.5,254.5]],[[118.5,244.5],[248.5,255]],[[118,245.5],[249,256]],[[117.5,246.5],[250,257]],[[117,247],[251,257]],[[116.5,247.5],[252,257.5]],[[116,247.5],[252,257.5]],[[115.5,248],[252,257.5]],[[115,249],[252.5,257.5]],[[114,249.5],[252.5,257.5]],[[114,250],[252.5,258]],[[114,250.5],[253,258.5]],[[114,251.5],[253.5,258.5]],[[114.5,252.5],[254,259]],[[115,253],[254.5,259.5]],[[115,254],[255,260]],[[114.5,254.5],[255,260.5]],[[114,255],[255.5,261]],[[114,261]],[[113.5,261.5]],[[113,262]],[[112.5,263]],[[112,263]],[[111.5,257.5],[258,263.5]],[[111,257.5],[258.5,263.5]],[[110.5,258],[259.5,264]],[[110,258],[260.5,264]],[[110,258],[260,264]],[[110,258],[260,264]],[[110.5,258],[260,264]],[[110.5,258],[260,264.5]],[[112,258.5],[260,264.5]],[[111.5,258.5],[260,264.5]],[[110.5,258.5],[260.5,264.5]],[[109,259],[261.5,265]],[[108.5,259],[262,265.5]],[[110,259.5],[262.5,265.5]],[[111.5,259.5],[263,266]],[[111.5,259.5],[263,266.5]],[[112,260],[263,267]],[[113,260],[263,267]],[[114.5,260],[262.5,268]],[[114.5,260],[262.5,268]],[[114.5,260.5],[262.5,268.5]],[[114,260.5],[263,269]],[[114,261],[264,268.5]],[[114.5,261.5],[264.5,267]],[[115,262],[265,266]],[[115,262.5]],[[115,263]],[[114.5,263.5]],[[113.5,263.5]],[[113,264]],[[112.5,264.5]],[[112.5,265]],[[113.5,265]],[[112,264.5]],[[112,264]],[[112.5,264]],[[113,263.5]],[[113.5,263]],[[115,263]],[[116,262.5]],[[115.5,262]],[[115,261.5]],[[114.5,261.5]],[[114.5,261]],[[115,261]],[[115,261.5]],[[114.5,261.5]],[[114,261.5]],[[113.5,158],[161,261]],[[113,154],[160.5,260.5]],[[113.5,151.5],[160.5,260]],[[114,149.5],[160.5,252.5],[253.5,259.5]],[[114.5,142],[143,148],[161,252.5],[254.5,258.5],[358.5,377]],[[115,140.5],[143,146.5],[161.5,252.5],[254.5,258],[349,385.5]],[[115.5,138.5],[143,144.5],[161.5,254],[255,257.5],[343,392.5]],[[116,136],[158,254.5],[255.5,256.5],[338,396.5]],[[116,135.5],[155,254.5],[334.5,397]],[[116,135.5],[152,254.5],[330,397]],[[116,135.5],[148.5,255],[326,360.5],[370.5,397]],[[116.5,134.5],[144.5,255],[324,348],[384,397]],[[117,133],[141.5,255],[322,342.5],[390,397]],[[117.5,132.5],[138,255.5],[320,338.5],[393,397]],[[117.5,131.5],[136.5,255.5],[318,334.5]],[[117.5,130],[135,255],[318,330.5]],[[117.5,129],[131.5,254],[318,328]],[[117.5,127],[128.5,253],[318,325]],[[117.5,124.5],[127,252.5],[318,323]],[[118,122.5],[124,252.5],[318.5,321]],[[118,121],[123,253]],[[118.5,120],[121.5,253.5]],[[118.5,119.5],[121,251.5]],[[120.5,251]],[[120,250.5]],[[119.5,250.5]],[[119,249]],[[119,249.5]],[[120,249]],[[120,122],[123,248.5]],[[122,247]],[[122.5,246]],[[123,244]],[[122.5,230.5],[234.5,244.5]],[[121.5,253.5],[311.5,421.5]],[[121.5,253.5],[311.5,422]],[[123.5,253],[311.5,422]],[[124,253],[311.5,422.5]],[[124,252.5],[311.5,422.5]],[[124.5,252],[312,423]],[[171,242]],[[171.5,242]],[[171.5,242]],[[171.5,233.5]],[[171.5,216.5]],[[309,311],[421.5,426.5]],[[309,316],[416.5,426.5]],[[309.5,320],[412.5,426.5]],[[310,325],[409,426.5]],[[310.5,329.5],[405,426.5]],[[310.5,334.5],[400.5,426.5]],[[311.5,339.5],[394.5,424.5]],[[315.5,344.5],[389,419.5]],[[318,354],[381,416]],[[321,412]],[[325,408.5]],[[329.5,403]],[[337,398]],[[344,392.5]],[[352,382]]];var SDSS_minDE=-11.5;var SDSS_maxDE=70.5;function isCoveredSDSS(RA,DE){return true;}
function padNumber(number,len){var s=""+number;while(s.length<len)s="0"+s;return s;}
var offsetxpoint=-60;var offsetypoint=22;var ie=document.all;var ns6=document.getElementById&&!document.all;var enabletip=false;var tip_onmouseout;var tip_width,tip_height;var tip_options;function ietruebody(){return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body}
function ddrivetip(thetext,thecolor,thewidth,theheight,options){if(ns6||ie){tip_onmouseout=this.onmouseout!=hideddrivetip?this.onmouseout:null;this.onmouseout=hideddrivetip;tip_width=thewidth;tip_height=theheight;tip_options=options;var tipobj=document.getElementById("dhtmltooltip");if(!tipobj){document.body.appendChild(tipobj=document.createElement("TABLE"));tipobj.id="dhtmltooltip";var t=tipobj.insertRow(-1).insertCell(-1);tipobj.cellPadding=0;tipobj.cellSpacing=0;tipobj.borders=0;tipobj.style.position="absolute";tipobj.style.zIndex=999;}
var inObj=(tipobj.tagName=="TABLE")?tipobj.rows[0].cells[0]:tipobj;inObj.style.color=(options&&options.color)?options.color:"";inObj.style.border=(options&&options.border)?options.border:"";inObj.style.fontSize=(options&&options.fontSize)?options.fontSize:"";inObj.style.fontStyle=(options&&options.fontStyle)?options.fontStyle:"";inObj.style.fontWeight=(options&&options.fontWeight)?options.fontWeight:"";inObj.style.fontFamily=(options&&options.fontFamily)?options.fontFamily:"";inObj.style.padding=(options&&options.padding)?options.padding+"px":"";inObj.style.whiteSpace=(options&&options.nowrap)?"nowrap":"";inObj.innerHTML=thetext;var imgs=inObj.getElementsByTagName("IMG");if(imgs)for(var i in imgs)if(imgs[i])imgs[i].onload=positiontip;if(typeof thecolor!="undefined"&&thecolor!="")inObj.style.backgroundColor=thecolor;enabletip=true;return false;}}
function positiontip_event(e){if(enabletip){var curX=(ns6)?e.pageX:event.clientX;var curY=(ns6)?e.pageY:event.clientY;document.tip_curX=curX;document.tip_curY=curY;positiontip(curX,curY);}
if(window.coolbar_savedMouseMove)
return window.coolbar_savedMouseMove(e);}
function positiontip(curX,curY){if(!enabletip)return;if(typeof curX!="number")curX=document.tip_curX;if(typeof curY!="number")curY=document.tip_curY;var w=ie&&!window.opera?ietruebody().clientWidth:window.innerWidth-20;var h=ie&&!window.opera?ietruebody().clientHeight:window.innerHeight-20;var rightedge=w-curX-offsetxpoint;var bottomedge=h-curY-offsetypoint;var leftedge=(offsetxpoint<0)?offsetxpoint*(-1):-1000;var tipobj=document.getElementById("dhtmltooltip");if(tipobj){var inObj=(tipobj.tagName=="TABLE")?tipobj.rows[0].cells[0]:tipobj;tipobj.style.width=null;tipobj.style.height=null;if(tip_width){tipobj.style.width=tip_width+"px";}else{var maxWidth=(tip_options)?tip_options.maxWidth:0;if(maxWidth){tipobj.style.width="1px";inObj.noWrap=true;if(inObj.offsetWidth>maxWidth)
tipobj.style.width=maxWidth+"px";inObj.noWrap=false;}}
if(tip_height)tipobj.style.height=tip_height+"px";var left,top;if(rightedge<tipobj.offsetWidth)
left=ie?ietruebody().scrollLeft+curX-tipobj.offsetWidth:window.pageXOffset+curX-tipobj.offsetWidth;else if(curX<leftedge)
left=5;else
left=curX+offsetxpoint;if(bottomedge>=tipobj.offsetHeight&&curY+offsetypoint<h-tipobj.offsetHeight){top=curY+offsetypoint;}else{top=ie?ietruebody().scrollTop+curY-tipobj.offsetHeight-offsetypoint:window.pageYOffset+curY-tipobj.offsetHeight-offsetypoint;if(top<0){top=Math.max(0,Math.min(h-tipobj.offsetHeight,Math.round(curY-tipobj.offsetHeight/2)));if(curX<w/2)left=curX+15;else left=curX-tipobj.offsetWidth-15;}}
if(left||left==0)tipobj.style.left=left+"px";if(top||top==0)tipobj.style.top=top+"px";tipobj.style.visibility="visible";}}
function hideddrivetip(){if(ns6||ie){enabletip=false
var tipobj=document.getElementById("dhtmltooltip");if(tipobj){tipobj.style.visibility="hidden";tipobj.style.left="-1000px";tipobj.style.backgroundColor='';tipobj.style.width='';}}
if(tip_onmouseout)tip_onmouseout();}
if(!document.coolbar_initilized){document.coolbar_initilized=true;window.coolbar_savedMouseMove=document.onmousemove;document.onmousemove=positiontip_event;}
if(dwr==null)var dwr={};if(dwr.engine==null)dwr.engine={};if(DWREngine==null)var DWREngine=dwr.engine;dwr.engine.setErrorHandler=function(handler){dwr.engine._errorHandler=handler;};dwr.engine.setWarningHandler=function(handler){dwr.engine._warningHandler=handler;};dwr.engine.setTextHtmlHandler=function(handler){dwr.engine._textHtmlHandler=handler;}
dwr.engine.setTimeout=function(timeout){dwr.engine._timeout=timeout;};dwr.engine.setPreHook=function(handler){dwr.engine._preHook=handler;};dwr.engine.setPostHook=function(handler){dwr.engine._postHook=handler;};dwr.engine.setHeaders=function(headers){dwr.engine._headers=headers;};dwr.engine.setParameters=function(parameters){dwr.engine._parameters=parameters;};dwr.engine.XMLHttpRequest=1;dwr.engine.IFrame=2;dwr.engine.ScriptTag=3;dwr.engine.setRpcType=function(newType){if(newType!=dwr.engine.XMLHttpRequest&&newType!=dwr.engine.IFrame&&newType!=dwr.engine.ScriptTag){dwr.engine._handleError(null,{name:"dwr.engine.invalidRpcType",message:"RpcType must be one of dwr.engine.XMLHttpRequest or dwr.engine.IFrame or dwr.engine.ScriptTag"});return;}
dwr.engine._rpcType=newType;};dwr.engine.setHttpMethod=function(httpMethod){if(httpMethod!="GET"&&httpMethod!="POST"){dwr.engine._handleError(null,{name:"dwr.engine.invalidHttpMethod",message:"Remoting method must be one of GET or POST"});return;}
dwr.engine._httpMethod=httpMethod;};dwr.engine.setOrdered=function(ordered){dwr.engine._ordered=ordered;};dwr.engine.setAsync=function(async){dwr.engine._async=async;};dwr.engine.setActiveReverseAjax=function(activeReverseAjax){if(activeReverseAjax){if(dwr.engine._activeReverseAjax)return;dwr.engine._activeReverseAjax=true;dwr.engine._poll();}
else{if(dwr.engine._activeReverseAjax&&dwr.engine._pollReq)dwr.engine._pollReq.abort();dwr.engine._activeReverseAjax=false;}};dwr.engine.setPollType=function(newPollType){if(newPollType!=dwr.engine.XMLHttpRequest&&newPollType!=dwr.engine.IFrame){dwr.engine._handleError(null,{name:"dwr.engine.invalidPollType",message:"PollType must be one of dwr.engine.XMLHttpRequest or dwr.engine.IFrame"});return;}
dwr.engine._pollType=newPollType;};dwr.engine.defaultErrorHandler=function(message,ex){dwr.engine._debug("Error: "+ex.name+", "+ex.message,true);if(message==null||message=="")alert("A server error has occured. More information may be available in the console.");else if(message.indexOf("0x80040111")!=-1)dwr.engine._debug(message);else alert(message);};dwr.engine.defaultWarningHandler=function(message,ex){dwr.engine._debug(message);};dwr.engine.beginBatch=function(){if(dwr.engine._batch){dwr.engine._handleError(null,{name:"dwr.engine.batchBegun",message:"Batch already begun"});return;}
dwr.engine._batch=dwr.engine._createBatch();};dwr.engine.endBatch=function(options){var batch=dwr.engine._batch;if(batch==null){dwr.engine._handleError(null,{name:"dwr.engine.batchNotBegun",message:"No batch in progress"});return;}
dwr.engine._batch=null;if(batch.map.callCount==0)return;if(options)dwr.engine._mergeBatch(batch,options);if(dwr.engine._ordered&&dwr.engine._batchesLength!=0){dwr.engine._batchQueue[dwr.engine._batchQueue.length]=batch;}
else{dwr.engine._sendData(batch);}};dwr.engine.setPollMethod=function(type){dwr.engine.setPollType(type);};dwr.engine.setMethod=function(type){dwr.engine.setRpcType(type);};dwr.engine.setVerb=function(verb){dwr.engine.setHttpMethod(verb);};dwr.engine._origScriptSessionId="FBE9A42B197F6E9B1BF3F28DFD3B0F48";dwr.engine._sessionCookieName="JSESSIONID";dwr.engine._allowGetForSafariButMakeForgeryEasier="true";dwr.engine._scriptTagProtection="throw 'allowScriptTagRemoting is false.';";dwr.engine._defaultPath="/dwr";dwr.engine._scriptSessionId=null;dwr.engine._getScriptSessionId=function(){if(dwr.engine._scriptSessionId==null){dwr.engine._scriptSessionId=dwr.engine._origScriptSessionId+Math.floor(Math.random()*1000);}
return dwr.engine._scriptSessionId;};dwr.engine._errorHandler=dwr.engine.defaultErrorHandler;dwr.engine._warningHandler=dwr.engine.defaultWarningHandler;dwr.engine._preHook=null;dwr.engine._postHook=null;dwr.engine._batches={};dwr.engine._batchesLength=0;dwr.engine._batchQueue=[];dwr.engine._rpcType=dwr.engine.XMLHttpRequest;dwr.engine._httpMethod="POST";dwr.engine._ordered=false;dwr.engine._async=true;dwr.engine._batch=null;dwr.engine._timeout=0;dwr.engine._DOMDocument=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];dwr.engine._XMLHTTP=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];dwr.engine._activeReverseAjax=false;dwr.engine._pollType=dwr.engine.XMLHttpRequest;dwr.engine._outstandingIFrames=[];dwr.engine._pollReq=null;dwr.engine._pollCometInterval=200;dwr.engine._pollRetries=0;dwr.engine._maxPollRetries=0;dwr.engine._textHtmlHandler=null;dwr.engine._headers=null;dwr.engine._parameters=null;dwr.engine._postSeperator="\n";dwr.engine._defaultInterceptor=function(data){return data;}
dwr.engine._urlRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._contentRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._replyRewriteHandler=dwr.engine._defaultInterceptor;dwr.engine._nextBatchId=0;dwr.engine._propnames=["rpcType","httpMethod","async","timeout","errorHandler","warningHandler","textHtmlHandler"];dwr.engine._partialResponseNo=0;dwr.engine._partialResponseYes=1;dwr.engine._partialResponseFlush=2;dwr.engine._execute=function(path,scriptName,methodName,vararg_params){var singleShot=false;if(dwr.engine._batch==null){dwr.engine.beginBatch();singleShot=true;}
var batch=dwr.engine._batch;var args=[];for(var i=0;i<arguments.length-3;i++){args[i]=arguments[i+3];}
if(batch.path==null){batch.path=path;}
else{if(batch.path!=path){dwr.engine._handleError(batch,{name:"dwr.engine.multipleServlets",message:"Can't batch requests to multiple DWR Servlets."});return;}}
var callData;var lastArg=args[args.length-1];if(typeof lastArg=="function"||lastArg==null)callData={callback:args.pop()};else callData=args.pop();dwr.engine._mergeBatch(batch,callData);batch.handlers[batch.map.callCount]={exceptionHandler:callData.exceptionHandler,callback:callData.callback};var prefix="c"+batch.map.callCount+"-";batch.map[prefix+"scriptName"]=scriptName;batch.map[prefix+"methodName"]=methodName;batch.map[prefix+"id"]=batch.map.callCount;for(i=0;i<args.length;i++){dwr.engine._serializeAll(batch,[],args[i],prefix+"param"+i);}
batch.map.callCount++;if(singleShot)dwr.engine.endBatch();};dwr.engine._poll=function(overridePath){if(!dwr.engine._activeReverseAjax)return;var batch=dwr.engine._createBatch();batch.map.id=0;batch.map.callCount=1;batch.isPoll=true;if(navigator.userAgent.indexOf("Gecko/")!=-1){batch.rpcType=dwr.engine._pollType;batch.map.partialResponse=dwr.engine._partialResponseYes;}
else if(document.all){batch.rpcType=dwr.engine.IFrame;batch.map.partialResponse=dwr.engine._partialResponseFlush;}
else{batch.rpcType=dwr.engine._pollType;batch.map.partialResponse=dwr.engine._partialResponseNo;}
batch.httpMethod="POST";batch.async=true;batch.timeout=0;batch.path=(overridePath)?overridePath:dwr.engine._defaultPath;batch.preHooks=[];batch.postHooks=[];batch.errorHandler=dwr.engine._pollErrorHandler;batch.warningHandler=dwr.engine._pollErrorHandler;batch.handlers[0]={callback:function(pause){dwr.engine._pollRetries=0;setTimeout("dwr.engine._poll()",pause);}};dwr.engine._sendData(batch);if(batch.rpcType==dwr.engine.XMLHttpRequest){dwr.engine._checkCometPoll();}};dwr.engine._pollErrorHandler=function(msg,ex){dwr.engine._pollRetries++;dwr.engine._debug("Reverse Ajax poll failed (pollRetries="+dwr.engine._pollRetries+"): "+ex.name+" : "+ex.message);if(dwr.engine._pollRetries<dwr.engine._maxPollRetries){setTimeout("dwr.engine._poll()",10000);}
else{dwr.engine._debug("Giving up.");}};dwr.engine._createBatch=function(){var batch={map:{callCount:0,page:window.location.pathname+window.location.search,httpSessionId:dwr.engine._getJSessionId(),scriptSessionId:dwr.engine._getScriptSessionId()},charsProcessed:0,paramCount:0,headers:[],parameters:[],isPoll:false,headers:{},handlers:{},preHooks:[],postHooks:[],rpcType:dwr.engine._rpcType,httpMethod:dwr.engine._httpMethod,async:dwr.engine._async,timeout:dwr.engine._timeout,errorHandler:dwr.engine._errorHandler,warningHandler:dwr.engine._warningHandler,textHtmlHandler:dwr.engine._textHtmlHandler};if(dwr.engine._preHook)batch.preHooks.push(dwr.engine._preHook);if(dwr.engine._postHook)batch.postHooks.push(dwr.engine._postHook);var propname,data;if(dwr.engine._headers){for(propname in dwr.engine._headers){data=dwr.engine._headers[propname];if(typeof data!="function")batch.headers[propname]=data;}}
if(dwr.engine._parameters){for(propname in dwr.engine._parameters){data=dwr.engine._parameters[propname];if(typeof data!="function")batch.parameters[propname]=data;}}
return batch;}
dwr.engine._mergeBatch=function(batch,overrides){var propname,data;for(var i=0;i<dwr.engine._propnames.length;i++){propname=dwr.engine._propnames[i];if(overrides[propname]!=null)batch[propname]=overrides[propname];}
if(overrides.preHook!=null)batch.preHooks.unshift(overrides.preHook);if(overrides.postHook!=null)batch.postHooks.push(overrides.postHook);if(overrides.headers){for(propname in overrides.headers){data=overrides.headers[propname];if(typeof data!="function")batch.headers[propname]=data;}}
if(overrides.parameters){for(propname in overrides.parameters){data=overrides.parameters[propname];if(typeof data!="function")batch.map["p-"+propname]=""+data;}}};dwr.engine._getJSessionId=function(){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=cookies[i];while(cookie.charAt(0)==' ')cookie=cookie.substring(1,cookie.length);if(cookie.indexOf(dwr.engine._sessionCookieName+"=")==0){return cookie.substring(11,cookie.length);}}
return"";}
dwr.engine._checkCometPoll=function(){for(var i=0;i<dwr.engine._outstandingIFrames.length;i++){var text="";var iframe=dwr.engine._outstandingIFrames[i];try{text=dwr.engine._getTextFromCometIFrame(iframe);}
catch(ex){dwr.engine._handleWarning(iframe.batch,ex);}
if(text!="")dwr.engine._processCometResponse(text,iframe.batch);}
if(dwr.engine._pollReq){var req=dwr.engine._pollReq;var text=req.responseText;dwr.engine._processCometResponse(text,req.batch);}
if(dwr.engine._outstandingIFrames.length>0||dwr.engine._pollReq){setTimeout("dwr.engine._checkCometPoll()",dwr.engine._pollCometInterval);}};dwr.engine._getTextFromCometIFrame=function(frameEle){var body=frameEle.contentWindow.document.body;if(body==null)return"";var text=body.innerHTML;if(text.indexOf("<PRE>")==0||text.indexOf("<pre>")==0){text=text.substring(5,text.length-7);}
return text;};dwr.engine._processCometResponse=function(response,batch){if(batch.charsProcessed==response.length)return;if(response.length==0){batch.charsProcessed=0;return;}
var firstStartTag=response.indexOf("//#DWR-START#",batch.charsProcessed);if(firstStartTag==-1){batch.charsProcessed=response.length;return;}
var lastEndTag=response.lastIndexOf("//#DWR-END#");if(lastEndTag==-1){return;}
if(response.charCodeAt(lastEndTag+11)==13&&response.charCodeAt(lastEndTag+12)==10){batch.charsProcessed=lastEndTag+13;}
else{batch.charsProcessed=lastEndTag+11;}
var exec=response.substring(firstStartTag+13,lastEndTag);dwr.engine._receivedBatch=batch;dwr.engine._eval(exec);dwr.engine._receivedBatch=null;};dwr.engine._sendData=function(batch){batch.map.batchId=dwr.engine._nextBatchId++;dwr.engine._batches[batch.map.batchId]=batch;dwr.engine._batchesLength++;batch.completed=false;for(var i=0;i<batch.preHooks.length;i++){batch.preHooks[i]();}
batch.preHooks=null;if(batch.timeout&&batch.timeout!=0){batch.interval=setInterval(function(){dwr.engine._abortRequest(batch);},batch.timeout);}
if(batch.rpcType==dwr.engine.XMLHttpRequest){if(window.XMLHttpRequest){batch.req=new XMLHttpRequest();}
else if(window.ActiveXObject&&!(navigator.userAgent.indexOf("Mac")>=0&&navigator.userAgent.indexOf("MSIE")>=0)){batch.req=dwr.engine._newActiveXObject(dwr.engine._XMLHTTP);}}
var prop,request;if(batch.req){if(batch.async){batch.req.onreadystatechange=function(){dwr.engine._stateChange(batch);};}
if(batch.isPoll){dwr.engine._pollReq=batch.req;batch.req.batch=batch;}
var indexSafari=navigator.userAgent.indexOf("Safari/");if(indexSafari>=0){var version=navigator.userAgent.substring(indexSafari+7);if(parseInt(version,10)<400){if(dwr.engine._allowGetForSafariButMakeForgeryEasier=="true")batch.httpMethod="GET";else dwr.engine._handleWarning(batch,{name:"dwr.engine.oldSafari",message:"Safari GET support disabled. See getahead.org/dwr/server/servlet and allowGetForSafariButMakeForgeryEasier."});}}
batch.mode=batch.isPoll?dwr.engine._ModePlainPoll:dwr.engine._ModePlainCall;request=dwr.engine._constructRequest(batch);try{batch.req.open(batch.httpMethod,request.url,batch.async);try{for(prop in batch.headers){var value=batch.headers[prop];if(typeof value=="string")batch.req.setRequestHeader(prop,value);}
if(!batch.headers["Content-Type"])batch.req.setRequestHeader("Content-Type","text/plain");}
catch(ex){dwr.engine._handleWarning(batch,ex);}
batch.req.send(request.body);if(!batch.async)dwr.engine._stateChange(batch);}
catch(ex){dwr.engine._handleError(batch,ex);}}
else if(batch.rpcType!=dwr.engine.ScriptTag){var idname=batch.isPoll?"dwr-if-poll-"+batch.map.batchId:"dwr-if-"+batch.map["c0-id"];batch.div=document.createElement("div");batch.div.innerHTML="<iframe src='javascript:void(0)' frameborder='0' style='width:0px;height:0px;border:0;' id='"+idname+"' name='"+idname+"'></iframe>";document.body.appendChild(batch.div);batch.iframe=document.getElementById(idname);batch.iframe.batch=batch;batch.mode=batch.isPoll?dwr.engine._ModeHtmlPoll:dwr.engine._ModeHtmlCall;if(batch.isPoll)dwr.engine._outstandingIFrames.push(batch.iframe);request=dwr.engine._constructRequest(batch);if(batch.httpMethod=="GET"){batch.iframe.setAttribute("src",request.url);}
else{batch.form=document.createElement("form");batch.form.setAttribute("id","dwr-form");batch.form.setAttribute("action",request.url);batch.form.setAttribute("target",idname);batch.form.target=idname;batch.form.setAttribute("method",batch.httpMethod);for(prop in batch.map){var value=batch.map[prop];if(typeof value!="function"){var formInput=document.createElement("input");formInput.setAttribute("type","hidden");formInput.setAttribute("name",prop);formInput.setAttribute("value",value);batch.form.appendChild(formInput);}}
document.body.appendChild(batch.form);batch.form.submit();}}
else{batch.httpMethod="GET";batch.mode=batch.isPoll?dwr.engine._ModePlainPoll:dwr.engine._ModePlainCall;request=dwr.engine._constructRequest(batch);batch.script=document.createElement("script");batch.script.id="dwr-st-"+batch.map["c0-id"];batch.script.src=request.url;document.body.appendChild(batch.script);}};dwr.engine._ModePlainCall="/call/plaincall/";dwr.engine._ModeHtmlCall="/call/htmlcall/";dwr.engine._ModePlainPoll="/call/plainpoll/";dwr.engine._ModeHtmlPoll="/call/htmlpoll/";dwr.engine._constructRequest=function(batch){var request={url:batch.path+batch.mode,body:null};if(batch.isPoll==true){request.url+="ReverseAjax.dwr";}
else if(batch.map.callCount==1){request.url+=batch.map["c0-scriptName"]+"."+batch.map["c0-methodName"]+".dwr";}
else{request.url+="Multiple."+batch.map.callCount+".dwr";}
var sessionMatch=location.href.match(/jsessionid=([^?]+)/);if(sessionMatch!=null){request.url+=";jsessionid="+sessionMatch[1];}
var prop;if(batch.httpMethod=="GET"){batch.map.callCount=""+batch.map.callCount;request.url+="?";for(prop in batch.map){if(typeof batch.map[prop]!="function"){request.url+=encodeURIComponent(prop)+"="+encodeURIComponent(batch.map[prop])+"&";}}
request.url=request.url.substring(0,request.url.length-1);}
else{request.body="";for(prop in batch.map){if(typeof batch.map[prop]!="function"){request.body+=prop+"="+batch.map[prop]+dwr.engine._postSeperator;}}
request.body=dwr.engine._contentRewriteHandler(request.body);}
request.url=dwr.engine._urlRewriteHandler(request.url);return request;};dwr.engine._stateChange=function(batch){var toEval;if(batch.completed){dwr.engine._debug("Error: _stateChange() with batch.completed");return;}
var req=batch.req;try{if(req.readyState!=4)return;}
catch(ex){dwr.engine._handleWarning(batch,ex);dwr.engine._clearUp(batch);return;}
try{var reply=req.responseText;reply=dwr.engine._replyRewriteHandler(reply);var status=req.status;if(reply==null||reply==""){dwr.engine._handleWarning(batch,{name:"dwr.engine.missingData",message:"No data received from server"});}
else if(status!=200){dwr.engine._handleError(batch,{name:"dwr.engine.http."+status,message:req.statusText});}
else{var contentType=req.getResponseHeader("Content-Type");if(!contentType.match(/^text\/plain/)&&!contentType.match(/^text\/javascript/)){if(contentType.match(/^text\/html/)&&typeof batch.textHtmlHandler=="function"){batch.textHtmlHandler();}
else{dwr.engine._handleWarning(batch,{name:"dwr.engine.invalidMimeType",message:"Invalid content type: '"+contentType+"'"});}}
else{if(batch.isPoll&&batch.map.partialResponse==dwr.engine._partialResponseYes){dwr.engine._processCometResponse(reply,batch);}
else{if(reply.search("//#DWR")==-1){dwr.engine._handleWarning(batch,{name:"dwr.engine.invalidReply",message:"Invalid reply from server"});}
else{toEval=reply;}}}}}
catch(ex){dwr.engine._handleWarning(batch,ex);}
dwr.engine._callPostHooks(batch);dwr.engine._receivedBatch=batch;if(toEval!=null)toEval=toEval.replace(dwr.engine._scriptTagProtection,"");dwr.engine._eval(toEval);dwr.engine._receivedBatch=null;dwr.engine._clearUp(batch);};dwr.engine._remoteHandleCallback=function(batchId,callId,reply){var batch=dwr.engine._batches[batchId];if(batch==null){dwr.engine._debug("Warning: batch == null in remoteHandleCallback for batchId="+batchId,true);return;}
try{var handlers=batch.handlers[callId];if(!handlers){dwr.engine._debug("Warning: Missing handlers. callId="+callId,true);}
else if(typeof handlers.callback=="function")handlers.callback(reply);}
catch(ex){dwr.engine._handleError(batch,ex);}};dwr.engine._remoteHandleException=function(batchId,callId,ex){var batch=dwr.engine._batches[batchId];if(batch==null){dwr.engine._debug("Warning: null batch in remoteHandleException",true);return;}
var handlers=batch.handlers[callId];if(handlers==null){dwr.engine._debug("Warning: null handlers in remoteHandleException",true);return;}
if(ex.message==undefined)ex.message="";if(typeof handlers.exceptionHandler=="function")handlers.exceptionHandler(ex.message,ex);else if(typeof batch.errorHandler=="function")batch.errorHandler(ex.message,ex);};dwr.engine._remoteHandleBatchException=function(ex,batchId){var searchBatch=(dwr.engine._receivedBatch==null&&batchId!=null);if(searchBatch){dwr.engine._receivedBatch=dwr.engine._batches[batchId];}
if(ex.message==undefined)ex.message="";dwr.engine._handleError(dwr.engine._receivedBatch,ex);if(searchBatch){dwr.engine._receivedBatch=null;dwr.engine._clearUp(dwr.engine._batches[batchId]);}};dwr.engine._remotePollCometDisabled=function(ex,batchId){dwr.engine.setActiveReverseAjax(false);var searchBatch=(dwr.engine._receivedBatch==null&&batchId!=null);if(searchBatch){dwr.engine._receivedBatch=dwr.engine._batches[batchId];}
if(ex.message==undefined)ex.message="";dwr.engine._handleError(dwr.engine._receivedBatch,ex);if(searchBatch){dwr.engine._receivedBatch=null;dwr.engine._clearUp(dwr.engine._batches[batchId]);}};dwr.engine._remoteBeginIFrameResponse=function(iframe,batchId){if(iframe!=null)dwr.engine._receivedBatch=iframe.batch;dwr.engine._callPostHooks(dwr.engine._receivedBatch);};dwr.engine._remoteEndIFrameResponse=function(batchId){dwr.engine._clearUp(dwr.engine._receivedBatch);dwr.engine._receivedBatch=null;};dwr.engine._eval=function(script){if(script==null)return null;if(script==""){dwr.engine._debug("Warning: blank script",true);return null;}
return eval(script);};dwr.engine._abortRequest=function(batch){if(batch&&!batch.completed){clearInterval(batch.interval);dwr.engine._clearUp(batch);if(batch.req)batch.req.abort();dwr.engine._handleError(batch,{name:"dwr.engine.timeout",message:"Timeout"});}};dwr.engine._callPostHooks=function(batch){if(batch.postHooks){for(var i=0;i<batch.postHooks.length;i++){batch.postHooks[i]();}
batch.postHooks=null;}}
dwr.engine._clearUp=function(batch){if(!batch){dwr.engine._debug("Warning: null batch in dwr.engine._clearUp()",true);return;}
if(batch.completed=="true"){dwr.engine._debug("Warning: Double complete",true);return;}
if(batch.div)batch.div.parentNode.removeChild(batch.div);if(batch.iframe){for(var i=0;i<dwr.engine._outstandingIFrames.length;i++){if(dwr.engine._outstandingIFrames[i]==batch.iframe){dwr.engine._outstandingIFrames.splice(i,1);}}
batch.iframe.parentNode.removeChild(batch.iframe);}
if(batch.form)batch.form.parentNode.removeChild(batch.form);if(batch.req){if(batch.req==dwr.engine._pollReq)dwr.engine._pollReq=null;delete batch.req;}
if(batch.map&&batch.map.batchId){delete dwr.engine._batches[batch.map.batchId];dwr.engine._batchesLength--;}
batch.completed=true;if(dwr.engine._batchQueue.length!=0){var sendbatch=dwr.engine._batchQueue.shift();dwr.engine._sendData(sendbatch);}};dwr.engine._handleError=function(batch,ex){if(typeof ex=="string")ex={name:"unknown",message:ex};if(ex.message==null)ex.message="";if(ex.name==null)ex.name="unknown";if(batch&&typeof batch.errorHandler=="function")batch.errorHandler(ex.message,ex);else if(dwr.engine._errorHandler)dwr.engine._errorHandler(ex.message,ex);dwr.engine._clearUp(batch);};dwr.engine._handleWarning=function(batch,ex){if(typeof ex=="string")ex={name:"unknown",message:ex};if(ex.message==null)ex.message="";if(ex.name==null)ex.name="unknown";if(batch&&typeof batch.warningHandler=="function")batch.warningHandler(ex.message,ex);else if(dwr.engine._warningHandler)dwr.engine._warningHandler(ex.message,ex);dwr.engine._clearUp(batch);};dwr.engine._serializeAll=function(batch,referto,data,name){if(data==null){batch.map[name]="null:null";return;}
switch(typeof data){case"boolean":batch.map[name]="boolean:"+data;break;case"number":batch.map[name]="number:"+data;break;case"string":batch.map[name]="string:"+encodeURIComponent(data);break;case"object":if(data instanceof String)batch.map[name]="String:"+encodeURIComponent(data);else if(data instanceof Boolean)batch.map[name]="Boolean:"+data;else if(data instanceof Number)batch.map[name]="Number:"+data;else if(data instanceof Date)batch.map[name]="Date:"+data.getTime();else if(data&&data.join)batch.map[name]=dwr.engine._serializeArray(batch,referto,data,name);else batch.map[name]=dwr.engine._serializeObject(batch,referto,data,name);break;case"function":break;default:dwr.engine._handleWarning(null,{name:"dwr.engine.unexpectedType",message:"Unexpected type: "+typeof data+", attempting default converter."});batch.map[name]="default:"+data;break;}};dwr.engine._lookup=function(referto,data,name){var lookup;for(var i=0;i<referto.length;i++){if(referto[i].data==data){lookup=referto[i];break;}}
if(lookup)return"reference:"+lookup.name;referto.push({data:data,name:name});return null;};dwr.engine._serializeObject=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;if(data.nodeName&&data.nodeType){return dwr.engine._serializeXml(batch,referto,data,name);}
var reply="Object_"+dwr.engine._getObjectClassName(data)+":{";var element;for(element in data){if(typeof data[element]!="function"){batch.paramCount++;var childName="c"+dwr.engine._batch.map.callCount+"-e"+batch.paramCount;dwr.engine._serializeAll(batch,referto,data[element],childName);reply+=encodeURIComponent(element)+":reference:"+childName+", ";}}
if(reply.substring(reply.length-2)==", "){reply=reply.substring(0,reply.length-2);}
reply+="}";return reply;};dwr.engine._errorClasses={"Error":Error,"EvalError":EvalError,"RangeError":RangeError,"ReferenceError":ReferenceError,"SyntaxError":SyntaxError,"TypeError":TypeError,"URIError":URIError};dwr.engine._getObjectClassName=function(obj){if(obj&&obj.constructor&&obj.constructor.toString)
{var str=obj.constructor.toString();var regexpmatch=str.match(/function\s+(\w+)/);if(regexpmatch&&regexpmatch.length==2){return regexpmatch[1];}}
if(obj&&obj.constructor){for(var errorname in dwr.engine._errorClasses){if(obj.constructor==dwr.engine._errorClasses[errorname])return errorname;}}
if(obj){var str=Object.prototype.toString.call(obj);var regexpmatch=str.match(/\[object\s+(\w+)/);if(regexpmatch&&regexpmatch.length==2){return regexpmatch[1];}}
return"Object";};dwr.engine._serializeXml=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;var output;if(window.XMLSerializer)output=new XMLSerializer().serializeToString(data);else if(data.toXml)output=data.toXml;else output=data.innerHTML;return"XML:"+encodeURIComponent(output);};dwr.engine._serializeArray=function(batch,referto,data,name){var ref=dwr.engine._lookup(referto,data,name);if(ref)return ref;var reply="Array:[";for(var i=0;i<data.length;i++){if(i!=0)reply+=",";batch.paramCount++;var childName="c"+dwr.engine._batch.map.callCount+"-e"+batch.paramCount;dwr.engine._serializeAll(batch,referto,data[i],childName);reply+="reference:";reply+=childName;}
reply+="]";return reply;};dwr.engine._unserializeDocument=function(xml){var dom;if(window.DOMParser){var parser=new DOMParser();dom=parser.parseFromString(xml,"text/xml");if(!dom.documentElement||dom.documentElement.tagName=="parsererror"){var message=dom.documentElement.firstChild.data;message+="\n"+dom.documentElement.firstChild.nextSibling.firstChild.data;throw message;}
return dom;}
else if(window.ActiveXObject){dom=dwr.engine._newActiveXObject(dwr.engine._DOMDocument);dom.loadXML(xml);return dom;}
else{var div=document.createElement("div");div.innerHTML=xml;return div;}};dwr.engine._newActiveXObject=function(axarray){var returnValue;for(var i=0;i<axarray.length;i++){try{returnValue=new ActiveXObject(axarray[i]);break;}
catch(ex){}}
return returnValue;};dwr.engine._debug=function(message,stacktrace){var written=false;try{if(window.console){if(stacktrace&&window.console.trace)window.console.trace();window.console.log(message);written=true;}
else if(window.opera&&window.opera.postError){window.opera.postError(message);written=true;}}
catch(ex){}
if(!written){var debug=document.getElementById("dwr-debug");if(debug){var contents=message+"<br/>"+debug.innerHTML;if(contents.length>2048)contents=contents.substring(0,2048);debug.innerHTML=contents;}}};
function RGBColor(color_string)
{this.src=color_string;this.ok=false;if(color_string.charAt(0)=='#'){color_string=color_string.substr(1,6);}
color_string=color_string.replace(/ /g,'');color_string=color_string.toLowerCase();var simple_colors={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'00ffff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000000',blanchedalmond:'ffebcd',blue:'0000ff',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'00ffff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dodgerblue:'1e90ff',feldspar:'d19275',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'ff00ff',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgrey:'d3d3d3',lightgreen:'90ee90',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslateblue:'8470ff',lightslategray:'778899',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'00ff00',limegreen:'32cd32',linen:'faf0e6',magenta:'ff00ff',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370d8',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'d87093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',red:'ff0000',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',violetred:'d02090',wheat:'f5deb3',white:'ffffff',whitesmoke:'f5f5f5',yellow:'ffff00',yellowgreen:'9acd32'};for(var key in simple_colors){if(color_string==key){color_string=simple_colors[key];}}
var color_defs=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:['rgb(123, 234, 45)','rgb(255,234,245)'],process:function(bits){return[parseInt(bits[1]),parseInt(bits[2]),parseInt(bits[3])];}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:['#00ff00','336699'],process:function(bits){return[parseInt(bits[1],16),parseInt(bits[2],16),parseInt(bits[3],16)];}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:['#fb0','f0f'],process:function(bits){return[parseInt(bits[1]+bits[1],16),parseInt(bits[2]+bits[2],16),parseInt(bits[3]+bits[3],16)];}}];for(var i=0;i<color_defs.length;i++){var re=color_defs[i].re;var processor=color_defs[i].process;var bits=re.exec(color_string);if(bits){channels=processor(bits);this.r=channels[0];this.g=channels[1];this.b=channels[2];this.ok=true;}}
this.r=(this.r<0||isNaN(this.r))?0:((this.r>255)?255:this.r);this.g=(this.g<0||isNaN(this.g))?0:((this.g>255)?255:this.g);this.b=(this.b<0||isNaN(this.b))?0:((this.b>255)?255:this.b);this.toRGB=function(){return'rgb('+this.r+', '+this.g+', '+this.b+')';}
this.toHex=function(){var r=this.r.toString(16);var g=this.g.toString(16);var b=this.b.toString(16);if(r.length==1)r='0'+r;if(g.length==1)g='0'+g;if(b.length==1)b='0'+b;return'#'+r+g+b;}
this.getHelpXML=function(){var examples=new Array();for(var i=0;i<color_defs.length;i++){var example=color_defs[i].example;for(var j=0;j<example.length;j++){examples[examples.length]=example[j];}}
for(var sc in simple_colors){examples[examples.length]=sc;}
var xml=document.createElement('ul');xml.setAttribute('id','rgbcolor-examples');for(var i=0;i<examples.length;i++){try{var list_item=document.createElement('li');var list_color=new RGBColor(examples[i]);var example_div=document.createElement('div');example_div.style.cssText='margin: 3px; '
+'border: 1px solid black; '
+'background:'+list_color.toHex()+'; '
+'color:'+list_color.toHex();example_div.appendChild(document.createTextNode('test'));var list_item_value=document.createTextNode(' '+examples[i]+' -> '+list_color.toRGB()+' -> '+list_color.toHex());list_item.appendChild(example_div);list_item.appendChild(list_item_value);xml.appendChild(list_item);}catch(e){}}
return xml;}}