/**
 * $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 != ""){

       alert(msg + error);

			 return false;

		}else{

		  return true;

		}

}	 



function xmlhttpPost() {

	  if(validateENewsForm(document.forms['enewsform'])){

	     strURL ="/wp-content/themes/tourblog_titleist_uk/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) {
//alert("ResposneTEXT: " + self.xmlHttpReq.responseText);
               updatepage(self.xmlHttpReq.responseText);

           }

       }

       self.xmlHttpReq.send(getquerystring());

    }

    return false;   

}



function getquerystring() {

	//$uri="http://test.titleist.com/services/blogregistration.asp?email=".$_POST['enews_email']."&fname=".$_POST['fname'].

	// "&lname=".$_POST['lname']."&handicap=".$_POST['handicap']."&createdby=TI-US.TitleistBlog&divkey=TI-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=' + 'TI-US.TitleistBlog';

    qstr += '&divkey=' + 'TI-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;
     
//This is not working needs to be looked at.
	  if(status == 1){

       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;

}
