// Text Input Handler
function text_input_handler()
{	
	var selector = 'input[type="text"], \
									input[type="password"], \
									textarea';
	
	$(selector).each(function () {
		reset_inputs(this);
	});
	
	$(selector).focus(function () {
		clear_inputs(this);
	});
	
	$(selector).blur(function () {
		reset_inputs(this);
	});
}
// End Text Input Handler

// Reset Inputs
function reset_inputs(input)
{
	var value = $(input).attr('value');
	var title = $(input).attr('title');
	var type	= $(input).attr('type');
	
	if (value == '' && type == 'password')
	{
		$(input).addClass('off');
	}
	else if (value == '' && title != '')
	{			
		$(input).attr('value', title);
	}
}
// End Reset Inputs

// Clear Inputs
function clear_inputs(input)
{
	var value = $(input).attr('value');
	var title = $(input).attr('title');
	var type	= $(input).attr('type');
	
	if (type == 'password')
	{
		$(input).removeClass('off');
	}
	else if (value == title)
	{			
		$(input).attr('value', '');
	}
}
// End Clear Inputs

// Image Lightbox Handler
function image_lightbox_handler()
{
	$('.photo a.image_link').each(function() {
		var link_id = $(this).attr('id');
		var ids 		= link_id.split('_'); 
		var type		= 'image';

		if ($(this).hasClass('set'))
		{
			type = 'set';
		}
		
		var lightbox_selector	= '#lightbox_' + ids[0] + '_' + ids[1];
		var trigger 					= '.photo_' + ids[0] + '_' + ids[1] + ' a.image_link';
		var ajax_url					= '/ajax/' + type + '/' + ids[1] + '/';

		$(lightbox_selector).jqm({
			ajax: 		ajax_url, 
			ajaxText:	'<img src="http://dev.paidcontent.org/images/site/ajax_indicator.gif" alt="AJAX Indicator" />',
			trigger:	trigger,
			overlay:	80
		});		
	});
}
// End Image Lightbox Handler

// Set Pagination Handler
function set_pagination_handler(selector)
{	
	$(selector + ' .pagination a.jump').ajaxify({
		target			: selector,
		params			: false,
		loading_img	: 'http://dev.paidcontent.org/images/site/ajax_indicator.gif',
		method			: 'POST'
	});
}
// End Set Pagination Handler

// Registration / Account Info Handler
function registration_account_info_handler()
{	
	// State/Region Fields
	$('.member .form_chunk .state').hide();
	$('.member .form_chunk .region').hide();
	$('.member .form_chunk .region input').attr('disabled', true);
	$('.member .form_chunk .state select').attr('disabled', true);
	
	$('.member .form_chunk .country select').each(function() {
		change_state_region_field($(this).attr('value'));
	});
	
	$('.member .form_chunk .country select').change(function() {
		change_state_region_field($(this).attr('value'));
	});
	
	// Other Field
	$('.member .form_chunk .heard_about input').hide();
	
	$('.member .form_chunk .heard_about select').each(function() {
		show_hide_other($(this).attr('value'));
	});
	
	$('.member .form_chunk .heard_about select').change(function() {
		show_hide_other($(this).attr('value'));
	});
}
// End Registration / Account Info Handler

// Change State Region Field
function change_state_region_field(country)
{
	if (country == 'United States of America')
	{
		$('.member .form_chunk .region input').attr('disabled', true);
		$('.member .form_chunk .state select').attr('disabled', false);
		$('.member .form_chunk .state').fadeIn('slow');
		$('.member .form_chunk .region').hide();
	}
	else
	{
		$('.member .form_chunk .region input').attr('disabled', false);
		$('.member .form_chunk .state select').attr('disabled', true);
		$('.member .form_chunk .region').fadeIn('slow');
		$('.member .form_chunk .state').hide();
	}
}
// End Change State Region Field

// Show/Hide Other
function show_hide_other(value)
{
	if (value == 'Other')
	{
		$('.member .form_chunk .heard_about input').fadeIn('slow');
	}
	else
	{
		$('.member .form_chunk .heard_about input').hide();
	}
}
// End Show/Hide Other

// Ajaxify Handler
function ajaxify_handler()
{													
	// Entry share links
	$('.entry .entry_menu li.share a').each(function() {
		var div_id		= $(this).parents('div:eq(0)').attr('id');
		var entry_id	= div_id.substr(6);
		var html_code	= '<div class="indicator"><img src="http://dev.paidcontent.org/images/site/ajax_indicator.gif" alt="AJAX Indicator" /></div> \
										 <div class="share_links"></div>';
		
		$('.entry .entry_menu.top li.share a').mouseup(function() {
			$.scrollTo('.entry_menu.bottom', 500);
		});
		
		$(this).attr('href', '/ajax/share_links/' + entry_id + '/');
		
		if ($(this).hasClass('link') == true && $(this).parents('ul:eq(0)').hasClass('bottom') == true)
		{
			$('#entry_' + entry_id + ' .entry_menu li.share a').ajaxify({
				target			: '#entry_' + entry_id + ' .share_links',
				params			: false,
				method			: 'POST',
				onStart			: function() 
								{
									if ($('#entry_' + entry_id + ' .share_links').length > 0)
									{
										$('#entry_' + entry_id + ' .share_links').remove();
										return false;
									}
									
									var remove_selector = '#entry_' + entry_id + ' .share_links, \
																				 #entry_' + entry_id + ' .email_share_form, \
																				 #entry_' + entry_id + ' .indicator';

									$(remove_selector).remove();
									$('#entry_' + entry_id).append(html_code);
									$('#entry_' + entry_id + ' .share_links').hide();
								},
				onComplete	: function()
							{
								$('#entry_' + entry_id + ' .indicator').remove();
								$('#entry_' + entry_id + ' .share_links').fadeIn('slow'); 
							}
			});
		}
	});
	
	// Entry email form
	$('.entry .entry_menu li.email a').each(function() {
		var div_id		= $(this).parents('div:eq(0)').attr('id');
		var entry_id	= div_id.substr(6);
		var html_code	= '<div class="indicator"><img src="http://dev.paidcontent.org/images/site/ajax_indicator.gif" alt="AJAX Indicator" /></div> \
										 <div class="email_share_form"></div>';
		
		$('.entry .entry_menu.top li.email a').mouseup(function() {
			$.scrollTo('.entry_menu.bottom', 500);
		});
		
		$(this).attr('href', '/ajax/email_share_form/' + entry_id + '/');
		
		if ($(this).hasClass('link') == true && $(this).parents('ul:eq(0)').hasClass('bottom') == true)
		{
			$('#entry_' + entry_id + ' .entry_menu li.email a').ajaxify({
				target			: '#entry_' + entry_id + ' .email_share_form',
				params			: false,
				method			: 'POST',
				onStart			: function() 
								{
									if ($('#entry_' + entry_id + ' .email_share_form').length > 0)
									{
										$('#entry_' + entry_id + ' .email_share_form').remove();
										return false;
									}
									
									var remove_selector = '#entry_' + entry_id + ' .share_links, \
																				 #entry_' + entry_id + ' .email_share_form, \
																				 #entry_' + entry_id + ' .indicator';

									$(remove_selector).remove();
									$('#entry_' + entry_id).append(html_code);
									$('#entry_' + entry_id + ' .email_share_form').hide();
								},
				onComplete	: function()
							{
								$('#entry_' + entry_id + ' .indicator').remove();
								$('#entry_' + entry_id + ' .email_share_form').fadeIn('slow'); 
								text_input_handler();
							}
			});
		}
	});
	
	// Anonymous tip box
	$('#anonymous_tips .tip_form .button').attr('href', '/ajax/anonymous_tip_form/');
	
	$('#anonymous_tips .tip_form .button').ajaxify({
		target			: '#anonymous_tips .tip_form',
		params			: false,
		method			: 'POST',
		onStart			: function() 
							{
								$('#anonymous_tips').append('<img src="http://dev.paidcontent.org/images/site/ajax_indicator.gif" alt="AJAX Indicator" class="indicator" />');
								$('#anonymous_tips .tip_form').hide();
							},
		onComplete	: function()
						{
							$('#anonymous_tips .indicator').remove();
							$('#anonymous_tips .tip_form').fadeIn('slow'); 
							text_input_handler();
						}
	});
	
	// Close comment
	$('.article .comments .comment .close_comment').each(function() {
		var close_link = $(this).attr('href');
		close_link = close_link.replace('&response=yes', '');
		
		$(this).attr('href', close_link);
	});
	
	$('.article .comments .comment .close_comment').ajaxify({
		target			: '#anonymous_tips .tip_form',
		params			: false,
		method			: 'POST',
		onSuccess		: function(options, comment_id)
						{
							$('.article .comments #comment_' + comment_id).fadeOut('slow');
						}
	});
}
// End Ajaxify Handler

// Fitted Handler
function fitted_handler()
{	
	$('.featured .target').fitted({
		'class' : {
			'hover' : 'pointer'
		}
	});
}
// End Fitted Handler

// Image Preload
function image_preload()
{
	load_image('http://dev.paidcontent.org/images/site/ajax_indicator.gif');

	if ($('body.news, body.article, body.topic').length > 0)
	{	
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/delicious.png');
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/digg.png');
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/facebook.png');
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/linkedin.png');
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/newsvine.png');
		load_image('http://dev.paidcontent.org/themes/cp_global_images/lg_social_bookmarks/favicons/reddit.png');	
	}
}
// End Image Preload

// Load Image
function load_image(source)
{
	var img = new Image();
	img.src = source;
}
// End Load Image

// Font Size Handler
function font_size_handler()
{
	var text_size = $.cookie('text_size');

	if (text_size == null || text_size == '')
	{
		text_size = 'smaller';
	}

	change_font_size(text_size);

	$('.entry_menu li.text a').click(function() {
		if ($(this).hasClass('on') == false)
		{
			text_size = $(this).attr('class');
			$.cookie('text_size', $(this).attr('class'), { expires: 30, path: '/' });
			change_font_size(text_size);
		}
		
		return false;
	});
}
// End Font Size Handler

// Change Font Size
function change_font_size(text_size)
{
	$('.entry_menu li.text a').removeClass('on');
	$('.entry_menu li.text a.' + text_size).addClass('on');
	$('.article .entry .content').removeClass('larger smaller');
	$('.article .entry .content').addClass(text_size);
}
// End Change Font Size

// Scroll To Anchor
function scroll_to_anchor(selector)
{
	$(selector).click(function() {
		$.scrollTo('a[name="' + $(this).attr('href').substr(1) + '"]', 500);
		return false;
	});
}
// End Scroll To Anchor

// Match Heights
function match_heights()
{
    do_height_match('.featured.half h2');
    do_height_match('.article #related ul, .article #headlines ul');
    do_height_match('.reports .report h2');
    do_height_match('.reports .report .info .description');
    do_height_match('.reports .report .info .topics');
}
// End Match Heights

// Do Height Match
function do_height_match(selector)
{
    var highest_column = 0;

    $(selector).each(function() {
        if ($(this).height() > highest_column)
        {
            highest_column = $(this).height();
        }
    });

    $(selector).height(highest_column);
}
// End Do Height Match 

// Fix Bio Width
function fix_bio_width()
{
	var photo_width = $('.bio_contents .photo').width();
	$('.bio_contents .bio').width(625 - photo_width);
}
// End Fix Bio Width

function comment_pages()
{
	if ($('#comment_page_links').length > 0) 
	{
		//	Set up page links
		$('#comment_page_links li').click(function()
		{
			if (! $(this).hasClass('active')) 
			{
				var pg = $(this).attr('id').split('_')[2];
				if (pg == 'next') 
				{
					pg = $('.comment_page.active').attr('id'.split('_')[2]) + 1;
				}
				$('.comment_page.active').animate({opacity: 0}, 400, 'linear', function()
				{
					$('.comment_page.active').removeClass('active');
					$('.comment_link.active').removeClass('active');
					$('#comment_page_' + pg).addClass('active');
					$('#comment_link_' + pg).addClass('active');
					$('#comment_page_' + pg).css('opacity', 0).animate({opacity: 1}, 400);
				});

			}
			return false;
		})
	}
}

/**
 * A "filter" element shows/hides content within another element by class. Structure is as follows:
 * 	<ul id="filter_{classname of subject (element to be filtered)}" class="filter">
 * 		<li [class="active"]>
 * 			<a class="{class to show/hide within subject}|all">Label</a>
 *		</li>
 *	</ul>
 * EXAMPLE:
 * 	$('ul.filter').bind('click', {eltype: 'td'}, filter);
 *  Second param is optional object. 'eltype' can contain a selector expression used to select elements filtered.
 *  In this example, only <td> elements within subject will be affected.
 *  
 * @param {Event} e		jQuery click event object
 */

function filter(e)
{
	e.preventDefault();
	
	var identifier = 'filter_';

	if ($(e.currentTarget).is('li'))
	{
		var $li = $(e.currentTarget);
		var $filter = $li.parent('ul');
		e.stopPropagation();
		
		var subjects = '.' + $filter.attr('id').substr(identifier.length);
		var show = '.' + $li.children('a').attr('class');
		var sel = subjects + ' ';
		sel += (e.data.eltype) ? e.data.eltype : '';		

		if (show == '.all')
		{
			$(sel + '.hidden').removeClass('hidden');
		}
		else
		{			
			$(sel).addClass('hidden'); 
			$(sel + show).removeClass('hidden');
		}
	
		$filter.children('li.active').removeClass('active');
		$li.addClass('active');
	}
}


function ajaxify_event_sections(e)
{
	$('#site_sections li a').each(function(i, anchor)
	{
		$(anchor).ajaxify({
			target: '#box_event_content',
			loading_img: 'http://dev.paidcontent.org/images/ajax_indicator.gif',
			method: 'POST',
			onComplete: function(opts)
			{
				$('#site_sections li').removeClass('active');
				var active = opts.link.split('/');
				$('#link_' + active[active.length - 1]).parent('li').addClass('active');
			}			
		})
	})
}

	
// Account Fields Handler
function account_fields_handler()
{
	var selector = '.member .account_info input[name="first_name"], \
									.member .account_info input[name="last_name"]';
	
	$(selector).keyup(function() {
		var name	= $(this).attr('name');
		var value	= $(this).attr('value');

		$('.member .password_info input[name="' + name + '"]').attr('value', value);
	});
}
// End Account Fields Handler

// Announcements & Breaking News Box Handler
function abn_box_handler()
{
	remove_closed_boxes();
	close_boxes_on_click();
}
// End Announcements & Breaking News Box Handler

// Remove Closed Boxes
function remove_closed_boxes()
{
	var closed_boxes	= $.cookie('closed_boxes');
	
	if (closed_boxes != null && closed_boxes != '')
	{
		closed_boxes			= closed_boxes.split('|');

		var count = closed_boxes.length;

		for (var i = 0, length = count; i < length; ++i)
		{
		  $('#abn_box_' + closed_boxes[i]).remove();
		}
	}
	
	fix_right_column();
}
// End Remove Closed Boxes

// Close Boxes On Click
function close_boxes_on_click()
{
	$('div.abn_box a.close_box').click(function() {
		var parent_id	= $(this).parents('div:eq(0)').attr('id');
		var alert_id	= parent_id.substr(8) ;

		$('#' + parent_id).fadeOut('slow', function() { 
			$('#' + parent_id).remove();
			fix_right_column();
		});
		
		var closed_boxes = $.cookie('closed_boxes');

		if (closed_boxes == null || closed_boxes == '')
		{
			closed_boxes = alert_id;
		}
		else
		{
			closed_boxes = closed_boxes + '|' + alert_id;
		}

		$.cookie('closed_boxes', closed_boxes, { expires: 30, path: '/' });
		
		return false;
	});
}
// End Close Boxes On Click

// Fix Right Column
function fix_right_column()
{
	var height = 0;
	
  $('div.abn_box').each(function() {
		height = height + $(this).outerHeight() + 12;
  });

  $('#right_column').css('margin-top', '-' + height + 'px');
}
// End Fix Right Column



/*
=======================
	ADVERTISING
=======================
*/
//var ad_testing = 'TEST'; 	//	Atlas SITE=TEST ads
var ad_testing = 'LIVE'; 	//	live site ads
//var ad_testing = 'OFF'; 	//	no ads

//	Ad sizes
var ad_sizes = {
	leaderboard : {
		old_size_desc: 'PREMA_WEB',
		size_desc: '728X90',
		w: 728,
		h: 90
	},
	full_banner : {
		old_size_desc: 'PREMA_NEWS',
		size_desc: '468X60',
		w: 468,
		h: 60
	},
	med_rect : {
		old_size_desc: 'PREMB_WEB',
		size_desc: '300X250',
		w: 300,
		h: 250
	},
	large_rect : {
		old_size_desc: 'PREMB_WEB',
		size_desc: '336X280',
		w: 336,
		h: 280
	},
	wide_skyscraper : {
		old_size_desc: 'PREMC_WEB',
		size_desc: '160X600',
		w: 160,
		h: 600
	},
	sq_button : {
		old_size_desc: 'GEN_SPON',
		size_desc: '125X125',
		w: 125,
		h: 125
	},
	spon_post: {
		old_size_desc: 'SPONPOST_WEB',
		size_desc: 'SPONSOR_POST',
		w: false,
		h: false
	},
	spon_list: {
		old_size_desc: 'SPONSOR_LIST',
		size_desc: 'SPONSOR_LIST',
		w: false,
		h: false
	},
	overlay: {
		old_size_desc: 'OVERLAY',
		size_desc: 'OVERLAY',
		w: false,
		h: false
	}													
};

//	Maps ad containers to adserver values
var ad_map = {};	
var ad_page = '/embeds/blank_ad/';	
var iframe_html = '<iframe id="ad_frame" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>';


/**
 * Passed the window object of an iframe, finds the ad container and crosses against ad var map 
 * @param {Window} win		iframe window object
 */				
function ad_url(win)
{
	return ad_map[win.frameElement.parentNode.id].data;
}


/**
 * Creates an iframe, generates inner content from our ad template, and places inside selected ad container
 * @param {Object} ad_div	ID of the container element
 */			
function render_media_ad(ad_div)
{
	var $ad_frame = $(iframe_html);
	
	//	Set iframe to resize based on inner div dimensions
	$ad_frame.load(function()
	{
		var $inner_div = $(this.contentDocument).find('#ad');

		if (ad_div == 'ad_overlay')
		{
			var $box = $inner_div.find('#box');
			$box.css('width', 'auto').width($(window).width() * .52);
			var w = $box.width();
			console.debug(w);
			$inner_div.width(w);
			$('#ad_overlay').width(w).css('left', Math.round(($(window).width() - w) / 2) + 'px');
			console.debug($inner_div.find('#box').width(), $inner_div.width());
		}
		
		//	Add border to 300x250 ads
		if ($inner_div.find('img').width() == 300) 
		{
			$inner_div.css('border', '20px solid #EFEFEF');
			$(this).width(340).height(300);	
		}
		else
		{
			$(this).width($inner_div.width()).height($inner_div.height());						
		}
	});

	var size = ad_sizes[ad_map[ad_div].size];
	if (size.w) 
	{
		$ad_frame.width(size.w).height(size.h);
	}
	
	$ad_frame.appendTo('#' + ad_div).attr('src', ad_page);

	//	If overlay, size & show	
	if (ad_div == 'ad_overlay')
	{
		$('#ad_overlay').jqmShow();
/*
		window.setTimeout(function()
		{
			close_overlay();
			//$.cookie('cn_register', 'no', {expires: 30});			
		}, 15000);	
*/
	}
}


/**
 * Plops ad display code directly in the container
 * @param {Object} ad_div	ID of the container element
 */	
function render_text_ad(ad_div)
{
	$('#' + ad_div).append(ad_map[ad_div].data);
}


/**
 * Makes first, separate adserver call for overlay ad
 */	
function render_overlay_ad()
{	
	AAMB101 = '';
	overlay_call = 'http://content.adbureau.net/bserver';
	overlay_call += '/AAMALL/SITE=TEST/ACC_RANDOM=' + Math.round(Math.random() * 1000000) + '/PAGEID=' + Math.round(Math.random() * 1000000);
	overlay_call += '/AREA=' + site_area.toUpperCase();
	overlay_call += '/AAMB101/AAMSZ=OVERLAY';

	if (! $.cookie('cn_register')) 
	{
		//	Make adserver call
		$.getScript(overlay_call, function()
		{
			ad_map.ad_overlay = {data: AAMB101, size: 'overlay'};
			$('<div id="ad_overlay" class="jqmWindow"></div>').jqm({modal: true}).appendTo('body');
			render_media_ad('ad_overlay');
		});
	}	
}


function close_overlay()
{
	$('#ad_overlay').jqmHide();
	//$.cookie('cn_register', 'no', {expires: 30});		
}


/**
 * Presets ad vars, maps .ad elements to vars, generates and makes ad call
 */
function prep_ads()
{	
	var overlay = false;
	
	if (last_seg != '' && last_seg != 'OVER') ad_testing = last_seg;
	if (ad_testing == 'TEST') key_atlas = 'TEST';
	if (last_seg == 'OVER') overlay = true;
	
	if (overlay == true) render_overlay_ad();
			
	//	Generate common tags for ad call
	var ad_call = 'http://content.adbureau.net/bserver';
	ad_call += '/AAMALL/SITE=' + key_atlas + '/ACC_RANDOM=' + Math.round(Math.random() * 1000000) + '/PAGEID=' + Math.round(Math.random() * 1000000);
	ad_call += '/AREA=' + site_area.toUpperCase();
	
	//	Ads turned off
	if (ad_testing == 'OFF') return false;
	
	//	Prepare ads. Set blank vars and map 
	$('.ad').each(function(i)
	{
		var aamb = 'AAMB' + (i+1);
		eval(aamb + ' = "";');
		ad_map[this.id] = {
			data: aamb,
			size: $(this).attr('class').replace(/(\s)*ad(\s)*/, '')
		}
		ad_call += '/' + aamb + '/AAMSZ=' + ad_sizes[ad_map[this.id].size].old_size_desc;
	})

	//	Make adserver call
	$.getScript(ad_call, function()
	{
		$.each(ad_map, function(i, v)
		{
			if (i != 'ad_overlay')
			{
				//	Filter blank ads, move ad code to ad map & delete global 
				var ad_code = eval(v.data);
				//eval('delete ' + v.data + ';');
				v.data = (ad_code.search(/[AE0|AE1]\.gif/) < 0) ? ad_code : '';				
			}
		});
		
		render_ads();
	});
}


/**
 * Retrieves display code for var and populates
 */	
function render_ads()
{
	$('.ad').each(function(i)
	{
		if (ad_map[this.id].data) 
		{
			//	No iframes for simple text ads 
			if ($(this).hasClass('spon_post') || $(this).hasClass('spon_list')) 
			{
				render_text_ad(this.id);
			}
			else 
			{
				render_media_ad(this.id);
			}
		}
		else
		{
			handle_missing_ad(this.id);
		}
	})
}


/**
 *	Changes display if ads are missing
 */	
function handle_missing_ad(ad_div)
{
	var $el = $('#' + ad_div);
	switch ($el.attr('id'))
	{
		case 'right_skyscraper':
			$el.css('visibility', 'hidden');
			break;
			
		default:
			$el.css('display', 'none');
	}
}


/**
 *	Quick test creation of modal/overlay
 */	
function test_modal(txt)
{
	if (! txt || txt == null || txt == undefined) 
	{
		txt = '<p>Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium.</p>';
	}
	if (txt == 'img') 
	{
		txt = '<img src="http://dev.paidcontent.org/images/site/logo_pc_main.png" alt="paidContent"/>';
	}
	var $modal = $('<div id="test_modal" class="jqmWindow modal_alert">' + txt + '</div>').appendTo('body').jqm();

	$modal.jqmShow();
}


/**
 *	Centers modal/overlay based on window dimensions
 */	
function size_modal($modal)
{
	var $win = $(window);
	var l = Math.floor(($win.width() - $modal.width()) / 2);
	var h = $win.height();
	var t = Math.floor(($win.height() * .7 - $modal.height()) / 2);
	console.debug('win ', $win.width(), $win.height());
	console.debug('modal ', $modal.width(), $modal.height());
	console.debug('l', l, ' | h ', h, ' | t ', t);
	$modal.css({
		'top': t + 'px',
		'left': l + 'px'
	});
	
	return $modal;	
}


/**
 *	Ajax load of partial logout screen into modal/overlay
 */	
function set_logout_redirect()
{ 
	$('a[title="Logout"], a[title="logout"]').click(function(e)
	{
		var $logout = $('<div id="logout_overlay" class="jqmWindow modal_alert"></div>').appendTo('body').jqm();
		$logout.load('/?ACT=10 h1, p:first', function(txt, status, req)
		{
			$lo = $(this);
			size_modal($lo).jqmShow();
			
			window.setTimeout(function($lo)
			{
				$lo.fadeOut(400, function()
				{
					window.location = window.location.href;
				})
			}, 400, $lo)
		});
		
		return false;
	})
}		


/**
 *	Sneaks url from cookie into hidden field of login form
 */	
function set_login_redirect(action)
{ 
	if (action == 'login_page' || action == 'article_page') 
	{	
		$redir_inp = $('<input type="hidden" name="login_origin" value="' + $.cookie('log_ret') + '"></input>');
		$redir_inp.appendTo('form[name="login_form"] div.hiddenFields');
	}
}


/**
 *	Determines page & takes action as needed to handle logins
 */	
function login_handler()
{	
	//	Record current page in cookie for all pages except login
	if (window.location.pathname.slice(0, -1) != '/member/login') 
	{
		$.cookie('log_ret', window.location.href, {path: '/'});
			
		if (site_area == 'article')
		{
			set_login_redirect('article_page');
		}
	}
	else 
	{
		set_login_redirect('login_page');
	}
	
	set_logout_redirect();
}


/*
================
 Document Ready 
================
*/

$(document).ready(function()
{
	//	Common	
	DD_roundies.addRule('#network_menu a', '3px 3px 0 0', true);
	abn_box_handler();
	text_input_handler();
	image_preload();
	image_lightbox_handler();
	ajaxify_handler();
	match_heights();
	login_handler();

	$('#contributors li:last').addClass('last');
	
	//	Area-specific scripts		
	switch (site_area)
	{
		case 'home':
			if (site_area == 'home' && ! $('body').hasClass('news')) $('body').addClass('news');
			fitted_handler();
			$('.news #left_column .entry:first').addClass('first');
			$('#top_headlines li:last, #most_popular li:last').addClass('last');
			$('#left_column .featured.half:odd').addClass('odd');
			break;
			
		case 'topic':
			$('#top_headlines li:last, .nielson li:last').addClass('last');
			break;
			
		case 'topics':
			$('#topic_list ul.subcats').each(function() {
				$(this).children('li:last').addClass('last');
			});
			break;
			
		case 'article':
			font_size_handler();
			scroll_to_anchor('.entry_menu.top .comments a');
			scroll_to_anchor('.comments a.button');
			$('#related ul li:last').addClass('last');
			comment_pages();
			break;

		case 'events':
			break;
			
		case 'event':
			ajaxify_event_sections();
			break;

		case 'reports':
			$('#left_column .report:odd').addClass('odd');
			break;

		case 'member':
			account_fields_handler();
			registration_account_info_handler();
			break;
			
		case 'twitter':
			$('.tweet:last, .twitter_menu li:last').addClass('last');
			start_twitter_refresh('1');
			break;
			
		case 'bio':
			$('.tweet:last').addClass('last');
			start_twitter_refresh('1');
			fix_bio_width();
			break;

		case 'member':
			break;
						
		case 'results':
			do_search_tasks(); 
			break;
			
		case 'none':
			do_search_tasks(); 
			break;
												
		default: break;
	}

	//	Advertising
	prep_ads();

});