/**
 * $Id: titleistblog.js 2007-04-12 
 *
 * form validation methods
 *
 * @author D. Leary
*/

function validateENewsForm(enews){
	 msg = "The following fields are \nmissing or incorrect\n";
	 error = "";
	 var emailFilter = new RegExp(/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\.\/0-9=?A-Z^_`a-z{|}~]+$/);
   //var emailFilter = /^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$/;
    if (!emailFilter.test(enews.enews_email.value)) { 
       error += "  -> Email \n";
    }
    if(enews.fname.value == "") error += "  -> First\n";
    if(enews.lname.value == "") error += "  -> Last\n";    
    if(enews.handicap[enews.handicap.selectedIndex].value == "0") error += "  -> Handicap\n";    
    if(error != ""){
			 return false;
		}else{
		  return true;
		}
}	 

function xmlhttpPost() {
	  if(validateENewsForm(document.forms['enewsform'])){
	     strURL ="/wp-content/themes/pinnacle/FI_quickregistrationposter.php";
       var xmlHttpReq = false;
       var self = this;
       // Mozilla/Safari
       if (window.XMLHttpRequest) {
           self.xmlHttpReq = new XMLHttpRequest();
       }
       // IE
       else if (window.ActiveXObject) {
           self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
       }
       self.xmlHttpReq.open('POST', strURL, true);
       self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
       self.xmlHttpReq.onreadystatechange = function() {
           if (self.xmlHttpReq.readyState == 4) {
               updatepage(self.xmlHttpReq.responseText);
           }
       }
       self.xmlHttpReq.send(getquerystring());
    }
    return false;   
}

function getquerystring() {
	// "&lname=".$_POST['lname']."&handicap=".$_POST['handicap']."&createdby=PG-US.PinnacleBlog&divkey=PG-US";
    var form     = document.forms['enewsform'];
    var fname = form.fname.value;
    var lname = form.lname.value;
    var handicap = form.handicap.value;
    var ball_brand = form.ball_brand.value;
    var email = form.enews_email.value;
    qstr = 'enews_email=' + escape(email);  // NOTE: no '?' before querystring
    qstr += '&fname=' + escape(fname);
    qstr += '&lname=' + escape(lname);
    qstr += '&handicap=' + escape(handicap);
    qstr += '&createdby=' + 'PG-US.PinnacleBlog';
    qstr += '&divkey=' + 'PG-US';
    qstr += '&ball_brand=' +  escape(ball_brand);
    return qstr;
}

function updatepage(status){
	  document.getElementById('enewsresults').style.display = 'block';
	  document.getElementById('enews').style.display = 'none';
	  //document.getElementById('enewsresults').innerHTML = status;
//Need to look at this in the future to figure out what is the deal
//   if(status != 0){
      document.getElementById("enewsresults").innerHTML = "Thank you, your email has been added to our distribution list.";
//    }else{
//       document.getElementById("enewsresults").innerHTML = "We are unable to process your request at this time.";
//    }   
    
}

function hoverBox( e, node, show ) {
	if( typeof(node) == 'string' ){
		
		node = document.getElementById( node );
		
	}	
	if( !node )
		return true;

	if( show ) {
		if ( typeof(node.hideMe) == "number" ) {
			window.clearTimeout( node.hideMe );
			node.hideMe = undefined;
		} else {
			var doPos = true;
			if( e.target )
				doPos = !contains( node, e.target);
			else if( e.srcElement )
				doPos = !contains( node, e.srcElement );
		
			if( doPos ) {
				var parentPos = position( node.offsetParent );
				var mousePos = mousePosition( e );
				var pos = diff( mousePos, parentPos );
				var size = [ node.offsetWidth, node.offsetHeight ];
				pos = diff( pos, clipAmount( mousePos, size ) );
				node.style.left = (pos[0])+"px";
				node.style.top = (pos[1])+"px";
				
			}
			
			// Safari needs this to be before the positioning code,
			// but Firefox 1.5 needs it to be after.
			// Can move off screen, and support both, but for now,
			// Firefox 1.5 trumps Safari.
			node.style.visibility = "visible";	
		}
	} else {
		node.hideMe = window.setTimeout(
			function() {
				node.hideMe = undefined;
				node.style.visibility = "hidden";
			}
			, 200 );
	}
	if( e.stopPropagation )
		e.stopPropagation();
		
	return false;
}
function contains( parent, child ) {
	if( !parent || !child )
		return false;
	if( parent == child )
		return true;
	while( child = child.parentNode ) {
		if( parent == child )
			return true;
	}
	return false;
}

function position( node ) {
	if( !node )
		return [ 0, 0 ];
	return position_recurse( node, [ node.offsetLeft, node.offsetTop ] );
}

function mousePosition( e ) {
	if( !e )
		return [0, 0];
	if( e.pageX != undefined )
		return [e.pageX, e.pageY];
	if( document.documentElement && document.documentElement.scrollLeft != undefined )
		return [e.clientX + document.documentElement.scrollLeft, e.clientY + document.documentElement.scrollTop ];
	if( document.body && document.body.scrollLeft != undefined )
		return [e.clientX + document.body.scrollLeft, e.clientY + document.body.scrollTop ];
	return [0, 0];
}
function diff( a1, a2 ) {
	return [ a1[0] - a2[0], a1[1] - a2[1] ];
}
function clipAmount( pos, size ) {
	var currentPos = diff( add( pos, size ), getScroll() );
	var result = [ 0, 0 ];
	var viewport = getViewport();
	if( !viewport )
		return result;
	if( currentPos[0] > viewport[0]  ) {
		result[0] = currentPos[0] - viewport[0];
	}
	if( currentPos[1] > viewport[1] ) {
		result[1] = currentPos[1] - viewport[1];
	}
	return result;		
}
function add( a1, a2 ) {
	return [ a1[0] + a2[0], a1[1] + a2[1] ];
}
function getScroll() {
	if( window.scrollX != undefined )
		return [ window.scrollX, window.scrollY ];
	if( document.documentElement && document.documentElement.scrollLeft != undefined )
		return [ document.documentElement.scrollLeft, document.documentElement.scrollTop ];
	return [ 0, 0 ];
}
function getViewport() {
	if( document.documentElement && document.documentElement.clientWidth != undefined )
		return [ document.documentElement.clientWidth, document.documentElement.clientHeight ];
	if( window.innerWidth != undefined )
		return [ window.innerWidth, window.innerHeight ];
	return undefined;
}
function position_recurse( node, pos ) {
	while( node = node.offsetParent ) {
		pos[0] += node.offsetLeft;
		pos[1] += node.offsetTop;
	}
	return pos;
}