var currentPage = 1;
var maxPages = 0;

//Added by Jan-Erik
var tccommentsonChange;

jQuery(function(){
	jQuery.getJSON(unescape(url),{'p': currentPage,'timestamp':start.getTime()},function(data){
		if (data.error == undefined) {
			checkDOM();
			
			if (data.maxpages > 1) {
				initPager(data.maxpages);
			} else {
				jQuery('.tccomments .browseBoxWrap')
					.hide()
					.prev('.dotted_line')
					.hide();
			}
			updateCommentContent(data.content);
		} else {
			updateCommentError(data.error);
		}
	});
});

var checkDOM = function() {
	if (jQuery('.tccomments .commentContent').length < 1) {
		jQuery('.tccomments')
			.append(
				jQuery('<div></div>')
					.addClass('commentContent')
			);
	}
	
	if (jQuery('.tccomments .browseBoxWrap').length < 1) {
		jQuery('.tccomments')
			.append(
				jQuery('<div></div>')
					.addClass('dotted_line')
					.hide()
			);
		jQuery('.tccomments')
			.append(
				jQuery('<div></div>')
					.addClass('browseBoxWrap')
					.append(
						jQuery('<div></div>')
							.addClass('browseLinksWrap')
					)
					.hide()
			);
	}
}

function updateComments(p) {
	jQuery.getJSON(unescape(url),{'p': p,'timestamp':start.getTime()},function(data){
		if (data.error == undefined) {
			checkDOM();
			updatePager(p,data.maxpages);
			updateCommentContent(data.content);
		} else {
			updateCommentError(data.error);
		}
	});
}

function initPager(mp) {
	if (mp > 10) {
		offset = 10;
	} else {
		offset = mp;
	}
	
	for(i=1;i<=offset;i=i+1) {
		if (i == currentPage) {
			jQuery('.tccomments .browseLinksWrap')
				.append(jQuery('<span></span>')
					.addClass('activeLinkWrap p'+i)
					.append(jQuery('<a></a>')
						.attr({'href':'javascript:updateComments('+i+');'})
						.html(i)
					)
				);
		} else {
			jQuery('.tccomments .browseLinksWrap')
				.append(jQuery('<span></span>')
					.addClass('inactiveLinkWrap p'+i)
					.append(jQuery('<a></a>')
						.attr({'href':'javascript:updateComments('+i+');'})
						.html(i)
					)
				);
		}
	}
	
	if (mp > 1) {
		jQuery('.tccomments .browseLinksWrap')
			.append(jQuery('<span></span>')
				.addClass('inactiveLinkWrap pnext')
				.append(jQuery('<a></a>')
					.attr({'href':'javascript:updateComments('+(currentPage+1)+');'})
					.html(lblNext)
				)
			);
	}
	
	maxPages = mp;

	jQuery('.tccomments .browseBoxWrap')
		.show()
		.prev('.dotted_line')
		.show();
}

function togglePager(obj) {
	if(!obj.hasClass('activeLinkWrap')) {
		obj
			.parent()
			.children()
			.each(function(){
			if (jQuery(this).hasClass('activeLinkWrap')) {
				jQuery(this)
					.removeClass('activeLinkWrap')
					.addClass('inactiveLinkWrap');
			}
		});
		obj
			.removeClass('inactiveLinkWrap')
			.addClass('activeLinkWrap');
	}
}

function updatePager(p,mp) {
	if (mp > 1) {
		jQuery('.tccomments .browseBoxWrap')
			.show()
			.prev('.dotted_line')
			.show();
	} else {
		jQuery('.tccomments .browseBoxWrap')
			.hide()
			.prev('.dotted_line')
			.hide();
	}
	
	if (p > 1) {
		if (jQuery('.tccomments .browseLinksWrap .pprev').length > 0) {
			jQuery('.tccomments .browseLinksWrap .pprev a').attr({'href':'javascript:updateComments('+(p-1)+');'});
		} else {
			jQuery('.tccomments .browseLinksWrap')
				.prepend(jQuery('<span></span>')
					.addClass('inactiveLinkWrap pprev')
					.append(jQuery('<a></a>')
						.attr({'href':'javascript:updateComments('+(p-1)+');'})
						.html(lblPrev)
					)
				);
		}
	} else {
		jQuery('.tccomments .browseLinksWrap .pprev').remove();
	}
	
	if (mp != maxPages) {
		if (mp > maxPages) {
			var content;
			if (mp > 10) {
				offset = 10;
			} else {
				offset = mp;
			}
			
			if (jQuery('.tccomments .browseLinksWrap').children('.p'+maxPages).length > 0) {
				for(i=(maxPages+1);i<=offset;i=i+1) {
					jQuery('.tccomments .browseLinksWrap')
						.children('.p'+(i-1))
						.after(jQuery('<span></span>')
							.addClass('inactiveLinkWrap p'+i)
							.append(jQuery('<a></a>')
								.attr({'href':'javascript:updateComments('+i+');'})
								.html(i)
							)
					);
				}
			} else {
				for(i=1;i<=offset;i=i+1) {
					jQuery('.tccomments .browseLinksWrap')
						.append(jQuery('<span></span>')
							.addClass('p'+i)
							.append(jQuery('<a></a>')
								.attr({'href':'javascript:updateComments('+i+');'})
								.html(i)
							)
						);
				}
			}
		} else {
			for(i=(mp+1);i<=maxPages;i=i+1) {
				jQuery('.tccomments .browseLinksWrap')
					.children('.p'+i)
					.remove();
			}
		}
		maxPages = mp;
	}

	if (p > 10) {
		jQuery('.tccomments .browseLinksWrap')
			.children()
			.removeClass('activeLinkWrap')
			.addClass('inactiveLinkWrap');
	} else {
		togglePager(jQuery('.tccomments .browseLinksWrap .p'+p));
	}

	if (mp > 1 && p < mp) {
		if (jQuery('.tccomments .browseLinksWrap .pnext').length > 0) {
			jQuery('.tccomments .browseLinksWrap .pnext a').attr({'href':'javascript:updateComments('+(p+1)+');'});
		} else {
			jQuery('.tccomments .browseLinksWrap')
				.append(jQuery('<span></span>')
					.addClass('inactiveLinkWrap pnext')
					.append(jQuery('<a></a>')
						.attr({'href':'javascript:updateComments('+(p+1)+');'})
						.html(lblNext)
					)
				);
		}
	}	else {
		jQuery('.tccomments .browseLinksWrap .pnext')
			.remove();
	}
	
	currentPage = p;
}

function updateCommentContent(content) {
	jQuery('.tccomments .commentContent')
		.hide()
		.before(jQuery('<div></div>')
			.addClass('loading')
		)
		.empty();
	jQuery.each(content,function(){
		jQuery('.tccomments .commentContent')
			.append(
				jQuery('<div></div>').addClass('dotted_line')
		);

		var cssClass = 'name';
		if(this.official === '1') {
			cssClass = 'admin';
		}

		jQuery('.tccomments .commentContent')
			.append(
				jQuery('<div></div>')
					.addClass('commentEl')
					.append(jQuery('<div></div>')
						.addClass('image')
						.html(this.image)
					)
					.append(jQuery('<div></div>')
						.addClass('commentElContent')
						.append(jQuery('<div></div>')
							.addClass(cssClass)
							.html(this.name)	
						)
						.append(jQuery('<div></div>')
							.addClass('comment')
							.html(this.comment)
						)
					)
					.append(jQuery('<div></div>')
						.addClass('clearboth')
					)
			);
	});
	jQuery('.tccomments .loading').remove();
	jQuery('.tccomments .commentContent').show();

	//Added by Jan-Erik
	if(typeof(tccommentsonChange) == "function") {
		tccommentsonChange.call();
	}
}

function updateCommentError(error) {
/*
	jQuery('.tccomments .browseBoxWrap').hide().next('.csc-frame-rulerBefore').hide();
	switch (error) {
		case 'nocomments':
			jQuery('.tccomments .commentContent')
				.empty()
				.append(jQuery('<div></div>')
					.addClass('noComment')
					.html(lblNoComments)
				);
			break;
	}
*/
}