window.commonTabsHelper = 
{
	registerLightTabs : function(config, selectMode) 
	{
		for (var cnt = 0; cnt < config.length; ++cnt)
		{
			var openerSelector = "#" + config[cnt] + "Opener";
			if ($(openerSelector).hasClass("active"))
			{
				$("#" + config[cnt] + "Area").show();
			}
			$(openerSelector).click(function() {
				var targetTabId = $(this).attr('id').replace(/Opener$/,'');
				if (selectMode && selectMode == "activediv") {
					$(this).parents("div.tabSelector").addClass("active");
					for (var deactivCnt = 0; deactivCnt < config.length; ++deactivCnt) {
						if ($(this).attr('id') != (config[deactivCnt] + "Opener")) {
							$("#" + config[deactivCnt] + "Opener").parents("div.tabSelector").removeClass("active");
						}
					}
				} else {
					$(this).parent().find("a").removeClass("active");
					$(this).addClass("active");
				}
				for (var hideCnt = 0; hideCnt < config.length; ++hideCnt)
				{
					if (targetTabId != config[hideCnt])
					{
						$("#" + config[hideCnt]).hide();
						$("#" + config[hideCnt] + "Area").hide();
					}
				}
				$("#" + targetTabId).show();
				$("#" + targetTabId + "Area").show();
			});
			if (selectMode && selectMode == "activediv") {
				if (!($("#" + config[cnt] + "Opener").parents("div.tabSelector").hasClass("active"))) {
					$("#" + config[cnt]).hide();
				}
			} else {
				if (!($("#" + config[cnt] + "Opener").hasClass("active"))) {
					$("#" + config[cnt]).hide();
				}
			}
		}
	}
}

window.securityHelper = 
{
	// proxy that pops up login form when clicking on restricted links and proceed to original url after login
	processRestrictedLinks : function(rootElementSelector) {
		$((rootElementSelector ? (rootElementSelector + ' ') : "") + "a.restricted,.restrictedarea a").each(function() { 
			//save original click handler and reset unbind all onclick events
			var elemEvents = $.data($(this).get(0), "events");
			if (elemEvents)
			{
				var originalOnclick = elemEvents.click;
				$(this).unbind('click');
			}
			
			//save original href and replace it with dummy
			var originalElemHref = $(this).attr('href');
			$(this).attr('href', 'javascript:void(0);');			
		
			$(this).click(function() {
				// set custom return url (if it's not javascript call and not null)
				if (originalElemHref && originalElemHref != '' && originalElemHref.indexOf("javascript:") < 0) {
					window.loginForm.setReturnUrl(originalElemHref);
				} else if (originalElemHref.indexOf("javascript:") == 0) {
					window.loginForm.setReturnUrl("element:" + $(this).attr('id') + "," + $(this).attr('class'));
				}
				$("#loginFormHolder").dialog('open');
			});
		});
	},
	
	processFirstRegistrationStep : function(email, zip, saveDataUrl, registrationUrl, resetPwdUrl) {
		$.ajax({
			type: "POST", 
			async: false,
			data : { email : $(email).val(), zip : $(zip).val() },
			url: saveDataUrl,
			dataType : "text",
			success : function(data) {
				if (email && email != "") {
					$.ajax({
						type: "POST", 
						async: false,
						data : { 
							"provider" : "personsCountByEmailPrv",
							context : window.commonHelper.jsonSerialize($(email).val())
						},
						url: 'ProviderAjaxHandler.axd',
						dataType : "text",
						success : function(data, textStatus, xhr) {
							if (parseInt(data) == 0) {
								location.assign(registrationUrl);
							} else {
								location.assign(resetPwdUrl);
							}
						},
						error : function(XMLHttpRequest, textStatus, errorThrown) {
							window.commonResponseHandler.processAjaxCallError(XMLHttpRequest, textStatus, errorThrown);
						}
					});
				} else {
					location.assign(registrationUrl);
				}
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				window.commonResponseHandler.processAjaxCallError(XMLHttpRequest, textStatus, errorThrown);
			}
		});
	}
}

window.formatHelper = window.formatHelper || {};
window.formatHelper.formatMembershipPrice = function (allPrices, key, discountKey) {
	var price = allPrices[key];		
	if (price) {
		price = price.toLowerCase();
		if (price == "free") {
			return price;
		} else {
			if (price.indexOf(",")) {
				price = price.replace(',', '');
			}
			price = price.replace(' ', '');
			if (discountKey == "2") {
				price = Math.round(price * 0.9);
			} else if (discountKey == "3") {
				price = Math.round(price * 0.85);
			}
			price = price.toString();
			if (price.length > 3) {
				price = price.substring(0, price.length - 3) + "," + price.substring(price.length - 3);
			}
			return "$"+price+" per year";
		}
	}
};

window.cookiesHelper = window.cookiesHelper || {};
window.cookiesHelper.setCookie = function (name, value, days, path, domain, secure) {
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";

		var curCookie = name + "=" + escape(value) +
				expires +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				((secure) ? "; secure" : "");
		document.cookie = curCookie;
};

window.cookiesHelper.getCookie = function (name) {
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		if (begin == -1) {
				begin = dc.indexOf(prefix); 
				if (begin != 0) return null;
		} else
				begin += 2;
		var end = dc.indexOf(";", begin);
		if (end == -1)
		end = dc.length;
		return unescape(dc.substring(begin + prefix.length, end));
}



