function positionInfo(_1){
var _2=_1;
this.getElementLeft=getElementLeft;

	function getElementLeft(_3){
	var x=0;
	var _5;
	_5=document.getElementById("calendar_icon"+_3);
	if(_5.offsetParent){
	while(_5!=null){
	x+=_5.offsetLeft;
	_5=_5.offsetParent;
	}
	}else{
	if(_5.x){
	x+=_5.x;
	}
	}
	return parseInt(x);
	}

	this.getElementWidth=getElementWidth;

	function getElementWidth(){
	var _6;
	if(typeof (_2)=="object"){
	_6=_2;
	}else{
	_6=document.getElementById(_2);
	}
	return parseInt(_6.offsetWidth);
	}

	this.getElementRight=getElementRight;

	function getElementRight(){
	return getElementLeft(_2)+getElementWidth(_2);
	}

	this.getElementTop=getElementTop;

	function getElementTop(_7){
	var y=0;
	if(_7.offsetParent){
	while(_7!=null){
	y+=_7.offsetTop;
	_7=_7.offsetParent;
	}
	}else{
	if(_7.y){
	y+=_7.y;
	}
	}
	y-=155;
	return parseInt(y);
	}

	this.getElementHeight=getElementHeight;

	function getElementHeight(){
	var _9;
	if(typeof (_2)=="object"){
	_9=_2;
	}else{
	_9=document.getElementById(_2);
	}
	return parseInt(_9.offsetHeight);
	}

	this.getElementBottom=getElementBottom;

	function getElementBottom(){
	return getElementTop(_2)+getElementHeight(_2);
	}
}

/* photo album */
function newImage(s_name, s_url, i_height, i_width){
  this.name = s_name;
  this.url = s_url;
  this.height = i_height;
  this.width = i_width;
  this.cache = new Image();this.cache.src = s_url+s_name;
}
var i_slideimg = 0;
var a_slideimages = new Array();
function setslideheight(){
	i_slideheight = 0;o_slideheight = document.getElementById("slideimgbox");
	for(var i=0;i<a_slideimages.length;i++)if(a_slideimages[i].height>i_slideheight)i_slideheight=a_slideimages[i].height;
	o_slideheight.style.height = i_slideheight;
}
function doslideshow(i_dir,o_links){
	a_slideshow = o_links.getElementsByTagName("a");
	o_slideimg = document.getElementById("slideimg");
	o_currentslide = document.getElementById("currentslide");
	switch(i_dir){
		case -1:
			if(i_dir+i_slideimg==0)a_slideshow[0].style.visibility = "hidden";
			a_slideshow[1].style.visibility = "visible";
		break;
		case 1:
			if(i_dir+i_slideimg==(a_slideimages.length-1))a_slideshow[1].style.visibility = "hidden";
			a_slideshow[0].style.visibility = "visible";
		break;
	}	

	o_slideimg.src = a_slideimages[i_slideimg+i_dir].cache.src;
	i_slideimg+=i_dir;
	o_currentslide.firstChild.nodeValue = i_slideimg+1;
}

var width = 20;

/* pop up */
function popup(mylink, windowname, size)
{

if (!window.focus)return true;
var href;
if (typeof(mylink) == 'string')
   href=mylink;
else
   href=mylink.href;
window.open(href, windowname, size);
return false;
}

function popNew(mylink, windowname, size) {
window.open(mylink, windowname, size);
}


function taLimit() {
	var taObj=event.srcElement;
	if (taObj.value.length==taObj.maxLength*1) return false;
}

function taCount(visCnt) { 
	var taObj=event.srcElement;
	if (taObj.value.length>taObj.maxLength*1) taObj.value=taObj.value.substring(0,taObj.maxLength*1);
	if (visCnt) visCnt.innerText=taObj.maxLength-taObj.value.length;
}

function submitAnswer(gkey, lat, lon) {
 	var action = 'game.php?q=submit' + '&lat=' + lat + '&lon=' + lon + '&gk=' + gkey + '&ra=xyz';
	$.ajax({
  		url: action,
		cache: false,
  		success: function(data) {
   		responseAnswer(data);
  		}
	});
}

function getNextPuzzle(elementId, gkey) {
 	document.getElementById(elementId).innerHTML = 'In Progress';
 	var action = 'game.php?q=puzzle' + '&gk=' + gkey + '&ra=xyz';
	$.ajax({
  		url: action,
		cache: false,
  		success: function(data) {
			responseNextPuzzle(data);
  		}
	});
}

function startGame(lid) {
 	document.getElementById(elementId).innerHTML = 'In Progress';
 	var action = 'game.php?q=launch' + '&lid=' + lid + '&ra=xyz';
	$.ajax({
  		url: action,
		cache: false,
  		success: function(data) {
   		responseStart(data);
  		}
	});
}

function checkHint(gkey, minlat, minlon, maxlat, maxlon) {
 	var action = 'game.php?q=hint' + '&minlat=' + minlat + '&minlon=' + minlon + '&maxlat=' + maxlat + '&maxlon=' + maxlon + '&gk=' + gkey + '&ra=xyz';
	$.ajax({
  		url: action,
		cache: false,
  		success: function(data) {
   		responseHint(data);
  		}
	});
}

function getScoreCard(elementId) {
   var action = 'game.php?q=score';
	$.ajax({
  		url: action,
		cache: false,
  		success: function(data) {
   		document.getElementById(elementId).innerHTML = data;
  		}
	});
}


