// Javascript Rules

var loginrules = {
	'div#loadSounds' : function(element) {
		var fo = new SWFObject("swf/alertSounds.swf", "alertSounds", "1", "1", "8", "#010101");
		fo.addParam("scale","noscale");
		fo.write("loadSounds");
	},
	'div.messenger-login-error' : function(element) {
		showMsg('Invalid Login, Please Try Again.',2,true,true);
	},
	'div.messenger-inbox-alert' : function(element) {
		var msg = '';
		var messages = readCookie('new_messages');
		if (messages == 1)
		{
			msg = 'You have 1 new message in your inbox.'
		}
		else if (messages > 1)
		{
			msg = 'You have '+messages+' new messages in your inbox.'
		}
		msg += ' <a href="messages/inbox/">inbox</a> :';
		showMsg(msg,3,true,true);
		//msg = $('msg-copy').innerHTML;
		//cap = $('msg-copy').title;
		//new LITBox(msg,{type:'alert',caption:cap,overlay:true,width:450,height:350});
		window.setTimeout("alertSound()", 1000);
	},
	'div.messenger-announcement' : function(el) {
		showNotice();
		window.setTimeout("alertSound()", 1000);
	},
	'div#inbox-view' : function(element) {
		element.anim = new fx.Height(element, {duration: 400});
		element.anim.hide();
	},
	'a.subject' : function(element) {
		element.onclick = function() {
			var p = $(element.parentNode.parentNode);
			var pid = p.id;
			var pclass = p.className;
			var indicator = $('indicator'+pid);
			var messageArea = $('inbox-view');
			indicator.className = 'working';
			if (pclass == 'clearfix unread')
			{
				p.className = 'clearfix';
				var theValue = $('unreadMsg').value;
				if (theValue > 0)
				{
					var updateCount = theValue - 1;
					$('unreadMsg').value = updateCount;
					if (updateCount > 0)
					{
						$('inbox-count').innerHTML = '('+updateCount+')';
					}
					else
					{
						$('inbox-count').innerHTML = '';
					}
				} 
			}
			// AJAX Call
			var userID = $('userID').value;
			var pars = 'action=populateMessage&ID='+pid+'&User_ID='+userID+'&type=inbox';
			new Ajax.Updater('inbox-message', 'inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function() { 
							 		$('currentMsg').value = pid;
									$('reply-link').href = 'messages/reply/'+pid+'/';
									$('forward-link').href = 'messages/forward/'+pid+'/';
									$('delete-link').href = 'messages/delete/'+pid+'/';
									if (messageArea.offsetHeight == 0) messageArea.anim.toggle();
									indicator.className = 'delete';
								}
							 });
			return false;
		}
	},
	'a.subject-sent' : function(element) {
		element.onclick = function() {
			var p = $(element.parentNode.parentNode);
			var pid = p.id;
			var indicator = $('indicator'+pid);
			var orgIndicator = indicator.className;
			var messageArea = $('inbox-view');
			indicator.className = 'working';
			// AJAX Call
			var userID = $('userID').value;
			var pars = 'action=populateMessage&ID='+pid+'&User_ID='+userID+'&type=sent';
			new Ajax.Updater('inbox-message', 'inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function() { 
							 		$('currentMsg').value = pid;
									if (messageArea.offsetHeight == 0) messageArea.anim.toggle();
									indicator.className = orgIndicator;
								}
							 });
			return false;
		}
	},
	'a.subject-trash' : function(element) {
		element.onclick = function() {
			var p = $(element.parentNode.parentNode);
			var pid = p.id;
			var indicator = $('indicator'+pid);
			var orgIndicator = indicator.className;
			var messageArea = $('inbox-view');
			indicator.className = 'working';
			// AJAX Call
			var userID = $('userID').value;
			var pars = 'action=populateMessage&ID='+pid+'&User_ID='+userID+'&type=trash';
			new Ajax.Updater('inbox-message', 'inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function() { 
							 		$('currentMsg').value = pid;
									if (messageArea.offsetHeight == 0) messageArea.anim.toggle();
									indicator.className = orgIndicator;
								}
							 });
			return false;
		}
	},
	'p#inbox-view-close' : function(element) {
		element.onclick = function() {
			var messageArea = $('inbox-view');
			if (messageArea.offsetHeight > 0)
			{
				messageArea.anim.toggle();
			}
		}
	},
	'a#delete-link' : function(element) {
		element.onclick = function() {		
			var pid = $('currentMsg').value;
			var el = $(pid);
			var p = $(el.parentNode);
			var indicator = $('indicator'+pid);
			var orgIndicator = indicator.className;
			var messageArea = $('inbox-view');
			var userID = $('userID').value;
			var pars = 'action=changeMessageStatus&ID='+pid+'&User_ID='+userID+'&status=0';
			var progressBar = $('email-bar-grey').style.width;
			indicator.className = 'working';
			new Ajax.Request('inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function(originalRequest) { 
									if (originalRequest.responseText)
									{
										if ( $('currentMsg').value == pid && messageArea.offsetHeight > 0 )
										{
											messageArea.anim.toggle();
										}
										p.removeChild(el);
										newProgress = progressBar.replace(/%/,'');
										$('email-bar-grey').style.width = (parseFloat(progressBar) + 1)+'%';
									}
									else
									{
										indicator.className = orgIndicator;
										showMsg('Unable to process request',2,true,true);
										window.setTimeout("alertSound()", 1000);
									}
								},
								onFailure:function() {
									indicator.className = orgIndicator;
									showMsg('Unable to process request',2,true,true);
									window.setTimeout("alertSound()", 1000);
								}
							 });
			return false;
		}
	},
	'span.delete' : function(element) {
		element.onclick = function() {
			var p = $(element.parentNode);
			var pid = p.id;
			var indicator = $('indicator'+pid);
			var orgIndicator = indicator.className;
			var messageArea = $('inbox-view');
			var userID = $('userID').value;
			var pars = 'action=changeMessageStatus&ID='+pid+'&User_ID='+userID+'&status=0';
			var progressBar = $('email-bar-grey').style.width;
			indicator.className = 'working';
			new Ajax.Request('inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function(originalRequest) { 
									if (originalRequest.responseText)
									{
										if ( $('currentMsg').value == pid && messageArea.offsetHeight > 0 )
										{
											messageArea.anim.toggle();
										}
										p.parentNode.removeChild(p);
										newProgress = progressBar.replace(/%/,'');
										$('email-bar-grey').style.width = (parseFloat(progressBar) + 1)+'%';
									}
									else
									{
										indicator.className = orgIndicator;
										showMsg('Unable to process request',2,true,true);
										window.setTimeout("alertSound()", 1000);
									}
								},
								onFailure:function() {
									indicator.className = orgIndicator;
									showMsg('Unable to process request',2,true,true);
									window.setTimeout("alertSound()", 1000);
								}
							 });
			return false;
		}
	},
	'span.save' : function(element) {
		element.onclick = function() {
			var p = $(element.parentNode);
			var pid = p.id;
			var indicator = $('indicator'+pid);
			var orgIndicator = indicator.className;
			var messageArea = $('inbox-view');
			var userID = $('userID').value;
			var pars = 'action=changeMessageStatus&ID='+pid+'&User_ID='+userID+'&status=1';
			indicator.className = 'working';
			new Ajax.Request('inc/Ajax/MessageCtr.ajax.php', 
							 {
							 	method:'post', 
							 	parameters: pars,
							 	onComplete:function(originalRequest) { 
									if (originalRequest.responseText)
									{
										if ( $('currentMsg').value == pid && messageArea.offsetHeight > 0 )
										{
											messageArea.anim.toggle();
										}
										p.parentNode.removeChild(p);
									}
									else
									{
										indicator.className = orgIndicator;
										showMsg('Inbox Full',2,true,true);
										window.setTimeout("alertSound()", 1000);
									}
								},
								onFailure:function() {
									indicator.className = orgIndicator;
									showMsg('Unable to process request',2,true,true);
									window.setTimeout("alertSound()", 1000);
								}
							 });
			return false;
		}
	},
	'.help' : function(element) {
		element.onclick = function() {
			new LITBox('help.php?id='+element.id, {type:'window', overlay:false, height:350, width:400, resizable:true});
		}
	},
	'input#msgTo' : function(element) {
		new Ajax.Autocompleter("msgTo", "autocomplete_to", "inc/Ajax/MessageCtr.ajax.php", {paramName: "userLookup"});
	}
};
	
Behaviour.register(loginrules);