var SalesLead = {
	formButtonTypeOk: 1,
	formButtonTypeBuy: 2,
	skipLeadsGeneratorConfirmation: false,
	currentVerticalId: 0,
	verticals: 0,
	percentage: 0,
	percentageInterval: 0,

	showSalesLeadForm: function (formId, doAdd, salesLeadId, companyName)
	{
		if (companyName == null) companyName = '';
		
		if (doAdd && formId > 0)
		{
			viewForm(formId, "registerCompanyFormValues("+ formId +"); SalesLead.add("+ salesLeadId +", '"+ companyName +"');", "SalesLead.cancelledSalesLeadForm("+ salesLeadId +");");
		}
		else
		{
			if (doAdd) 
				this.add(salesLeadId, companyName);
			else
				this.remove(salesLeadId);
		}
		
		if (doAdd)
			getPage('manage_selected_campaigns.php?log='+ salesLeadId +'&sdid='+ ($('sdid') ? $('sdid').value : ''));
	},
	
	isPackageLead: function(salesLeadId)
	{
		return ($('packageLead['+ salesLeadId+']') != null);
	},

	add: function (salesLeadId, companyName)
	{
		var page = 0;
		if ($('page') != null)
			page = $('page').value;
			
		this.markVertical(jQuery('#leadsVertical'+this.currentVerticalId), -1);
		getPage('address_change_page.php?id='+ salesLeadId +'&cn='+ companyName +'&p='+ page +'&pak='+ (this.isPackageLead(salesLeadId) ? 1 : 0) +'&vid='+ this.currentVerticalId, 'selectedLeadsContainer');
	},

	remove: function (salesLeadId)
	{
		getPage('address_change_page.php?id='+ (salesLeadId * -1), 'selectedLeadsContainer');	
		this.uncheck(salesLeadId);
		this.markVertical(jQuery('#leadsVertical'+this.currentVerticalId), 0);
	},
	
	uncheck: function(salesLeadId)
	{
		var el = $('salesLead['+ salesLeadId +']');
		if (el != null)
		{
			el.checked = false
			el.value = 0;
		}
	},
	
	markVertical: function(v, a) 
	{
		if(a == -1) {
			v.children('.leadsVerticalAcceptedYes').css('display', 'inline-block');
			v.children('.leadsVerticalAcceptedNo').hide();
		} else if (a == 0) {
			v.children('.leadsVerticalAcceptedYes').hide();
			v.children('.leadsVerticalAcceptedNo').css('display', 'inline-block');
		} else { //No answer/ default
			v.children('.leadsVerticalAcceptedYes').hide();
			v.children('.leadsVerticalAcceptedNo').hide();
		}
		v.children('.leadsVerticalInfo').hide('fast');
		v.children('.leadsVerticalDescription').hide();
	},
		
	listSelected: function()
	{
		getPage('address_change_page.php?list=1', 'selectedLeadsContainer');
	},
	
	showProductForm: function (formId, doAdd, salesLeadId, extraScriptWhenOk)
	{
		if (extraScriptWhenOk == null)
			extraScriptWhenOk = '';
		
		if (doAdd && formId > 0)
		{
			_formFieldEntryPostAction = extraScriptWhenOk;
			viewForm(formId, "registerCompanyFormValues("+ formId +");", "SalesLead.cancelledSalesLeadForm("+ salesLeadId +");", this.formButtonTypeBuy);
		}
		else if (extraScriptWhenOk != '')
		{
			eval(extraScriptWhenOk);
		}
	},

	viewProductForm: function (formId, extraScriptWhenOk)
	{
		_formFieldEntryPostAction = extraScriptWhenOk;
		viewForm(formId, "registerCompanyFormValues("+ formId +");", null, this.formButtonTypeBuy);
	},

	cancelledSalesLeadForm: function(salesLeadId)
	{
		if (salesLeadId != null && salesLeadId > 0)
		{
			this.uncheck(salesLeadId);
		}
	},
	
	selectedVerticalId: 0,
	answeredVerticals: new Array(),
	
	addAnsweredVertical: function(verticalId)
	{
		var found = false;
		
		// Check if already added to array
		for (i = 0; i < this.answeredVerticals.length; i++)
		{
			if (this.answeredVerticals[i] == verticalId)
			{
				found = true;
				break;
			}
		}
		
		// Add to array
		if (!found)
			this.answeredVerticals.push(verticalId);
	},
	
	isVerticalAnswerOk: function(verticalId)
	{
		var isOk = true;
		
		if ($('imgYes['+ verticalId +']').style.display == 'inline')
		{
			// Check if any leads are selected
			var leads = new Array();
			var isAnySelected = false;
			
			leads = document.getElementsByName('verticalLeads['+ verticalId +']');
			
			for (var i = 0; i < leads.length; i++)
			{
				var salesLeadId = leads[i].value;
				if ($('salesLead['+ salesLeadId +']').checked)
					isAnySelected = true;
			}
			
			isOk = isAnySelected;
		}
		
		return isOk;
	},
	
	answerVertical: function(verticalId, answerYes)
	{
		// Check if answered Yes and not selected anything
		if (this.selectedVerticalId > 0 && this.selectedVerticalId != verticalId && !this.isVerticalAnswerOk(this.selectedVerticalId))
		{
			// Answer -> No
			$('linkYes['+ this.selectedVerticalId +']').checked = false;
			$('linkNo['+ this.selectedVerticalId +']').checked = true;
			$('imgYes['+ this.selectedVerticalId +']').style.display = 'none';
			$('imgNo['+ this.selectedVerticalId +']').style.display = 'inline';
		}

		var showVertical = 0;
		
		if ($('vertical['+ verticalId +']') != null)
		{
			if (answerYes)
			{
				$('imgYes['+ verticalId +']').style.display = 'inline';
				$('imgNo['+ verticalId +']').style.display = 'none';
				
				showVertical = verticalId;
			}
			else
			{
				$('imgYes['+ verticalId +']').style.display = 'none';
				$('imgNo['+ verticalId +']').style.display = 'inline';
			}
			
			this.addAnsweredVertical(verticalId);
		}
		
		this.showVertical(showVertical);
	},
	
	showVertical: function(verticalId)
	{
		// Hide currently selected vertical
		if (this.selectedVerticalId > 0 && verticalId != this.selectedVerticalId)
		{
			new Effect.SlideUp('vertical['+ this.selectedVerticalId +']', { queue: 'front' });
		}
		
		// Show new vertical
		if (verticalId > 0 && verticalId != this.selectedVerticalId)
		{
			this.selectedVerticalId = verticalId;
			new Effect.SlideDown('vertical['+ this.selectedVerticalId +']', { queue: 'end' });
		}
		else if (verticalId == 0)
		{
			this.selectedVerticalId = 0;
		}
	},
	
	clickGeneratorLead: function(salesLeadId, formId, doAdd, companyName, objId)
	{
		if (objId == null) objId = 'salesLead';
		
		var el = $(objId +'['+ salesLeadId +']');
		if (el != null)
			el.value = (el.checked ? 1 : 0);
		
		this.showSalesLeadForm(formId, doAdd, salesLeadId, companyName);
		
		if ($('selectedCount['+ this.selectedVerticalId +']') != null)
			$('selectedCount['+ this.selectedVerticalId +']').style.display = 'none';
	},

	selectAllForVertical: function(verticalId, formId)
	{
		if (formId != null && formId > 0 && $('selectAll['+verticalId+']').checked) 
			viewForm(formId, "registerCompanyFormValues("+ formId +", "+ verticalId +"); SalesLead.selectAllLeadsForVertical("+ verticalId +");", "$('selectAll["+ verticalId +"]').checked = false;");
		else
			this.selectAllLeadsForVertical(verticalId);
	},
	
	selectPackageVerticals: function(doAdd, packageName, packageChkBoxId)
	{
		verticals = document.getElementsByName(packageName);
		for (var i = 0; i < verticals.length; i++)
		{
			var verticalId = verticals[i].value;
			
			$('selectAll['+ verticalId +']').checked = doAdd;
			
			this.selectPackageVertical(verticalId, doAdd, packageName, packageChkBoxId);
		}
	},
	
	selectPackageVertical: function(verticalId, isChecked, packageName, packageChkBoxId, formId)
	{		
		this.verticals = document.getElementsByName(packageName).length;
		this.percentageInterval = Math.round(100/this.verticals);
		
		var cancelFormScript;
		
		var vl = $('selectAll['+verticalId+']');
		
		if(jQuery(vl).hasClass('selectedVertical')) {
			cancelFormScript = '';
		}
		else {
			cancelFormScript = "$('selectAll["+ verticalId +"]').checked = false;";
		}
		
		if (formId != null && formId > 0 && isChecked) {
			viewForm(formId, "registerCompanyFormValues("+ formId +", "+ verticalId +"); SalesLead.selectAllLeadsForVertical("+ verticalId +");", cancelFormScript);
		}
		else
			this.selectAllLeadsForVertical(verticalId);

		// Deselect leads package if any of the main package verticals are deselected
		if (!isChecked && $(packageName +'['+ verticalId +']') != null && packageChkBoxId != null && $(packageChkBoxId) != null)
		{
			$(packageChkBoxId).value = 0;
			$(packageChkBoxId).checked = false;
		}
	},
	
	selectAllLeadsForVertical: function(verticalId)
	{
		
		this.setPercent();
		this.currentVerticalId = verticalId;
		var leads = new Array();
		leads = document.getElementsByName('verticalLeads['+ verticalId +']');
		
		var vl = $('selectAll['+verticalId+']');
		if(!jQuery(vl).hasClass('selectedVertical')) {
			jQuery(vl).addClass('selectedVertical');
			this.changePercent();
		}
			
		var selectAll = true;
		if ($('selectAll['+verticalId+']') != null)
			selectAll = $('selectAll['+verticalId+']').checked;
			
		if ($('verticalName['+ verticalId +']') != null) 
			getPage('address_change_page.php?vid='+ (selectAll ? verticalId : verticalId * -1) +'&vn='+ $('verticalName['+ verticalId +']').value, 'selectedLeadsContainer');
		
		for (var i = 0; i < leads.length; i++)
		{
			var salesLeadId = leads[i].value;
			var formId = 0;
			var companyName = $('salesLeadCompanyName['+ salesLeadId +']').value;
			
			$('salesLead['+ salesLeadId +']').checked = selectAll;
			this.clickGeneratorLead(salesLeadId, formId, selectAll, companyName);
		}
	},
	
	setPercent: function() {
		this.percentage = parseInt(jQuery('#percentage').html());
	},
	
	changePercent: function() 
	{	
		
		if(this.percentage < 100) {
			if(jQuery('#leadsPackageContainer input:radio:checked').length == this.verticals) {
				this.percentage = 100;
			}
			else {
				this.percentage = parseInt(jQuery('#percentage').html());
				this.percentage += this.percentageInterval;
			}
					
			var gradient = 127-(127*(this.percentage/100));

			jQuery('#percentage').html(this.percentage);
			jQuery('#percentageGradient').css('backgroundPosition', '0px '+ gradient +'px');
		}
	},
	
	removePackageVertical: function(verticalId)
	{
		getPage('address_change_page.php?vid='+ (verticalId * -1) +'&rm=1', 'selectedLeadsContainer');
		$('selectAll['+ verticalId +']').checked = false;
		$('linkNo['+ verticalId +']').checked = true;
		this.markVertical(jQuery('#leadsVertical'+verticalId), 0);
		
	},
	
	confirmLeadsGenerator: function(totalVerticals, isSelectorPage)
	{
		if (this.answeredVerticals.length < totalVerticals && !this.skipLeadsGeneratorConfirmation)
		{
			if (isSelectorPage != null && isSelectorPage)
				showMsg('<h2>Bekreft svar</h2>Du har ikke sett på noen av alternativene for innhenting av tilbud på denne siden.<p><a href="javascript:AddressChange.goNext(false);">Klikk her dersom du ønsker å gå videre,</a><br/> eller trykk "Lukk" for å se videre på tilbudene.</p>', true, null, true);
			else
				showMsg('<h2>Bekreft svar</h2>Du har ikke besvart alle spørsmålene om tilbud på denne siden.<p><a href="javascript:AddressChange.goNext(false);">Klikk her for å svare "Nei" på tilbudene du ikke har besvart og gå videre,</a> eller trykk "Lukk" for å se videre på tilbudene.</p>', true, null, true);
		}
		else
			AddressChange.goNext(false);
	},
	
	selectLeadsPackage: function(doAdd, objId, tickVerticals)
	{
		var leads = new Array();
		leads = document.getElementsByName('leadsPackageList');
		
		if (objId == null) objId = 'salesLead';
		
		// Add all package leads initially
		for (var i = 0; i < leads.length; i++)
		{
			var salesLeadId = leads[i].value;
			var formId = 0;
			var companyName = $('salesLeadCompanyName['+ salesLeadId +']').value;
			
			$(objId +'['+ salesLeadId +']').checked = doAdd;
			this.clickGeneratorLead(salesLeadId, formId, doAdd, companyName, objId);
		}
		
		if (doAdd)
		{
			//showMsg('<h2>Du valgte flyttepakken</h2>Selskapene vil ta kontakt med deg per telefon/ epost i løpet av de nærmeste dagene.')
			
			// Show popup with confirmation
			/*showCurtain();
			$('leadsPackageConfirmationContainer').show();*/
		}
		
		if (tickVerticals)
		{
			verticals = document.getElementsByName('selectAll');
			for (var i = 0; i < verticals.length; i++)
			{
				verticals[i].checked = doAdd;
			}
		}
	},
	
	closeLeadsPackage: function(confirmed)
	{
		// Remove leads from selected list
		if (!confirmed)
			this.selectLeadsPackage(false);
		
		// Set checkbox
		$('leadsPackage').checked = confirmed;
		
		// Close popup
		$('leadsPackageConfirmationContainer').hide();
		removeCurtain();
	},
	
	selectLeadsSelector: function(t)
	{
		$('selectorOptionsContainer').hide();
		$('leadsHelpContainer').hide();
		$('leadsPackageContainer').hide();
		$('leadsBrowseContainer').hide();
		$('linkBackContainer').hide();
		$('linkChoice1').hide();
		$('linkChoice2').hide();
		$('linkChoice3').hide();
		
		// Ensure no confirmation message appears when having selected one of the alternatives (regardless of whether leads are actually selected)
		if (t > 0)
			this.skipLeadsGeneratorConfirmation = true;
			
		switch (t)
		{
			case 1:
				new Effect.Appear('leadsHelpContainer');
				$('linkBackContainer').show();
				$('linkChoice2').show();
				$('linkChoice3').show();
				break;
				
			case 2:
				new Effect.Appear('leadsPackageContainer');
				$('linkBackContainer').show();
				$('linkChoice1').show();
				$('linkChoice3').show();
				break;
				
			case 3:
				new Effect.Appear('leadsBrowseContainer');
				$('linkBackContainer').show();
				$('linkChoice1').show();
				$('linkChoice2').show();
				break;
				
			default:
				$('selectorOptionsContainer').show();
		}
	},
	
	sendPackageLeadsForVertical: function(vid, vname, elToShow, elToHide)
	{
		if (confirm('Trykk OK for å bli kontaktet for tilbud på '+ vname))
		{
			getPage(_JF_ROOT_URL +'sales_lead.php?slv='+ vid, elToShow, 'inline-block');
			
			if (elToHide != null)
				$(elToHide).style.display = 'none';
		}
	}
}

