// JavaScript functions for popup information form
var DBTY_COOKIE = "DBTY-request";

function locateHover() {
	var horizOffset = 800;
	var vertOffset = 100;
	var xScroll, yScroll;
	
	if ( self.pageYOffset ) { xScroll = self.pageXOffset; yScroll = self.pageYOffset; }
	else if ( document.documentElement && document.documentElement.scrollTop ) {
		xScroll = document.documentElement.scrollLeft;
		yScroll = document.documentElement.scrollTop;
	}
	else if ( document.body ) { xScroll = document.body.scrollLeft; yScroll = document.body.scrollTop; }
	
	var xCenter, yCenter;
	if ( self.innerHeight ) { xCenter = self.innerWidth; yCenter = self.innerHeight; }
	else if( document.documentElement && document.documentElement.clientHeight ) {
		xCenter = document.documentElement.clientWidth;
		yCenter = document.documentElement.clientHeight;
	} 
	else if ( document.body ) { xCenter = document.body.clientWidth; yCenter = document.body.clientHeight; }

	var offsetLeft = xScroll + ( xCenter - horizOffset ) / 2;
	var offsetTop = yScroll + vertOffset;
	document.getElementById( "hoverForm" ).style.top = offsetTop + "px";
	document.getElementById( "hoverForm" ).style.left = offsetLeft + "px";
}

function showHover() {

	var loc = window.location.toString();
	var c = readCookie( DBTY_COOKIE );

	if ( c == "true" ) { return; }
	else {
		locateHover();

		if( window.innerHeight && window.scrollMaxY ) {
			pageWidth = window.innerWidth + window.scrollMaxX;
			pageHeight = window.innerHeight + window.scrollMaxY;
		}
		else if( document.body.scrollHeight > document.body.offsetHeight ) {
			pageWidth = document.body.scrollWidth;
			pageHeight = document.body.scrollHeight;
		}
		else { 
			pageWidth = document.body.offsetWidth + document.body.offsetLeft; 
			pageHeight = document.body.offsetHeight + document.body.offsetTop; 
		}
	
		document.getElementById( "hoverForm" ).style.display = "block";
		window.onscroll = locateHover;
	
		document.getElementById( "hoverBack" ).style.opacity = 0.75;
		document.getElementById( "hoverBack" ).style.filter = 'alpha(opacity=75)';
		document.getElementById( "hoverBack" ).style.display = "block";
		document.getElementById( "hoverBack" ).style.height = pageHeight+"px";
	}
}

function closeHover() {
	createCookie( DBTY_COOKIE, "true", 1 );
	document.getElementById( "hoverBack" ).style.display = "none";
	document.getElementById( "hoverForm" ).style.display = "none";
}

function readCookie( name ) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i=0; i < ca.length; i++ ) {
		var c = ca[i];
		while ( c.charAt( 0 )==' ' ) c = c.substring( 1, c.length );
		if ( c.indexOf( nameEQ ) == 0 ) return c.substring( nameEQ.length, c.length );
	}
	return null;
}

function createCookie( name, value, days ) {
	if ( days ) {
		var date = new Date();
		date.setTime( date.getTime() + ( days * 24 * 60 * 60 *1000 ) );
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function validateForm( theForm ) {
	// Validate that the form exists
	if ( theForm == null ) { 
		alert( "null form passed." ); 
		return ( false ); 
	}

	// Validate the user's name is not blank
	if ( theForm.name.value == "" || theForm.name == null ) {
		alert( "The Name field is required. Please tell us your name." );
		theForm.name.focus();
		return ( false );
	}

	// Validate the email address
	if ( theForm.from.value == "" || theForm.from == null ) {
		alert( "Invalid email address. Please re-enter." );
		return ( false );
	}
	else {
		var email = theForm.from.value;
		if ( ( email.indexOf( "@" ) == -1 ) || ( email.indexOf( "." ) == -1) ) {
			alert( "Please enter a valid email address in the format user@emailprovider.com" );
			theForm.from.value = "";
			theForm.from.focus();
			return ( false );
		}
		else {
			return( true );
			closeHover();
		}
	}
}
