// EG NEWSLETTER

// PERMISSIONS
var eg_newsletter_perm = 9; // from ucs

function _has_perm(perm_num,str_perm) {
    // Permission number '1' is 
    var arr_perms = str_perm.split('|');    
    for (var i=0;i<arr_perms.length;i++) {
        var arr_perm = arr_perms[i].split('^');
        if ((perm_num == arr_perm[0]) && (arr_perm[1] == 'C')) {        	
            return true;
        }
    }
    return false;
}

function hide_signup(perm_num) {
    var undef; //undefined -- used for comparison
    var div_signup = document.getElementById('eg-signup');
    if ((div_signup !== null) && (div_signup !== undef)){
        var perms = MagicCookie.getCookieValue('vanperms');
        if ((perms !== null) && (perms !== undef) && (perms !== '')) {
            if (_has_perm(eg_newsletter_perm, perms) === true) {
                div_signup.style.display = 'none';                
            }
        }
    }
}

// NEWSLETTER

function newsletter_onsuccess(request)
{
	msg_area = document.getElementById("eg-newsletter-message-area");
	try {
		if (request.responseText)
			eval("var results = " + request.responseText);
		else
			var results = {"status": -1, "message": "An error has occured.  Please try again"};
	} catch (e){
		var req = new Object();
		req.responseText = "error eval'ing response";
		newsletter_onerror(req);
		return;
	}
	
	write_newsletter_message(results.message);
	if (results.status > -1)
	{
		document.getElementById("eg-newsletter-email").value = "email address";
		document.getElementById("eg-newsletter-email").blur();
	}
}

function newsletter_onerror(request)
{
	write_newsletter_message("We were unable to process your request.  Please try again in a few minutes.");
}

function write_newsletter_message(message)
{
	msg_area = document.getElementById("eg-newsletter-message-area");
	msg_area.innerHTML = message;
	if (message == "")
		msg_area.style.display = "none";
	else
		msg_area.style.display = "block";	
}

function newsletter_signup()
{
	write_newsletter_message("");
	var email = document.getElementById("eg-newsletter-email");
	email.value = trim(email.value);		
	
	if (validate_newsletter_email(email.value))
	{	
		var query = "email=" + encodeURIComponent(email.value);
		var req = new Requester("/newsletter/signup.pd", "POST", true, true);
		req.onsuccess = newsletter_onsuccess;
		req.onerror = newsletter_onerror;	
		req.sendRequest(query);
	} else {
		write_newsletter_message("Please enter a valid email address.");
	}
}

function email_focus(field, on_focus)
{
	if (field.value == 'email address' && on_focus)
		field.value='';
	if (field.value == '' && !on_focus)
		field.value = 'email address';
}


function validate_newsletter_email(email)
{
	if (email == "" || email == null)
		return false;
	else
		try
		{
			validate_email(email)
			return true;
		} catch (e) {
			return false;
		}
}
