//<![CDATA[
var map = null;
var geocoder = null;
var req = null;
var startrow = null;
var recordcount = null;
var tag = null;
var latlon = null;
var emailto = null;

function load() {
	if (GBrowserIsCompatible()) {
    	map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(0,0));
		geocoder = new GClientGeocoder();
	}
}

function showAddress(address) {
	address=document.getElementById("address").value;
	if (geocoder) {
		geocoder.getLatLng(
			address,
          	function(point) {
            	if (!point) {
              		alert(address + " not found.");
  	          	} 
				else {
        	      	map.setCenter(point,13);
					latlon=point;
					document.getElementById("nextpage").disabled = false;
           	 	}
			}
		);
	}
}

function setOpacity(value) {
	var divCollection = document.getElementsByTagName('div');
	for (var loop=0, max=divCollection.length; loop<max; loop++) {
		var currentNode = divCollection[loop];
		currentNode.style.opacity = value/10;
		currentNode.style.filter = 'alpha(opacity=' + value*10 + ')';
	}
	document.getElementById("loadingdiv").style.opacity=10;
	document.getElementById("loadingdiv").style.filter="alpha(opacity='10')";
}

function doPage(page) {
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	req.onreadystatechange = function() {
		if(document.getElementById("loadingdiv")){
			document.getElementById("loadingdiv").style.visibility="visible";
			/*setOpacity(9);*/
		}
		if(req.readyState == 4) {
			if(req.status == 200) {
				if(page==3) {
					//if error is returned show the form again with errors highlighted
					if (req.responseText.indexOf("OK!")==-1) {
						document.getElementById("div1").innerHTML=req.responseText;
						if (req.responseText.indexOf("Oops!")==-1) {
							alert("Please fix the highlighted errors!");
						}
					}
					else {
						doPage(19);
					}
				}
				if(page==4) {
					newHTML="";
					newHTML=newHTML + req.responseText;
					document.getElementById("div1").innerHTML=newHTML;
					// Help for page
					newHTML="";
					newHTML=newHTML + "<h3>Help</h3>";
					newHTML=newHTML + "<h4>Managing Interests</h4>";
					newHTML=newHTML + "To add a new interest or hobby type the interest into the box and hit \'add\'. You can type anything you are into, e.g. cats, running, band names etc. but you will only find other people who have typed exactly the same thing, so try to make what you add as general as you can.";
					newHTML=newHTML + "<br /><br />";
					newHTML=newHTML + "To remove an interest click the \'x\' next to the name.";
					newHTML=newHTML + "<br /><br />";
					newHTML=newHTML + "<h4>Searching</h4>";
					newHTML=newHTML + "Click an interest to search. Results will be shown here. The results are sorted according to how close to you the other people interested in your hobbies are. You can only search for interests you have also added (we did this on purpose).";
					document.getElementById("div2").innerHTML=newHTML;
				}
				if (page==5) {
					doPage(1);
					doPage(20);
					document.getElementById("navdiv").style.visibility = "hidden";
					document.getElementById("subhead").style.visibility = "visible";
				}
				if(page==8) {
					document.getElementById("div1").innerHTML=req.responseText;
					newHTML="";
					newHTML=newHTML + "<h3>Help</h3>";
					newHTML=newHTML + "Enter your name (either your real name or your nickname). This is what other members on the site will see.";
					newHTML=newHTML + "<br /><br />";
					newHTML=newHTML + "Then enter your birthday (we only use this to display your age). Type a little about yourself and your interests, then upload a pic if you want. ";
					newHTML=newHTML + "<b>We will resize the images</b> when they are uploaded. The photo is optional, so don't worry if you don't have one.";
					newHTML=newHTML + "<br /><br />";
					newHTML=newHTML + "We use your email address as your username so make sure this is correct.";
					document.getElementById("div2").innerHTML=newHTML;
				}
				if(page==9) {
					//if error is returned show the form again with errors highlighted
					if (req.responseText.indexOf("OK!")==-1) {
						document.getElementById("div1").innerHTML=req.responseText;
						if (req.responseText.indexOf("Oops!")==-1) {
							alert("Please fix the highlighted errors!");
						}
					}
					else {
						doPage(4);
					}
				}
				if(page==10) {
					document.getElementById("div1").innerHTML=req.responseText;
					doPage(4);
				}
				if(page==11) {
					document.getElementById("div2").innerHTML=req.responseText;
				}
				if(page==14) {
					doPage(4);
				}
				if (page==15){
					// search results
					document.getElementById("div2").innerHTML=req.responseText;
					// parse the startrow and recordcount from the results
					startrow=req.responseText.substring(req.responseText.indexOf("<!--startrow="));
					startrow=startrow.substring(13,startrow.indexOf("-->"));
					recordcount=req.responseText.substring(req.responseText.indexOf("<!--recordcount="));
					recordcount=recordcount.substring(16,recordcount.indexOf("-->"));
					startrow=parseInt(startrow);
					recordcount=parseInt(recordcount);
					if (startrow==1) {
						if(document.getElementById("previouspagebutton")){
							document.getElementById("previouspagebutton").disabled = true;
						}
					}
					if (startrow>=recordcount) {
						if(document.getElementById("nextpagebutton")){
							document.getElementById("nextpagebutton").disabled = true;
						}
					}
				}
				if(page==16) {
					doPage(4);
				}
				if (page==19){
					// Login
					if (req.responseText.indexOf("OK!")==-1) {
						document.getElementById("div2").innerHTML=req.responseText;
					}
					else {
						doPage(4);
						document.getElementById("navdiv").style.visibility = "visible";
						document.getElementById("subhead").style.visibility = "hidden";
					}
				}
				if(page==21) {
					// frm_email
					document.getElementById("div2").innerHTML=req.responseText;
				}
				if (page==22){
					// act_email
					doPage(23);
				}
				if(document.getElementById("loadingdiv")){
					document.getElementById("loadingdiv").style.visibility="hidden";
					/*setOpacity(10);*/
				}
			}
			else {
				alert("Error: returned status code " + req.status + " " + req.statusText);
				if(document.getElementById("loadingdiv")){
					document.getElementById("loadingdiv").style.visibility="hidden";
					/*setOpacity(10);*/
				}
			}
		}
	};
	if (page==1) {
		// Register page 1 - google map
		newHTML="";
		newHTML=newHTML + "<div id=\"starthere\" class=\"starthere\"><img src=\"images/starthere.png\" width=\"79\" height=\"79\" alt=\"\" /></div>";
		newHTML=newHTML + "<form action=\"#\" onsubmit=\"return false;\">";
		newHTML=newHTML + "<h3>Register</h3>";
		newHTML=newHTML + "<h4>Step 1 - Where are you?</h4>";
		newHTML=newHTML + "<div id=\"map\" class=\"map\"></div>";
		newHTML=newHTML + "<input type=\"text\" id=\"address\" value=\"type your address here and hit lookup\" class=\"lookupaddress\" />";
		newHTML=newHTML + "<input type=\"button\" value=\"lookup\" onclick=\"showAddress();\" class=\"buttonleft\" /><input type=\"button\" value=\"next page\" id=\"nextpage\" onclick=\"doPage(2);this.disabled=true;\" class=\"buttonright\" disabled />";
		newHTML=newHTML + "</form>";
		document.getElementById("div1").innerHTML=newHTML;
		load();
	}
	if (page==2) {
		newHTML="";
		newHTML=newHTML + "<h3>Register</h3>";	
		newHTML=newHTML + "<h4>Step 2 - Your Details</h4>";	
		newHTML=newHTML + "<form action=\"#\" onsubmit=\"return false;\">";
		newHTML=newHTML + "<table>";
		newHTML=newHTML + "<tr><td class=\"col1\">Name:</td><td class=\"col2\"><input type=\"text\" id=\"name\" maxlength=\"255\" class=\"width200\" /></td></tr>";
		newHTML=newHTML + "<tr><td class=\"col1\">Birthday:</td><td class=\"col2\">";
		newHTML=newHTML + "<input type=\"text\" id=\"day\" size=\"2\" maxlength=\"2\" value=\"dd\" />-";
		newHTML=newHTML + "<input type=\"text\" id=\"month\" size=\"2\" maxlength=\"2\" value=\"mm\" />-";
		newHTML=newHTML + "<input type=\"text\" id=\"year\" size=\"4\" maxlength=\"4\" value=\"yyyy\" />";
		newHTML=newHTML + "</td></tr>";
		newHTML=newHTML + "<tr><td class=\"col1 aligntop\">About You:</td><td class=\"col2\"><textarea id=\"abouttext\" class=\"about\"></textarea></td></tr>";
		newHTML=newHTML + "<tr><td class=\"col1\">Email Address:</td><td class=\"col2\"><input type=\"text\" id=\"email\" maxlength=\"255\" class=\"width200\" /></td></tr>";
		newHTML=newHTML + "<tr><td class=\"col1\">Password:</td><td class=\"col2\"><input type=\"password\" id=\"password\" maxlength=\"12\" value=\"\" class=\"width200\" /></td></tr>";
		newHTML=newHTML + "</table>";
		newHTML=newHTML + "<input align=\"right\" type=\"button\" value=\"next page\" id=\"nextpage\" onclick=\"doPage(3);\" class=\"buttonright\" />";
		newHTML=newHTML + "</form>";
		document.getElementById("div1").innerHTML=newHTML;
		// Help for this page
		newHTML="";
		newHTML=newHTML + "<h3>Help</h3>";
		newHTML=newHTML + "Enter your name (either your real name or your nickname). This is what other members on the site will see.";
		newHTML=newHTML + "<br /><br />";
		newHTML=newHTML + "Then enter your birthday (we only use this to display your age). Type a little about yourself and your interests in the about area. ";
		newHTML=newHTML + "<br /><br />";
		newHTML=newHTML + "We use your email address as your username so make sure this is correct.";
		document.getElementById("div2").innerHTML=newHTML;
	}
	if (page==3) {
		// Register 3 - validate and AJAX to database
		url="";
		url=url+"latlon="+escape(latlon);
		url=url+"&name="+document.getElementById("name").value;
		url=url+"&day="+document.getElementById("day").value;
		url=url+"&month="+document.getElementById("month").value;
		url=url+"&year="+document.getElementById("year").value;
		url=url+"&dob="+document.getElementById("year").value+"-"+document.getElementById("month").value+"-"+document.getElementById("day").value;
		url=url+"&about="+document.getElementById("abouttext").value;
		url=url+"&email="+document.getElementById("email").value;
		url=url+"&password="+document.getElementById("password").value;
		req.open("POST","act_register.cfm",true);
		req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length",url.length);
		req.setRequestHeader("Connection","close");
		req.send(url);
	}
	if (page==4) {
		req.open("GET","dsp_tags.cfm",true);
		req.send(null);
	}
	if (page==5) {
		req.open("GET","act_logout.cfm",true);
		req.send(null);
	}
	if (page==7) {
		// Update step 1 (google map)
		newHTML="";
		newHTML=newHTML + "<form action=\"#\" onsubmit=\"return false;\">";
		newHTML=newHTML + "<h3>Change Location</h3>";
		newHTML=newHTML + "<h4>Where are you?</h4>";
		newHTML=newHTML + "<div id=\"map\" class=\"map\"></div>";
		newHTML=newHTML + "<input type=\"text\" id=\"address\" value=\"type your address here and hit lookup\" class=\"lookupaddress\" />";
		newHTML=newHTML + "<input type=\"button\" value=\"lookup\" onclick=\"showAddress();\" class=\"buttonleft\" />";
		newHTML=newHTML + "<input type=\"button\" value=\"update\" id=\"nextpage\" onclick=\"doPage(10);this.disabled=true;\" class=\"buttonright\" disabled />";
		newHTML=newHTML + "</form>";
		document.getElementById("div1").innerHTML=newHTML;
		newHTML="";
		newHTML=newHTML + "<h3>Help</h3>";
		newHTML=newHTML + "<p>Type your address and hit <b>lookup</b>. You should see a map of the address you entered. If the map shows the correct location click the <b>update</b> button.</p>";
		newHTML=newHTML + "<p><br /><b>Address examples:</b><ul><li>300 Queen Street Brisbane Australia</li><li>Pitt Street Sydney Australia</li><li>Manhattan New York</li></ul></p>";
		document.getElementById("div2").innerHTML=newHTML;
		load();
	}
	if (page==8) {
		// Update step 2 (member details)
		url="frm_edit.cfm";
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==9) {
		// AJAX into the database
		url="";
		url=url+"name="+document.getElementById("name").value;
		url=url+"&day="+document.getElementById("day").value;
		url=url+"&month="+document.getElementById("month").value;
		url=url+"&year="+document.getElementById("year").value;
		url=url+"&dob="+document.getElementById("year").value+"-"+document.getElementById("month").value+"-"+document.getElementById("day").value;
		url=url+"&about="+document.getElementById("abouttext").value;
		url=url+"&email="+document.getElementById("email").value;
		url=url+"&password="+document.getElementById("password").value;
		req.open("POST","act_edit.cfm",true);
		req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length",url.length);
		req.setRequestHeader("Connection","close");
		req.send(url);
	}
	if (page==10) {
		// update location
		url="act_editloc.cfm?latlon="+latlon;
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==11) {
		// popular tags
		url="dsp_popular.cfm";
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==14){
		// Add an interest
		tag=document.getElementById("tag").value;
		if (tag!=""){
			url="act_addtag.cfm?tag="+tag;
			req.open("GET",url,true);
			req.send(null);
		}
		else {
			alert("You can't have a blank tag!");
			document.getElementById("addbutton").disabled=False;
		}
	}
	if (page==15){
		// Search results
		url="act_search.cfm?tag="+tag+"&startrow="+startrow;
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==16){
		// Remove selected category
		url="act_removetag.cfm?tag="+tag;
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==19){
		// log in action
		email=document.getElementById("email").value;
		password=document.getElementById("password").value;
		url="act_login.cfm?email="+email+"&password="+password;
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==20){
		// log in form
		newHTML="";
		newHTML=newHTML + "<h3>Map Help</h3>";
		newHTML=newHTML + "<p>Type your address and hit <b>lookup</b>. You should see a map of the address you entered. If the map shows the correct location click the <b>update</b> button.</p>";
		newHTML=newHTML + "<p><br /><b>Address examples:</b><ul><li>300 Queen Street Brisbane Australia</li><li>Pitt Street Sydney Australia</li><li>Manhattan New York</li></ul></p>";
		newHTML=newHTML + "<div class=\"paddingtop20\">";
		newHTML=newHTML + "<h4>If you are already registered log in here:</h4>";
		newHTML=newHTML + "<form action=\"#\" onsubmit=\"return false;\">";
		newHTML=newHTML + "<table>";
		newHTML=newHTML + "<tr><td class=\"col1\">Email Address:</td><td class=\"col2\"><input type=\"text\" id=\"email\" value=\"\" class=\"width200\" /></td></tr>";
		newHTML=newHTML + "<tr><td class=\"col1\">Password:</td><td class=\"col2\"><input type=\"password\" id=\"password\" value=\"\" class=\"width200\" /></td></tr>";
		newHTML=newHTML + "</table>";
		newHTML=newHTML + "<INPUT type=\"BUTTON\" value=\"Submit\" id=\"submitbutton\" onclick=\"doPage(19);\" class=\"buttonright\">";
		newHTML=newHTML + "</form>";
		newHTML=newHTML + "</div>";
		document.getElementById("div2").innerHTML=newHTML;
	}
	if (page==21) {
		// frm_sendemail
		url="frm_email.cfm";
		req.open("GET",url,true);
		req.send(null);
	}
	if (page==22){
		// act_sendemail
		email=document.getElementById("email").value;
		req.open("POST","act_email.cfm",true);
		req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length",url.length);
		req.setRequestHeader("Connection","close");
		req.send("email="+email+"&to="+emailto);
	}
	if (page==23){
		// dsp_sendemaildone
		newHTML="";
	 	newHTML=newHTML + "<h3>Send Email</h3>";
		newHTML=newHTML + "<h4>Email Sent!</h4>";
		newHTML=newHTML + "<input type=\"button\" value=\"back to profile\" onClick=\"doPage(15);\" class=\"buttonleft\" />";
		document.getElementById("div2").innerHTML=newHTML;
	}
}
//]]>
