function doIt() {
	things = document.getElementById('gallery').getElementsByTagName('div');
	for (i = 0; i < things.length; i++ ) {
		if (things[i].className == "map" ) {
			things[i].onmouseover = showDesc;
			things[i].onmouseout = hideDesc;
		}
	}
}

function showDesc(e) {
	thisId = this.getAttribute("id").match(/\d+$/);

	theMap = document.getElementById('map_'+thisId);
	theDesc = document.getElementById('info_'+thisId);

	xpos = positionX(theMap);
	ypos = positionY(theMap);

	theDesc.style.top = ypos + 12 + "px";
	theDesc.style.left = xpos + 15 + "px";
	theDesc.style.display = 'block';
}

function hideDesc(e) {
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement.parentNode : e.target.parentNode;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;

	while (reltg != tg && reltg.nodeName != 'BODY') {
		reltg = reltg.parentNode
	}
	if (reltg == tg) {
		return;
	}

	thisId = this.getAttribute("id").match(/\d+$/);
	theDesc = document.getElementById('info_'+thisId);
	theDesc.style.display = 'none';
}

function showDetails() {
	descs = document.getElementById('gallery').getElementsByTagName('div');
	for (i = 0; i < descs.length; i++ ) {
		if (descs[i].className == "map") {
			descs[i].parentNode.className = "mapbox-ex";
			descs[i].onmouseover = null;
			descs[i].onmouseout = null;

			infos = descs[i].childNodes[1];

			infos.style.top = 0;
			infos.style.left = 0;
			infos.style.display = 'block';
			infos.className = "mapInfoDetail";

			descs[i].firstChild.style.cursor = "pointer";
			descs[i].firstChild.onclick = function() {
				findlink = this.parentNode.getElementsByTagName('a');
				for (j = 0; j < findlink.length; j++) {
					if (findlink[j].className == "viewLink")
						location.href = findlink[j].getAttribute("href");
				}
			};
		}
	}
	document.getElementById('detailsLink').innerHTML = "hide details";
	document.getElementById('detailsLink').setAttribute("href", "javascript:hideDetails();");
}

function hideDetails() {
	descs = document.getElementById('gallery').getElementsByTagName('div');
	for (i = 0; i < descs.length; i++ ) {
		if (descs[i].className == "mapInfoDetail") {
			descs[i].style.display = 'none';
			descs[i].className = "mapInfo";
		}
		if (descs[i].className == "map") {
			descs[i].parentNode.className = "mapbox";
			descs[i].onmouseover = showDesc;
			descs[i].onmouseout = hideDesc;
			descs[i].firstChild.style.cursor = "default";
			descs[i].firstChild.onclick = null;
		}
	}
	document.getElementById('detailsLink').innerHTML = "show details";
	document.getElementById('detailsLink').setAttribute("href", "javascript:showDetails();");
}

function positionX(item) {
	var leftPos = 0;
	if (item.offsetParent) {
		while (item.offsetParent) {
			leftPos += item.offsetLeft;
			item = item.offsetParent;
		}
	}
	else if (item.x)
		leftPos += item.x;
	return leftPos;
}

function positionY(item) {
	var topPos = 0;
	if (item.offsetParent) {
		while (item.offsetParent) {
			topPos += item.offsetTop;
			item = item.offsetParent;
		}
	}
	else if (item.y)
		topPos += item.y;
	return topPos;
}

function deleteIt(type, id, origId) {
	confirm("Are you sure you want to delete this "+type+"?", function(a){
		if (a) window.location = "delete.php?type="+type+"&id="+id+"&origId="+origId;
	}, "Yes, delete", "No, retain");
}

function startPrint() {
	window.print()
}

function adjustMap() {
	if (window.innerHeight) {
		windowHeight = window.innerHeight;
		thisOffset = 232;
	} else if (document.documentElement && document.documentElement.clientHeight) { // for ie
		windowHeight = document.documentElement.clientHeight;
		thisOffset = 235;
	}/* else if (document.body) { // for older ie
		windowHeight = document.body.clientHeight;
		thisOffset = 232;
	} */
	if (windowHeight < 1200) {
		document.getElementById('map').style.height = (windowHeight - thisOffset) + "px";
	} else {
		document.getElementById('map').style.height = "900px";
	}
}

function adjustNavLeaderboard(slot) {
	// fit adjustments for top adsense block; normal leaderboard ads have
	//  extra google stuff below them that needs cropping, but adsense
	//  can not be cropped in the same way
	var _tighten_leaderboard = function(){try{
		var _ad_frame = $("#google_ads_div_"+slot+" iframe");
		var _ad_body = _ad_frame.contents().find("html body");
		_ad_body.find("#smac").css('top', "69px");
		_ad_body.find("#ainw").css('top', "70px");
		_ad_body.find("#abgi").css('top', "66px").css('left', "642px");
		_ad_body.find("#att").css('top', "65px").css('left', "629px");
		var _ads = _ad_body.find("#ads");
		var _ad_body_toppos = "";
		if (_ads.length) {// adsense
			_ads.css('z-index', "1");
			_ad_body_toppos = "-1px";
		}
		else if (   _ad_body.find("img[height=79]").length
		         && _ad_body.find("table[height=11]").length )
			_ad_body_toppos = "2px";// short leaderboard bottom nav
		else
			_ad_body_toppos = "-3px";// long leaderboard
		_ad_body.css('position', "relative").css('top', _ad_body_toppos);
	}catch(e){}};
	setTimeout(_tighten_leaderboard, 200);
	setTimeout(_tighten_leaderboard, 600);
	$(document).ready(_tighten_leaderboard);
}
