var gAEventTracker = new GAEventTracker();

var movieListManager = new MovieListManager();

function selectMovie(id, name, recommendationId, typeId, skipCheckPos, standardPos){
	var typeIdInt = $defined(typeId) ? typeId : 0;
	var rId = $defined(recommendationId) ? recommendationId : 0;

	if(id == 0 && name == ''){
  	   linkGenerator = new LinkGenerator({
				link: glob.property['urlTemplate'],
				formName: "linkUrlForm"
	   });
       callback=autoSuggestAddMovie;
	} else {
	   callback=function(){
				linkGenerator = new LinkGenerator({
				link: glob.property['urlTemplate'],
				formName: "linkUrlForm"
				});
	   };
  	   
	}
    actionBox.open(glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_FORM)']+'?movieId='+id+
        '&name='+name+
        '&recommendationId='+ rId +
        '&typeId='+ typeIdInt +
        '&actionId=1', 'regform', 'formSubmitBtn', skipCheckPos, standardPos, callback);    
}

function addMovieFromTopMenu(){
	selectMovie(0, '', 0, glob.typeId, false, true);
}

function autoSuggestAddMovie(){
    var listPosInfo = {'topOffset' : 1, 'left' : 610};
    var itemClasses = {'over' : 'itemOver', 'leave' : 'itemLeave'};
    var itemTemplate = '<div class="itemLeave" id="%id%">&nbsp;%title%&nbsp;</div>';
    var notFoundItemTemplate = '<div class="itemLeave" style="cursor:default;" id="%id%">&nbsp;%title%&nbsp;</div>';
    
    searchAutoSuggest = new AutoSuggestControllerAddMovie({
        input: $('newMovieName'), 
        listDiv: $('movieSearchAutoSuggestList2'), 
        remoteFunc: RequestProcessor.getMovieAllNames, 
        objName: 'name', 
        itemTemplate: itemTemplate, 
        notFoundItemTemplate: notFoundItemTemplate,
        listPostInfo: listPosInfo, 
        itemClasses: itemClasses,
        handleKeys: true,
        inputYear: $('newMovieYear'),

        applyTextNofityFunc: function(id, name) {
            if (id > 0) {
                selectMovie(id, name,0,glob.typeId, false, true);
            }
        }, 
        typeId: glob.typeId,
        notFoundLabel: glob.text['dynamic.movie.search.noRecordFound']});

}

function selectRecommendMovie(id, recommendationId, typeId, skipCheckPos, movieId, movieLoc, userId, reviewId,target){
	var rId = $defined(recommendationId) ? recommendationId : 0;
	var typeIdInt = $defined(typeId) ? typeId : 0;
	var reviewIdInt = $defined(reviewId)? typeId : 0;
	
	var url = glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_RECOMMEND)']+'?movieId='+id+
    		'&recommendationId='+ rId +
    		'&movieLoc='+ ($defined(movieLoc)? movieLoc : 0) +
    		'&userId='+ ($defined(userId)? userId : 0)+
    		'&reviewId='+ ($defined(reviewId)? userId : 0)+
            '&typeId='+ typeIdInt +    		
	        '&hideMenu=true' +    		
            '&actionId=2';
	awMoviePopupListLinks.open(url,target);
            
}

function selectRecommendationsMovie(id, recommendationId, typeId, skipCheckPos){
	selectMovie(id, "", recommendationId, typeId, skipCheckPos);
}


function recommendationAssigned(id){
    actionBox.open(glob.property['getActionUrl(@mymovieteach.web.Actions@ASSIGNED_USERS_FORM)']+'?movieId='+id+
            '&typeId='+glob.property['@mymovieteach.model.movie.MovieListType@I_RECOMMEND'], '', '');
}



var ddListeners = [];

function addDdListener(listener) {
	if (listener) ddListeners.push(listener);
}

function getMovieAllNamesCallBack(wrapper){
	movieListManager.onMovieAddedToList(wrapper);
}

var actionBox = new ActionBox();
var movieInfoToolTip = new InfoToolTip(
	{'panelElemId':'moveinfobox',
	'loadingTitle':'<br><div style="text-align:center;">'+glob.text['dynamic.movie.infobox.loading']+'</div>', 
	'url':glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_INFO_TOOLTIP)']+'?movieId=%id%&typeId='+glob.typeId+'&mode='+glob.property['@mymovieteach.action.movie.popup.MovieInfooToolTipBase@MODE_PUBLIC_LIST'],
	'saveMovieFunction':RequestProcessor.addOrRemoveMovieFromList,
	'sendEmailFunction':RequestProcessor.sendEmailOnRecommAccept,
	'offsetX':220,
	'delay':1000}
); 

actionBox.addListener(movieInfoToolTip);
addDdListener(movieInfoToolTip); 

/* new popup */
var awMoviePopupListLinks = new AjaxWindow();
awMoviePopupListLinks.addEvent('onContentLoad',emulateCheckbox);
awMoviePopupListLinks.addEvent('onClose',function(){linksLists.sendEmail();});
var linksLists = null;
	linksLists = new LinksListsHelper({
		'saveMovieFunction':RequestProcessor.addOrRemoveMovieFromList,
		'sendEmailFunction':RequestProcessor.sendEmailOnRecommAccept});
		
var awRatingQuestions = new AjaxWindow();
awRatingQuestions.addEvent('onContentLoad', formatRangeInputs);		


function showListLinkPopupMenu(movieId, id, recommendationId, movieLoc, typeId, userId, reviewId, target){
	if(!typeId) typeId = 0;
	if(!movieLoc) movieLoc = 1;
	if(!userId) userId = 0;
	if(!reviewId) reviewId = 0;	
	linksLists.currentId = id;
	
	var url = popupMenuPrepareUrl(glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_INFO_TOOLTIP)']+'?movieId=%id%&typeId=%typeId%&recommendationId=%recomId%&movieLoc=%movieLoc%&userId=%userId%&reviewId=%reviewId%',movieId, id, recommendationId, movieLoc, typeId, userId, reviewId)
	awMoviePopupListLinks.open(url,target);
}

function showRatePopupMenu(movieId, target){
	var url = glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_RATING_QUESTIONS)']+'?movieId='+movieId;
	awRatingQuestions.open(url,target);
}

function popupMenuPrepareUrl(url,movieId, id, recommendationId, movieLoc, typeId, userId, reviewId) {
		url = url.replace('%id%', id);
		if (url.indexOf('recomId') > 0) {
			url = url.replace('%recomId%', recommendationId);
		}
		if (url.indexOf('movieLoc') > 0) {
			url = url.replace('%movieLoc%', movieLoc);
		}
		if (url.indexOf('typeId') > 0) {
			url = url.replace('%typeId%', typeId);
		}
		if (url.indexOf('userId') > 0) {
			url = url.replace('%userId%', userId);
		}
		if (url.indexOf('reviewId') > 0) {
			url = url.replace('%reviewId%', reviewId);
		}
		return url;
}

function showPeoplePopupMenu(movieId, id, recommendationId, movieLoc, typeId, userId, reviewId,target){
	if(!typeId) typeId = 0;
	if(!movieLoc) movieLoc = 1;
	if(!userId) userId = 0;
	if(!reviewId) reviewId = 0;	
	
	var url = popupMenuPrepareUrl(glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_PEOPLE_TOOLTIP)']+'?movieId=%id%&typeId=%typeId%&recommendationId=%recomId%&movieLoc=%movieLoc%&userId=%userId%&reviewId=%reviewId%',movieId, id, recommendationId, movieLoc, typeId, userId, reviewId)
	awMoviePopupListLinks.open(url,target);
	
}
function showRecommendPopupMenu(movieId, id, recommendationId, movieLoc, typeId, userId, reviewId,target){
	if(!typeId) typeId = 0;
	if(!movieLoc) movieLoc = 1;
	if(!userId) userId = 0;
	if(!reviewId) reviewId = 0;		
	var url = popupMenuPrepareUrl(glob.property['getActionUrl(@mymovieteach.web.Actions@MOVIE_RECOMMEND)']+'?movieId=%id%&typeId=%typeId%&recommendationId=%recomId%&movieLoc=%movieLoc%&userId=%userId%&reviewId=%reviewId%',movieId, id, recommendationId, movieLoc, typeId, userId, reviewId)
	awMoviePopupListLinks.open(url,target);
	
}


var emailFieldManager = new EmailFieldManager();

function formatRangeInputs(){
	jQuery("#actionbox_in div#movieSearchSliders input.range").rangeinput();
}


var RatingQuestionSaver = new Class({ 
	initialize: function(options) {
		this.ratingQuestionId = options.ratingQuestionId;
		this.inputId = 'rating' + options.ratingQuestionId;
		this.avgRatingDivId = 'avgRating' + options.ratingQuestionId;
	},
	saveRating: function(movieId){
		RequestProcessor.saveQuestionRating(movieId, 
			this.ratingQuestionId, $(this.inputId).value, this.updateAvgRating.bind(this));	
	},
	updateAvgRating: function(data){
		if ($(this.avgRatingDivId))
			$(this.avgRatingDivId).setHTML(data);
	}
}); 	