// LaCasa javascript
// Google maps key: ABQIAAAAX4ZdXaGmAKd16uXHl3LPRhTa0-oyJRFeUYNzuukiObOhzvvXshSmDYiaSUMzwGjGYP6-WnqJMCogZg
var strOff="_off";
var strOn="_on";
var jbuttons = {"lunch":{"id":"btn_lunch","imgfmt":"png","page":"lunch"},
           "dinner":{"id":"btn_dinner","imgfmt":"png","page":"dinner"},
		   "dessert":{"id":"btn_dessert","imgfmt":"png","page":"dessert"},
		   "wine":{"id":"btn_wine","imgfmt":"png","page":"wine"},
		   "scotch":{"id":"btn_scotch","imgfmt":"png","page":"scotch"},
		   //"booknow":{"id":"btn_booknow","imgfmt":"png","page":"^$"},
		   "privateparties":{"id":"btn_privateparties","imgfmt":"png","page":"privateparties"},
		   "specialevents":{"id":"btn_specialevents","imgfmt":"png","page":"specialevents"},
		   "weddings":{"id":"btn_weddings","imgfmt":"png","page":"weddings"},
		   "businessclass":{"id":"btn_businessclass","imgfmt":"png","page":"businessclass"},
		   "virtualtour":{"id":"btn_virtualtour","imgfmt":"png","page":"virtualtour"},
		   "aboutus":{"id":"btn_aboutus","imgfmt":"png","page":"aboutus"},
		   "contactus":{"id":"btn_contactus","imgfmt":"png","page":"contactus"},
		   "directions":{"id":"btn_directions","imgfmt":"png","page":"directions"}
		  };

function jbuttonMouseover(){
	reg = new RegExp(this.jbutton.page);
	loc = location.href;
	if(!(loc.match(reg))){
		//url of this location doesn't match the page regexp, proceed with mouseover
		if(this.jbutton.img.tagName=="IMG"){
			this.jbutton.img.src=this.jbutton.img.src.replace(strOff,strOn);
		}
		else if (this.jbutton.img.tagName=='SPAN'){
			var currentAlphaImg = this.jbutton.img.filters(0).src;
			this.jbutton.img.filters(0).src=currentAlphaImg.replace(strOff,strOn);
		}
	}
}
function jbuttonMouseout(){
	reg = new RegExp(this.jbutton.page);
	loc = location.href;
	if(!(loc.match(reg))){
		//url of this location doesn't match the page regexp, proceed with mouseout
		if(this.jbutton.img.tagName=="IMG"){
			this.jbutton.img.src=this.jbutton.img.src.replace(strOn,strOff);
		}
		else if (this.jbutton.img.tagName=='SPAN'){
			var currentAlphaImg = this.jbutton.img.filters(0).src;
			this.jbutton.img.filters(0).src=currentAlphaImg.replace(strOn,strOff);
		}
	}
}

getViewportWidth = function() {
  var width = 0;
  if( document.documentElement && document.documentElement.clientWidth ) {
    width = document.documentElement.clientWidth;
  }
  else if( document.body && document.body.clientWidth ) {
    width = document.body.clientWidth;
  }
  else if( window.innerWidth ) {
    width = window.innerWidth - 18;
  }
  return width;
};

getViewportHeight = function() {
  var height = 0;
  if( document.documentElement && document.documentElement.clientHeight ) {
    height = document.documentElement.clientHeight;
  }
  else if( document.body && document.body.clientHeight ) {
    height = document.body.clientHeight;
  }
  else if( window.innerHeight ) {
    height = window.innerHeight - 18;
  }
  return height;
};

getViewportScrollX = function() {
  var scrollX = 0;
  if( document.documentElement && document.documentElement.scrollLeft ) {
    scrollX = document.documentElement.scrollLeft;
  }
  else if( document.body && document.body.scrollLeft ) {
    scrollX = document.body.scrollLeft;
  }
  else if( window.pageXOffset ) {
    scrollX = window.pageXOffset;
  }
  else if( window.scrollX ) {
    scrollX = window.scrollX;
  }
  return scrollX;
};

getViewportScrollY = function() {
  var scrollY = 0;
  if( document.documentElement && document.documentElement.scrollTop ) {
    scrollY = document.documentElement.scrollTop;
  }
  else if( document.body && document.body.scrollTop ) {
    scrollY = document.body.scrollTop;
  }
  else if( window.pageYOffset ) {
    scrollY = window.pageYOffset;
  }
  else if( window.scrollY ) {
    scrollY = window.scrollY;
  }
  return scrollY;
};

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function placeObj(obj,pos){
	//pos can be {'obj':Element[,'xoffset':Number,'yoffset':Number]} or {'x':Number,'y':Number}
	//alert(obj);
	if(pos.x && pos.y){
	}
	else if (pos.obj) {
		var x=findPosX(pos.obj);
		var y=findPosY(pos.obj);
		if(pos.xoffset){
			x+=parseInt(pos.xoffset,10);
		}
		if(pos.yoffset){
			y+=parseInt(pos.yoffset,10);
		}
		obj.style.top=y+"px";
		obj.style.left=x+"px";
		obj.style.visibility='visible';
		obj.style.display='block';
	}
}

function initPage(){
	//alert("Init");
	correctPNG();
	positions();
	for (var n in jbuttons){
		jbuttons[n].img = document.getElementById(jbuttons[n].id);
		jbuttons[n].link = jbuttons[n].img.parentNode;
		jbuttons[n].link.onmouseover=jbuttonMouseover;
		jbuttons[n].link.onmouseout=jbuttonMouseout;
		jbuttons[n].link.jbutton = jbuttons[n];
	}
	if(location.href.indexOf("directions.shtml")!=-1){
		mapload();
	}
}
function resizePage(){
	positions();
}
function positions(){
	placeObj(document.getElementById('logodiv'),{'obj':document.getElementById('headcell')});
	placeObj(document.getElementById('intdiv'),{'obj':document.getElementById('tdnw'),'xoffset':25,'yoffset':110});
}
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 and 6.
{
	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])
	if ((version >= 5.5) && (document.body.filters) && (version<=6.0))
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i]
			var imgName = img.src.toUpperCase()
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
				var imgID = (img.id) ? "id='" + img.id + "' " : ""
				var imgClass = (img.className) ? "class='" + img.className + "' " : ""
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
				var imgStyle = "display:inline-block;" + img.style.cssText
				var imgAttribs = img.attributes;
				for (var j=0; j<imgAttribs.length; j++)
				{
					var imgAttrib = imgAttribs[j];
					if (imgAttrib.nodeName == "align")
					{
						if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle
						if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle
						break
					}
				}
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				if(img.parentNode.tagName=="A"){
					strNewHTML += "cursor:hand;"
				}
				strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				strNewHTML += "(src='" + img.src + "', sizingMethod='scale');\""
				//strNewHTML += " onmouseover=\"PNGswap('" + img.id + "');\" onmouseout=\"PNGswap('" + img.id +"');\""
				strNewHTML += "></span>"
				img.outerHTML = strNewHTML
				i = i-1
			}
		}
	}
}

function PNGswap(myID) //Correct png swapping function for IE 5.5 and 6
{
   var strOver  = "_on"
   var strOff = "_off"
   var oSpan = document.getElementById(myID)
   var currentAlphaImg = oSpan.filters(0).src
   if (currentAlphaImg.indexOf(strOver) != -1)
      oSpan.filters(0).src = currentAlphaImg.replace(strOver,strOff)
   else
      oSpan.filters(0).src = currentAlphaImg.replace(strOff,strOver)
}

function mapload() {
  if (GBrowserIsCompatible()) {
  	 document.getElementById('map').style.height="500px";
     var map = new GMap2(document.getElementById("map"));
		 map.addControl(new GSmallMapControl());
		 map.addControl(new GMapTypeControl());
		 //map.setMapType(G_HYBRID_TYPE);
		 var geocoder = new GClientGeocoder();
		 geocoder.getLatLng(
		 											'117 King St., London, ON, CA',
		 											function(point){
		 												if(point){
		 													map.setCenter(point,12);
		 													var marker = new GMarker(point);
		 													map.addOverlay(marker);
		 													GEvent.addListener(marker, "click", function() {
  																		marker.openInfoWindowHtml("<h3>LaCasa Ristorante</h3><br /><p>117 King St.,<br />London, ON, Canada</p><p>Get driving directions:<br /><form name=\"sform\" target=\"_blank\" method=GET action=\"http://maps.google.com/maps\" style=\"margin:0px;padding:0px;\">\n\
		 													 		                       <input name=\"daddr\" type=\"hidden\" value=\"117 King St., London, ON, Canada\" />From address:<input name=\"saddr\" type=\"text\" style=\"width:80px;\" value=\"\" /><input type=\"submit\" name=\"submit\" value=\"Go\" onClick=\"this.form.saddr.value+=', London, ON, Canada';\" /><br /><span style=\"font-size:9px;\">(Please type your local London address)</span></form>");
  																		});
															marker.openInfoWindowHtml("<h3>LaCasa Ristorante</h3><br /><p>117 King St.,<br />London, ON, Canada</p><p>Get driving directions:<br /><form name=\"sform\" target=\"_blank\" method=GET action=\"http://maps.google.com/maps\" style=\"margin:0px;padding:0px;\">\n\
		 													 		                       <input name=\"daddr\" type=\"hidden\" value=\"117 King St., London, ON, Canada\" />From address:<input name=\"saddr\" type=\"text\" style=\"width:80px;\" value=\"\" /><input type=\"submit\" name=\"submit\" value=\"Go\" onClick=\"this.form.saddr.value+=', London, ON, Canada';\" /><br /><span style=\"font-size:9px;\">(Please type your local London address)</span></form>");
		 												}
		 												else{
		 													alert("Map error: "+'117 King St., London, ON, CA not found!');
		 												}
		 											}
		 									 );
  }
  else {
  	document.getElementById('map').innerHTML="Your browser does not support the Google Maps interface.  The map cannot be displayed.";
  }
}

//&near=London,+ON,+Canada&q=lacasa+ristorante&f=li&hl=en&sll=42.976427,-81.249659&sspn=0.164778,0.406494&ie=UTF8&latlng=42981842,-81250933,1469261693687307490&ei=e3alRZ6qHZv2iwOHnolS

function bookNow() {
	if(validation(document.forms['reservationsform'])){
		newWin = window.open('','newWin','toolbars=no,location=no,status=no,menubar=no,scrollbars=yes,width=750,height=400');
		document.forms['reservationsform'].target='newWin';
		document.forms['reservationsform'].submit();
	}
}

function validation(frm){
	return true;
}


window.onresize=resizePage;
window.onload=initPage;