// JavaScript Document
function createStatsRequestObject() {
	var ro;
    var browser = navigator.appName;

	if( navigator.userAgent.indexOf('Opera') != -1 ) {
        ro = new XMLHttpRequest();
	} else if(browser == "Microsoft Internet Explorer") {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
}

var nlConnect = createStatsRequestObject();
var ValERROR = false;
var oldsubHTML = '';
var oldunsubHTML = '';

function submitSub(f, action) {
   ValERROR = false;
   var str = '';
   
   if( action == 'subscribe' ) {
	   str = getFormValues(f,"validateSub");
   } else {
	   str = getFormValues(f,"validateUnSub");	   
   }

   sendSubscribe(str, action);
}

function sendSubscribe( data, action ) {

	if( !ValERROR ) {

		nlConnect.open( 'POST', '../../includes/ajax/submitSubscribe.php?action=' + action );
		nlConnect.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");	
		nlConnect.onreadystatechange = handleSubscribeRequest;
		nlConnect.send(data);
		
	} 
		
}

function handleSubscribeRequest() {
    if(nlConnect.readyState == 4){
        var response = nlConnect.responseText;
			
		if( response == 'exists' ) {
			oldsubHTML = document.getElementById('subscribeContent').innerHTML;	
			var email = document.getElementById('email');
			
			email.style.border = "solid 1px #ff0000";
			email.value = "This email address is already subscribed!";
		} else if( response == 'noresults' ) {
			oldunsubHTML = document.getElementById('unsubscribeContent').innerHTML;	

			var email = document.getElementById('unemail');
			
			email.style.border = "solid 1px #ff0000";
			email.value = "This email address was not found. Please try again.";

		} else {
			
			if( response == 'unsub' ) {
				oldunsubHTML = document.getElementById('unsubscribeContent').innerHTML;	
				
				document.getElementById('unsubscribeContent').innerHTML = 'Success!<br />You have been removed from the mailing list.';
				document.getElementById('UnSubscribe').style.visibility  = 'hidden';
				
			} else {
				oldsubHTML = document.getElementById('subscribeContent').innerHTML;	
				
				document.getElementById('subscribeContent').innerHTML = response;
				document.getElementById('Subscribe').style.visibility  = 'hidden';
				
			}
			
	
		}
    }
}

function showSubscribe(action) {
	var subbox = document.getElementById('SubscribeBox');
	
	if( action == 'show' ) {
		document.getElementById('Subscribe').style.visibility  = 'visible';
		document.getElementById('UnSubscribe').style.visibility  = 'visible';
		subbox.style.visibility = 'visible';
		subbox.style.height = '187px';
		
		
	} else {
		if( oldsubHTML != '' ) {
			document.getElementById('subscribeContent').innerHTML = oldsubHTML;		
		}
		if( oldunsubHTML != '' ) {
			document.getElementById('unsubscribeContent').innerHTML = oldunsubHTML;		
		}
		subbox.style.visibility = 'hidden';		
		document.getElementById('Subscribe').style.visibility  = 'hidden';
		document.getElementById('UnSubscribe').style.visibility  = 'hidden';
		subbox.style.height = '0px';
		
	}
}


function getFormValues(fobj,valFunc) {
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";

   for(var i = 0;i < fobj.elements.length;i++) {

	   switch(fobj.elements[i].type) {
		   case "text": 
				if(valFunc) {
					//use single quotes for argument so that the value of
					//fobj.elements[i].value is treated as a string not a literal
					cmd = valFunc + "(" + 'fobj.elements[i]' + ")";
					val = eval(cmd)
				}

				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;
	   }
   }

   str = str.substr(0,(str.length - 1));
   return str;

}

function validateUnSub( formitem ) {

	if( formitem.name == 'unemail' ) {
		if ( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(formitem.value) == false ) {
			formitem.style.border = "solid red 1px";
			ValERROR = true;
		} else {
			formitem.style.border = "solid #d5d5d5 1px";		
		}
	} 
}


function validateSub( formitem ) {

	if( formitem.name == 'email'  ) {
		if ( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(formitem.value) == false ) {
			formitem.style.border = "solid red 1px";
			ValERROR = true;
		} else {
			formitem.style.border = "solid #d5d5d5 1px";		
		}
	} else if( formitem.name == 'firstname' || formitem.name == 'lastname' ) {
		if( formitem.value == '' ) {
			formitem.style.border = "solid red 1px";
			ValERROR = true;
		} else {
			formitem.style.border = "solid #d5d5d5 1px";		
		}
	}


}
