$(document).ready(function(){
	$('#addForm').submit(LPT.addMovie);
	$('.detailsModalLink').click(LPT.loadDetails);
    $('#editButton').click(LPT.sendEdit);
	$('#XhrRemoveLink').click(LPT.xhrRemoveLink);
	
	$('#edit_cancel').click(function(){
		$("#effect").effect("clip",null,500,null);
	});
	try{
		document.addForm.title.focus();
	}catch(e){}
 });

 var LPT = function(){
	return {
		addMovie : function() {
			var dateViewed = document.addForm.dt_viewed.value;
			var movieTitle = document.addForm.title.value;
			var re = new RegExp("[']", "g");
			movieTitle = movieTitle.replace(re, "\'");

			var rating = document.addForm.rating.value;
			var format = document.addForm.format_id[document.addForm.format_id.selectedIndex].innerHTML;
			
			 $.ajax({
			   type: "POST",
			   url: "movie_add.php",
			   data: "xhr=true&"+$(this).serialize(),
			   error: function(msg){alert ("Error on Submit:"+msg);},
			   success: function(msg){
				
				 var jsonObj = eval('(' + msg + ')');
				 if(jsonObj == null || jsonObj.status == "No"){
					alert( "Data not Saved due to Sql Error: "+ jsonObj.title );
				 }else{
				 
					LPT.addRow(jsonObj.newId, dateViewed, movieTitle, rating, format);
					$('<div class="quick-alert">Movie Added: '+jsonObj.title+'</div>')
					.insertAfter( $('#msgbox') )
					.fadeIn('slow')
					.animate({opacity: 1.0}, 3000)
					.fadeOut('slow', function() {
					$(this).remove();
				 });
				 }
			   } 
			 });
			 return false;			
		},
		loadDetails : function() {
			var href = this.getAttribute('href');
			
		   $.getJSON(href+'&xhr=true',
			   function(json){
				   $('#edit_id').val(json.movie_id);
				   $('#edit_title').val(json.title);
				   $('#edit_dt_viewed').val(json.dt_viewed);
				   //$('#edit_format_id').val(json.format_id);
                   
                   $('#edit_format_id option').each(function(i, selected){
                        if ($(this).val() == json.format_id){
                            $(this).attr('selected', 'selected');
                        }
                    });

                   
				   $('#edit_rating').val(json.rating);
				   $('#edit_comments').val(json.comments);
				   var temp = "<a href=\"http://www.imdb.com/title/"+json.imdb_id+'\">'+json.imdb_id+'<\/a>';
				  
				   $('#edit_imdb_id').html(temp);
				   $('#edit_runtime').html(json.runtime);
				   $('#edit_dt_released').val(json.dt_released);
				   
				   $('#edit_genre').html(json.genre);
				   $('#edit_disk').val(json.diskId);  
                   $('#edit_storyline').html(json.storyline);  
                   
                   var newSrc = 'cache/posters/poster_'+json.movie_id+'.jpg';
                   $("#fullImage").attr('src', newSrc);
				   $("#effect:hidden").removeAttr('style').hide().fadeIn();
				   var scrollTop = $(window).scrollTop();
				   $("#effect").css({top: scrollTop});
			   });
			return false;
		},
		sendEdit : function() {
			var myform = $('form#editDetails');
			console.log('myform ' + myform);
            var URL_FORM_STRING =  myform.serialize();
			console.log('URL_FORM_STRING '+URL_FORM_STRING);
            if(URL_FORM_STRING == ''){
                alert('form not serialized');
            }
			$.ajax({
			   type: "POST",
			   url: "movie_edit.php",
			   data: "xhr=true&"+URL_FORM_STRING,
			   success: function(msg){
				
				try{
				var obj = jQuery.parseJSON(msg);
				
				if( obj.status === "Saved" ){
					$("#effect").effect("clip",null,1000,null);
				}else{
					alert(msg);
				}
				}catch(err){
					alert(msg);
				}
						
			   }
			});
						
			return false;			
		},
		xhrRemoveLink : function() {
		var answer = confirm("Are you really sure.");
		if(answer){
            var movieId = $('#edit_id');
            var URL_STRING =  "movie_delete.php?movie_id="+movieId.attr('value');
            
            $.ajax({
               type: "get",
               url: URL_STRING,
               success: function(msg){
                        $("#effect").effect("clip",null,1000,null);
                        //TODO: delete row from table on page or reload the page
               }
            });
		}else{			
		$("#effect").effect("clip",null,1000,null);		
		}			
		
		return false;			
	},
	
		addRow : function (newId, dateViewed, title, rating, format){
			
			var tbl = document.getElementById('movieResultsTable');
			var row = tbl.insertRow(1);
			row.setAttribute("id","row"+newId)
			
			// Date Viewed
			var cellLeft = row.insertCell(0);
			var textNode = document.createTextNode(dateViewed);
			cellLeft.appendChild(textNode);
			
			//Title  	
			var cellLeft = row.insertCell(1);
			var textNode = document.createTextNode(title);
			cellLeft.appendChild(textNode);
			
			//Release Year  	
			var cellLeft = row.insertCell(2);
			var textNode = document.createTextNode("");
			cellLeft.appendChild(textNode);
			//Rating  	
			var cellLeft = row.insertCell(3);
			var textNode = document.createTextNode(rating);
			cellLeft.appendChild(textNode);
			//Format
			var cellLeft = row.insertCell(4);
			var textNode = document.createTextNode(format);
			cellLeft.appendChild(textNode);
			//imdb
			var cellLeft = row.insertCell(5);
			cellLeft.innerHTML="<a href=\"movie_search_imdb_id.php?movie_id="+newId+"\">(+)</a>";
			
		}
	}
}();

	

