var ajaxedMore = new Array();

function ajaxShowMore(postid, throbberurl, morepageurl, apea_fx, dur) {
	Element.hide('show-inline-more-' + postid);
	
	if ( ajaxedMore[postid] ) {
		ajaxDisplayWhenLoaded(postid);
		return;
	} else {
		$('inline-more-notification-' + postid).innerHTML = 
			'<p align="center"><img src="' + throbberurl + '" alt="loading" /></p>';
		ajaxedMore[postid] = 
			new Ajax.Updater(
				'inline-more-' + postid,
				morepageurl,
				{
					method: 'post',
					postBody: 'id=' + postid,
					onComplete: ajaxWaitForHide(postid, apea_fx, dur)
				}
			);
	}
}

function ajaxWaitForHide(postid, apea_fx, dur) {
		Element.hide('inline-more-' + postid);
		setTimeout("ajaxDisplayWhenLoaded(" + postid + ",'" + apea_fx + "',"+dur+")", 600);
}

function ajaxHideMore(postid, fade_fx, DEF_DUR) {
	more = ('inline-more-' + (postid));
	switch(fade_fx){
		case 'BlindUp':
			Effect.BlindUp(more,{duration: DEF_DUR});
			break;
		case 'SlideUp':
			Effect.SlideUp(more,{duration: DEF_DUR});
			break;
		case 'Squish':
			Effect.Squish(more,{duration: DEF_DUR});
			break;
		case 'Fold':
			Effect.Fold(more,{duration: DEF_DUR});
			break;
		case 'Shrink':
			Effect.Shrink(more,{duration: DEF_DUR});
			break;
		case 'DropOut':
			Effect.DropOut(more,{duration: DEF_DUR});
			break;
		case 'Puff':
			Effect.Puff(more,{duration: DEF_DUR});
			break;
		case 'SwitchOff':
			Effect.SwitchOff(more,{duration: DEF_DUR});
			break;
		case 'Fade':
		default:
			Effect.Fade(more,{duration: DEF_DUR});
			break;
	}
	$(more).blur();
	
	setTimeout("Element.show('show-inline-more-" + postid + "')", (DEF_DUR*1000));
	Element.hide('hide-inline-more-' + postid);
}

function ajaxDisplayWhenLoaded(postid, apea_fx, DEF_DUR) {
	if ($('inline-more-' + postid).innerHTML.length < 100)
		setTimeout("ajaxDisplayWhenLoaded(" + postid + ",'" + apea_fx + "',"+DEF_DUR+")", 100);
	else{
		
		more = ('inline-more-' + (postid));
		switch(apea_fx){
			case 'BlindDown':
				Effect.BlindDown(more,{duration: DEF_DUR});
				break;
			case 'SlideDown':
				Effect.SlideDown(more,{duration: DEF_DUR});
				break;
			case 'Grow':
				Effect.Grow(more,{duration: DEF_DUR});
				break;
			case 'Appear':
			default:
				Effect.Appear(more,{duration: DEF_DUR});
				break;
		}
			
		$(more).blur();
		
		$('inline-more-notification-' + postid).innerHTML = '';
		Element.show('hide-inline-more-' + postid);
	}
}