// JavaScript Document
//////////////////////////////////////////////////////////////////////////
/////////////////| AGS CODE FOR AJAX NEWS EMAIL FORM |////////////////////
//////////////////////////////////////////////////////////////////////////

function validEmail(src) {
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
 	return src.match(regex);
  }
//#################################################
// ajax newsub to webservices
//#################################################
var msg_success = 'Thank you';
var msg_fail = 'Connection failure';
//msg_emailfail and msg_label are tied to values in the html, they must be changed together
var msg_emailfail = "Address is invalid.";
var msg_label = 'Sign up for email updates:';

var myGlobalHandlers = {
	onCreate: function(){
		//$('aj_prcsimg').src = 'template/imgs/sys/aj_loading.gif';
		Form.disable('aj_nwsform');		
	},
	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			//$('aj_prcsimg').src = 'template/imgs/sys/gb.gif';
			Form.enable('aj_nwsform');
		}
	}
};
function subeml(){
	//check email
	var poststr = escape($F('aj_email'));
	if (validEmail(poststr)){
		poststr = 'email='+poststr+'&form_action=subscribe';
		var url = $('aj_nwsform').action;
		//var url = 'http://www.antigravitystudios.com'+d+'/newslttr.php';
		//$('aj_nwsmsgtest').update(url);
		var myAjax = new Ajax.Request(
			url, 
			{
				method: 'post', 
				parameters: poststr, 
				onSuccess: nws_success,
				onFailure: nws_fail
			});
	}else{
		//alert('('+url+')('+poststr+')');
		var id = "aj_nwsmsg";
		$(id).update(msg_emailfail).className = 'nws_mfail';
		//if( !($(id).hasClassName('nws_mfail')) ){
			//$(id).className('nws_mfail');
		//}
	}
}

function nws_success(originalRequest){
	var nwsmsg = $('aj_nwsmsg');
    //if (originalRequest.responseText.match('true')){
	if (originalRequest.responseText.match('Success')){;
      nwsmsg.update(msg_success).className = 'nws_msuccess';//.setStyle({ background: '#dfd' });
	  //nwsmsg.className('nws_msuccess');
	  $('aj_email').value = msg_label;
	}else if (originalRequest.responseText.match('Error')){;
		nwsmsg.update(msg_fail).className = 'nws_mfail';
	}else{
      nwsmsg.update(originalRequest.responseText).className = 'nws_mfail';//.setStyle({ background: '#fdd' });
	  //nwsmsg.className('nws_mfail');
	}
	//nwsmsg.update('<br>'+originalRequest.responseText).setStyle({ background: '#dfd' });
	
}
function nws_fail(transport){
	var id = "aj_nwsmsg";
	$(id).update(transport.responseText).className = 'nws_mfail';
	//if( !($(id).hasClassName('nws_mfail'))){
			//$(id).className = 'nws_mfail';
		//}
}
function subeml_key(e) {
	subeml();
	Event.stop(e); //stop submit on enter when js is enabled
}
function eml_label(e) {
	var email = Event.element(e);
	emailval = email.value;
	if( emailval == msg_label || emailval == msg_success || emailval == msg_fail){
		email.value = '';
		$('aj_nwsmsg').update('&nbsp;').className = '';//.setStyle({ background: 'none' });;
	}
}
function eml_label_off(e) {
	var email = Event.element(e);
	if(email.value == '' || emailval == msg_success || emailval == msg_fail){
		email.value = msg_label;
	}
}
function aj_nwsformobservers(){
	var id = "aj_email";
	if ($('aj_nwsform')){
		Event.observe('aj_nwsform', 'submit', subeml_key);
		Event.observe(id, 'click', eml_label);
		Event.observe(id, 'blur', eml_label_off);
		Event.observe(id, 'focus', eml_label);
	}
}
Event.observe(window, 'load', function () {
	Ajax.Responders.register(myGlobalHandlers);
	aj_nwsformobservers();
})
