YAHOO.namespace('BEBO');


YAHOO.BEBO.videocomments = (function() {
    var uniqueInstance;
    function constructor() { 
    	
    	 var disableForm = function(evt,args){
    	 	if(args[0].update === undefined){
    	 		return;
    	 	}
        	YAHOO.BEBO.textCounter.reset();
        	var A = YAHOO.util.Dom.get('videocommentsform');
        	var B = YAHOO.util.Dom.get('videocomments');
        	var trs = B.getElementsByTagName('TR');
        	var last = trs[7]; //tr that will have color anim applied upon successful sumbission
       
                var animA = new YAHOO.util.Anim(A, {
                    height: {
                        to: 0
                    }, opacity: {to:0}
                },
                1, YAHOO.util.Easing.easeOut);

                animA.onComplete.subscribe(function() {
                	//hide the form
                    YAHOO.util.Dom.setStyle(A, 'visibility', 'hidden');                     
                });
                
                var attributes = {
        				backgroundColor: { to: '#FFFFFF' }
    				 };
    			var color = new YAHOO.util.ColorAnim(last, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 3, YAHOO.util.Easing.easeOut); 

    			animA.animate();            
           		color.animate();
                
         };
        
        var init = function() {
            var MAXCHAR = 1000;
            var videocommentsform = {};
            videocommentsform.link = YAHOO.util.Dom.get('videocommentsform');
            videocommentsform.consumer = new YAHOO.BEBO.ajaxNess(videocommentsform.link, {
                trigger: ['progresslabel', 'Saving'],
                update:  ['replace', 'videocomments'],
                message: ['message', 'status'],
                done: disableForm
            });
            textarea = YAHOO.util.Dom.get("videocommentstextarea");
            YAHOO.BEBO.textCounter.getInstance(textarea, textarea.form.counter, MAXCHAR);

        };
        YAHOO.util.Event.onAvailable('videocommentsform', init);
    }
    return {
        getInstance: function() {
            if (!uniqueInstance) {
                //Instantiate only if the instance doesn't exist
                uniqueInstance = constructor();
            }
            return uniqueInstance;
        }
    }
})();

YAHOO.BEBO.videocomments.getInstance();