function printAddRest()
{
	cleanup();
	
	document.getElementById("leftColumn").style.visibility = "hidden";
	document.getElementById("leftTwoHead").style.visibility = "hidden";
	document.getElementById("rightColumn").style.visibility = "hidden";
	document.getElementById("rightTwoHead").style.visibility = "hidden";
	document.getElementById("rightThreeHead").style.visibility = "hidden"

	//means coming from a random link
	if ( searchGid == 0 )
		printParent();	
	else //make sure gid and city name matches and it is level 3 guide
	{
		gadgets.io.makeRequest(requestUrl+"checkcity.php", function(response){processCheckCity(response.data,"")},
			{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"gid="+searchGid+"&location="+searchLocation, 'CONTENT_TYPE':gadgets.io.ContentType.DOM});	
	}
}

function processCheckCity(xml, param)
{
	if ( param == "a" || xml.getElementsByTagName("city")[0].firstChild == null )
		printParent(); 
	else
	{
		var city = xml.getElementsByTagName("city")[0].firstChild;
		var state = xml.getElementsByTagName("state")[0].firstChild;
		var country = xml.getElementsByTagName("country")[0].firstChild.data;
	
		if ( city != null )
		{
			city = city.data;
			
			if ( state != null )
				state = state.data;
			else
				state = "";
			
			var string = "<br/> &nbsp; &nbsp; <img class='icon' src='http://www.travature.com/images/icon_add.gif'/> "+
				"<span style='font-size: 20px; vertical-align: bottom; line-height: 20px'>Add a restaurant</span><br/><br/>"+ 
				"<span style='font-size: 14px;'>Do you want to add a restaurant in " + city;		
			if ( state != "" )
				string += ", " + state;
			string += ", " + country + " ?</span><br/><br/> "+
				"<input id='yesButton' onClick='printRestForm("+searchGid+",\""+city+"\", \""+state+"\", \""+country+"\")' class='button' type='button' name='submit' value=' Yes '/> &nbsp; "+
				"<input id='noButton' onClick='processCheckCity(\"\",\"a\")' class='button' type='button' name='submit' value=' No '/><br/>";			
			document.getElementById("user").innerHTML += string; 
		}
	}	
}

function printParent()
{
	document.getElementById("user").innerHTML =	"<br/> &nbsp; &nbsp; <img class='icon' src='http://www.travature.com/images/icon_add.gif'/> "+
		"<span style='font-size: 20px; vertical-align: bottom; line-height: 20px'>Add a restaurant</span><br/><br/>"+
		"<div style='font-size: 14px;'> &nbsp; &nbsp; First, please tell us where the restaurant is located.<br/><br/>"+
		"<table style='margin-left: 20px; font-size: 12px;'><tr><td><b>1</b> Select which Continent the restaurant is in: &nbsp; "+
		"<select name='continent' id='continent' onchange='setContinent();'><option value=''/>"+
		"<option value='Africa'>Africa</option><option value='Asia'>Asia</option><option value='Caribbean'>Caribbean</option>"+
		"<option value='Central America'>Central American</option><option value='Europe'>Europe</option>"+
		"<option value='Middle East'>Middle East</option><option value='North America'>North America</option>"+
		"<option value='Oceania'>Oceania</option><option value='South America'>South America</option>"+
		"</select><br/><br/><b>2</b> Select which Country the restaurant is in: &nbsp; "+
		"<select name='country' id='country' onchange='setCountry();'><option value=''/></select>"+
		"<br/><br/><b>3</b> Select which State/Region/Province the restaurant is in: &nbsp; "+
		"<select name='state' id='state' onchange='setState();'><option value=''/></select>"+
		"<br/><br/><b>4</b> Select which Major City the restaurant is in/near: &nbsp; "+
		"<select name='city' id='city' onchange='setCity();'><option value=''/></select>"+
		"<br/><br/><br/><span style='margin-left: 200px'>"+
		"<input id='continueButton' type='button' class='button' onClick='parentSubmit()' value='Continue'/>"+
		"</span><br/><br/><br/>"+
		"<b>Note:</b> If the city doesn't belong to a region/state, please select <b>I don't know</b>."+
		" If the region/city you are looking for doesn't exist in the drop down menus, please select <b>Not Listed</b>."+
		" Then you will be prompted to enter one.<br/></td></tr></table></div>";		
}

function setContinent()
{
	var continent = document.getElementById("continent");
			
	document.getElementById("country").length = 0		
	document.getElementById("state").length = 0;
	document.getElementById("city").length = 0;
		
	if ( continent.value != "" )
		gadgets.io.makeRequest(requestUrl+"getguidenames.php", processSetContinent,
			{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"continent=" + escape(continent.value), 'CONTENT_TYPE':gadgets.io.ContentType.DOM});
}

function processSetContinent(response)
{
	var xml = response.data;
	var options = xml.getElementsByTagName("option");
				  
	document.getElementById("country").length=options.length+1;

	for (var i = 0; i < options.length; i++ )
		document.getElementById("country").options[i+1] =
			new Option(options[i].firstChild.data,options[i].firstChild.data,false);    
}

function setCountry()
{
	var country = document.getElementById("country");
	
	document.getElementById("state").length = 0;
	document.getElementById("city").length = 0;
	
	if ( country.value != "" )
		gadgets.io.makeRequest(requestUrl+"getguidenames.php", processSetCountry,
			{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"country=" + escape(country.value), 'CONTENT_TYPE':gadgets.io.ContentType.DOM});														
}

function processSetCountry(response)
{
	var xml = response.data;
	var options = xml.getElementsByTagName("option");
	
	document.getElementById("state").length=options.length;

	for (var i = 0; i < options.length; i++ )
		document.getElementById("state").options[i+1] =
			new Option(options[i].firstChild.data,options[i].firstChild.data,false);
}

function setState()
{
	var state = document.getElementById("state");
	var country = document.getElementById("country").value;
	
	if ( state.value != "" && state.value != "-----------------" )
	{
		if ( state.value == "Not listed" )
		{
			var name = prompt("Please enter the new state/province/region:", "");
			var pattern = new RegExp("[a-zA-Z]+");
			
			if ( name == null || !name.match(pattern))
				state.options[0].selected = true;
			else	
			{	
				//check if same state exist already
				for ( var i = 0; i < state.options.length; i ++ )
				{
					if ( name == state.options[i].text )
					{
						alert(name + " already exist.");
						state.options[0].selected = true;
						return;
					}
				}
							
				gadgets.io.makeRequest(requestUrl+"getguidenames.php", function(response){processNewState(response, state, name)},
					{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"newState=" + escape(name) + "&parent=" + escape(country) + "&username="+username, 'CONTENT_TYPE':gadgets.io.ContentType.DOM});	
			}	
		}
		else
			gadgets.io.makeRequest(requestUrl+"getguidenames.php", function(response){processSetState(response, state, name)},
					{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"country="+escape(country)+"&state=" + escape(state.value), 'CONTENT_TYPE':gadgets.io.ContentType.DOM});	
	}
	else
		document.getElementById("city").length=0;
}

function processNewState(response, state, name)
{
	var xml = response.data;
	var options = xml.getElementsByTagName("option");
	
	state.length=options.length;

	for (var i = 0; i < options.length; i++ )
	{
		state.options[i+1] = new Option(options[i].firstChild.data, options[i].firstChild.data,false);
		if ( state.options[i+1].text == name )
			state.options[i+1].selected = true;
	}			
}

function processSetState(response)
{
	var xml = response.data
	var options = xml.getElementsByTagName("option");
	
	document.getElementById("city").length=options.length;

	for (var i = 0; i < options.length; i++ )
		document.getElementById("city").options[i+1] = new Option(options[i].firstChild.data,options[i].firstChild.data,false);
}

function setCity()
{
	var city = document.getElementById("city");
	var state = document.getElementById("state").value;
	var country = document.getElementById("country").value;
	var parent = "";

	if ( city.value != "" && city.value != "-----------------")
	{
		if ( city.value == "Not listed" )
		{
			var name = prompt("Please enter the new city:", "");
			var pattern = new RegExp("[a-zA-Z]+");
			
			if ( name == null || !name.match(pattern))
				city.options[0].selected = true;
			else	
			{	
				//check if same state exist already
				for ( var i = 0; i < city.options.length; i ++ )
				{
					if ( name == city.options[i].text )
					{
						alert(name + " already exist.");
						city.options[0].selected = true;
						return;
					}
				}
				
				parent = state;
				if ( state == "I don't know" )
					parent = country; 
							
				gadgets.io.makeRequest(requestUrl+"getguidenames.php", function(response){processNewCity(response, city, name)},
					{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"newCity=" + escape(name) + "&parent=" + escape(parent) + "&username="+username, 'CONTENT_TYPE':gadgets.io.ContentType.DOM});	
			}	
		}	
	}
}

function processNewCity(response, city, name)
{
	var xml = response.data;
	var options = xml.getElementsByTagName("option");
	
	city.length=options.length;

	for (var i = 0; i < options.length; i++ )
	{
		city.options[i+1] = new Option(options[i].firstChild.data, options[i].firstChild.data,false);
		if ( city.options[i+1].text == name )
			city.options[i+1].selected = true;
	}			
}

function parentSubmit()
{
	var continent = document.getElementById("continent");
	var country = document.getElementById("country").value;
	var state = document.getElementById("state").value;
	var city = document.getElementById("city").value;
	
	if ( continent == "" )
		alert("Please select a continent.");
	else if ( country == "" )
		alert("Please select a country.");
	else if ( state == "" || state == "-----------------" )	
		alert("Please select a state.");
	else if ( city == "" || city == "-----------------")
		alert("Please select a city.");
	else
	{
		var parent = state;
		if ( state == "I don't know" )
			parent = country; 
	
		gadgets.io.makeRequest(requestUrl+"getguidenames.php", function(response){printRestForm(response.data, city, state, country)},
			{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':"name=" + escape(city) + "&parent=" + escape(parent), 'CONTENT_TYPE':gadgets.io.ContentType.TEXT});
	}
}

function printRestForm(gid, city, state, country)
{
	if ( state == "I don't know" )
		state = "";
		
	document.getElementById("user").innerHTML = "<br/> &nbsp; &nbsp; "+
		"<img class='icon' src='http://www.travature.com/images/icon_add.gif'/> "+
		"<span style='font-size: 20px; vertical-align: bottom; line-height: 20px'>Add a restaurant"+
		"</span><br/><br/><table cellspacing=3 cellpadding=3 style='font-size: 12px; color: #444; margin-left: 15px;'>"+
		"<tr><td><b>Name*</b></td><td><input id='name' type='text' name='name' value=''></td></tr>"+
		"<tr><td><b>Street*</b></td><td><input id='street' type='text' name='street' value=''></td></tr>"+
		"<tr><td><b>City*</b></td><td><input id='city' type='text' name='city' value='"+city+"'></td></tr>"+
		"<tr><td><b>State</b></td><td>"+state+"<td></tr>"+
		"<tr><td><b>Country</b></td><td>"+country+"</td></tr>"+
		"<tr><td><b>Zip</b></td><td><input id='zip' name='zip' type='text' value=''></td></tr>"+
		"<tr><td><b>Phone</b></td><td><input id='phone' type='text' name='phone' value=''></td></tr>"+
		"<tr><td><b>Website</b></td><td><input id='website' type='text' name='website' value=''></td></tr>"+
		"<tr><td><b>Tags (comma seperated)</b><br/>(ex: Mexican, Tacos, Seafood)</td>"+
		"<td><input id='tags' type='text' name='tags' value=''></td></tr>"+
		"<tr><td><b>Hours of Operation</b><br/>(ex: M-F:10am-9pm, Sa-Sun:9am-5pm)</td>"+
		"<td><input id='hours' type='text' name='hours' value=''></rd></tr>"+
		"<tr><td><b>Price Range (US$)</b></td><td><select id='pricerange' name='pricerange'>"+
		"<option value='' SELECTED></option><option value='1'>Cheap ($1 - 10)</option>"+
		"<option value='2'>Typical ($10 - 20)</option><option value='3'>Classy ($20 -50)</option>"+
		"<option value='4'>Empty Your Wallet ($50+)</option></select></td></tr>"+
		"<tr><td><b>Dress Code</b></td><td><select id='attire' name='attire'>"+
		"<option value='' SELECTED ></option><option value='1'>Anything goes!</option>"+
		"<option value='2'>No shirt, no shoes, no service</option><option value='3'>Casual</option>"+
		"<option value='4'>Dress to impress</option><option value='5'>Black Tie Affair</option></select></td></tr>"+
		"<tr><td><b>Credit Cards</b></td><td><select id='creditcard' name='creditcard'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr><td><b>Reservation</b></td><td><select id='reservation' name='reservation'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr><td><b>Take-out</b></td><td><select id='takeout' name='takeout'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr><td><b>Delivery</b></td><td><select id='delivery' name='delivery'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr><td><b>Family Friendly</b></td><td><select id='family' name='family'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr><td><b>Group Friendly</b></td><td><select id='group' name='group'>"+
		"<option value='' SELECTED ></option><option value='1'>Yes</option><option value='0'>No</option>"+
		"</select></td></tr><tr colspan='2'><td>&nbsp;</td><tr><td colspan='2'><br/>"+
		"<center><span id='addRestButton' onClick='this.innerHTML=\" &nbsp; Checking input... &nbsp; \";"+
		" checkInputs("+gid+", \""+state+"\", \""+country+"\")' class='button'>"+
		" &nbsp; Submit &nbsp; </span></center></td></tr></table>";				
}

function checkInputs(gid, state, country)
{
	var val = document.getElementById("name").value;
	
	if ( val == "" )
		alert("Please fill in a restaurant name.");
	else
	{
		val = document.getElementById("street").value;
		if ( val == "" )
			alert("Please fill in an address.");
		else
		{
			val = document.getElementById("city").value;
			if (val == "")
				alert("Please fill in a city.");
			else
			{
				document.getElementById("addRestButton").innerHTML="Adding restaurant...";
				addRest(gid, state, country);
				return;
			}
		}
	}
	
	document.getElementById("addRestButton").innerHTML=" &nbsp; Submit &nbsp; ";
}

function addRest(gid, state, country)
{
	var name = document.getElementById("name").value;
	var street = document.getElementById("street").value;
	var city = document.getElementById("city").value;
	var zip = document.getElementById("zip").value;
	var phone = document.getElementById("phone").value;
	var website = document.getElementById("website").value;
	var tags = document.getElementById("tags").value;
	var hours = document.getElementById("hours").value;
	var pricerange = document.getElementById("pricerange").value;
	var attire = document.getElementById("attire").value;
	var creditcard = document.getElementById("creditcard").value;
	var reservation = document.getElementById("reservation").value;
	var takeout = document.getElementById("takeout").value;
	var delivery = document.getElementById("delivery").value;
	var family = document.getElementById("family").value;
	var group = document.getElementById("group").value;
	
	var query = "username="+username+"&parent="+gid+"&name="+escape(name)+"&street="+escape(street)+"&city="+escape(city)+
		"&state="+escape(state)+"&country="+escape(country)+"&zip="+escape(zip)+"&phone="+escape(phone)+
		"&website="+escape(website)+"&tags="+escape(tags)+"&hours="+escape(hours)+
		"&pricerange="+escape(pricerange)+"&attire="+escape(attire)+"&creditcard="+escape(creditcard)+
		"&reservation="+escape(reservation)+"&takeout="+escape(takeout)+"&delivery="+escape(delivery)+
		"&family="+escape(family)+"&group="+escape(group);
	gadgets.io.makeRequest(requestUrl+"restaurant.php", function(response){processAddRest(response, name, city, state, country)},
			{'METHOD' : gadgets.io.MethodType.POST, 'POST_DATA':query, 'CONTENT_TYPE':gadgets.io.ContentType.TEXT});
}

function processAddRest(response, name, city, state, country)
{
	var rid = response.data;
	if ( rid.substring(0,1) == "-" )
	{
		var answer = confirm("This restaurant already exist. Do you want to be redirected to the restaurant page?");
		if ( answer == true )
			printRestaurant(rid.substring(1));
		else	
			return;
		
	}
	else if ( isNumber(rid) )
	{
		printRestaurant(rid);
		var title = "";
		if ( site == "hi5" )
			title += owner_name;
		title += " has just created the restaurant <b>"+name+"</b> ("+(today.getMonth()+1)+ "/"+ today.getDate() + "/" + today.getFullYear() + " " + today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds()+")";
		var body = "<b>"+name+"</b> is located in "+street+", "+city+", ";
		if ( state != "" )
			body += state;
		else
			body += country; 
		body += ". Click <b><a href='"+installUrl+"'>here</a></b> to read more about "+name+"!" ;
		sendActivity(title, body);		
	}
	else
		alert("An error has occured. Please try again.");
}