
var comments;
var sizes = new Array();
var html = new Array();
var inner;
var comment;
var comment_inner;
var mySlide;
var index = 0;		
var indexMax = 0;
var interval;
var stop = 0;		

window.addEvent('domready',function(){
	
	if(!$('hp_comments')) return;
	
	comments = $('hp_comments').getChildren();					
	comments.each(function(item, index){
				
		inner = item.getElement('.hp_comment_html');
		if(inner.get('text').length > 250){
			inner.set('text',inner.get('text').substr(0,220)+'... ')
			var link = new Element('a',{
				href: document.location.href+'?func=loadComments'
			}).set('text','read full review').addEvent('click', showAll)
			
			link.inject(inner, 'bottom')
		}
		sizes[index] = item.getSize()
		html[index] = inner.get('html');		
	    if(index == 0){
	    	comment = inner;
	    }else{
	    	item.setStyle('display','none');
	    }
	});
	
	indexMax = comments.length;
	
	mySlide = new Fx.Slide(comment,{
		onComplete: setComment
	});		
	
	comment_inner = $('hp_comments').getElement('.hp_comment_inner');
	comment_inner.setStyle('height',getCommentInnerHeight());	
	
	
	
	if(indexMax > 1){
		commentsStart();	
		$('hp_comments').addEvent('mouseover',commentsStop)	
		$('hp_comments').addEvent('mouseout',commentsStart)	
	}
	
	if($('hp_comment_all')) $('hp_comment_all').addEvent('click',showAll).setStyle('display','block').setStyle('cursor','pointer');
})

function showAll(e){
	
	new Event(e).stop();
	var comment = window.open (this.href+'&tmpl=component', "commentsWindow","scrollbars=1,menubar=0,resizable=1,width=250,height=350"); 
	comment.focus();
	
	return;
	stop = 1;
	commentsStop();
	mySlide = null;
	comment.set('html', html[0]);
	comments.each(function(item){
		item.setStyle('display','block');
	});
	this.dispose();
}

function switchComment(){				
	mySlide.slideOut();						
}	

function commentsStart(){ if(!stop) interval = setInterval('switchComment()',10000) }

function commentsStop(){ clearInterval(interval) }

function setComment(){
	if(!mySlide.open){
		index++;	
		comment.set('html', html[getIndex()]);
		new Fx.Morph(comment_inner,{duration: 500}).start({'height': getCommentInnerHeight() });								
		mySlide.slideIn();	
	}
}

function getCommentInnerHeight(){
	return sizes[getIndex()].y - (comment_inner.getStyle('padding-top').toInt() + comment_inner.getStyle('padding-bottom').toInt());
}

function getIndex(){				
	if(index >= indexMax) index = 0;
	return index;				
}
