function getjson( url , container, vars, bookmark )
{

	var containers = container.split("/");
	
	if (bookmark != false) {
		// SET URL HASH FOR BOOKMARKS
		var requestUri = get_request_uri(url);
		window.location = '#' + requestUri; // + '/container/' + container;
		//$.history.load( requestUri );
	}
	
	if( vars == null )
	{
		var vars = '';
	}
	
	$('.ajax_loader').fadeIn('fast');
	
	try{
		$.post( url , vars , function( data ){
			
			var json = data;
			
			for( var i = 0 ; i < json.response.length; i++ )
			{
				
				switch( json.response[i].type )
				{
					case 'HTML':
						$(containers[i]).html(json.response[i].data);
						break;
					case 'SUCCESS':
						success( json.response[i].data );
						break;
					case 'WARNING':
						warn( json.response[i].data );
						break;
					case 'JSCRIPT':
						eval( json.response[i].data );
						break;
				}
				
			}
			
			// Google Analytics
//			if ( pageTracker != undefined && bookmark != false ) {
//				pageTracker._trackPageview(requestUri);
//			}
			
			$('.ajax_loader').hide();
			
		},'json');
	}
	catch(e){
		warn(e);
		$('.ajax_loader').hide();
	}
	
	return false;
	
}


function aj(url,container)
{
	$(".ajax_loader").show();
	
	$.get(url, function(data){
		$(container).html(data);
		$(".ajax_loader").hide();
	});
	return false;
}


function clearfield(elem){
	if(elem.value==elem.defaultValue){
		$(elem).val('');
		$(elem).removeClass('empty');
	}
}


function init_more_links()
{
	$('.more_links a').click(function(){
		var hidden_elem = $(this).parents('.search_links').children('.extra_search_links:hidden');
		var visible_elem = $(this).parents('.search_links').children('.extra_search_links:visible');
		var more_elem = $(this).parents('.search_links').children('.more');
		var less_elem = $(this).parents('.search_links').children('.less');
		
		if( hidden_elem.length > 0 )
		{
			$(hidden_elem).slideDown( function(){
				$(more_elem).hide();
				$(less_elem).css('display','block');
			});
		}
		else
		{
			if (visible_elem.length > 0) {
				$(visible_elem).slideUp(function(){
					$(less_elem).hide();
					$(more_elem).css('display','block');
				});
			}
		}
		
		return false;
	});
}

function init_more_authors()
{
	$('.extra_authors').hide();
	$('.less_authors').hide();
	
	$('.more_authors').click( function(){
		$('.more_authors').hide();
		$('.less_authors').show();
		$('.extra_authors').slideDown();
		return false;
	});

	$('.less_authors').click( function(){
		$('.more_authors').show();
		$('.less_authors').hide();
		$('.extra_authors').slideUp();
		return false;
	});
}


function tab_filter( url )
{
	var q_elem = $('#mini_search #mini_q');
	var topic_elem = $('#mini_search #mini_topic');
	
	var q = '';
	var topic = '';
	
	if (q_elem.length > 0) {
		
		q = encodeURIComponent( q_elem.val() );
		
		if (q == 'Search...') {
			q = '';
		}
		
	}

	if (topic_elem.length > 0) {
		topic = encodeURIComponent( topic_elem.val() );
	}

	return getjson( url + '?q=' + q + '&topic=' + topic, '#tabs' );
}


function share_email( url )
{
	var post_array = new Array();
	var ajax_url = url;
	
	$('#TB_window input, #TB_window textarea').each(function(){
		post_array.push( encodeURIComponent( $(this).attr('name') ) + '=' + encodeURIComponent( $(this).val() ));
	});
	
	getjson( url, '#TB_ajaxContent', post_array.join('&') );
	return false;
} 

function init_rss()
{
	
	$('div.rssfeed').each(function(){
		getjson( $(this).attr('title'), '#' + $(this).attr('id'), null, false );
		$(this).attr('title','');
	});
}


function init_checklist()
{	
	$('ul.tree_checklist li input').click(function(){
		var id = $(this).parent('li').attr('id');
		
		if (!$(this).attr('checked')) {
			$(this).parent('li').removeClass('visible');
			$(this).parent('li').addClass('hidden');
			$('ul.tree_checklist li#'+id+' input').attr('checked', '');
		}else{
			$(this).parent('li').addClass('visible');
			$(this).parent('li').removeClass('hidden');
			$('ul.tree_checklist li#'+id+' input').attr('checked', 'checked');
		}
	});
	
	$('ul.tree_checklist li input:checked').each(function(){
		$(this).parent('li').addClass('visible');
		$(this).parent('li').removeClass('hidden');
	});
	
}

function same_address()
{
	elem = $('#sameaddress');
	
	if (!$(elem).attr('checked')) {
		$('#delivery_address').slideDown();
	}else{
		$('#delivery_address').slideUp();
	}
}

function get_ajax_request_uri( url )
{
	url = url.replace("http://","");
	requestUriArray = url.split('/');
	requestUriArray.shift();
		
	return requestUriArray.join('/');
}

function get_request_uri( url )
{
	var requestUri = '';
	var elementPosition = -1;
	var qstring_array = url.split('?');
	var qstring = '';
	
	if (qstring_array.length > 1) {
		qstring = qstring_array[1];
	}
	
	url = url.replace("http://","");
			
	requestUriArray = url.split('/');
	requestUriArray.shift();
	
	for( var i = 0; i < requestUriArray.length; i++ )
	{
		if( requestUriArray[i] == 'element' || requestUriArray[i] == 'container' )
		{
			elementPosition = i + 1;
		}
		else
		{
			if( elementPosition != i )
			{
				requestUri += '/' + requestUriArray[i];
			}	
		}
	}
	
	return requestUri + ( qstring != '' ? '?' + qstring : '' );
}

function getContainers( url )
{
	var containerArray = url.split('/container/');
	return containerArray[1];
}

function getAjaxUrl( url )
{
	var containerArray = url.split('/container/');
	return containerArray[0];
}

function ajax_bookmark()
{
	var requestUrlArray = window.location.href.split('#');
	
	if (requestUrlArray.length > 1) {
		
		if (requestUrlArray[1].indexOf('/') == 0) {
			var requestUri = get_request_uri(requestUrlArray[0]);
			
			requestUrlArray.shift();
			
			var ajaxBookmark = requestUrlArray.join('#');
			var bookmark = get_request_uri(ajaxBookmark);
			
			var ajaxBookmarkUrl = get_request_uri(ajaxBookmark)
			var containers = getContainers(ajaxBookmark);
			
			if (requestUri != bookmark) {
				window.location = ajaxBookmark;
				//getjson( ajaxBookmarkUrl, containers )
				//console.log(requestUri + ' != ' + bookmark);
			}
		}
	}
	return false;
}

ajax_bookmark();

$(document).ready(function(){
	init_more_links();
	init_more_authors();
	init_rss();
	init_checklist();
	//$('.js_highlight').glow('#FFFF99', 4000);
	//$('select.styled').sSelect({ddMaxHeight: '250px'});
	//$.history.init(ajax_bookmark);
});

var cur_cal = '';

function reload_cal(year,month) {											
	// Ajax
	
	$.get("ajax.php", { type: 'calendar', year: year, month: month }, function(data)
	{	
		cur_cal = '';
		$('#calendar').html(data);
		//$('#calendar').slideDown('slow');
	});
}

function cal(year,month) {											
	// Ajax
	if($('#cal_pop').is(":visible")){
		$('#cal_pop').slideUp('slow',function(){
	//if($('#calendar').is(":visible")){
		//$('#calendar').slideUp('slow',function(){
			reload_cal(year,month);
		});
	}else{
		reload_cal(year,month);
	}
}

function caltog_slide(new_cal){
	var day_entries = $('#'+new_cal).html();
	$('#cal_pop').html(day_entries);
	$('#cal_pop').slideDown();
}

function caltog(new_cal){
	
	if(new_cal != cur_cal){	
		if($('#cal_pop').is(":visible")){
			$('#cal_pop').slideUp('slow',function(){	  
					caltog_slide(new_cal);
					cur_cal = new_cal;
			});
		}else{
			caltog_slide(new_cal);
			cur_cal = new_cal;
		}
	}
	
}

function ajax_fetch(x,y)
{ return true; }


function plasma( video_path , image_path , description )
{
	try
	{
		clearInterval(intervalId);
	}
	catch(e)
	{
	}
	
	$('select').hide();
	
	if( video_path.lastIndexOf(".flv") != -1 )
	{
		var so = new SWFObject('assets/flash/mediaplayer.swf','mpl','680','450','8');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addVariable('height','450');
		so.addVariable('width','680');
		so.addVariable('file',video_path);
		so.addVariable('image',image_path);
		so.addVariable('autostart','true');
		so.write('player');
		$('#plasma #panel_strap').html( '' );
		$('#plasma #description').html( description );
	}
	
	if( video_path.lastIndexOf(".mp3") != -1 )
	{
		var so = new SWFObject('assets/flash/mediaplayer.swf','mpl','680','20','8');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addVariable('height','20');
		so.addVariable('width','680');
		so.addVariable('file',video_path);
		so.addVariable('image',image_path);
		so.addVariable('autostart','true');
		so.write('player');
		$('#plasma #panel_strap').html( '<img src="/assets/images/mic.gif" /> ' + description );
		$('#plasma #description').html( '' );
	}

	
	
	$('#plasma').fadeIn('fast');
	
	//$('#outer_wrapper').fadeTo('fast',0.2);
	return false;

}

function hideplasma()
{
	$('select').show();
	$('#plasma').fadeOut('slow');
	//$('#outer_wrapper').fadeTo('fast',1);
	return false;
}


$(document).ready(function(){
	// Show sublinks - uses a.active on parent
	
	var active_div = $('#right_col .main_links a.active');
	var parent_div = $(active_div).parent();
	
	// Only try to show if sublinks exist
	if($('.sub_link', parent_div).length > 0)
	{
		$(active_div).addClass('shown');
		$('.sub_link', parent_div).show();
	}
	
	$('.addappointment').hover(
	function () {
		$(this).css('background-position','0px -12px');
	},
	function () {
		$(this).css('background-position','0 0');
	}
	);
	
});


function show_sublinks(div)
{
	if($(div).hasClass('shown'))
	{
		// Hide all open sublinks
		$('#right_col .main_links .sub_link').hide();
		
		// Remove any instances of shown class
		$('#right_col .main_link a.shown').removeClass('shown');
	}
	else
	{
		// Hide all open sublinks
		$('#right_col .main_links .sub_link').hide();
		
		// Remove any instances of shown class
		$('#right_col .main_link a.shown').removeClass('shown');
		
		// Add shown to triggered class
		$(div).addClass('shown');
		
		var target_div = $(div).parent();
		$('.sub_link',target_div).show();
	}
	
	
}


function reply( comment_id )
{
	if( comment_id == '' )
	{
		$('#response').hide();
		$('#response_comment').html('');
	}
	else
	{
		var html = $('#comment_' + comment_id).html();
		$('#response').show();
		$('#response_comment').html(html);
	}
	
	$('input#parent_comment').val(comment_id);
	
}

function add_user(id)
{
	var user_title = $('.link_'+id).html();
	
	if ($('#user_link_' + id).length == 0 ) {
		var html = '<div class="link left" id="user_link_' + id + '"><p><a class="left close" href="#" onclick="return remove_user(\'' + id + '\');"></a>'+ user_title +'</p></div>';
		var field = '<input name="recipient[]" type="hidden" value="'+id+'" id="user_link_field_'+id+'" />';
		$('div#linked_user_items').append(html);
		$('div#linked_user_fields').append(field);
		
	}
	else
	{
		warn('"' + user_title + '" has already been linked');
	}
	
	return false;
}

function remove_user(id)
{
	$('#user_link_'+id).remove();
	$('#user_link_field_'+id).remove();
	return false;
}