if (!sbweb.component.licenseValidation) sbweb.component.licenseValidation = function() {
	
	// GLOBAL CONSTANTS
	var ANIMATE_SPEED = 1000;
	var ANIMATE_QB_CLASS = ".qbLogo";
	var ANIMATE_PAYROLL_CLASS = "#headerLogo";
	
	return	{
		
		getReviewLocation : function () {
			var BV_ELEMENT_ID = "BVSubmissionURL";
			var BV_ATTRIBUTE = "href";
			
			return(document.getElementById(BV_ELEMENT_ID).getAttribute(BV_ATTRIBUTE));
		},
	
		reviewValidationQBSuccess : function () {
		
			// Remove thickbox	
			tb_remove();
			
			// Put this to sleep for a second to give the thickbox time to close and redirect to review page
			$(ANIMATE_QB_CLASS).animate({opacity: 1.0}, ANIMATE_SPEED, function() {
				var review_location = getReviewLocation();
				document.location = review_location;
			});
		},
	
		reviewValidationPayrollSuccess : function () {
			
			// Remove thickbox	
			tb_remove();
		
			// Put this to sleep for a second to give the thickbox time to close and redirect to review page
			$(ANIMATE_PAYROLL_CLASS).animate({opacity: 1.0}, ANIMATE_SPEED, function() {
				var review_location = getReviewLocation();
				document.location = review_location;
			});
		},
		
	
		// This function deal with the upgrader validation code
		upgraderValidationQBSuccess : function(pPriorityCode) {
			
			// Remove thickbox
			tb_remove();
			
			// Constants
			var RC_SEGMENT = "upgrader";
			var RC_SCORE = 100;
			var RC_DOMAIN = "quickbooks";
			var AJAX_TYPE = "post";
			var AJAX_URL = "/qb/common/utility_droplets/update_priority_code.jsp";
			
			// Update rc segment score
			sbweb.component.personalization.updateSegmentScore(RC_SEGMENT,RC_SCORE,RC_DOMAIN);
			
			// Generate the redirect URL
			var redirectColon = ":";
			var redirectProtocol = window.location.protocol;
			var redirectHost = window.location.hostname;
			var redirectPort = window.location.port;
			var redirectPathname = window.location.pathname;
			if (window.location.search == "") {
				var	redirectSearch = "?priorityCode=" + pPriorityCode;
			}
			else {
				var redirectSearch = window.location.search + "&priorityCode=" + pPriorityCode;
			}
			if (redirectPort == "") {
				redirectColon = "";
			}
			var redirectURL = redirectProtocol + "//" + redirectHost + redirectColon + redirectPort + redirectPathname + redirectSearch;
			
			// Put this to sleep for a second to give the thickbox time to close and reload with the appropriate priority code
			$(ANIMATE_QB_CLASS).animate({opacity: 1.0}, ANIMATE_SPEED, function() {
				window.location.href = redirectURL;
			});
		},
	
		// This function deal with the upgrader validation code
		upgraderValidationOnSuccess : function (productId) {
		
			sbweb.util.log.debug("In function upgraderValidationOnSuccess----------------------");
			// Remove thickbox
			sbweb.ui.jModalClose();
			// Constants
			var RC_SEGMENT = "upgrader";
			var RC_SCORE = 100;
			var RC_DOMAIN = "quickbooks";
			
			// Update rc segment score
			sbweb.component.personalization.updateSegmentScore(RC_SEGMENT,RC_SCORE,RC_DOMAIN);
			//alert(currentButton);
			if(currentButton == null){
				currentButton = "addToCart";
			}
			
			$("#" +currentButton+ "").click();
			//addToCart(document.addToCartForm.skuId.value,document.addToCartForm.prodId.value);
		}
	}
}();