js.module('portal');

portal = {
	is_progress : false,
	curr_page : "portal",
	style : 0,
	def_block : 0,
	curr_block : false,
	blocks : [],
	block_tags : [],
	prev_hash : '',
	curr_day : false,

	checkHashChanged : function ()
	{
		var hash = window.location.hash;
		var last = portal.getLastBlock();
		
		if(hash)
			hash=hash.substr(1);

		if(hash!=portal.prev_hash)
		{
			portal.prev_hash = hash;

			if(hash && inArray(portal.block_tags, hash)!=-1)
			{
				var hashindex = inArray(portal.block_tags, hash);

				last = portal.blocks[hashindex];
				portal.prev_hash = hash;
			}

			portal.toggleBlock(last);
		}
	}
	,
	getLastBlock : function()
	{
		var last = common.getCookie('last_portal_block');

		if(!last || !$('portal_button_'+last))
		{
			if(this.def_block && inArray(this.blocks, this.def_block) != -1)
				last = this.def_block;
			else
				last=this.blocks[0];
		}

		return last;
	}
	,
	load : function(timeout)
	{
		if(this.blocks.length==0)
		{
			if($('portal_link_to_portal'))
			{
				visual.setColor('portal_link_to_portal', 'gray');
				$('portal_link_to_portal').onclick = function() { return false; };
				$('portal_link_to_portal').style.cursor = 'default';

				portal.showMain();
			}
			else //fake presentation portal 
			{
				visual.hide('portal_buttons_table');
			}
		}
		else
		{
			switch(parseInt(this.style))
			{
				case 0:

					var last = this.getLastBlock();
					var hash = window.location.hash; 

					if(hash)
						hash=hash.substr(1);

					if(hash && inArray(this.block_tags, hash)!=-1)
					{
						var hashindex = inArray(this.block_tags, hash);
						last = this.blocks[hashindex];
					}

					this.toggleBlock(last);
						
					if(this.blocks.length==1)
					{
						visual.hide('portal_buttons_table');
					}

					this.prev_hash = hash;
					setInterval(portal.checkHashChanged,100);

					break;
				case 1:
					visual.hide('portal_buttons_table');
					for(var i = 0; i<this.blocks.length; i++)
					{
						visual.show('portal_block_'+this.blocks[i]);
					}
					$('portal_block_'+this.blocks[0]).style.marginTop = '0px';
					break;
			}
		}
	}
	,
	showPortal : function()
	{
		//Do not show portal if are no portal blocks for this user defined
		if(this.blocks.length==0)
			return;

		portal.hide('portal', 'mainpage');
	}
	,
	showMain : function()
	{
		portal.hide('mainpage', 'portal');
	}
	,
	show : function(show, hide)
	{
		visual.show('portal_'+show+'_div');

		var showf = new Fx.Morph('portal_'+show+'_div', {duration:400}).set({'opacity' : 0.1 });
		showf.start({'opacity':1}).chain(function () {portal.shown(show, hide)});
	}
	,
	shown : function(shown, hidden)
	{
		portal.is_progress=false;
		portal.curr_page = shown;
	}
	,
	hide : function(show, hide)
	{
		if(portal.is_progress) return;
		if(portal.curr_page == show) return;

		portal.is_progress = true;


		visual.show('portal_link_to_'+hide);
		visual.hide('portal_link_to_'+show);

		if(hide=='portal')
		{
			visual.hide('portal_disclaimer_1');
			visual.hide('portal_disclaimer_2');
		}

		var hidef = new Fx.Morph('portal_'+hide+'_div', {duration:400}).set({'opacity' : 1 });
		hidef.start({'opacity':0.1}).chain(function(){ portal.hidden(show, hide); });
	}
	,
	hidden : function(show, hide)
	{
		visual.hide('portal_'+hide+'_div');
		$mt('portal_'+hide+'_div').set({'opacity' : 0});
		portal.show(show, hide);
	}
	,
	toggleBlock : function(id)
	{
		if(this.curr_block==id)
			return;

		if(this.curr_block)
		{
			visual.setColor('portal_button_' + this.curr_block, '');
			$('portal_button_' + this.curr_block).style.cursor = 'pointer';
			visual.hide('portal_block_' + this.curr_block);
		}

		visual.setColor('portal_button_' + id, 'brown');
		$('portal_button_' + id).style.cursor = 'default';
		visual.show('portal_block_' + id);

		this.curr_block = id;

		common.cookie('last_portal_block', id, 'never');

		var hashindex = inArray(this.blocks, id);
		var hash = this.block_tags[hashindex];

		window.location=window.location.protocol+'//'+window.location.hostname+(window.location.port ? ':'+window.location.port : '')+'/'+window.location.search + '#' + hash;
	}
	,
	showPoll : function(id)
	{
		visual.showFade(900, 530, '<div id="portal_poll_window_container"></div><br /><a class="deco_text" style="cursor:pointer;" onclick="portal.hidePollWindow(' + id + ');">' + js.strings.button_close + '</a>', function() { portal.movePollControls(true, id); }, true);
	}
	,
	hidePollWindow : function(id)
	{
		visual.hideFade(function() { portal.movePollControls(false, id) }  );
	}
	,
	movePollControls : function(towindow, id)
	{
		if(towindow)
			$('portal_poll_window_container').appendChild($('portal_poll_fields_'+id));
		else
			$('portal_poll_container_'+id).appendChild($('portal_poll_fields_'+id));
	}
	,
	submitPoll : function(id)
	{
		if($A('portal_poll_fields_'+id, 'is_windowed') != '1')
		{
			visual.showFade(300, 200, '<img src="/images/misc/spinner.gif" align="absmiddle" style="padding-bottom:2px"> <span class="deco_text_small">' + js.strings.portal_sending_poll + '</span>', function() { portal.doSubmitPoll(id); }, true);	
		}
		else
		{
			portal.movePollControls(false, id);
			$$('blend_td', '<img src="/images/misc/spinner.gif" align="absmiddle" style="padding-bottom:2px"> <span class="deco_text_small">' + js.strings.portal_sending_poll + '</span>');
			portal.doSubmitPoll(id);
		}
	}
	,
	doSubmitPoll : function(id)
	{
		var postdata = '';
		postdata += 'poll_field_fname='+$P($$('poll_field_fname_'+id));
		postdata += '&poll_field_lname='+$P($$('poll_field_lname_'+id));
		postdata += '&poll_field_phone='+$P($$('poll_field_phone_'+id));
		postdata += '&poll_field_country='+$P($$('poll_field_country_'+id));
		postdata += '&poll_field_city='+$P($$('poll_field_city_'+id));
		postdata += '&poll_field_email='+$P($$('poll_field_email_'+id));
		postdata += '&poll_field_skype='+$P($$('poll_field_skype_'+id));
		postdata += '&poll_field_income='+$P($$('poll_field_income_'+id));
		postdata += '&poll_field_income_time='+$P($$('poll_field_income_time_'+id));
		postdata += '&poll_field_invest='+$P($$('poll_field_invest_'+id));
		postdata += '&poll_field_message='+$P($$('poll_field_message_'+id));

		new AJAX(js.getAjaxPath('portal.poll'), postdata, true, function(ldr) { portal._submitPoll_SUCCESS(ldr, id); }, true, function(ldr) { portal._submitPoll_FAIL(ldr, id); });		
	}
	,
	_submitPoll_SUCCESS : function(loader, id)
	{
		alert(loader.getMsg());

		ajb.enable('portal_poll_submit_button_'+id);

		if($A('portal_poll_fields_'+id, 'is_windowed') == '1')
		{
			this.hidePollWindow(id);
		}
		else
		{
			visual.hideFade();
		}
	}
	,
	_submitPoll_FAIL : function(loader, id)
	{
		alert(loader.getMsg() ? loader.getMsg() : js.strings.portal_sending_poll_error);

		ajb.enable('portal_poll_submit_button_'+id);
		
		if($A('portal_poll_fields_'+id, 'is_windowed') == '1')
		{
			portal.showPoll(id);
		}
		else
		{
			visual.hideFade();
		}
	}
	,
	toggleDay : function(num)
	{
		if(this.curr_day!==false)
		{
			ajb.setNotActive('portal_toggle_day_btn_' + this.curr_day);
			visual.hide('portal_day_div_' + this.curr_day);
		}

		this.curr_day = num;

		ajb.setActive('portal_toggle_day_btn_' + num);
		visual.show('portal_day_div_' + num);
	}
};