//tento soubor vyzaduje includovany nas common.js

function GetEventSrc(e){
	if(document.all) e=event;
	if(!e) return;
	if(document.all)
		return e.srcElement;
	else
		return e.target;
}

//vrati parenta
function GetParent(elem){
	if(!elem) return;
	if(document.all)
		return elem.parentElement;
	else
		return elem.parentNode;
}


/**
	* mapObj - je objekt nebo ID objektu ve kterem se zobrazi mapa s jednotlivymi body
	* img - obrazek mapy, ktery se zobrazuje na pozadi
	* w - sirka obrazku mapy
	* h - vyska obrazku mapy
	*/
function MapSpace(mapObj,img){
	if(isString(mapObj))
		mapObj=getId(mapObj);	
	
	if(!isObject(mapObj))
		return false;
		
	this.mapObj=mapObj;	
	this.mapImg=img;
	
	this.points=new Array();
	
	/**
		* id bodu
		* x,y - souradnice bodu v mape
		* name
		* href - odkaz na bod
		*/
	this.Point=function (id,x,y,name,href,left,top){
		this.id=id;
		this.x=x;
		this.y=y;
		this.name=name;
		this.href=href;
		this.nameLeft=left;
		this.nameTop=top;
	}
	
	this.AddPoint=function (id,x,y,name,href,left,top){
		if(!id)
			return false;
		this.points[id]=new this.Point(id,x,y,name,href,left,top);
		return this.points[id];
	}
	
	this.fetch=function (){
		var obj=document.createElement('DIV');
		obj.style.position='absolute';
		obj.className='map';
		this.mapObj.appendChild(obj);
		
		var imgObj=document.createElement('IMG');
		imgObj.src=this.mapImg;
		imgObj.style.width="";
		imgObj.style.height="";
		obj.appendChild(imgObj);
		
		var point=null;
		var pointName=null;
		for(var i in this.points){
			point=document.createElement('A');
			point.style.position='absolute';
			point.style.left=this.points[i].x+'px';
			point.style.top=this.points[i].y+'px';
			point.className='point';
			point.href=this.points[i].href;
				
				pointName=document.createElement('SPAN');
				pointName.className="name";
				pointName.style.position='absolute';
				pointName.style.left=this.points[i].nameLeft+'px';
				pointName.style.top=this.points[i].nameTop+'px';
				pointName.innerHTML=this.points[i].name;
				point.appendChild(pointName);
				//point.innerHTML='<span class="name">'+this.points[i].name+'</span>';
				
			point.id=this.points[i].id+'_point';
			point.onmouseover=function (e) {
				var src=GetEventSrc(e);
				if(src.className=='name'){
					var pr=GetParent(src);
					pr.style.zIndex='20';
				}
				src.style.zIndex='20';
			}
			point.onmouseout=function (e) {
				var src=GetEventSrc(e);
				if(src.className=='name'){
					var pr=GetParent(src);
					pr.style.zIndex='10';
				}
				src.style.zIndex='10';
			}
			
			var iobj=getId(this.points[i].id+'');
			if(iobj){
				iobj.onmouseover=function (e) {
					var src=GetEventSrc(e);
					var objPoint=getId(src.id+'_point');
					if(objPoint)
						objPoint.className='point point-hover';
				}
				iobj.onmouseout=function (e) {
					var src=GetEventSrc(e);
					var objPoint=getId(src.id+'_point');
					if(objPoint)
						objPoint.className='point';
				}
			}			
			obj.appendChild(point);
		}
	}
}

