
function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));

    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
        // Root Url for domain name
        return baseURL + "/";
    }
}

function pageWidth() {return window.innerWidth != null? window.innerWidth: document.body != null? document.body.clientWidth:null;}
function pageHeight() {return window.innerHeight != null? window.innerHeight: document.documentElement != null? document.documentElement.clientHeight: document.body.clientHeight;}


function selectcut(which,puzzlenum)
{
	document.getElementById('cut'+selectedcut).style.border = "1px solid black";
	document.getElementById('cut'+which).style.border = "3px solid red";	
	selectedcut = which;
	generatelink(puzzlenum);	
}

function selectsize(which,puzzlenum)
{
	document.getElementById('size'+selectedsize).style.border = "1px solid black";
	document.getElementById('size'+which).style.border = "3px solid red";	
	selectedsize = which;
	generatelink(puzzlenum);
}

function selectscale(which,puzzlenum)
{
	document.getElementById('scale'+selectedscale).style.border = "1px solid black";
	document.getElementById('scale'+which).style.border = "3px solid red";	
	selectedscale = which;
	generatelink(puzzlenum);
}

function regloadXMLDoc(lang)
{
var regusername = document.getElementById('regname').value;
if (window.XMLHttpRequest) 
{
	regxmlhttp=new XMLHttpRequest();
}
else 
{
	regxmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
regxmlhttp.onreadystatechange=function()
{
	if (regxmlhttp.readyState==4 && regxmlhttp.status==200)
	{
		if (regxmlhttp.responseText == "true")
		{
			document.getElementById("regmsg").innerHTML=sucessregbox;
			document.getElementById("registerbutton").disabled=true;
		}
		else 
		{ 
			document.getElementById("regmsg").innerHTML=regxmlhttp.responseText;
			alert(regxmlhttp.responseText);
		}
	}
}
regurl = "reguser="+regusername+"&lang="+lang+"&regpass="+document.getElementById('regpass').value+"&regpassconf="+document.getElementById('regpassconf').value+"&regemail="+document.getElementById('regemail').value
+"&regage="+document.getElementById('iagegroup').value+"&reggender="+document.getElementById('igender').value;
regxmlhttp.open("POST",getBaseURL()+'registerajax.php',true);
regxmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
regxmlhttp.send(regurl);
}

function loginloadXMLDoc(lang)
{
var loginusername = document.getElementById('loginname').value;
if (window.XMLHttpRequest) {loginxmlhttp=new XMLHttpRequest();}
else { loginxmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
loginxmlhttp.onreadystatechange=function()
{
	if (loginxmlhttp.readyState==4 && loginxmlhttp.status==200)
	{
		if (loginxmlhttp.responseText == "true")
		{
			if (lang =="en") {location.replace(getBaseURL());}
			else {location.replace('index'+lang+'.php');}
		}
		else
		{document.getElementById("loginmsg").innerHTML=loginxmlhttp.responseText;
		document.getElementById("loginpass").value="";
		}
	}
}
loginxmlhttp.open("GET","loginu.php?loginuser="+loginusername+"&lang="+lang+"&loginpass="+document.getElementById('loginpass').value+'&' + Math.random(),true);
loginxmlhttp.send();
}

function logoffloadXMLDoc(lang)
{
	if (window.XMLHttpRequest) 
	{
	logoffxmlhttp=new XMLHttpRequest();
	}
	else 
	{ 
		logoffxmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
logoffxmlhttp.onreadystatechange=function(){
	if (logoffxmlhttp.readyState==4 && logoffxmlhttp.status==200)
	{
		if (logoffxmlhttp.responseText == "true")
		{
			if (lang =="en") {location.replace(getBaseURL());}
			else {location.replace('index'+lang+'.php');}
		}
	}
}
logoffxmlhttp.open("GET","logoff.php?" + Math.random(),true);
logoffxmlhttp.send();}

function savepref(ilang)
{
if (window.XMLHttpRequest) 
{
	prefhttp=new XMLHttpRequest();
}
else 
{
	prefhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
	prefhttp.onreadystatechange=function()
	{
		if (prefhttp.readyState==4 && prefhttp.status==200)
		{
			alert(prefhttp.responseText);
		}
	}
var getsize = document.getElementById("selsize").value;
var getcut = document.getElementById("selcut").value;
var getscale = document.getElementById("selscale").value;
var getdailymail = 0; //document.getElementById("selmailing").value;
var getemail = document.getElementById("prefemail").value;
var getpass = document.getElementById("prefpass").value;
var getconfpass = document.getElementById("confpass").value;
var getdisplayname = document.getElementById("displayname").value;
prefurl = "lang="+ilang+"&prefsize="+getsize+"&prefcut="+getcut+"&prefscale="+getscale+"&prefdailymail="+getdailymail+"&prefemail="+getemail+"&prefpass="+getpass+"&confpass="+getconfpass+"&prefdisplayname="+getdisplayname;
prefhttp.open("POST",getBaseURL()+'prefajax.php',true);
prefhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
prefhttp.send(prefurl);
}

function remfav(ilang,whichfav)
{
if (window.XMLHttpRequest) 
{
	remfavhttp=new XMLHttpRequest();
}
else 
{
	remfavhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
	remfavhttp.onreadystatechange=function()
	{
		if (remfavhttp.readyState==4 && remfavhttp.status==200)
		{
			alert(remfavhttp.responseText);
			location.replace('loadfav.php');		
		}
	}
remfavurl = "lang="+ilang+"&favid="+whichfav;
remfavhttp.open("POST",getBaseURL()+'remfavajax.php',true);
remfavhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
remfavhttp.send(remfavurl);
}

function remsave(ilang,whichsave)
{
if (window.XMLHttpRequest) 
{
	remsavehttp=new XMLHttpRequest();
}
else 
{
	remsavehttp=new ActiveXObject("Microsoft.XMLHTTP");
}
	remsavehttp.onreadystatechange=function()
	{
		if (remsavehttp.readyState==4 && remsavehttp.status==200)
		{
			alert(remsavehttp.responseText);
			location.replace('loadscreen.php');		
		}
	}
remsaveurl = "lang="+ilang+"&saveid="+whichsave;
remsavehttp.open("POST",getBaseURL()+'remsaveajax.php',true);
remsavehttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
remsavehttp.send(remsaveurl);
}


function geopuzzles(lang,geoid)
{
	document.getElementById("geoPuzzlesDiv").innerHTML = '<img src="'+getBaseURL()+'artwork/ajaxloading.gif"/> ...Loading...';
	if (window.XMLHttpRequest) 
	{
	mapxmlhttp=new XMLHttpRequest();
	}
	else 
	{ 
		mapxmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	mapxmlhttp.onreadystatechange=function(){
		if (mapxmlhttp.readyState==4 && mapxmlhttp.status==200)
		{
			document.getElementById("geoPuzzlesDiv").innerHTML=mapxmlhttp.responseText;
		}
	}
	mapxmlhttp.open("GET",getBaseURL()+"aroundtheworldajax.php?lang="+lang+"&geoid="+geoid+'&'+ Math.random(),true);
	mapxmlhttp.send();
}



/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

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 iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !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
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox

