/*
	Copyright (c) 2009, Goody.
	Contacts management functions
*/

var dlgWait = null;
var sysMsgs = [];

function isEmpty(str) {
    if (null==str || 0==str.length) {
        return true;
    }
    else {
        return false;
    }
}
function showStatusMessage(msg) {
	dojo.byId("statusBar").innerHTML = msg;
	dojo.style("statusBar", "display", "block");
	dojo.style("statusBar", "opacity", "1");
	var args = {
			node: "statusBar", 
			duration: 2000,
			onEnd: function(){
				dojo.byId("statusBar").innerHTML = "";
				dojo.style("statusBar", "display", "none");
			}
	};
	dojo.fadeOut(args).play();
}
function showWait() { 
    if (null==dlgWait) {
    	var cnt = "<img src=\"themes/classic/images/ajax-loader.gif\" alt=\"\" />";
	    dlgWait = new dijit.Dialog({ title: "", content: cnt }); 
	    dojo.body().appendChild(dlgWait.domNode); 
	    dlgWait.titleBar.style.display = 'none';
	    dlgWait.startup(); 
    }
    dlgWait.show();
}
function hideWait() {
	if (dlgWait!=null) {
		dlgWait.hide();
	}
}
function sendRequest(act, target, cb) {
	dojo.xhrGet({
        url: act,
        preventCache: true,
        handleAs: "text",
        load: function(data, args) {
			hideWait();
			if (target!=null) {
				var cnt = dijit.byId(target);
			    if (cnt!=null) {
			    	cnt.attr("content", data)
			    }
			    else {
			 	   cnt = dojo.byId(target);
			 	   if (cnt!=null) {
			 		   cnt.innerHTML = data;
			 	   }
			    }
			}
			if (cb!=null) {
				cb.call(this, data);
			}
        },
        error: function(error, args) {
        	hideWait();
        	showStatusMessage("Error: "+error.name);
        }
    });
}
function newsletterActionPerformed(res) {
	showStatusMessage(res);
	dijit.byId("email").attr("value", "");
}
function newsletterAction(act) {
	var email = dijit.byId("email").attr("value");
	var fmt = /.+@.+\.[a-z]+/;
	if (isEmpty(email)) {
		showStatusMessage(sysMsgs["missed_email"]);
	}
	else if (!fmt.test(email)) {
		showStatusMessage(sysMsgs["bad_email_format"]);
	}
	else {
		showWait();
		sendRequest(act+".htm?email="+email, null, newsletterActionPerformed);
	}
}
