var commentHandle="/TE_CommentSystem/TE_CommentSystem.php";var TECommentSystem=function(){	var $A=YAHOO.util.Anim,$C=YAHOO.util.Connect,$D=YAHOO.util.Dom,$E=YAHOO.util.Event,$U=YAHOO.util;	var callbackObj={},retObj={handle:'',container:'',captcha:''};function _parseJSON(str){	return(/^(\s+|[,:{}\[\]]|"(\\["\\\/bfnrtu]|[^\x00-\x1f"\\]+)*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null)+$/.test(str))&&eval('('+str+')');}function _setMssg(elem,mssg){	var errorMSSG=$D.getElementsByClassName('comment_error','DIV',elem);	if(errorMSSG.length!=0)	{		if(mssg.length==0)		{			$D.setStyle(errorMSSG[0],'visibiliy','hidden');			$D.setStyle(errorMSSG[0],'display','none');		}		else		{			$D.setStyle(errorMSSG[0],'visibiliy','visible');			$D.setStyle(errorMSSG[0],'display','block');		}		errorMSSG[0].innerHTML=mssg;	}	else	{		alert(mssg);	}}function collapseExpand(elem){	$E.preventDefault('click');	var toModify=$D.getElementsByClassName('comment_body',null,elem),attr,anim;	if(elem.innerHTML=='[+]')	{		elem.innerHTML='[-]';	}	else	{		elem.innerHTML='[+]';	}		while(toModify.length==0&&elem)	{		elem=elem.parentNode;toModify=$D.getElementsByClassName('comment_body',null,elem);	}		if(toModify.length>0)	{		$D.setStyle(toModify[0],'overflow','hidden');		var start=function()		{			$D.setStyle(toModify[0],'overflow','hidden');		};				var finish=function()		{			$D.setStyle(toModify[0],'overflow','auto');		};				if($D.hasClass(toModify[0],"item_collapsed"))		{			attr={height:{to:toModify[0].getAttribute('myOffset')}};					$D.removeClass(toModify[0],"item_collapsed")		}		else		{			toModify[0].setAttribute('myOffset',toModify[0].offsetHeight,true);			attr={height:{to:0}};					$D.addClass(toModify[0],"item_collapsed")		}				anim=new $A(toModify[0],attr,0.7,$U.Easing.easeOut);		anim.onStart.subscribe(start);		anim.onComplete.subscribe(finish);		anim.animate();	}};	function setHandle(handle){	retObj.handle=handle;};function setCaptchaElement(captcha){	retObj.captcha=captcha;}	function setContainer(container){	retObj.container=container;	loadComments();};function loadComments(){	transObj=$C.asyncRequest('POST',retObj.handle,callbackObj,"action=get&from="+document.location);};function postComment(formObj,container){	formObj.onsubmit=function()	{return false;};	_setMssg(formObj,'');	$C.setForm(formObj);	callbackObj.argument=formObj;transObj=$C.asyncRequest('POST',retObj.handle,callbackObj,"action=insert&from="+document.location);};function postSuccess(o){	var commentObj=_parseJSON(o.responseText),errorMSSG;	if((commentObj)&&(typeof commentObj=='object'))	{		if(commentObj.comments)		{			for(var i=commentObj.comments.length-1;i>=0;i--)			{				insertComment(commentObj.comments[i]);			}						if(o.argument)			{				o.argument.reset();			}		}	}	else	{		if(o.argument)		{			_setMssg(o.argument,o.responseText);		}	};	reloadImg();};function postFailure(o){	if(o.argument)	{		_setMssg(o.argument,o.responseText);		o.argument.reset();	}		reloadImg();};function insertComment(cItem){	var commentsContainer,sItem="<div class='item_container'>";	cItem.commentBody=cItem.commentBody.replace(/\\n/gi,'<br>');	sItem+="<div class='comment_item'>"+"<div class='comment_author'><a href='javascript:void(0)' class='expand_control' onclick='TECommentSystem.collapseExpand(this)'>[-]</a>&nbsp;&nbsp;"+((cItem.authorSite)?"<a href='"+cItem.authorSite+"' target='_blank'>"+cItem.commentAuthor+"</a>":cItem.commentAuthor)+"&nbsp;<small>"+cItem.commentDate+"</small></div>"+"<div class='comment_body'>"+cItem.commentBody+"</div>"+"</div>";commentsContainer=$D.get(retObj.container);		if(commentsContainer)	{		commentsContainer.innerHTML+=sItem;	}};function reloadImg(){	if(retObj.captcha!='')	{		captchaIMG=$D.get(retObj.captcha);		if(captchaIMG&&retObj.handle!='')		{			captchaIMG.src=retObj.handle+"?.png"+Math.random();		}	}};callbackObj.success=postSuccess;callbackObj.failure=postFailure;retObj.post=postComment;retObj.collapseExpand=collapseExpand;retObj.setHandle=setHandle;retObj.setContainer=setContainer;retObj.setCaptcha=setCaptchaElement;return retObj;}();YAHOO.util.Event.addListener(window,'load',function(){	TECommentSystem.setHandle(commentHandle);	TECommentSystem.setContainer('commentContainer');	TECommentSystem.setCaptcha('commentCaptcha');});