
var pendingAlert = function () {
	
	
		/* ------------------------------------------------------------ */
		/* Delete Alert */
		
		
		this.li = null;
		
		/* Success in deleting pending alert */
		this.deletePendingAlertSuccess = function (data, success) {
			if(this.pendingAlertObject.li !== null) {
				jQuery('#pendingAlertMessage').hide();
			
				this.pendingAlertObject.li.fadeOut('slow', function(e) {
					jQuery(this).remove()
				});
				
				var displayAlert = jQuery("#B_contentHeader .jsDisplayPendingAlert .jsPendingAlertPos");
				
				if (Number(displayAlert.html()) > 1) {
					displayAlert.html(displayAlert.html() - 1);
				} else {
					displayAlert.html("0");
				}
				
				var displayAlert2 = jQuery("#B_pendingAlertContent #pendingAlert .jsPendingAlertPos2");
				if (Number(displayAlert2.html()) > 1) {
					displayAlert2.html(displayAlert2.html() - 1);
					
					
				} else {
					displayAlert2.html("0");
					jQuery("#B_pendingAlertContent #pendingAlert #clearAllBtn").fadeOut('slow', function(e) {
						jQuery(this).remove();
					});
				}
				
				if(this.redirect && this.linkUrl != "#") {
					location.href = this.linkUrl;
				}
			}
		};
		
		this.clearPendingAlertSuccess = function (data, success) {
			if(this.pendingAlertObject.li !== null) {
				jQuery('#pendingAlertMessage').hide();
			
				jQuery('#pendingAlert ul').each(function(e) {
					jQuery(this).remove();
				});
				
				/*this.pendingAlertObject.li.fadeOut('slow', function(e) {
					jQuery(this).remove()
				});*/
				
				var displayAlert = jQuery("#B_contentHeader .jsDisplayPendingAlert .jsPendingAlertPos");
				displayAlert.html("0");
				
				var displayAlert2 = jQuery("#B_pendingAlertContent #pendingAlert .jsPendingAlertPos2");
				displayAlert2.html("0");
				
				jQuery("#B_pendingAlertContent #pendingAlert #clearAllBtn").fadeOut('slow', function(e) {
					jQuery(this).remove()
				});
			}
		};
		
		
		/* Fail to deleting pending alert */
		this.deletePendingAlertFail = function (e) {
			jQuery('#pendingAlertMessage p').html(jQuery('#pendingAlert #paErrorMessage').val());
		};
		
		/* Fail to deleting pending alert */
		this.maskingContentPendingAlert = function (e) {
			jQuery('#pendingAlertMessage p').html(jQuery('#pendingAlert #paWaitMessage').val());
			jQuery('#pendingAlertMessage').show();
		};
		
		/* Delete one pending alert */
		this.deletePendingAlert = function (e) {
			e.preventDefault();
			var pendingAlertObject = e.data.pendingAlertObject;
			
			/* get pending alert ID to delete */
			var PAid = jQuery(this).attr('rel');
			
			/* li to hide if delete is successful */
			pendingAlertObject.li = jQuery(this).parent();
			
			if(PAid !== '') {
				jQuery.ajax({
					error : pendingAlertObject.deletePendingAlertFail,
					beforeSend : pendingAlertObject.maskingContentPendingAlert,
					success : pendingAlertObject.deletePendingAlertSuccess,
					//dataType : "xml",
					processData : false,
					url : jQuery('#delPAUrl').val() + "&alertId=" + PAid,
					pendingAlertObject : pendingAlertObject,
					redirect : e.data.redirect,
					linkUrl : e.target
				});
				
				/*
				var params = {
					alertId : PAid
				};
				
				jQuery.get(params);
				*/
			} else {
				jQuery.ajax({
					error : pendingAlertObject.deletePendingAlertFail,
					beforeSend : pendingAlertObject.maskingContentPendingAlert,
					success : pendingAlertObject.clearPendingAlertSuccess,
					//dataType : "xml",
					processData : false,
					url : jQuery('#delPAUrl').val(),
					pendingAlertObject : pendingAlertObject
				});
			}			
		};
		
		
		
		/* ------------------------------------------------------------ */
		/* Roll Over */
		this.pendingAlertTimeoutID = -1;
		
		
		/* Display/hide Pending Alert Bloc */

		this.closePendingAlert = function () {
			jQuery("#pendingAlert").fadeOut(100);
			
			if(jQuery.browser.msie && jQuery.browser.version <= 6) {
				jQuery('select').css({visibility: "visible"})
			}
		};
		
		this.displayPendingAlertHandler = function (e) {
			var pendingAlertObject = e.data.pendingAlertObject;
			clearTimeout(pendingAlertObject.pendingAlertTimeoutID);
			
			var logInfoPosition = jQuery("#B_contentHeader .logInfo").position();
			var numPosition = jQuery("#B_contentHeader .jsDisplayPendingAlert .jsPendingAlertPos").position();
			var contentPaddingTop = parseInt(jQuery("#A_body").css("padding-top"), 0);
			
			jQuery("#pendingAlert").css({left: (logInfoPosition.left + numPosition.left + jQuery(".jsDisplayPendingAlert .jsPendingAlertPos").width() / 2 - 208)});
			jQuery("#pendingAlert").css({top: (logInfoPosition.top + numPosition.top + jQuery(".jsDisplayPendingAlert .jsPendingAlertPos").height() + 5 + contentPaddingTop)});
			jQuery("#pendingAlert").fadeIn(100);
			
			if(jQuery.browser.msie && jQuery.browser.version <= 6) {
				jQuery('select').css({visibility: "hidden"})
			}
		};
		
		this.hidePendingAlertHandler = function (e) {
			var pendingAlertObject = e.data.pendingAlertObject;
			pendingAlertObject.pendingAlertTimeoutID = setTimeout(pendingAlertObject.closePendingAlert, 500);
		};
		
		/* Initialisation of Pending Alert system */
		this.initPendingAlert = function () {
			
			// Activate pending style (mean javascript is active)
			jQuery("body").addClass("pendingAlert");
			
			/* Roll Over */
			jQuery(".jsDisplayPendingAlert").bind('mouseenter', {pendingAlertObject : this}, this.displayPendingAlertHandler);
			jQuery(".jsDisplayPendingAlert").bind('mouseleave', {pendingAlertObject : this}, this.hidePendingAlertHandler);

			jQuery("#pendingAlert").bind('mouseenter', {pendingAlertObject : this}, this.displayPendingAlertHandler);
			jQuery("#pendingAlert").bind('mouseleave', {pendingAlertObject : this}, this.hidePendingAlertHandler);

			jQuery("#pendingAlert").hide();
			jQuery("#pendingAlert").css({right: "auto"});
			
			/* Delete alert */
			jQuery('#pendingAlert .jsDelAlert').bind('click', {pendingAlertObject : this, redirect: false}, this.deletePendingAlert);
			/* See alert also delete alert */
			jQuery('#pendingAlert .seeAlert').bind('click', {pendingAlertObject : this, redirect: true}, this.deletePendingAlert);
			/*, function(e) {
				
				//e.data.pendingAlertObject;
				
				location.href = $(this).attr('href');
			});*/
		};
		
		
		this.initPendingAlert();
};

/* Document's initialisation */
jQuery(document).ready(function() {
	
	if (jQuery('#pendingAlert') != null) {
		new pendingAlert();
	}
});

