var Df3 = (function () {
	var psvoURL, plans, 
		start, index, about, hospedagem, dominio, email, publicidade, opcionais, construtor, controlPanel, header, globalMenu, 
		consultaDominio, startConsultaDominio, blank, 
		openModal, closeModal, 
		lightBoxBuy, lightBoxDetails, 
		popup, getLomadeeCookie, lomadeeQS;
	
	psvoURL = 'https://vendasonline.terra.com.br/controller.php?action=5000&origin=portal_divulgafacil&packageList=';
	
	/*
	CONFIGURAÇÃO DOS PLANOS
	*/
	plans = {'platinum': {'value': 89.90, 'siteFacil': false, 
							'windowsClean': 'PCTR00053156', 'windowsSqlServer200': 'PCTR00053158', 'windowsSqlServer400': 'PCTR00053160', 
							'linuxClean': 'PCTR00054469'}, 
			'gold': {'value': 74.90, 'siteFacil': false, 
							'windowsClean': 'PCTR00053148', 'windowsSqlServer200': 'PCTR00053150', 'windowsSqlServer400': 'PCTR00053152', 
							'linuxClean': 'PCTR00054467'}, 
			'silver': {'value': 60.90, 'siteFacil': true, 
							'windowsClean': 'PCTR00053166', 'windowsSqlServer200': 'PCTR00053168', 'windowsSqlServer400': 'PCTR00053170', 
							'linuxClean': 'PCTR00054463', 'linuxSiteFacil': 'PCTR00054465'}, 
			'bronze': {'value': 46.90, 'siteFacil': true, 
							'windowsClean': 'PCTR00053127', 'windowsSqlServer200': 'PCTR00053129', 'windowsSqlServer400': 'PCTR00053131', 
							'linuxClean': 'PCTR00054459', 'linuxSiteFacil': 'PCTR00054461'}, 
			'basico': {'value': 32.90, 'siteFacil': true, 
							'windowsClean': 'PCTR00053140', 'windowsSqlServer200': 'PCTR00053142', 'windowsSqlServer400': 'PCTR00053144', 
							'linuxClean': 'PCTR00054293', 'linuxSiteFacil': 'PCTR00054295'}};
	/*
	END CONFIGURAÇÃO DOS PLANOS
	*/
	
	start = function () {
		lomadeeQS = '';
		var hrefAssine;
		blank();
		if ($('#start').size() > 0) { // INDEX
			header();
			globalMenu();
			index();
			controlPanel();
			lightBoxBuy();
			startConsultaDominio();
		}
		if ($('#about').size() > 0) { // O QUE E DIVULGA FACIL > SOBRE
			header();
			globalMenu();
			controlPanel();
			about();
		}
		if ($('#advantages').size() > 0) { // O QUE E DIVULGA FACIL > VANTAGENS
			header();
			globalMenu();
			controlPanel();
		}
		if ($('#hospedagem').size() > 0) { // DETALHES DO PRODUTO > HOSPEDAGEM
			header();
			globalMenu();
			controlPanel();
			hospedagem();
			lightBoxDetails();
			blank();
		}
		if ($('#dominio').size() > 0) { // DETALHES DO PRODUTO > DOMÍNIO
			header();
			globalMenu();
			controlPanel();
			dominio();
			lightBoxDetails();
			startConsultaDominio();
			blank();
		}
		if ($('#email').size() > 0) { // DETALHES DO PRODUTO > EMAIL
			header();
			globalMenu();
			controlPanel();
			email();
			lightBoxDetails();
			startConsultaDominio();
			blank();
		}
		if ($('#publicidade').size() > 0) { // DETALHES DO PRODUTO > PUBLICIDADE
			header();
			globalMenu();
			controlPanel();
			publicidade();
			lightBoxDetails();
			blank();
		}
		if ($('#plans-table').size() > 0) { // PLANOS > TABELA DE PLANOS
			header();
			globalMenu();
			controlPanel();
			lightBoxBuy();
			lightBoxDetails();
			blank();
		}
		if ($('#choose-optional').size() > 0) { // PLANOS > ESCOLHA DE OPCIONAIS
			header();
			globalMenu();
			controlPanel();
			opcionais();
		}
		if ($('#construtor-de-sites').size() > 0) { // CONSTRUTOR DE SITES
			header();
			globalMenu();
			controlPanel();
			construtor();
		}
		if ($('#assine').size() > 0) {
			$('#assine').click(function () {
				lomadeeQS = getLomadeeCookie();
				hrefAssine = $(this).attr('href');
				$(this).attr('href', hrefAssine + lomadeeQS);
			});
		}
	};
  
  
	header = function () {
		try {
			var width = 455, height = 700, left, top, params, newwin;
			$('#pop-callback').click(function () {
				left = (screen.width - width) / 2;
				top = (screen.height - height) / 2;
				params = 'width=' + width + ', height=' + height;
				params += ', top=' + top + ', left=' + left;
				params += ', directories=no';
				params += ', location=no';
				params += ', menubar=no';
				params += ', resizable=no';
				params += ', scrollbars=no';
				params += ', status=no';
				params += ', toolbar=no';
				newwin = window.open(this, 'titulo', params);
				if (window.focus) {
					newwin.focus();
				}
				return false;
			});
		} catch (e) {
			throw new Error('Erro no modulo Df3.header\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	globalMenu = function () {
		try {
			var menuObj, 
				selectItem; // FUNCTIONS

			menuObj = $('#mod-context-menu');
			
			menuObj.find('li.sub>a').click(function (e) {
				e.preventDefault();
			});
			menuObj.find('a').not('li.sub>a').click(function (e) {
				selectItem(this);
			});
			
			$('#mod-context-menu .nav li').mouseenter(function () {
				$(this).addClass('hover');
			}).mouseleave(function () {
				$(this).removeClass('hover');
			});
			
			selectItem = function (clickedObj) {
				if (clickedObj) {
					menuObj.find('ul.nav>li').removeClass('visited');
					$(clickedObj).parents('ul.nav>li').addClass('visited');
				} else {
					menuObj.find('a').each(function () {
						if (this.href === window.location.toString()) {
							$(this).parents('ul.nav>li').addClass('visited');
						}
					});
				}
			};
			
			selectItem();
		} catch (e) {
			throw new Error('Erro no modulo Df3.globalMenu\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	index = function () {
		try {
			$('#presentation-panel').easyAccordion();
		} catch (e) {
			throw new Error('Erro no modulo Df3.index\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	blank = function () {
		try{
			$('.guia a').attr('target', '_blank');
			$('.lnk-help a').attr('target', '_blank');
		}
		catch (e) {
			throw new Error('Erro no modulo Df3.blank\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	controlPanel = function () {
		try {
			var painelLogin, userName, formLogin, btnShowPanel, 
				show, hide; // FUNCTIONS
			
			painelLogin = $('#painel-login');
			userName = $('#username');
			
			formLogin = $('.form-login');
			btnShowPanel = $('#btn-show-painel-login');
			
			formLogin.attr('target', '_blank');
			
			btnShowPanel.click(function (e) {
				e.preventDefault();
				show();
			});
			
			formLogin.mouseleave(function (e) {
				if (e.target.nodeName !== "INPUT") {
					hide();
					$(this).find('input').blur();
				}
			});
			
			show = function () {
				painelLogin.addClass('show-form');
				userName.focus();
			};
			
			hide = function () {
				painelLogin.removeClass('show-form');
			};
		} catch (e) {
			throw new Error('Erro no modulo Df3.controlPanel\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	hospedagem = function () { // DETALHES DO PRODUTO > HOSPEDAGEM
		try {
			
		} catch (e) {
			throw new Error('Erro no modulo Df3.hospedagem\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	dominio = function () { // DETALHES DO PRODUTO > DOMÍNIO
		try {
			var modal, mask;
			
			modal = $('#modal');
			mask = $('#modal-mask');
			
			$('#extensions').click(function (e) {
				e.preventDefault();
				openModal(modal, mask);
			});
			$('.modal-window-close').click(function (e) {
				e.preventDefault();
				closeModal(modal, mask);
			});
			mask.click(function (e) {
				e.preventDefault();
				closeModal(modal, mask);
			});
		} catch (e) {
			throw new Error('Erro no modulo Df3.dominio\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	email = function () { // DETALHES DO PRODUTO > EMAIL
		try {
			
		} catch (e) {
			throw new Error('Erro no modulo Df3.email\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	publicidade = function () { // DETALHES DO PRODUTO > PUBLICIDADE
		try {
			
			/*JQUERY SELECTORS*/
			var guiaName, guiaAddress, guiaCity, guiaState, guiaZip, guiaPhone, portalName, portalDescription, portalAddress, 
			simulateGuiaName, simulateGuiaAddress, simulateGuiaCity, simulateGuiaPhone, simulatePortalName, simulatePortalDescription, 
			simulatePortalAddress, modalMask, 
			formSimulateGuia, formSimulatePortal, // FORMS
			modal1, modal2, // MODAL WINDOWS
			populateModalGuia, populateModalPortal; // FUNCTIONS
			/*END JQUERY SELECTORS*/
			
			/** MODAL **/
			modalMask = $("#modal-mask");
			$(".modal-window-close").click(function (e) {
				e.preventDefault();
				
				closeModal(modal1, modalMask);
				closeModal(modal2, modalMask);
			});
			modalMask.click(function () {
				closeModal(modal1, modalMask);
				closeModal(modal2, modalMask);
			});
			/** END MODAL **/
			
			modal1 = $('#modal-1');
			modal2 = $('#modal-2');
			
			formSimulateGuia = $('#form-simulate-guia');
			formSimulatePortal = $('#form-simulate-portal');
			
			guiaName = $('#guia-name');
			guiaAddress = $('#guia-address');
			guiaCity = $('#guia-city');
			guiaState = $('#guia-state');
			guiaZip = $('#guia-zip');
			guiaPhone = $('#guia-phone');
			portalName = $('#portal-name');
			portalDescription = $('#portal-description');
			portalAddress = $('#portal-address');
			simulateGuiaName = $('.simulate-guia.name');
			simulateGuiaAddress = $('.simulate-guia.address');
			simulateGuiaCity = $('.simulate-guia.city');
			simulateGuiaPhone = $('.simulate-guia.phone');
			simulatePortalName = $('.simulate-portal.name');
			simulatePortalDescription = $('.simulate-portal.description');
			simulatePortalAddress = $('.simulate-portal.address');
			
			$('input').focusin(function () {
				if ($(this).val() === this.defaultValue) {
					$(this).val('');
				}
			});
			$('input').focusout(function () {
				if ($(this).val() === '') {
					$(this).val(this.defaultValue);
				}
			});
			
			formSimulateGuia.submit(function (e) {
				e.preventDefault();
				populateModalGuia();
				openModal(modal1, modalMask);
			});
			
			formSimulatePortal.submit(function (e) {
				e.preventDefault();
				populateModalPortal();
				openModal(modal2, modalMask);
			});
			
			populateModalGuia = function () {
				var cityArray;
				
				if (guiaName.val() !== guiaName[0].defaultValue) {
					simulateGuiaName.html(guiaName.val());
				}
				
				if (guiaAddress.val() !== guiaAddress[0].defaultValue) {
					simulateGuiaAddress.html(guiaAddress.val());
				}
				
				cityArray = [];
				if (guiaCity.val() !== guiaCity[0].defaultValue) {
					cityArray.push(guiaCity.val());
				}
				if (guiaState.val() !== guiaState[0].defaultValue) {
					cityArray.push(guiaState.val());
				}
				if (guiaZip.val() !== guiaZip[0].defaultValue) {
					cityArray.push(guiaZip.val());
				}
				if (cityArray.length > 0) {
					simulateGuiaCity.html(cityArray.join(' - '));
				}
				
				if (guiaPhone.val() !== guiaPhone[0].defaultValue) {
					simulateGuiaPhone.html('Tel: ' + guiaPhone.val());
				}
			};
			populateModalPortal = function () {
				if (portalName.val() !== portalName[0].defaultValue) {
					simulatePortalName.html(portalName.val());
				}
				if (portalDescription.val() !== portalDescription[0].defaultValue) {
					simulatePortalDescription.html(portalDescription.val());
				}
				if (portalAddress.val() !== portalAddress[0].defaultValue) {
					simulatePortalAddress.html(portalAddress.val());
				}
			};
		} catch (e) {
			throw new Error('Erro no modulo Df3.publicidade\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	about = function () { // O QUE E DIVULGA FACIL > SOBRE
		try {
			var modalConditions, modalVideo, mask, // JQUERY SELECTORS
			constructor, injectPlayer, getFlashMovieObject; // FUNCTIONS
			
			modalConditions = $('#modal-conditions');
			modalVideo = $('#modal-video');
			mask = $('#modal-mask');
			
			getFlashMovieObject = function (movieName) {
				if (window.document[movieName]) {
					return window.document[movieName];
				}
				if (navigator.appName.indexOf("Microsoft Internet") === -1) {
					if (document.embeds && document.embeds[movieName]) {
						return document.embeds[movieName]; 
					}
				} else {
					return document.getElementById(movieName);
				}
			};
			
			injectPlayer = function () {
				$('#video-swf').html('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="flashMovie" width="455" height="255"><param name="movie" value="_swf/apresentacao.swf" /><embed play="false" swliveconnect="true" name="flashMovie" src="_swf/apresentacao.swf" quality="high" bgcolor="#FFFFFF" width="455" height="255" type="application/x-shockwave-flash" height="255" width="455" ></embed></object>');
			};
			
			$('#conditions').click(function (e) {
				e.preventDefault();
				openModal(modalConditions, mask);
			});
			$('#video').click(function (e) {
				e.preventDefault();
				openModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').Play();
			});
			$('.modal-window-close').click(function (e) {
				e.preventDefault();
				closeModal(modalConditions, mask);
				closeModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').StopPlay();
			});
			mask.click(function (e) {
				e.preventDefault();
				closeModal(modalConditions, mask);
				closeModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').StopPlay();
			});
			
			constructor = function () {
				injectPlayer();
			}();
		} catch (e) {
			throw new Error('Erro no modulo Df3.about\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	openModal = function (modal, mask) {
		var documentHeight, windowWidth, scrollTop, modalHeight, 
			centerPosition;
		
		documentHeight = $(document).height();
		windowWidth = $(window).width();
		mask.fadeIn(500);
		mask.fadeTo("slow", 0.8);
		
		scrollTop = $(window).scrollTop();
		centerPosition = scrollTop + (($(window).height() - modal.innerHeight()) / 2);
		if (centerPosition < scrollTop) {
			centerPosition = scrollTop + 100;
		}

		modal.css('top', centerPosition);
		modal.css('left', ($(window).width() - modal.innerWidth()) / 2);
		
		modalHeight = scrollTop + modal.height() + 200;
		if (modalHeight > documentHeight) {
			mask.css({"width": windowWidth, "height": modalHeight});
		} else {
			mask.css({"width": windowWidth, "height": documentHeight});
		}
		
		modal.fadeIn(2000);
	};
	closeModal = function (modal, mask) {
		mask.hide();
		modal.hide();
	};
	lightBoxBuy = function () {
		try {
			var panelBuy, buyWindows, buyLinux, 
				newLeft, 
				getNewLeft, openLightBoxBuy, panelBuySelects, // FUNCTIONS
				plan, oldPlan, 
				btnBuy;
				
			lomadeeQS = '';
			
			panelBuySelects = function () {
				panelBuy = $('#panel-buy');
				buyWindows = $('#buy-windows');
				buyLinux = $('#buy-linux');
			};
			panelBuySelects();
			/*
			$('a.btn-buy_').click(function (event) {
				event.preventDefault();
				btnBuy = $(event.target);
				openLightBoxBuy(this);
			});
			
			$('.btn-buy').click(function (event) {
				event.preventDefault();
				btnBuy = $(event.target);
				openLightBoxBuy(this);
			});
			*/
      $('.buy').click(function (event) {        
				if($(event.target).hasClass('btn') || $(event.target).hasClass('btn-buy')) {
					$(this).addClass('selected');
				}
			});
			$('.buy').mouseleave(function (event) {
				$(this).removeClass('selected');
			});      
			openLightBoxBuy = function (obj, target) {
				plan = obj.toString();
				plan = plan.split('#')[1];
				
				if (panelBuy.size() > 0) {
					if (panelBuy.css('display') === 'block' && oldPlan === plan) { // remove o lightbox, caso o mesmo já exista.
						panelBuy.css('display', 'none');
						btnBuy.removeClass('show-buy');
						return;
					} else {
						panelBuy.css('display', 'block');
						btnBuy.addClass('show-buy');
					}
				} else { // cria o lightbox.
					$('<div id="panel-buy" class="panel-buy-container"><form class="clearfix"><div class="panel-buy-bg"><span class="panel-buy-text">Escolha a plataforma<br/>de hospedagem:</span><div><a href="#" id="buy-windows" class="panel-buy-windows"></a><a href="#" id="buy-linux" class="panel-buy-linux"></a></div><span class="top">&nbsp;</span><span class="bottom">&nbsp;</span></div></form></div>').appendTo("body");
					panelBuySelects();
					btnBuy.addClass('show-buy');
				}
				
				newLeft = getNewLeft(obj);
				panelBuy.css('left', newLeft);
				
				panelBuy.css('top', $(obj).offset().top + 'px');
				panelBuy.find('form').css('padding-top', ($(obj).innerHeight() + 15) + 'px');
				
				lomadeeQS = getLomadeeCookie();
				// buyWindows.attrs('href',psvoURL + plans[plan].windowsClean + lomadeeQS);
				
				// buyWindows.unbind('click'); // remove qualquer event handler anterior.
				// buyWindows.bind('click', function (e) {
					// //e.preventDefault();
					// //lomadeeQS = getLomadeeCookie();
					// //window.location = psvoURL + plans[plan].windowsClean + lomadeeQS;
				// });
				
				if (plans[plan].linuxSiteFacil !== undefined) {
					//window.location = psvoURL + plans[plan].linuxSiteFacil + lomadeeQS;
					linuxURL = psvoURL + plans[plan].linuxSiteFacil + lomadeeQS;
				} else {
					//window.location = psvoURL + plans[plan].linuxClean + lomadeeQS;
					linuxURL = psvoURL + plans[plan].linuxClean + lomadeeQS;
				}
				
				// buyLinux.attrs('href',psvoURL + plans[plan].windowsClean + lomadeeQS);
				
				// buyLinux.unbind('click'); // remove qualquer event handler anterior.
				// buyLinux.bind('click', function (e) {
					// /*
					// e.preventDefault();
					// if (plans[plan].linuxSiteFacil !== undefined) {
						// window.location = psvoURL + plans[plan].linuxSiteFacil + lomadeeQS;
					// } else {
						// window.location = psvoURL + plans[plan].linuxClean + lomadeeQS;
					// }
					// */
				// });
				
				panelBuy.unbind('mouseleave'); // remove qualquer event handler anterior.
				panelBuy.bind('mouseleave', function (event) {
					openLightBoxBuy(obj); // envia o próprio lightbox para remoção.
				});
				
				oldPlan = plan;
			};
			
			openLightBoxBuy_ = function (obj, target) {
				plan = obj.toString();
				plan = plan.split('#')[1];
				
				if (panelBuy.size() > 0) {
					if (panelBuy.css('display') === 'block' && oldPlan === plan) { // remove o lightbox, caso o mesmo já exista.
						panelBuy.css('display', 'none');
						btnBuy.removeClass('show-buy');
						return;
					} else {
						panelBuy.css('display', 'block');
						btnBuy.addClass('show-buy');
					}
				} else { // cria o lightbox.
					$('<div id="panel-buy" class="panel-buy-container"><form class="clearfix"><div class="panel-buy-bg"><span class="panel-buy-text">Escolha a plataforma<br/>de hospedagem:</span><div><a href="#" id="buy-windows" class="panel-buy-windows"></a><a href="#" id="buy-linux" class="panel-buy-linux"></a></div><span class="top">&nbsp;</span><span class="bottom">&nbsp;</span></div></form></div>').appendTo("body");
					panelBuySelects();
					btnBuy.addClass('show-buy');
				}
				
				newLeft = getNewLeft(obj);
				panelBuy.css('left', newLeft);
				
				panelBuy.css('top', $(obj).offset().top + 'px');
				panelBuy.find('form').css('padding-top', ($(obj).innerHeight() + 15) + 'px');
				
				buyWindows.unbind('click'); // remove qualquer event handler anterior.
				buyWindows.bind('click', function (e) {
					e.preventDefault();
					lomadeeQS = getLomadeeCookie();
					window.location = psvoURL + plans[plan].windowsClean + lomadeeQS;
				});
				buyLinux.unbind('click'); // remove qualquer event handler anterior.
				buyLinux.bind('click', function (e) {
					e.preventDefault();
					lomadeeQS = getLomadeeCookie();
					if (plans[plan].linuxSiteFacil !== undefined) {
						window.location = psvoURL + plans[plan].linuxSiteFacil + lomadeeQS;
					} else {
						window.location = psvoURL + plans[plan].linuxClean + lomadeeQS;
					}
				});
				
				panelBuy.unbind('mouseleave'); // remove qualquer event handler anterior.
				panelBuy.bind('mouseleave', function (event) {
					openLightBoxBuy(obj); // envia o próprio lightbox para remoção.
				});
				
				oldPlan = plan;
			};
			
			getNewLeft = function (obj) { // define a posição X do lightbox, centralizando com o botão que disparou o CLICK.
				var shadow = 5;
				return ($(obj).offset().left - (($('.panel-buy-bg').innerWidth() - shadow - $(obj).innerWidth())) / 2) + 'px';
			};
		} catch (e) {
			throw new Error('Erro no modulo Df3.lightBoxBuy\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	lightBoxDetails = function () {
		try {
			var askDetails, panelAsk, panelAskArrow, panelAskText, 
				panelAskSelects, openAskDetailsLightBox; // FUNCTIONS
			
			panelAskSelects = function () {
				panelAsk = $('#panel-ask');
				panelAskArrow = $('.panel-ask-container .arrow');
				panelAskText = $('.panel-ask-text');
			};
			panelAskSelects();
			
			askDetails = $('.ask-details');
			
			askDetails.mouseover(function () {
				openAskDetailsLightBox(this);
			});
			askDetails.mouseout(function () {
				openAskDetailsLightBox(this);
			});
			
			openAskDetailsLightBox = function (obj) {
				if (panelAsk.size() > 0) {
					if (panelAsk.css('display') === 'block') { // remove o lightbox, caso o mesmo já exista.
						panelAsk.css('display', 'none');
						return;
					} else {
						panelAskText.html($(obj).text()); // atualiza o texto.
						panelAsk.css('display', 'block');
					}
				} else { // cria o lightbox.
					$('<div id="panel-ask" class="panel-ask-container"><div class="panel-ask-bg"><p class="panel-ask-text">' + $(obj).text() + '</p><span class="arrow">&nbsp;</span><span class="top">&nbsp;</span><span class="bottom">&nbsp;</span></div></div>').appendTo("body");
					
					panelAskSelects();
				}
				
				panelAskArrow.css('top', (panelAskText.height() / 2) + 8); // centraliza a seta no componente.
				
				panelAsk.css('left', $(obj).offset().left + 35);
				panelAsk.css('top', ($(obj).offset().top - (panelAskText.height() / 2)) - 6);
			};
		} catch (e) {
			throw new Error('Erro no modulo Df3.lightBoxDetails\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	opcionais = function () {
		try {
			var icoPlan, plan = '', 
				getUrlVars, showTotal, // FUNCTIONS
				modal, mask, 
				optional, 
			
			/*
			JQUERY SELECTORS
			*/
			fieldsetHospedagem, 
			siteFacil, 
			sqlServer, 
			adLevel, 
			adMask, 
			categories, 
			exhibitions, 
			boxTotal, 
			totalReais, 
			totalCentavos, 
			/*
			END JQUERY SELECTORS
			*/
			
			/*
			SUB-TOTAIS PARA CÁLCULO DE 'TOTAL'
			*/
			total = 0, 
			priceSqlServer = 0, 
			priceAdLevel = 0, 
			priceCategories = 0, 
			priceExhibitions = 0;
			/*
			END SUB-TOTAIS PARA CÁLCULO DE 'TOTAL'
			*/
			
			/*
			CONFIGURAÇÃO DOS OPCIONAIS
			*/
			optional = {'sql-server-default': {'value': 0.00, 'label': '100mb'},
						'sql-server-200': {'value': 40.00, 'label': '200mb'},
						'sql-server-400': {'value': 60.00, 'label': '400mb'},
						'ad-level-default': {'value': 0.00, 'label': 'Padr\u00E3o'},
						'ad-level-1': {'value': 14.90, 'label': 'N\u00EDvel 1', 'packageCode': 'PCTR00049427'},
						'ad-level-2': {'value': 19.90, 'label': 'N\u00EDvel 2', 'packageCode': 'PCTR00049429'},
						'ad-level-3': {'value': 24.90, 'label': 'N\u00EDvel 3', 'packageCode': 'PCTR00049431'},
						'categories-default': {'value': 0.00, 'label': '-'},
						'categories-plus-2': {'value': 14.90, 'label': '2', 'packageCode': 'PCTR00050215'},
						'categories-plus-3': {'value': 19.90, 'label': '3', 'packageCode': 'PCTR00050217'},
						'categories-plus-4': {'value': 24.90, 'label': '4', 'packageCode': 'PCTR00050219'},
						'exhibitions-default': {'value': 0.00, 'label': '-'},
						'exhibitions-plus-50000': {'value': 39.90, 'label': '50.000', 'packageCode': 'PCTR00050285'},
						'exhibitions-plus-100000': {'value': 59.90, 'label': '100.000', 'packageCode': 'PCTR00050287'},
						'exhibitions-plus-200000': {'value': 79.90, 'label': '200.000', 'packageCode': 'PCTR00050289'},
						'exhibitions-plus-430000': {'value': 150.00, 'label': '430.000', 'packageCode': 'PCTR00050291'},
						'exhibitions-plus-900000': {'value': 315.00, 'label': '900.000', 'packageCode': 'PCTR00050293'},
						'exhibitions-plus-1500000': {'value': 450.00, 'label': '1500.000', 'packageCode': 'PCTR00050295'}};
			/*
			END CONFIGURAÇÃO DOS OPCIONAIS
			*/
			
			$.checkboxRadiobutton();
			$('input:radio').css('display', 'block'); // IE Fix
			$('input:radio').css('position', 'absolute'); // IE Fix
			
			fieldsetHospedagem = $('#fieldset-hospedagem');
			
			icoPlan = $('#ico-plan');
			
			siteFacil = $('#site-facil');
			sqlServer = $('#sql-server');
			adLevel = $('#ad-level');
			adMask = $('#ad-mask');
			categories = $('#categories');
			exhibitions = $('#exhibitions');
			boxTotal = $('#box-total');
			totalReais = $('#total-reais');
			totalCentavos = $('#total-centavos');
			
			modal = $('#lightbox-ctn');
			mask = $('#lightbox-mask');
      
      
			showTotal = function () {
				var subTotal, reais, centavos;
				
				subTotal = total + priceAdLevel + priceCategories + priceExhibitions;
				
				if (fieldsetHospedagem.hasClass("sql-server") === true) { // SOMA O PREÇO DO 'SQL SERVER' APENAS SE A '<LI>' ESTIVER VISÍVEL
					subTotal += priceSqlServer;
				}
				
				subTotal = subTotal.toFixed(2);
				subTotal = subTotal.toString();
				reais = subTotal.split('.')[0];
				centavos = subTotal.split('.')[1];
				totalReais.html(reais);
				totalCentavos.html(',' + centavos);
			};
			
			getUrlVars = function () {
				var i, vars = [], hashes, hash;
				hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
				for (i = 0; i < hashes.length; i++) {
					hash = hashes[i].split('=');
					vars.push(hash[0]);
					vars[hash[0]] = hash[1];
				}
				return vars;
			};
			
			plan = getUrlVars().plano; // SALVA PLANO
			
			if (plan === undefined || plans[plan] === undefined) { // MOSTRA MODAL WINDOW CASO PLANO INVÁLIDO OU INEXISTENTE
				openModal(modal, mask);
			}
			
			switch (plan) {
			case 'platinum':
				icoPlan.addClass('platinum');
				break;
			case 'gold':
				icoPlan.addClass('gold');
				break;
			case 'silver':
				icoPlan.addClass('silver');
				break;
			case 'bronze':
				icoPlan.addClass('bronze');
				break;
			case 'basico':
				icoPlan.addClass('basico');
				break;
			default :
				
				break;
			}
			
			if (plan !== undefined && plans[plan] !== undefined) {
				if (plans[plan].siteFacil === false) { // MOSTRA OPÇÕES DE HOSPEDAGEM CONFORME CONFIGURAÇÃO DEFAULT DO PLANO
					fieldsetHospedagem.addClass('none');
				} else {
					fieldsetHospedagem.addClass('site-facil');
				}
			}
			
			total = plan !== undefined && 
							plans[plan] !== undefined ? 
							plans[plan].value : 0; // SALVA PREÇO DEFAULT DO PLANO COMO VALOR INICIAL DO CÁLCULO
			showTotal(); // MOSTRA PREÇO DEFAULT DO PLANO
			
			
			// MOSTRA VALORES DEFAULT DOS OPCIONAIS
			sqlServer.html(optional[$('#radio-default-sql').val()].label);
			adLevel.html(optional[$('#radio-default-ad-level').val()].label);
			categories.html(optional[$('#radio-default-categories').val()].label);
			exhibitions.html(optional[$('#radio-default-exhibitions').val()].label);
			// END MOSTRA VALORES DEFAULT DOS OPCIONAIS
			
			$('input:radio').click(function (evt) {
				if ($(this).attr('name') === 'radio-platform') {
					fieldsetHospedagem.removeClass('none');
					fieldsetHospedagem.removeClass('site-facil');
					fieldsetHospedagem.removeClass('sql-server');
					if (this.value === 'platform-windows') {
						fieldsetHospedagem.addClass('sql-server');
					} else if (this.value === 'platform-linux') {
						if (plan !== undefined && plans[plan] !== undefined && 
							plans[plan].siteFacil === true) { // MOSTRA '<LI>' Site Fácil CONFORME CONFIGURAÇÃO DEFAULT DO PLANO
							fieldsetHospedagem.addClass('site-facil');
						} else {
							fieldsetHospedagem.addClass('none');
						}
					}
				}
				
				if (this.value === 'site-facil-yes') {
					siteFacil.addClass('check');
					siteFacil.removeClass('cross');
					siteFacil.html('Com Site F\u00E1cil');
				} else if (this.value === 'site-facil-no') {
					siteFacil.removeClass('check');
					siteFacil.addClass('cross');
					siteFacil.html('Sem Site F\u00E1cil');
				}
				
				if ($(this).attr('name') === 'radio-sql-server') {
					sqlServer.html(optional[this.value].label);
					
					priceSqlServer = optional[this.value].value; // SOMA AO SUB-TOTAL
				}
				
				if ($(this).attr('name') === 'radio-ad-level') {
					adLevel.html(optional[this.value].label);
					adMask.removeClass('ad-level-1');
					adMask.removeClass('ad-level-2');
					adMask.removeClass('ad-level-3');
					switch (this.value) {
					case 'ad-level-1':
						adMask.addClass('ad-level-1');
						break;
					case 'ad-level-2':
						adMask.addClass('ad-level-2');
						break;
					case 'ad-level-3':
						adMask.addClass('ad-level-3');
						break;
					}
					
					priceAdLevel = optional[this.value].value; // SOMA AO SUB-TOTAL
				}
				
				if ($(this).attr('name') === 'radio-categories') {
					categories.html(optional[this.value].label);
					
					priceCategories = optional[this.value].value; // SOMA AO SUB-TOTAL
				}
				
				if ($(this).attr('name') === 'radio-exhibitions') {
					exhibitions.html(optional[this.value].label);
					
					priceExhibitions = optional[this.value].value; // SOMA AO SUB-TOTAL
				}
				
				showTotal(); // CALCULA E MOSTRA TOTAL
			});
			
			$(window).scroll(function () {
				if ($(this).scrollTop() < 450) {
					boxTotal.css('top', "155px");
				} else {
					boxTotal.css('top', $(this).scrollTop() - 290 + "px");
				}
			});
			
			$('form').submit(function (e) {
				var formArgs = [], psvoArgs = [];

				e.preventDefault();
				
				/*
				HOSPEDAGEM
				*/
				formArgs = $(this).serialize().split('&');
				if (formArgs[0].split('=')[1] === 'platform-windows') {
					if (fieldsetHospedagem.hasClass("sql-server") === false || formArgs[2].split('=')[1] === 'sql-server-default') {
						psvoArgs.push(plans[plan].windowsClean);
					} else if (formArgs[2].split('=')[1] === 'sql-server-200') {
						psvoArgs.push(plans[plan].windowsSqlServer200);
					} else if (formArgs[2].split('=')[1] === 'sql-server-400') {
						psvoArgs.push(plans[plan].windowsSqlServer400);
					}
				} else if (formArgs[0].split('=')[1] === 'platform-linux') {
					if (fieldsetHospedagem.hasClass("site-facil") === false || formArgs[1].split('=')[1] === 'site-facil-no') {
						psvoArgs.push(plans[plan].linuxClean);
					} else if (formArgs[1].split('=')[1] === 'site-facil-yes') {
						psvoArgs.push(plans[plan].linuxSiteFacil);
					}
				} else {
					return; // CAMPO 'radio-platform' É OBRIGATÓRIO.
				}
				/*
				END HOSPEDAGEM
				*/
				
				if (optional[formArgs[3].split('=')[1]].packageCode !== undefined) {
					psvoArgs.push(optional[formArgs[3].split('=')[1]].packageCode); // AD LEVEL.
				}
				
				if (optional[formArgs[4].split('=')[1]].packageCode !== undefined) {
					psvoArgs.push(optional[formArgs[4].split('=')[1]].packageCode); // CATEGORIES.
				}
				
				if (optional[formArgs[5].split('=')[1]].packageCode !== undefined) {
					psvoArgs.push(optional[formArgs[5].split('=')[1]].packageCode); // EXHIBITIONS.
				}
				lomadeeQS = getLomadeeCookie();
        
        _gaq.push(['_trackEvent', 'Opçoes_planos', 'Assinar', psvoArgs.join(',')]);
        
				window.location = psvoURL + psvoArgs.join(',') + lomadeeQS;
			});
		} catch (e) {
			throw new Error('Erro no modulo Df3.opcionais\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	consultaDominio = (function () {
		try {
			var isIndex, loading, checkMais, comboBox, results, form, 
				doSearch, removeResults, errorNoExtension, errorNoDns, onResult, buyClickHandler, liCheck, liCross, // FUNCTIONS
				// doSearch
				inputDns, checkComBr, checkCom, checkNet, 
				checkOrg, errorMsg, hasError, extensionsArray, 
				extensionsString, script;
				// END doSearch
			
			startConsultaDominio = function () {
				$.checkboxRadiobutton();
				
				loading = $('#loading');
				checkMais = $('#check-mais');
				comboBox = $('#combobox');
				results = $('#results');
				form = $('#form');
				
				// doSearch
				inputDns = $('#input-dns');
				checkComBr = $('#check-com-br');
				checkCom = $('#check-com');
				checkNet = $('#check-net');
				checkOrg = $('#check-org');
				// END doSearch
        checks = $('.ctn-banner-domainsearch .chk-replace');
        checksLabel = $('.ctn-banner-domainsearch label');
        
        checks.click(function(){
          _gaq.push(['_trackEvent', 'mod-consulta-dominio-index', $(this).next().attr('name')]);
        });
        checksLabel.click(function(){
          _gaq.push(['_trackEvent', 'mod-consulta-dominio-index', $(this).prev().attr('name')]);
        });
				
				isIndex = $('#start').size() > 0; // ESTÁ NA HOME?
				
				comboBox.change(function () {
					if (comboBox.val() === '0') {
						if (checkMais.attr('checked') === true) {
							checkMais.prev().click();
						}
					} else {
						if (checkMais.attr('checked') === false) {
							checkMais.prev().click();
						}
					}
				});
				form.submit(function () {
					doSearch();
					return false;
				});
			};
			
			doSearch = function () {
				hasError = false;
				
				removeResults();
				if (checkComBr.attr('checked') === false && 
					checkCom.attr('checked') === false && 
					checkNet.attr('checked') === false && 
					(checkOrg.attr('checked') === undefined || 
						(checkOrg.attr('checked') !== undefined && 
						 checkOrg.attr('checked') === false)) && 
					(checkMais.attr('checked') === undefined || 
						(checkMais.attr('checked') !== undefined && 
							 (checkMais.attr('checked') === false) || 
							 (checkMais.attr('checked') === true && 
							 comboBox.val() === '0')))) {
					errorMsg = errorNoExtension();
					hasError = true;
				}
				
				if (inputDns.val().length === 0 || inputDns.val().indexOf(' ') > 0) {
					errorMsg = errorNoDns();
					hasError = true;
				}
				
				if (hasError) {
					results.append(errorMsg);
					return;
				} else {
					loading.addClass('show');
				}
				
				extensionsArray = [];
				if (checkComBr.attr('checked') === true) {
					extensionsArray.push('.com.br');
				}
				if (checkCom.attr('checked') === true) {
					extensionsArray.push('.com');
				}
				if (checkNet.attr('checked') === true) {
					extensionsArray.push('.net');
				}
				if (checkOrg.attr('checked') !== undefined && checkOrg.attr('checked') === true) {
					extensionsArray.push('.org');
				}
				if (checkMais.attr('checked') !== undefined && checkMais.attr('checked') === true && comboBox.val() !== '0') {
					extensionsArray.push(comboBox.val());
				}
				extensionsString = extensionsArray.join(',');
				
				script = document.createElement('script');
				script.type = 'text/javascript';
				script.src = 'http://ppp.terra.com.br/services/dnssearch.pl?domain=' + inputDns.val() + '&type=json&tlds=' + extensionsString + '&callback=Df3.consultaDominio.onResult';
				$('body').append(script);
			};
			
			onResult = function (result) {
				var i, resultsUl;
				loading.removeClass('show');
				removeResults();
				results.append('<ul class="clearfix"></ul>');
				resultsUl = $('#results ul');
				for (i = 0; i < result.length; i++) {
					if (result[i].avaliable === 'Y') {
						resultsUl.append(liCheck(result[i].dns));
					} else if (result[i].avaliable === 'N') {
						resultsUl.append(liCross(result[i].dns));
					}
				}
        $('.bt-buy').click(buyClickHandler); 
			};
			
			buyClickHandler = function () {
        _gaq.push(['_trackEvent', 'mod-consulta-dominio-index', 'bt-comprar-dominio']);
				var dataAtual, hora, minutos, dia, dns;
				dataAtual = new Date();
				hora = dataAtual.getHours();
				minutos = dataAtual.getMinutes();
				dia = dataAtual.getDay();
				if ((hora >= "21") || (hora < "09") || (dia === "6") || (dia === "0")) { // se o horario nao for entre 09 e 21 e for fim de semana
					window.open("http://dominio.terra.com.br/pop-up-fora-horario.html", "popup", "height = 546, width = 431");
				} else { // se for entre 09 e 21 e nao for fim de semana
					dns = $(this).parent().find('strong').text();
					window.open("http://dominio.terra.com.br/pop-up.php?dns=" + dns, "popup", "height = 581, width = 431");
				}
				return false;
			};
			
			liCheck = function (text) {
				if (isIndex && text.length > 17) { // ESTÁ NA HOME
					text = text.substr(0, 17) + '<br />' + text.substr(17);
				} else if (text.length > 50) { // PÁGINA INTERNA
					text = text.substr(0, 50) + '<br />' + text.substr(50);
				}
				return '<li class="ok"><span class="result-text">O dom&iacute;nio <strong>' + text + '</strong> est&aacute; dispon&iacute;vel.</span><a href="#" class="bt-buy" title="Comprar"></a><span class="icon"></span></li>';
			};
			
			liCross = function (text) {
				if (isIndex && text.length > 17) { // ESTÁ NA HOME
					text = text.substr(0, 17) + '<br />' + text.substr(17);
				} else if (text.length > 50) { // PÁGINA INTERNA
					text = text.substr(0, 50) + '<br />' + text.substr(50);
				}
				return '<li class="error">O dom&iacute;nio <strong>' + text + '</strong> n&atilde;o est&aacute; dispon&iacute;vel.<span class="icon"></span></li>';
			};
			
			errorNoDns = function () {
				return '<span class="error-msg">Escreva um dom&iacute;nio v&aacute;lido.<span class="icon"></span></span>';
			};
			
			errorNoExtension = function () {
				return '<span class="error-msg">&Eacute; necess&aacute;rio escolher o tipo do dom&iacute;nio.<span class="icon"></span></span>';
			};
			
			removeResults = function () {
				results.html('');
			};
			
			return {'onResult': onResult};
		} catch (e) {
			throw new Error('Erro no modulo Df3.consultaDominio\n' + e.message, e.fileName, e.lineNumber);
		}
	}());
	construtor = function () {
		try {
			var testDrive, testDriveCtn, modalVideo,mask, getFlashMovieObject, modalConditions, injectPlayer;
						
			modalVideo = $('#modal-video');      
      mask = $('#modal-mask');
      modalConditions = $('#modal-conditions');
      
			testDrive = $('#test-drive');
			testDriveCtn = $('#test-drive-ctn');
			
			testDrive.mouseover(function () {
				testDriveCtn.addClass('hover');
			});
			testDrive.mouseout(function () {
				testDriveCtn.removeClass('hover');
			});
      
			getFlashMovieObject = function (movieName) {
				if (window.document[movieName]) {
					return window.document[movieName];
				}
				if (navigator.appName.indexOf("Microsoft Internet") === -1) {
					if (document.embeds && document.embeds[movieName]) {
						return document.embeds[movieName]; 
					}
				} else {
					return document.getElementById(movieName);
				}
			};    
     
			injectPlayer = function () {
				$('#video-swf').html('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="flashMovie" width="455" height="255"><param name="movie" value="_swf/apresentacao.swf" /><embed play="false" swliveconnect="true" name="flashMovie" src="_swf/apresentacao.swf" quality="high" bgcolor="#FFFFFF" width="455" height="255" type="application/x-shockwave-flash" height="255" width="455" ></embed></object>');
			};      
      
			$('#video').click(function (e) {
				e.preventDefault();
				openModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').Play();
			});
			$('.modal-window-close').click(function (e) {
				e.preventDefault();
				closeModal(modalConditions, mask);
				closeModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').StopPlay();
			});
			mask.click(function (e) {
				e.preventDefault();
				closeModal(modalConditions, mask);
				closeModal(modalVideo, mask);
				getFlashMovieObject('flashMovie').StopPlay();
			});
			
			constructor = function () {
				injectPlayer();
			}();     
		} catch (e) {
			throw new Error('Erro no modulo Df3.construtor\n' + e.message, e.fileName, e.lineNumber);
		}
	};
	popup = function (url, nwidth, nheight) { // POPUP CENTRALIZADO
		var width = 455, 
			height = 700, 
			left = (screen.width - width) / 2, 
			top = (screen.height - height) / 2, 
			params = 'width=' + width + ', height=' + height, 
			newwin;
		params += ', top=' + top + ', left=' + left;
		params += ', directories=no';
		params += ', location=no';
		params += ', menubar=no';
		params += ', resizable=no';
		params += ', scrollbars=no';
		params += ', status=no';
		params += ', toolbar=no';
		newwin = window.open(url, 'titulo', params);
		if (window.focus) {
			newwin.focus();
		}
		return false;
	};
	getLomadeeCookie = function () {
		var origemLomadee;
		origemLomadee = $.cookie("lomadee_traffic");
		if (origemLomadee) {
			origemLomadee = '&origem_lomadee=' + origemLomadee;
			$.cookie("lomadee_traffic", null);
		} else {
			origemLomadee = '';
		}
		return origemLomadee;
	};
	return {'start': start, 'consultaDominio': consultaDominio};
}());
