HSLayers.Popup=OpenLayers.Class(OpenLayers.Popup.FramedCloud,{size:null,relativePosition:"tr",_size:"medium",sizes:{"small":new OpenLayers.Size(150,150),"medium":new OpenLayers.Size(300,300),"big":new OpenLayers.Size(400,300)},minimizeBox:false,infoDiv:undefined,menuDiv:null,moreInfo:null,title:null,target:undefined,clusterIdx:0,menu:null,contentDisplayClass:"hsPopupContent",initialize:function(options){OpenLayers.Util.extend(this,options);OpenLayers.Popup.FramedCloud.prototype.initialize.apply(this,[options.id,options.lonlat,undefined," ",options.anchor,options.closeBox,options.closeBoxCallback]);this.minSize=this.maxSize=(typeof(options.size)==="string"?this.sizes[options.size]:options.size);if(this.menu===undefined){this.menu=[];}
if(typeof(options.contentHTML)==="function"){this.contentHTMLfunction=options.contentHTML;}
else{this.contentHTMLData=options.contentHTML;}},draw:function(){this.redraw();return OpenLayers.Popup.FramedCloud.prototype.draw.apply(this,arguments);},redraw:function(){var feature=(this.feature.cluster?this.feature.cluster[this.clusterIdx]:this.feature);feature.layer=this.feature.layer;if(this.menuDiv){this.groupDiv.removeChild(this.menuDiv);}
this.menuDiv=OpenLayers.Util.createDiv(this.id,null,null,null,"absolute",null,"hidden",null);this.menuDiv.className="menuDiv";this.groupDiv.appendChild(this.menuDiv);var menuList=document.createElement("ul");menuList.className="popupMenuList";this.menuDiv.appendChild(menuList);this.makeContent(feature);this.setContentHTML();this.createTitleDiv(feature);this.createMenuDiv(feature,menuList);this.createInfoDiv(feature,menuList);},makeContent:function(feature){if(this.contentHTMLfunction){this.contentHTML=this.contentHTMLfunction(feature);}
else{this.contentHTML=this.contentHTMLData;}
this.setContentHTML();},_onPopupClose:function(){},createMenuDiv:function(feature,menuList){if(this.feature.cluster){var menu=[];if(this.clusterIdx>0){menu.push({title:"«",callback:this._displayPrevClusterFeature,scope:this});}
if(this.feature.cluster.length>1){menu.push({title:new String(this.clusterIdx+1)+"/"+new String(this.feature.cluster.length)});}
if(this.clusterIdx<this.feature.cluster.length-1){menu.push({title:"»",callback:this._displayNextClusterFeature,scope:this});}
this.createMenuItems(feature,menu,menuList);}
this.createMenuItems(feature,this.menu,menuList);},createMenuItems:function(feature,items,menuList){if(items){for(var i=0;i<items.length;i++){var menuItem=document.createElement("li");menuItem.className="popupMenuItem";if(i==0){menuItem.className+=" firstMenuItem";}
if(items[i].className){menuItem.className+=" "+items[i].className;}
var menuAnchor;if(items[i].callback){menuAnchor=document.createElement("a");menuAnchor.href="#";menuAnchor.className="popupMenuAnchor";menuAnchor.popup=this;menuAnchor.scope=(items[i].scope?items[i].scope:this);menuAnchor.feature=feature;menuAnchor.callback=items[i].callback;menuAnchor.onclick=function(){this.callback.apply(this.scope,[this.feature])};menuAnchor.appendChild(document.createTextNode(items[i].title));}
else{menuAnchor=document.createTextNode(items[i].title);}
menuItem.appendChild(menuAnchor);menuList.appendChild(menuItem);}}},createInfoDiv:function(feature,menuList){if(!this.moreInfo){return;}
var moreInfo=(typeof(this.moreInfo)==="function"?this.moreInfo(feature):this.moreInfo);if(!moreInfo){return;}
var anchor=document.createElement("a");anchor.href=moreInfo;if(this.target){anchor.target=this.target;}
anchor.innerHTML=OpenLayers.i18n("More info")+" ...";var menuItem=document.createElement("li");menuItem.className="popupMenuItem infoMenuItem";menuItem.appendChild(anchor);menuList.appendChild(menuItem);},setSize:function(contentSize){OpenLayers.Popup.FramedCloud.prototype.setSize.apply(this,arguments);var height=parseInt(this.contentDiv.style.height);var width=parseInt(this.contentDiv.style.width);this.contentDiv.style.height=new String(height-90)+"px";this.contentDiv.style.left="8px";this.contentDiv.style.top="30px";this.contentDiv.style.overflow="auto";if(this.closeDiv){this.closeDiv.style.top="6px";this.closeDiv.style.right="5px";}},createTitleDiv:function(feature){if(!this.title){return;}
if(!this.titleDiv){this.titleDiv=OpenLayers.Util.createDiv(this.id+"title",null,null,null,"absolute",null,"hidden",null);this.titleDiv.className="popupTitle";this.groupDiv.appendChild(this.titleDiv);}
this.titleDiv.innerHTML=(typeof(this.title)==="function"?this.title(feature):this.title);},calculateRelativePosition:function(px){return"tr";},_displayNextClusterFeature:function(feature){this.clusterIdx=this.clusterIdx+1;this.redraw();},_displayPrevClusterFeature:function(feature){this.clusterIdx=this.clusterIdx-1;this.redraw();},CLASS_NAME:"HSLayers.Popup"});
