// JavaScript Document
var currentMenu="submenu_about";
var timeOn = 0;
var myTimeOn = 0;
var currentOver = "attractions";
var currentGuideMenu = "attractions_menu";
var currentColour;


var map = null;
    var geocoder = null;

    function initialize(addr, title) {
     // if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("property_map"));
		map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

        geocoder = new GClientGeocoder();
		showAddress(addr, title);
    //  }
    }

    function showAddress(address, title) {
     if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 16);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(title);
            }
          }
        );
      }
    }

   function initialize2(lat, long, title) {
     // if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("property_map"));
		map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

		showAddress2(lat, long, title);
    //  }
    }

    function showAddress2(lat, long,  title) {
 
 			var point= new GLatLng(lat, long);
              map.setCenter(point, 16);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(title);
    }



function mailMe(sDom, sUser){
  return("mail"+"to:"+sUser+"@"+sDom.replace(/%23/g,"."));
}
function hover(name){
document.getElementById(name).style.background = "#554A92";
}
function unhover(name){
document.getElementById(name).style.background = "#1B1151";
}


function setBackgroundImage(elem, img){
	image = "url('"+img+"')";
	elem.style.backgroundImage = image;
}

function changeImage(ind){
	var src= IMAGE_DIR+ind;

	if(document.getElementById(ind).src == src+".gif"){
		src+="_over.gif"
		}
	else
		src+=".gif";
	document.getElementById(ind).src=src;
}

function show(menu, over){
	document.getElementById(currentMenu).style.visibility="hidden";
	document.getElementById(menu).style.visibility="visible";
	setBackgroundImage(document.getElementById(over), "../slices/menu_item_over.jpg");
	window.clearTimeout(myTimeOn)
}

function hide(menu, over){
	currentMenu=menu;
	myTimeOn=window.setTimeout("hideMenu()", 2000);
	setBackgroundImage(document.getElementById(over), "../slices/menu_item.jpg");
}

function hideMenu(){
document.getElementById(currentMenu).style.visibility="hidden";
}

function showGuide(menu, over, colour){
	/**
	document.getElementById(currentOver).style.backgroundColor = "#217D1A";
	currentOver = over;
	document.getElementById(currentGuideMenu).style.visibility="hidden";
	document.getElementById(currentGuideMenu).style.display="none";
	document.getElementById(menu).style.visibility="visible";
	document.getElementById(menu).style.display = "block";
	document.getElementById(over).style.backgroundColor = colour;
	//setBackgroundImage(document.getElementById(over), "../slices/menu_item_over.jpg");
	window.clearTimeout(timeOn)
	**/
}

function hideGuide(menu, over){
	/**
	currentGuideMenu=menu;
	//document.getElementById(over).style.backgroundColor = "#217D1A";
	timeOn=window.setTimeout("hideMenuGuide()", 2000);
	//setBackgroundImage(document.getElementById(over), "../slices/menu_item.jpg");
	**/
}
function hideMenuGuide(){
	document.getElementById(currentGuideMenu).style.visibility="hidden";
	document.getElementById(currentGuideMenu).style.display="none";
	
}

function hoverGuide(elem){
	currentColour = elem.style.backgroundColor;
	elem.style.backgroundColor = "#217D1A";	
	window.clearTimeout(timeOn)
}
function unhoverGuide(elem){
	elem.style.backgroundColor = currentColour;	
		timeOn=window.setTimeout("hideMenuGuide()", 2000);

}


/********* VALIDATION FUNCTIONS **********/

function validateBookingPart1(){
	
	if(!validate())
		return false;

}

function validateBookingPart2(){
	
	if(!validate())
		return false;
	if(!validateEmailAddress('email_address'))
		return false;

}
function validateBookingPart3(){
	
	if(!validate())
		return false;

}


//check that all fields with classname 'required' are filled in
function validate(formname){
	if(!formname) formname="theform";
var elems=document.getElementsByTagName('input'); 
valid=true;
for(var i=0;i<elems.length;i++){
	if(elems[i].className=='required'){
		switch(elems[i].type) {
			case "text" :
				if(elems[i].value==""){
					valid=false;
					alert("Please fill in all required fields");
				}
				break;
			case "radio" :
				valid = isSelected(formname, elems[i].name);
				break;
		}
		if(!valid){
			return valid;
		}
	}
}
return true;
}

//check that all fields with classname 'required' are filled in
function validateForm(formname){
var elems=eval("document."+formname+".elements"); 
var valid=true;
for(var i=0;i<elems.length;i++){
	if(elems[i].className=='required'){
	switch(elems[i].type) {
			case "text" :
				if(elems[i].name=='email_address'){
					valid=isEmail(elems[i].value);
				}
			case "password" :
				if(elems[i].value==""){
					valid=false;
					alert("Please fill in all required fields");
				}
				break;
			case "radio" :
				valid = isSelected(formname, elems[i].name);
				break;
			case "checkbox" :
				valid = isChecked(formname, elems[i].name);
				break;
		}
		if(!valid){
			return valid;
		}
	}
}
return true;
}

/** isChecked
 * returns true if at least one of a group of checkboxes is checked
 **/
function isChecked(formname, checkboxname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+checkboxname);
	for (var i = 0; i < chkbx.length; i++) {
  	 	if (chkbx[i].checked) {
   	   	isChecked = true;
   		}
	}
	if(!isChecked)
		alert("Please tick all required checkboxes");
	return isChecked;
}

/** isSelected()
 * Returns true if one of a group of radio buttons is selected
 **/
function isSelected(formname, radioname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+radioname);
	if(!chkbx.length){
		if(chkbx.checked)
			isChecked=true;
	}
	else{
		for (var i = 0; i < chkbx.length; i++) {
			if (chkbx[i].checked) {
			isChecked = true;
			}
		}
	}
	if(!isChecked)
		alert("Please tick all required Radio buttons");
	return isChecked;
}

/*** This validation function checks that an email address contains both '@' and '.' **/
function validateEmailAddress(email_address){
var email = document.getElementById(email_address).value;
	if((email.indexOf('@')==-1)||(email.indexOf('.')==-1)){
		alert("Invalid email address");
		return false;
	}
	else
		return true;
}

//Check that two fields have the same values, useful for password changes etc
function validateSame(type, retype){
if(document.getElementById(type).value == document.getElementById(retype).value)
	return true;
else{
	return false;
}
}
