


    YAHOO.moviezen.TalkWidget = function (talkCfg) { 
        this.init(talkCfg);
    };
    YAHOO.moviezen.TalkWidget.prototype = {
        init: function(talkCfg) {
            var oThis = this;
            
            // Create the config object
     		this.cfg = new YAHOO.util.Config(this);
            this.cfg.addProperty("formId", {value:'comment_form'});
            this.cfg.addProperty("textareaId", {value:'comment_text'});
            this.cfg.addProperty("countId", {value:'comment_char_count'});
            this.cfg.addProperty("submitId", {value:'comment_post_it'});
            this.cfg.addProperty("url", {value:'/talk/actor'});
            this.cfg.addProperty("limit", {value:1000});


    	    getEl(this.cfg.getProperty("textareaId")).disabled = false; 
    	    getEl(this.cfg.getProperty("textareaId")).value = ''; 
	    getEl(this.cfg.getProperty("submitId")).disabled = false;
            var links = YAHOO.util.Dom.getElementsByClassName('commentpost', 'a');
            YAHOO.util.Event.addListener(links, "click", show_comment_box_bottom);
            	    	
            if(talkCfg) {
     			this.cfg.applyConfig(talkCfg);
 	    	}
 	    	
            YAHOO.util.Event.addListener(this.cfg.getProperty("submitId"), "click", this.handleSubmit, this); 
        },
	    handleCount : function() {
	        //alert("lenght of textarea=" + getEl(this.textareaId).value.length);
    		if (getEl(this.cfg.getProperty("textareaId")).value.length <= this.cfg.getProperty("limit")) {
	    		getEl(this.cfg.getProperty("countId")).innerHTML = this.cfg.getProperty("limit")-getEl(this.cfg.getProperty("textareaId")).value.length;
		    	return true;
    		} else {
	    		alert("Please keep your comments under "+this.cfg.getProperty("limit")+" characters.  Thanks.");
		    	getEl(this.cfg.getProperty("textareaId")).value = getEl(this.cfg.getProperty("textareaId")).value.substring(0, this.cfg.getProperty("limit"));
			    return false;
    		}
	    },
	    
    	handleSubmit : function(e, el) {
    	    YAHOO.util.Event.stopEvent(e);
            YAHOO.util.Connect.setForm(el.cfg.getProperty("formId"));
        	var request = YAHOO.util.Connect.asyncRequest('POST', el.cfg.getProperty("url"), 
        	                                              {
        	                                               success: function(o) {
                                                                if (o.responseText == -1) {
                                                                    alert("Your comment could not be submitted");
                                                                } else {
                                                                    alert("Your comment has been succesfully submitted");
                                                                }
        	                                                
        	                                                },
        	                                                failure : function(o) {
        	                                                    alert("Your comment could not be submitted");
        	                                                }
        	                                               });
    	    getEl(el.cfg.getProperty("textareaId")).disabled = true;
	    	getEl(el.cfg.getProperty("submitId")).disabled = true;
		    return true;
    	}
    };
    



    function show_comment_box_bottom(e, el)
    {
       YAHOO.util.Event.stopEvent(e);
	   if (current_user != '') {
         var box_elem = document.getElementById("comment_box_bottom");
         box_elem.style.display="block";
         
         getEl('comment_text').focus();
       } else { 
         show_login_error();
       } 
       return false;
    };
    
    function hide_comment_box_bottom()
    {
         getEl("comment_box_bottom").style.display="none";
         return false;
    };

    YAHOO.util.Event.onDOMReady(
        function() {
            var links = YAHOO.util.Dom.getElementsByClassName('commentpost', 'a');
            YAHOO.util.Event.addListener(links, "click", show_comment_box_bottom);
        }
    
    );    



    var functionCalled = null;

    var nameWidget={sampleName:"Enter a name for the list",
        handleFocus:function(name){
            if(name.value==this.sampleName){
                name.value="";
            }
        },
        handleBlur:function(name){
            if(name.value==""){
            name.value=this.sampleName;
        }
    }};

    var descriptionWidget={sampleDescription:"Briefly, describe the list",
        handleFocus:function(desc){
        if(desc.value==this.sampleDescription){
        desc.value="";
        }
        },handleBlur:function(desc){
        if(desc.value==""){
        desc.value=this.sampleDescription;
        }
    }};



    function finishedListAdd()
    {
        
        
    }

    

            
    function showAddListRequest(callbackFn) {

        var submitForm = function()
        {        
    		var params = Form.serialize($('addListForm'));	
    		new Ajax.Request('/userlist/create', {parameters:params, asynchronous:true, evalScript:true, onComplete:finishedListAdd});
            return false;
        }
        
        var finishedListAdd = function(t)
        {
            //alert(document.getElementById('name').value);
            //alert("response is " + t.responseText);
            var fc = t.responseText.split("<br>");
            //alert("val1 is " + fc[0]);
            //alert("val2 is " + fc[1]);
            //callbackFn(document.getElementById('name').value, t.responseText);
            callbackFn(fc[0],fc[1]);
            Windows.focusedWindow.close();
            return true;
            //alert(t.responseText);
        }

        Dialog.confirm($('addListRequest').innerHTML, 
            {className:"alphacube", width:320, 
            showEffect: Effect.Appear,
            showEffectOptions: { 
                duration: 0.0
            },            
            okLabel: "Submit", cancelLabel: "Cancel", 
            onOk:function(win){
                var tmp_name = document.getElementById('name');
                if ((tmp_name.value == '')||
                    (tmp_name.value == nameWidget.sampleName)) {
                  $('error_msg').innerHTML='<i>The list name cannot be empty</i>'; $('error_msg').show(); 
                  Windows.focusedWindow.updateHeight();
                  return false; 
                }
                submitForm();
                return true;
            }
            });


    }
    
    


var DvdGalleryLinks = Class.create();
DvdGalleryLinks.prototype = {
	STATES : { READY : 0, LOADING : 1 , TIMEOUT : 2, FAILURE : 3 },
	TEMPLATES : { 
		LOADING : "<p class=\"loading\">Loading movies...</p>",
		TIMEOUT : "<p class=\"error\">Hmmm, no response...Please refresh your browser and try again.</p>",
		FAILURE : "<p class=\"error\">Whoops, our servers coughed.  Please refresh your browser and try again.</p>"
	},
	initialize : function(language) {
		this.galleries = $A( $('browse').getElementsByTagName('A') );
		this.state = this.STATES.READY;
		this.language = language;
		this.bind();
	},
	bind : function() {
		this.galleries.each(
			function(g) { 
				Event.observe(g, "click", this.onClick.bindAsEventListener(this));
			}.bind(this)
		);
	},
	onClick : function(event) {
		Event.stop(event);
		if (this.state != this.STATES.LOADING) {
			this.link = Event.element(event);
			this.state = this.STATES.LOADING;
			this.paint();
			$('gallery').value = Element.readAttribute(this.link, "gallery");
			$('page').value = "1";
			var params = Form.serialize('filters');
			new Ajax.Request('/' + this.language + '/movies/browse', { parameters : params , onSuccess:this.onSuccess.bind(this), onFailure:this.onFailure.bind(this), onTimeout:this.onTimeout.bind(this) });
		}
	},
	onSuccess : function(response) {
		$('movies').update(response.responseText);
		new DvdPaginationLinks(this.language);
		new DvdSortingLinks(this.language);
		this.state = this.STATES.READY;
		this.paint();
	},
	onFailure : function() {
		this.state = this.STATES.FAILURE;
		this.paint();
	},
	onTimeout : function() {
		this.state = this.STATES.TIMEOUT;
		this.paint();
	},
	paint : function() {
		this.galleries.each(
			function(l) { 
				Element.removeClassName(l.parentNode, "selected"); 
			}
		);
		Element.addClassName(this.link.parentNode, "selected");		
		switch (this.state) {
			case this.STATES.READY: 
				break;
			case this.STATES.LOADING: 
				$('movies').update(this.TEMPLATES.LOADING);
				break;
			case this.STATS.TIMEOUT: 
				$('movies').update(this.TEMPLATES.TIMEOUT);
				break;
			case this.STATES.FAILURE:
				$('movies').update(this.TEMPLATES.FAILURE);
				break;
		}
	}
};

var descWidget = {
	showMore : function() {
		Element.hide('readMoreLink');
		Element.show('extraDesc');
		Element.show('hideMoreLink');
	},
	hideMore : function() {
		Element.show('readMoreLink');
		Element.hide('extraDesc');
		Element.hide('hideMoreLink');
	}
};


var DvdPaginationLinks = Class.create();
DvdPaginationLinks.prototype = {
	STATES : { READY : 0, LOADING : 1 , TIMEOUT : 2, FAILURE : 3 },
	TEMPLATES : { 
		LOADING : "<p class=\"loading\">Loading movies...</p>",
		TIMEOUT : "<p class=\"error\">Hmmm, no response...Please refresh your browser and try again.</p>",
		FAILURE : "<p class=\"error\">Whoops, our servers coughed.  Please refresh your browser and try again.</p>"
	},
	initialize : function(language) {
		if ($('pagination') != null) {
			this.links = $A( $('pagination').getElementsByTagName('A') );
			this.state = this.STATES.READY;
		  this.language = language;
			this.bind();
		}
	},
	bind : function() {
		this.links.each(
			function(g) { 
				Event.observe(g, "click", this.onClick.bindAsEventListener(this));
			}.bind(this)
		);
	},
	onClick : function(event) {
		Event.stop(event);
		if (this.state != this.STATES.LOADING) {
			this.link = Event.element(event);
			this.page = Element.readAttribute(this.link, "page");
			this.state = this.STATES.LOADING;
			this.paint();
			$('page').value = this.page;
			var params = Form.serialize('filters');
			new Ajax.Request('/' + this.language + '/movies/browse', { parameters : params , onSuccess:this.onSuccess.bind(this), onFailure:this.onFailure.bind(this), onTimeout:this.onTimeout.bind(this) });
		}
	},
	onSuccess : function(response) {
		$('movies').update(response.responseText);
		new DvdPaginationLinks(this.language);
		new DvdSortingLinks(this.language);
		this.state = this.STATES.READY;
		this.paint();
	},
	onFailure : function() {
		this.state = this.STATES.FAILURE;
		this.paint();
	},
	onTimeout : function() {
		this.state = this.STATES.TIMEOUT;
		this.paint();
	},
	paint : function() {
		this.links.each(
			function(l) { 
				Element.removeClassName(l, "selected"); 
			}
		);
		Element.addClassName(this.link, "selected");		
		switch (this.state) {
			case this.STATES.READY: 
				break;
			case this.STATES.LOADING: 
				$('movies').update(this.TEMPLATES.LOADING);
				break;
			case this.STATS.TIMEOUT: 
				$('movies').update(this.TEMPLATES.TIMEOUT);
				break;
			case this.STATES.FAILURE:
				$('movies').update(this.TEMPLATES.FAILURE);
				break;
		}
	}
};

var DvdSortingLinks = Class.create();
DvdSortingLinks.prototype = {
	STATES : { READY : 0, LOADING : 1 , TIMEOUT : 2, FAILURE : 3 },
	TEMPLATES : { 
		LOADING : "<p class=\"loading\">Loading movies...</p>",
		TIMEOUT : "<p class=\"error\">Hmmm, no response...Please refresh your browser and try again.</p>",
		FAILURE : "<p class=\"error\">Whoops, our servers coughed.  Please refresh your browser and try again.</p>"
	},
	initialize : function(language) {
		this.links = $A( $('sorting').getElementsByTagName('A') );
		this.state = this.STATES.READY;
		this.language = language;
		this.bind();
	},
	bind : function() {
		this.links.each(
			function(g) { 
				Event.observe(g, "click", this.onClick.bindAsEventListener(this));
			}.bind(this)
		);
	},
	onClick : function(event) {
		Event.stop(event);
		if (this.state != this.STATES.LOADING) {
			this.link = Event.element(event);
			this.sort = Element.readAttribute(this.link, "sort");
			this.state = this.STATES.LOADING;
			this.paint();
			$('sort').value = this.sort;
			$('page').value = "1";
			var params = Form.serialize('filters');
			new Ajax.Request('/' + this.language + '/movies/browse', { parameters : params , onSuccess:this.onSuccess.bind(this), onFailure:this.onFailure.bind(this), onTimeout:this.onTimeout.bind(this) });
		}
	},
	onSuccess : function(response) {
		$('movies').update(response.responseText);
		new DvdPaginationLinks(this.language);
		new DvdSortingLinks(this.language);
		this.state = this.STATES.READY;
		this.paint();
		urchinTracker('MoviesDVDBrowse');
	},
	onFailure : function() {
		this.state = this.STATES.FAILURE;
		this.paint();
	},
	onTimeout : function() {
		this.state = this.STATES.TIMEOUT;
		this.paint();
	},
	paint : function() {
		this.links.each(
			function(l) { 
				Element.removeClassName(l, "selected"); 
			}
		);
		Element.addClassName(this.link, "selected");		
		switch (this.state) {
			case this.STATES.READY: 
				break;
			case this.STATES.LOADING: 
				$('movies').update(this.TEMPLATES.LOADING);
				break;
			case this.STATS.TIMEOUT: 
				$('movies').update(this.TEMPLATES.TIMEOUT);
				break;
			case this.STATES.FAILURE:
				$('movies').update(this.TEMPLATES.FAILURE);
				break;
		}
	}
};

var DvdFilterLinks = Class.create();
DvdFilterLinks.prototype = {
	STATES : { READY : 0, LOADING : 1 , TIMEOUT : 2, FAILURE : 3 },
	TEMPLATES : { 
		LOADING : "<p class=\"loading\">Loading movies...</p>",
		TIMEOUT : "<p class=\"error\">Hmmm, no response...Please refresh your browser and try again.</p>",
		FAILURE : "<p class=\"error\">Whoops, our servers coughed.  Please refresh your browser and try again.</p>"
	},
	initialize : function() {
		Event.observe('filterMinRatings', "click", this.onClick.bindAsEventListener(this));
		if ($('filterAlreadyRated') != null) {
			Event.observe('filterAlreadyRated', "click", this.onClick.bindAsEventListener(this));
		}
		this.state = this.STATES.READY;
	},
	onClick : function(event) {
		if (this.state != this.STATES.LOADING) {
			this.state = this.STATES.LOADING;
			this.paint();
			$('page').value = "1";
			var params = Form.serialize('filters');
			new Ajax.Request('/movie.sv', { parameters : params , onSuccess:this.onSuccess.bind(this), onFailure:this.onFailure.bind(this), onTimeout:this.onTimeout.bind(this) });
		}
	},
	onSuccess : function(response) {
		$('movies').update(response.responseText);
		new DvdPaginationLinks(this.language);
		new DvdSortingLinks(this.language);
		this.state = this.STATES.READY;
		this.paint();
		urchinTracker('MoviesDVDBrowse');
	},
	onFailure : function() {
		this.state = this.STATES.FAILURE;
		this.paint();
	},
	onTimeout : function() {
		this.state = this.STATES.TIMEOUT;
		this.paint();
	},
	paint : function() {	
		switch (this.state) {
			case this.STATES.READY: 
				break;
			case this.STATES.LOADING: 
				$('movies').update(this.TEMPLATES.LOADING);
				break;
			case this.STATS.TIMEOUT: 
				$('movies').update(this.TEMPLATES.TIMEOUT);
				break;
			case this.STATES.FAILURE:
				$('movies').update(this.TEMPLATES.FAILURE);
				break;
		}
	}
};

var adWidget = {
	dirty : false,
	timer : null,
	handleRefresh : function() {
		if (this.dirty) {
			var params = "getAd=&size=300x250";
			new Ajax.Updater('ad1', '/ad.do', {parameters:params, evalScripts:false});			
			this.dirty = false;
			this.timer = setTimeout(function() { adWidget.dirty = true; }, 20000);
		} else {
			if (this.timer == null) {
				this.timer = setTimeout(function() { adWidget.dirty = true; }, 20000);
			}
		}
	}
};
adWidget.timer = setTimeout(function() { adWidget.dirty = true; }, 20000);

var quickRateWidget = {
	STATES : { READY : 0, LOADING_BATCH : 1, LOADING_MOVIE : 2, EMPTY : 3 },
	state : 0,
	movies : new Array(),
	language : 1,
	index : -1,
	position : 0,
	handleBatch : function(language) {
		this.language = language;
		this.state = this.STATES.LOADING_BATCH;
		var params = "quickRateBatch=&position="+this.position;
		new Ajax.Request('/' + language + '/movies/quickrate', {parameters:params, onComplete:this.processBatch.bind(this)});
	},
	processBatch : function(response) {
		this.state = this.STATES.READY;
		response.responseText.evalScripts();
		if (this.movies.length > this.index + 1) {
			this.handleNext(this.language);
		} else {
			this.handleEmpty(response);
		}
	},
	handleEmpty : function (response) {
		this.states = this.STATES.EMPTY;
		$('panel').update( response.responseText );
	},
	handleNext : function() {
		if (this.index < this.movies.length-1) {
			this.state = this.STATES.LOADING_MOVIE;
			this.index += 1;
			var nextParams = "nextQuickRate=&movieId="+this.movies[this.index];
			new Ajax.Request('/' + this.language + '/movies/quickrate', {parameters:nextParams, onComplete:this.processNext.bind(this)});
			
			if (this.index-1 >= 0) {
				var lastParams = "lastQuickRate=&movieId="+this.movies[this.index-1];
				new Ajax.Request('/' + this.language + '/movies/quickrate', {parameters:lastParams, onComplete:this.processPrevious.bind(this)});
			}
		} else {
			this.handleBatch();
		}
	},
	handlePrevious : function() {
		if (this.index > 0) {
			this.index -= 1;
			var nextParams = "nextQuickRate=&movieId="+this.movies[this.index];
			new Ajax.Request('/' + this.language + '/movies/quickrate', {parameters:nextParams, evalScripts:true, onComplete:this.processNext.bind(this)});
			
			var lastParams = "lastQuickRate=&movieId="+this.movies[this.index-1];
			new Ajax.Request('/' + this.language + '/movies/quickrate', {parameters:lastParams, evalScripts:true, onComplete:this.processPrevious.bind(this)});
		}
	},
	processNext : function(response) {
		this.state = this.STATES.READY;
		$('panel').update( response.responseText );
		if (this.index > 0) {
			
		}
		//adWidget.handleRefresh();;
	},
	processPrevious : function(response) {
		$('results').update( response.responseText );	
	},
	paint : function() {
		switch (this.state) {
			case this.STATES.READY:
				break;
			case this.STATES.LOADING:
				break;
		}
	}
};


var synopsisWidget = {
	showMore : function() {
		Element.hide('readMoreLink');
		Element.show('extraSynopsis');
	}
};

var textWidget = {
	showMore : function(link, text, less) {
		$(link).hide();
		$(text).show();
		$(less).show();
	},
	hideMore : function(link, text, less) {
		$(link).show();
		$(text).hide();
		$(less).hide();
	}
};

var browseWidget = {
	STATES : { READY : 0, LOADING : 1 },
	genreId : 'new',
	sort : 'byRelease',
	filterMinRatings : "off",
	filterAlreadyRated : "off",
	page : 1,
	initialize : function(genreId, sort, filterMinRatings, filterAlreadyRated, page) {
		this.genreId = genreId;
		this.sort = sort;
		this.filterMinRatings = filterMinRatings;
		this.filterAlreadyRated = filterAlreadyRated;
		this.page = page;
	},
	handleGenreClick : function(genreId) {
		if (this.state != null && this.state == this.STATES.LOADING) { alert("Please wait while we process your request"); return; }
		this.state = this.STATES.LOADING;
		this.genreId = genreId;
		this.page = 1;
		this.paint();
		var params = this.serialize();
		new Ajax.Request('/movie.sv', {parameters:params, onSuccess:this.processSearchRequest.bind(this), onFailure:this.processForward.bind(this), onTimeout:this.processForward.bind(this)});
	},
	handleSortClick : function(sort) {
		if (this.state != null && this.state == this.STATES.LOADING) { alert("Please wait while we process your request"); return; }
		this.state = this.STATES.LOADING;
		this.sort = sort;
		this.page = 1;
		this.paint();

		var params = this.serialize();
		new Ajax.Request('/movie.sv', {parameters:params, onSuccess:this.processSearchRequest.bind(this), onFailure:this.processForward.bind(this)});
	},
	handleFilterClick : function() {
		if (this.state != null && this.state == this.STATES.LOADING) { alert("Please wait while we process your request"); return false; }
		
		if ("on" == $F('filterMinRatings')) {
			this.filterMinRatings = "on";
		} else {
			this.filterMinRatings = "off";			
		}
		
		if ("on" == $F('filterAlreadyRated')) {
			this.filterAlreadyRated = "on";
		} else {
			this.filterAlreadyRated = "off";
		}
		this.page = 1;
		this.state = this.STATES.LOADING;
		this.paint();

		var params = this.serialize();
		new Ajax.Request('/movie.sv', {parameters:params, onComplete:this.processSearchRequest.bind(this), onFailure:this.processForward.bind(this), onTimeout:this.processForward.bind(this)});
	},
	handePageClick : function(page) {
		if (this.state != null && this.state == this.STATES.LOADING) { alert("Please wait while we process your request"); return; }
		this.state = this.STATES.LOADING;
		this.page = page;
		this.paint();

		var params = this.serialize();
		new Ajax.Request('/movie.sv', {parameters:params, onComplete:this.processSearchRequest.bind(this), onFailure:this.processForward.bind(this), onTimeout:this.processForward.bind(this)});
	},
	processSearchRequest : function(response) {
		response.responseText.evalScripts(); //to initialize rating widgets
		$('scaffold').update( response.responseText );
		this.state = this.STATES.READY;
		this.paint();
		urchinTracker('MoviesDVDBrowse');
	},
	processForward : function() {
		document.location = '/movies.do?browseDvds='+this.serialize();
	},
	paint : function() {
		switch(this.state) {
			case this.STATES.READY:
				$('loading').hide();
				$('scaffold').show();
				break;
			case this.STATES.LOADING:
				$('scaffold').hide();
				$('loading').show();
				break;
		}
		$A($('listTypes').getElementsByTagName("li")).each( function(value, index) { 
			if (value.id == "genre"+browseWidget.genreId) {
				Element.addClassName(value, "selected");
			} else if (Element.hasClassName(value, "selected")) {
				Element.removeClassName(value, "selected");
			}
		} );

		$A($('genreList').getElementsByTagName("li")).each( function(value, index) { 
			if (value.id == "genre"+browseWidget.genreId) {
				Element.addClassName(value, "selected");
			} else if (Element.hasClassName(value, "selected")) {
				Element.removeClassName(value, "selected");
			}
		} );
		
		$A($('sortList').getElementsByTagName("li")).each( function(value, index) { 
			if (value.id == "sort"+browseWidget.sort) {
				Element.addClassName(value, "selected");
			} else if (Element.hasClassName(value, "selected")) {
				Element.removeClassName(value, "selected");
			}
		} );
	},
	serialize : function() {
		var params = "movieAction=browseMovies&genreId="+this.genreId+"&sort="+this.sort+"&pageNav="+this.page;
		if (this.filterMinRatings == "on") { params += "&filterMinRatings=" + this.filterMinRatings; }
		if (this.filterAlreadyRated == "on") { params += "&filterAlreadyRated=" + this.filterAlreadyRated; }
		return params;
	}
};

var previewWidget = {
	STATES : { READY : 0, LOADING : 1 },
	handlePreview : function(movieId) {
		this.state = this.STATES.LOADING;
		this.paint();
		var params = "movieAction=previewMovie&movieId="+movieId;
		new Ajax.Request('/movie.sv', {parameters:params, onComplete:this.processPreview.bind(this)});
	},
	processPreview : function(response) {
		$('preview').update(response.responseText);
		this.state = this.STATES.READY;
		this.paint();
	},
	paint : function() {
		switch(this.state) {
			case this.STATES.READY:
				$('previewLoading').hide();
				$('preview').show();
				break;
			case this.STATES.LOADING:
				$('preview').hide();
				$('previewLoading').show();
				break;
		}
	}
};


/*******************************************************************************
 SUGGESTION (LINK) VOTING
 *******************************************************************************/
var LinkVoteWidget = Class.create();
LinkVoteWidget.prototype = {
	STATES : { READY : 0, SAVING : 1 },
	initialize : function(movieId, similarMovieId, thumbsUp, thumbsDown, savingText, thumbs, statPanel) {
		this.movieId = movieId;
		this.similarMovieId = similarMovieId;
		this.thumbsUp = thumbsUp;
		this.thumbsDown = thumbsDown;
		this.thumbsImagePanel = 'match'+similarMovieId;
		this.savingText = savingText;
		this.thumbs = thumbs == undefined ? Constants.THUMBS_NONE : thumbs;
		this.statPanel = statPanel;
	},
	
	handleVoteUp : function(event) {
		this.state = this.STATES.SAVING;
		switch(this.thumbs) {
			case Constants.THUMBS_NONE: this.thumbs = Constants.THUMBS_UP; break
			case Constants.THUMBS_UP: this.thumbs = Constants.THUMBS_NONE; break
			case Constants.THUMBS_DOWN: this.thumbs = Constants.THUMBS_UP; break
		}
		this.paint();
		this.saveVote();
	},
	
	handleVoteDown : function(event) {
		this.state = this.STATES.SAVING;
		switch(this.thumbs) {
			case Constants.THUMBS_NONE: this.thumbs = Constants.THUMBS_DOWN; break
			case Constants.THUMBS_UP: this.thumbs = Constants.THUMBS_DOWN; break
			case Constants.THUMBS_DOWN: this.thumbs = Constants.THUMBS_NONE; break
		}
		this.paint();
		this.saveVote();
	},
	
	saveVote : function() {
		var params = "rateAction=doSuggestVote&movieId="+this.movieId+"&similarMovieId="+this.similarMovieId+"&thumbsId="+this.thumbs;
		new Ajax.Request('/rate.sv', {parameters:params, asynchronous:true, onComplete:this.processVote.bind(this)});
	},
	
	processVote : function(response) {
		$(this.statPanel).innerHTML = response.responseText;
		this.state = this.STATES.READY;
		this.paint();
	},
	
	paint : function() {
		
		switch(this.thumbs) {
			case Constants.THUMBS_NONE: 
				$(this.thumbsUp).style.border="1px transparent";
				$(this.thumbsDown).style.border="1px transparent";
				break;
			case Constants.THUMBS_UP: 
				$(this.thumbsUp).style.border="1px solid";	
				$(this.thumbsDown).style.border="1px transparent";	
				break;
			case Constants.THUMBS_DOWN: 
				$(this.thumbsUp).style.border="1px transparent";	
				$(this.thumbsDown).style.border="1px solid";
				break;
		}
	}
};



/**
 * common.widget.js
 */

// Common vars needed
var ratingSubmitQueue = new Array();
var ratingSubmitQueueLength = 0;
var ajaxObj;
var d=document;
var curRatingIds = new Array(); // will be populated as we build pages w/ widgets
var curRatings = new Array(); // will be populated as we build pages w/ widgets
var origRatings = new Array();
var movieTitles = new Array();
var movieDbIds = new Array(); // also must be populated by pages
var rateSrc = new Array(); // also must be populated by pages

/** Handle rating actions **/
function rateScoreToImage(scoreID, type) {
	useNew = false;
	if (type == 'qck' || type == 'wiz' || type == 'mct') {
		useNew = true;
	}
	if (scoreID == 0) {
		return "/public/moviezen/static/images/0stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 1) {
		return "/public/moviezen/static/images/1stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 2) {
		return "/public/moviezen/static/images/2stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 3) {
		return "/public/moviezen/static/images/3stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 4) {
		return "/public/moviezen/static/images/4stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 5) {
		return "/public/moviezen/static/images/5stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 6) {
		return "/public/moviezen/static/images/halfstars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 7) {
		return "/public/moviezen/static/images/1_halfstars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 8) {
		return "/public/moviezen/static/images/2_halfstars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 9) {
		return "/public/moviezen/static/images/3_halfstars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == 10) {
		return "/public/moviezen/static/images/4_halfstars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == _NOT_INTERESTED) {
		return "/public/moviezen/static/images/0stars." + (useNew ? "new." : "") + "gif";
	}
	if (scoreID == _WANT_TO_SEE) {
		return "/public/moviezen/static/images/0stars." + (useNew ? "new." : "") + "gif";
	}
	return "/public/moviezen/static/images/0stars." + (useNew ? "new." : "") + "gif";
}
function flashSaveButton(){
	if (d.getElementById("widgetSaveBtn")) {
		d.images["widgetSaveBtn"].src="/public/moviezen/static/images/bt_save_ani.gif";
	}
}

/** Handle Ajax stuff **/
function commonWgt_ajaxSubmit(mvID) {
	var params = commonWgt_getRateSubmitParams(mvID);
	new Ajax.Request('/rating/movie', {parameters:params});
}

/**
 * expand.widget.js
 */
// vars

var expWgt_openMovie="";



/** Handle expand/close **/

function expWgt_expand(mvID){

	expWgt_closeOpened();

	expWgt_rateSet(mvID, curRatings[mvID]); // make sure images ok

	d.getElementById("expWgtDisplay"+mvID).style.display="none";

	d.getElementById("expWgt_rateBox"+mvID).style.display="block";

	expWgt_openMovie=mvID;

}

function expWgt_collapse(mvID){

	d.getElementById("expWgt_rateBox"+mvID).style.display="none";

	d.getElementById("expWgtDisplay"+mvID).style.display="block";

}

function expWgt_closeOpened(){

	if(expWgt_openMovie != ""){

//		expWgt_collapse(expWgt_openMovie);

		expWgt_commentSet(expWgt_openMovie, d.getElementById("commonWgt_commentBox"+expWgt_openMovie).value);

		// don't need to call rateSet(), will already have been done

		expWgt_rateSave(expWgt_openMovie);

		expWgt_openMovie="";

	}

}



/** Handle rating actions **/

function expWgt_rateClear(mvID){

	expWgt_commentSet(mvID,""); // zero out comment

	expWgt_rateSet(mvID,0); // zero out rating

	expWgt_rateSave(mvID); // save it

}

function expWgt_rateDone(mvID) {

	expWgt_commentSet(mvID, d.getElementById("commonWgt_commentBox"+mvID).value);

	// don't need to rateSet(), will already have been done onclick

	expWgt_rateSave(mvID);

}

function expWgt_rateStarHover(mvID,starNum){

	d.images["expWgt_rateStarsBtn"+mvID].src=rateScoreToImage(starNum, 'exp');

}

function expWgt_rateStarsReset(mvID){

	rating=curRatings[mvID];

	if(rating == _NOT_INTERESTED || rating == _WANT_TO_SEE) {

		d.images["expWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/images/0stars.gif";

	}

	else {

		d.images["expWgt_rateStarsBtn"+mvID].src=rateScoreToImage(rating, 'exp');

	}

}

function expWgt_commentSet(mvID, newComment) {

	d.getElementById("commonWgt_commentBox"+mvID).value=newComment;



	// change comment image - if we have a comment, add the image, otherwise not

	if (d.getElementById("expWgt_comImg"+mvID)) {

		if (newComment == "") {

		  d.getElementById("expWgt_comImg"+mvID).style.display="none";

		}

		else {	

		  d.getElementById("expWgt_comImg"+mvID).style.display="inline";

		}

	}

}

function expWgt_rateSet(mvID, rating){

	curRatings[mvID]=rating;



	if(rating == _NOT_INTERESTED){

		d.images["expWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/ni_on.gif";

		d.images["expWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/ws.gif";

		d.images["expWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/images/0stars.gif";

		d.getElementById("expWgt_rateStarsBtn"+mvID).className="expWgt_rateStars";

		d.getElementById("expWgt_rateStarBar"+mvID).className="expWgt_rateStarBar";

		if (d.getElementById("expWgt_RerateBtn"+mvID)) {

				d.getElementById("expWgt_RerateBtn"+mvID).style.display="inline";

		}

		if (d.images["expWgt_RateImg"+mvID] != null) {

			d.images["expWgt_RateImg"+mvID].src="/public/moviezen/static/images/ni_flat.gif";

		}

	}

	else if(rating == _WANT_TO_SEE){

		d.images["expWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/ni.gif";

		d.images["expWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/ws_on.gif";

		d.images["expWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/images/0stars.gif";

		d.getElementById("expWgt_rateStarsBtn"+mvID).className="expWgt_rateStars";

		d.getElementById("expWgt_rateStarBar"+mvID).className="expWgt_rateStarBar";

		if (d.getElementById("expWgt_RerateBtn"+mvID)) {

				d.getElementById("expWgt_RerateBtn"+mvID).style.display="inline";

		}

		if (d.images["expWgt_RateImg"+mvID] != null) {

			d.images["expWgt_RateImg"+mvID].src="/public/moviezen/static/images/ws_flat.gif";

		}

	}

	else if(parseInt(rating) == 0){

		curRatings[mvID]=0;

		d.images["expWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/ws.gif";

		d.images["expWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/ni.gif";

		d.getElementById("expWgt_rateStarsBtn"+mvID).className="expWgt_rateStars";

		d.getElementById("expWgt_rateStarBar"+mvID).className="expWgt_rateStarBar";

		if (d.getElementById("expWgt_RerateBtn"+mvID)) {

				d.getElementById("expWgt_RerateBtn"+mvID).style.display="none";

		}

		if (d.images["expWgt_RateImg"+mvID] != null) {

			d.images["expWgt_RateImg"+mvID].src="/public/moviezen/static/images/rateMe.gif";

		}

	}

	else{

		curRatings[mvID]=parseInt(rating);

		d.images["expWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/ws.gif";

		d.images["expWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/ni.gif";

		d.getElementById("expWgt_rateStarsBtn"+mvID).className="expWgt_rateStars expWgt_rateStars_mod_on";

		d.getElementById("expWgt_rateStarBar"+mvID).className="expWgt_rateStarBar expWgt_rateStarBar_mod_on";

		if (d.getElementById("expWgt_RerateBtn"+mvID)) {

				d.getElementById("expWgt_RerateBtn"+mvID).style.display="inline";

		}

		if (d.images["expWgt_RateImg"+mvID] != null) {

			d.images["expWgt_RateImg"+mvID].src=rateScoreToImage(curRatings[mvID], 'exp');

		}

	}

}

function expWgt_rateSave(mvID){

	expWgt_collapse(mvID);

	commonWgt_rateSave(mvID, true);

	expWgt_openMovie="";

}

/**
 * flat.widget.js
 */
// vars

var fltWgt_openMovie = "";



function fltWgt_rateStarHover(mvID, starNum, type){

 if (d.getElementById("fltWgt_rateStarsBtn"+mvID)) {
	d.images["fltWgt_rateStarsBtn"+mvID].src=rateScoreToImage(starNum, type);
 }

}

function fltWgt_rateStarsReset(mvID, type){

 rating=curRatings[mvID];

 if(rating == _NOT_INTERESTED || rating == _WANT_TO_SEE) {

   if (d.getElementById("fltWgt_rateStarsBtn"+mvID)) {

    	d.images["fltWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/images/0stars" + ((type == 'wiz' || type == 'mct') ? ".new" : "") + ".gif";

   }

 }

 else {

   if (d.getElementById("fltWgt_rateStarsBtn"+mvID)) { 

    	d.images["fltWgt_rateStarsBtn"+mvID].src=rateScoreToImage(rating, type);

   }

 }

}

function fltWgt_rateSet(mvID, rating, type, callback){

 if (curRatings[mvID]==rating && curRatings[mvID] != 0) {

   fltWgt_rateSet(mvID, 0, type); 

   if (callback != null) {

		var code = callback + "('" + mvID + "', '0')";

		eval(code);

   }

   return;

 }

 else {

   curRatings[mvID]=rating;
   prepend = "";

   if (type == 'small') {

		prepend = "bt_";

   }

   if (type == 'wiz' || type == 'mct') {

		prepend = "wiz_";

   }

   if(rating == _NOT_INTERESTED){

	if (d.getElementById("fltWgt_rateNiImg"+mvID)) { 

	 d.images["fltWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/" + prepend + "ni_on.gif";

	}

   } else {

	if (d.getElementById("fltWgt_rateNiImg"+mvID)) { 

	 d.images["fltWgt_rateNiImg"+mvID].src="/public/moviezen/static/images/" + prepend + "ni_off.gif";

	}

   }

   if(rating == _WANT_TO_SEE) {

	if (d.getElementById("fltWgt_rateWsImg"+mvID)) { 

	 d.images["fltWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/" + prepend + "ws_on.gif";

	}

   } else {

	if (d.getElementById("fltWgt_rateWsImg"+mvID)) { 

	 d.images["fltWgt_rateWsImg"+mvID].src="/public/moviezen/static/images/" + prepend + "ws_off.gif";

	}

   }

   if(rating == _NOT_INTERESTED || rating == _WANT_TO_SEE || rating == 0) {

	if (d.getElementById("fltWgt_rateStarsBtn"+mvID)) { 

	 d.images["fltWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/images/0stars" + ((type == 'wiz' || type == 'mct') ? ".new" : "") + ".gif";

	}

   }

   curRatings[mvID]=parseInt(rating);


   if (callback != null) {

		var code = callback + "('" + mvID + "', '" + rating + "')";

		eval(code);

	}

 }

 if (type != 'mct') {

		fltWgt_rateSave(mvID, true);

 } else {

		//no save for mct

		//fltWgt_rateSave(mvID, false);

 }

}



function fltWgt_expandComment(mvID) {

	// if it's already open, just close it

	if (fltWgt_openMovie == mvID) {

		fltWgt_collapse(fltWgt_openMovie);

	}

	else {

		fltWgt_closeOpened();

		d.getElementById("fltWgt_commentExpand"+mvID).style.display="block";

		fltWgt_openMovie=mvID;

	}

}

function fltWgt_collapse(mvID){

	d.getElementById("fltWgt_commentExpand"+mvID).style.display="none";

	fltWgt_rateSave(mvID, false);

	fltWgt_openMovie="";

}

function fltWgt_closeOpened(){

	if(fltWgt_openMovie != "") {

		fltWgt_collapse(fltWgt_openMovie);

	}

}

function fltWgt_rateSave(mvID, showMessage) {

	commonWgt_rateSave(mvID, showMessage);

}

function fltWgt_commentSet(mvID, newComment, callback) {

	d.getElementById("commonWgt_commentBox"+mvID).value=newComment;

	if (callback != null) {

		var code = callback + "('" + mvID + "')";

		eval(code);

   }

}

function fltWgt_rateClear(mvID, type){

	fltWgt_commentSet(mvID,""); // zero out comment

	fltWgt_rateSet(mvID,0,type); // zero out rating

// set calls save

//	fltWgt_rateSave(mvID, false); // save it

}

// Constants
_AJAX_PARAMS="rateAction=doRate&rateUser=" + currentUser.id + "&key=" + encodeURIComponent(currentUser.key);
_WANT_TO_SEE="12";
_NOT_INTERESTED="11";

function commonWgt_rateSave(mvID, showMessage){

	if (currentUser.isLoggedIn()) {
		commonWgt_ajaxSubmit(mvID);
	
		if (curRatings[mvID] == _WANT_TO_SEE && 
			origRatings[mvID] != _WANT_TO_SEE) {
	
			if (showMessage) {
					var title = movieTitles[mvID];
					if (title.length > 30) {
							title = title.substring(0, 30) + "...";
					}
					var msg = title + " has been added to your list.";
					//floatie.show(msg);
			}
		}

	} else {

		commonWgt_ajaxSubmit(mvID);
		if (showMessage) {
				var title = movieTitles[mvID];
				if (title.length > 30) {
						title = title.substring(0, 30) + "...";
				}
				msg = "Your ratings will not be saved until you register or sign in!";
				floatie.show(msg);
				alert("Your ratings will not be saved until you register or sign in!");
		}

	}
	
	if (d.getElementById("widgetSaveBtn")) {
		d.images["widgetSaveBtn"].src = "/public/moviezen/static/images/bt_saved.gif";
	}
}

function commonWgt_getRateSubmitParams(mvID) {
	// seem to need this to get server responses on duplicate submission
	var ran_unrounded=Math.random()*1000000;
	var ran_number=Math.round(ran_unrounded); 

	if (movieDbIds && movieDbIds[mvID]) {
		return(_AJAX_PARAMS + "&movieid=" + movieDbIds[mvID] + "&rating=" + curRatings[mvID] + "&comment=" + encodeURIComponent( $('commonWgt_commentBox'+mvID).value ) + "&source=" + rateSrc[mvID] + "&rid=" + ran_number + "&ratingid=" + (curRatingIds && curRatingIds[mvID] ? curRatingIds[mvID] : -1));
	} else {
//		alert("Rating not saved...oops");
//		_uacct = "UA-191156-1";
//		urchinTracker('NoMovieDBID');
	}
}







// Common vars needed
var ratingSubmitQueue = new Array();
var ratingSubmitQueueLength = 0;
var ajaxObj;
var d=document;
var curRatingIds = new Array(); // will be populated as we build pages w/ widgets
var curRatings = new Array(); // will be populated as we build pages w/ widgets
var origRatings = new Array();
var movieDbIds = new Array(); // also must be populated by pages
var photoDbIds = new Array(); // also must be populated by pages
var videoDbIds = new Array(); // also must be populated by pages
var quizDbIds = new Array(); // also must be populated by pages
var rateSrc = new Array(); // also must be populated by pages
var curAttrRatings = new Array();
var origAttrRatings = new Array();

/** Handle rating actions **/
function rateScoreToImage(scoreID, type) {
    useNew = false;
    /*if (type == 'qck' || type == 'wiz' || type == 'mct') {
        useNew = true;
    }
    */
    if (scoreID == 0) {
        return "/public/moviezen/static/img/0stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 2) {
        return "/public/moviezen/static/img/1stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 4) {
        return "/public/moviezen/static/img/2stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 6) {
        return "/public/moviezen/static/img/3stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 8) {
        return "/public/moviezen/static/img/4stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 10) {
        return "/public/moviezen/static/img/5stars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 1) {
        return "/public/moviezen/static/img/halfstars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 3) {
        return "/public/moviezen/static/img/1_halfstars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 5) {
        return "/public/moviezen/static/img/2_halfstars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 7) {
        return "/public/moviezen/static/img/3_halfstars_r." + (useNew ? "new." : "") + "gif";
    }
    if (scoreID == 9) {
        return "/public/moviezen/static/img/4_halfstars_r." + (useNew ? "new." : "") + "gif";
    }
    return "/public/moviezen/static/img/0stars_r." + (useNew ? "new." : "") + "gif";
}

function flashSaveButton(){
    if (getEl("widgetSaveBtn")) {
        document.images["widgetSaveBtn"].src="/public/moviezen/static/img/bt_save_ani.gif";
    }
}

/** Handle Ajax stuff **/
function commonWgt_ajaxSubmit(mvID, type) {
    var params = commonWgt_getRateSubmitParams(mvID, type);
    //alert("params= " +params);
    if (type == 'vi') {
        YAHOO.util.Connect.asyncRequest('POST', '/rating/video', ratingCallback, params);
    } else if (type == 'ph') {
        YAHOO.util.Connect.asyncRequest('POST', '/rating/photo', ratingCallback, params);
    } else if (type == 'mo') {
        YAHOO.util.Connect.asyncRequest('POST', '/rating/movie', ratingCallback, params);
    } else if (type == 'qu') {
        YAHOO.util.Connect.asyncRequest('POST', '/rating/quiz', ratingCallback, params);
    }
}

var ratingSuccess = function(o){
    //alert("rating success");
};

var ratingFailure = function(o){
   alert("Could not save your rating - please try again");
};

var ratingCallback =
{
    success:ratingSuccess,
    failure:ratingFailure,
    argument:['foo','bar']
};



/**
* flat.widget.js
*/
// vars

var fltWgt_openMovie = "";



function fltWgt_rateStarHover(mvID, starNum, type){

    if (getEl("fltWgt_rateStarsBtn"+mvID)) {
        document.images["fltWgt_rateStarsBtn"+mvID].src=rateScoreToImage(starNum, type);
    }

}

function fltWgt_rateStarsReset(mvID, type){

    rating=curRatings[mvID];

    if (getEl("fltWgt_rateStarsBtn"+mvID)) {
        document.images["fltWgt_rateStarsBtn"+mvID].src=rateScoreToImage(rating, type);
    }
}

function fltWgt_rateSet(mvID, rating, type, callback){

    if (curRatings[mvID]==rating && curRatings[mvID] != 0) {
        fltWgt_rateSet(mvID, 0, type);
        if (callback != null) {
            var code = callback + "('" + mvID + "', '0')";
            eval(code);
        }
        return;
    }
    else {
        curRatings[mvID]=rating;

        prepend = "";

        if (rating == 0) {

            if (getEl("fltWgt_rateStarsBtn"+mvID)) {
                document.images["fltWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/img/0stars_r" + ((type == 'wiz' || type == 'mct') ? ".new" : "") + ".gif";
            }
        }

        curRatings[mvID]=parseInt(rating);

        if (callback != null) {
            var code = callback + "('" + mvID + "', '" + rating + "')";
            eval(code);
        }
    }

    if (document.getElementById('overallRating')) {
        getEl('overallRating').value = parseInt(rating);
    } else {
        fltWgt_rateSave(mvID, type, true);
    }

}


function rateAttrScoreToImage(scoreID, type) {
    useNew = false;
    /*if (type == 'qck' || type == 'wiz' || type == 'mct') {
        useNew = true;
    }
    */
    if ((scoreID >= 0)&&(scoreID <= 5)) {
        return "/public/moviezen/static/img/bars_" + scoreID + ".gif";
    }
    return "/public/moviezen/static/img/bars_0.gif";
}


function attrWgt_rateStarsReset(attrRatingIndex, type){

    rating=curAttrRatings[attrRatingIndex];

    if (getEl("attrWgt_rateStarsBtn"+attrRatingIndex)) {
        document.images["attrWgt_rateStarsBtn"+attrRatingIndex].src=rateAttrScoreToImage(rating, type);
    }
}


function attrWgt_rateStarHover(attrRatingIndex, starNum, type){

    if (getEl("attrWgt_rateStarsBtn"+attrRatingIndex)) {
        document.images["attrWgt_rateStarsBtn"+attrRatingIndex].src=rateAttrScoreToImage(starNum, type);
    }
}


function attrWgt_rateSet(attrIndex, rating, type, callback){

    if (curAttrRatings[attrIndex]==rating && curRatings[attrIndex] != 0) {
        attrWgt_rateSet(attrIndex, 0, type);
        return;
    }
    else {
        curAttrRatings[attrIndex]=rating;
        getEl('attrRating' + attrIndex).value = rating;

        prepend = "";

        if (rating == 0) {
            if (getEl("attrWgt_rateStarsBtn"+mvID)) {
                document.images["attrWgt_rateStarsBtn"+mvID].src="/public/moviezen/static/img/bars_1.gif";
            }
        }

        curAttrRatings[attrIndex]=parseInt(rating);
    }
}


function fltWgt_rateSave(mvID, type, showMessage) {
    commonWgt_rateSave(mvID, type, showMessage);
}

function fltWgt_rateClear(mvID, type){
    //fltWgt_commentSet(mvID,""); // zero out comment
    fltWgt_rateSet(mvID,0,type); // zero out rating
    // set calls save
    //	fltWgt_rateSave(mvID, false); // save it
}


function commonWgt_rateSave(mvID, type, showMessage){

    if (current_user != '') {
        commonWgt_ajaxSubmit(mvID, type);
    } else {
        if (showMessage) {
            msg = "Your ratings will not be saved until you register or sign in!";
            //floatie.show(msg);
            alert("Your ratings will not be saved until you register or sign in!");
        }
    }

    if (getEl("widgetSaveBtn")) {
        document.images["widgetSaveBtn"].src = "/public/moviezen/static/img/bt_saved.gif";
    }
}

function commonWgt_getRateSubmitParams(mvID, type) {
    // seem to need this to get server responses on duplicate submission

    if ((type=='vi') && videoDbIds && videoDbIds[mvID]) {
        return("videoid=" + videoDbIds[mvID] + "&rating=" + curRatings[mvID]);
    } else if ((type=='ph') && photoDbIds && photoDbIds[mvID]) {
        return("photoid=" + photoDbIds[mvID] + "&rating=" + curRatings[mvID]);
    } else if ((type=='mo') && movieDbIds && movieDbIds[mvID]) {
        return("movieid=" + movieDbIds[mvID] + "&rating=" + curRatings[mvID]);
    } else if ((type=='qu') && quizDbIds && quizDbIds[mvID]) {
        return("quizid=" + quizDbIds[mvID] + "&rating=" + curRatings[mvID]);
    }
}



