function getPageSize() {
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }

	var windowWidth, windowHeight;

	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }

	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

	if (xScroll < windowWidth) {
		pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }

	objPageSize = {page_width: pageWidth, page_height: pageHeight, window_width: windowWidth, window_height: windowHeight};

	return objPageSize;
}

function validate_fields(fields, event, path) {
	fields.each(function(field) {
		if($F(field).blank()) {
			event.stop();
			$(field).up(path).addClassName('error');
		} else if($F(field) == $(field).title) {
			event.stop();
			$(field).up(path).addClassName('error');
		} else {
			$(field).up(path).removeClassName('error');
			return true;
		}
	});
}

function validate_email(fields, event, path) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	fields.each(function(field) {
		if($F(field).blank()) {
			event.stop();
			$(field).up(path).addClassName('error');
		} else if(!filter.test($F(field))) {
			event.stop();
			$(field).up(path).addClassName('error');
		} else {
			$(field).up(path).removeClassName('error');
			return true;
		}
	});
}

function placeSimpleGoogleMap() {
	
	var mapOptions = {
 		zoom: 17,
    	mapTypeId: google.maps.MapTypeId.ROADMAP
  	};
	
	var cabinetElitedent = new google.maps.LatLng(44.464395, 26.090357);
  	var map = new google.maps.Map($('contact-map'), mapOptions);
	map.setCenter(cabinetElitedent);

	var marker = new google.maps.Marker({
      position: cabinetElitedent,
      title:"EliteDent"
	});
	marker.setMap(map);
	
}

function placeGoogleMap() {
  //if (GBrowserIsCompatible()) {
	// var map = new google.maps.Map($(mapElement));
	
	//var blueIcon = new GIcon(G_DEFAULT_ICON);
	//blueIcon.image		= "link.gif";
	//blueIcon.shadow		= "";
	//blueIcon.iconSize	= GSize(16, 16);
	//markerOptions = { icon:blueIcon };
	
	placeSimpleGoogleMap();

	
	//map.setMapType(G_MAPMAKER_NORMAL_MAP);
	//map.setCenter(latlng, 17);
	//map.setUIToDefault();
	//map.addOverlay(new GMarker(latlng));
	
	/*
	http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=teheran,+bucuresti&aq=&
	sll=37.0625,-95.677068&
	sspn=55.016555,114.169922&
	ll=44.464219,26.090402&
	spn=0.001539,0.003484&
	z=19
	cbll=44.464253,26.090498
	cbp=12,336.43,,0,0.97
	*/
	var cabinetElitedentStreet = new google.maps.LatLng(44.464253, 26.090498);
	var panoramaOptions = {
	  	position: cabinetElitedentStreet,
  		pov: {
    		heading: 336,
    		pitch: 5,
    		zoom: 0.96
  		}
	}
	
	var panorama = new google.maps.StreetViewPanorama($('contact-map-pano'), panoramaOptions);
	map.setStreetView(panorama);
	
/*	
	var fenway = new google.maps.LatLng(42.345573,-71.098326);
	var mapOptions = {
	 center: fenway,
	 zoom: 14,
	 mapTypeId: google.maps.MapTypeId.ROADMAP
	};
var map = new google.maps.Map(
    document.getElementById("map_canvas"), mapOptions);
var panoramaOptions = {
  position: fenway,
  pov: {
    heading: 34,
    pitch: 10,
    zoom: 1
  }
};
var panorama = new  google.maps.StreetViewPanorama(document.getElementById("pano"), panoramaOptions);
map.setStreetView(panorama);
	*/
  //}
}
function showGoogleMap(showNormalMap) {
	if (showNormalMap) {
		$('contact-map-pano').style.zIndex='10';
		$('contact-map').style.zIndex='11';
		$('hide-pano-map').style.display='none';
		$('show-pano-map').style.display='block';
	}else {
		$('contact-map-pano').style.zIndex='11';
		$('contact-map').style.zIndex='10';
		$('hide-pano-map').style.display='block';
		$('show-pano-map').style.display='none';
	}
}

function doScroll (event) {

	var $sidebar 		= $('content-sidebar'); 
	if (!$sidebar) { return }

	var page			= getPageSize();
	var scroll			= document.viewport.getScrollOffsets();
	
	var currentScroll	= parseInt($sidebar.getStyle('top'));

	var val = eval(scroll.top + 50);
	val = Math.max(val, 560);
	val = Math.min(val, page.page_height - $sidebar.getHeight() - 220);
	currentScroll += (val - currentScroll) / 8;
	val = currentScroll;

	$sidebar.setStyle({'top':  val + 'px'});
}

function isScrolled(elm) {
	var scroll			= document.viewport.getScrollOffsets();

	var view_top		= scroll.top;
    var view_bottom		= scroll.top;

	var elm_top		= elm.positionedOffset().top - 200;
	var elm_bottom	= elm_top + elm.getHeight();

	return ((elm_bottom >= view_top) && (elm_top <= view_bottom));
}

document.observe('dom:loaded', function() {
	$$('.toggle').each(function (elm) {
		elm.observe('focus', function (event) {
			elm.up('div').removeClassName('error');
			if (elm.value == elm.title) {
				elm.up('div').addClassName('focus');
				elm.value = '';
			}
		}).observe('blur', function (event) {
			if (elm.value == '') {
				elm.up('div').removeClassName('focus');
				elm.value = elm.title;
			}
		});
	});

	$$('a.back-top').each(function(elm) {
		elm.observe('click', function(event) {
			event.stop();
			Effect.ScrollTo(elm.rel);
		});
	});

	$$('.do-hover').each(function(elm) {
		elm.observe('mouseover', function() {
			elm.addClassName('hover');
		}).observe('mouseout', function() {
			elm.removeClassName('hover');
		});
	});

	$sidebar = $('content-sidebar');
	if ($sidebar) {
		height = $sidebar.getHeight() + 10;
		$('content-main').setStyle({'minHeight': height + 'px'});
	}

	setInterval("doScroll()", 25);
	document.observe('scroll', function() {
		$$('.prices-box').each(function(elm){
			if(isScrolled(elm)) { 
				$$('a[rel=' + elm.id + ']').each(function(link) {
					$$('#content-sidebar ul.navigation li a').invoke('removeClassName', 'selected');
					link.addClassName('selected');
				});
			} else {
				
			}
		});
	});
	document.documentElement.onscroll = doScroll;
});
