if (document.getElementById && document.getElementsByTagName) {
	if (window.addEventListener) window.addEventListener('load', initScrollBars, false);
	else if (window.attachEvent) window.attachEvent('onload', initScrollBars);
}

function initScrollBars() {
	CSBfleXcroll('kidsReviewsScrollable');
}

function openReview() {
	var complete = function() {
		$('openButton').setStyle({display:'none'});
		$('closeButton').setStyle({display:'block'});
		$('submitButton').setStyle({display:'block'});
	}

	new Effect.SlideDown('writeReviewContainer', {afterFinish: complete, duration:0.4});
}

function closeReview() {
	var complete = function() {
		$('closeButton').setStyle({display:'none'});
		$('submitButton').setStyle({display:'none'});
		$('openButton').setStyle({display:'block'});
		updateReviewMessage('');
		updateReviewBox('');
	}

	new Effect.SlideUp('writeReviewContainer', {afterFinish: complete, duration:0.4});
}

function submitReview() {
	var reviewBox = $('reviewBox');
	
	//check if user is logged in:
	if(!reviewBox) return;
	
	var reviewText = reviewBox.value;
	
	//check if user supplied a rant:
	if(reviewText == '') {
		updateReviewMessage('Please fill out your rant before submitting.');
		return;
	}
	
	//get the blast ID:
	var bid = $F('bid');
	
	updateReviewMessage('<img src="/images/blast/reviews/loader.gif" /> Saving...');
	
	new Ajax.Request('/scripts/blast/saveBlast.php', {
		method:'post',
		parameters: {review: reviewText, blastID: bid},
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON(true);
			
			if(json.message == 'success') {
				updateReviewMessage('Thank you. Your review has been submitted.');
				updateReviewBox('');
			} else if(json.message == 'profanity') {
				updateReviewMessage('Your review contains profanity.  Please try again.');
				updateReviewBox('');
			} else				
				updateReviewMessage('Sorry, we could not complete your submission at this time.  Please try again.');
		},
		onFailure: function() {
			updateReviewMessage('Sorry, we could not complete your submission at this time.  Please try again.');
		}
	});

}

function updateReviewMessage(message) {
	var err = $('reviewSubmitError');
	if(err) err.update(message);
}

function updateReviewBox(message) {
	var reviewBox = $('reviewBox');
	if(reviewBox) reviewBox.value = message;
}

function preloadLoaderGif() {
	//preload the loader gif:
	var img = new Image();
	img.src = '/images/blast/reviews/loader.gif';
}
preloadLoaderGif();

function moveLeft() {
	var ele = $('moveableContent');
	var limits = $('otherBlastsLimits');
	var cell = $$('#moveableContent table tr td div');
	var increment = cell[0].getWidth();
	
	
	var widthLimit = limits.getWidth();
	var width = ele.getWidth();
	var widthDiff = width - widthLimit;		

	var offset = ele.positionedOffset();
	//var curLeft = parseInt((ele.getStyle('left')).replace('px', ''));
	curLeft = offset[0];
	curLeft = curLeft - increment;
	if(curLeft*(-1) - 20 > widthDiff) return; 	
	
	var remainder = curLeft % increment;
	if(remainder != 0) {
		//ignore this 'click' as the element is currently being moved
		//by a previous click.
		return;
	}
	
	//ele.setStyle({left: curLeft});
	//ele.morph('left:' + curLeft);
	new Effect.Move(ele, { x: curLeft, y: 2, mode: 'absolute', duration:0.3});
}

function moveRight() {
	var ele = $('moveableContent');
	var width = ele.getWidth();
	var offset = ele.positionedOffset();
	var cell = $$('#moveableContent table tr td div');
	var increment = cell[0].getWidth();
	//var curLeft = parseInt((ele.getStyle('left')).replace('px', ''));
	curLeft = offset[0];
	//var curLeft = parseInt((ele.getStyle('left')).replace('px', ''));
	curLeft = curLeft + increment;
	
	if(curLeft > 0) return;	
	
	var remainder = curLeft % increment;
	if(remainder != 0) {
		//ignore this 'click' as the element is currently being moved
		//by a previous click.
		return;
	}
	
	//ele.setStyle({left: curLeft});
	//ele.morph('left:' + curLeft);
	new Effect.Move(ele, { x: curLeft, y:2, mode: 'absolute', duration:0.3});
}

