
$(document).ready(function() {
    // defaults the background to faded
	$("#bg").fadeTo("fast", 0);
	$("#bgNoClick").fadeTo("fast", 0);
});	


$(window).load(function() {

// Search Autocompletes ------------------------------------------>
	
//	$("#keywords").autocomplete("/search.php", {
//		delay: 100,
//		autoFill: false,
//		scroll: false,
//		max: 40,
//		selectFirst: false
//	});
//
//	$("#pageKeywords").autocomplete("/search.php?t=pages&col=title&ord=page_id&dir=DESC", {
//		delay: 100,
//		autoFill: false,
//		scroll: false,
//		max: 40,
//		selectFirst: false
//	});


// global for dialog boxes ------------------------------------------>
	
	$(".box").draggable({ 
		handle: '.titleBar', 
		containment: 'document'
		
	});


	// closes out the background on click
	$("#bg").click(function() {
		$(".editBox").fadeOut("fast");
		$(".box").fadeOut("fast");
		$("#bg").fadeTo("fast", 0, function(){
			$("#bg").toggle();
		});
	});
   
	$(".close").click(function() {
		$(".box").fadeOut("fast");
		$("#bg").fadeTo("fast", 0, function(){
			$("#bg").toggle();
		});
	});
	
	
	$(".ok").click(function() {
		//$(".window").fadeOut("fast");
		$(".box").fadeOut("fast");
		$("#bg").fadeTo("fast", 0, function(){
			$("#bg").toggle();
		});
	});
	
	
	$(".closeNoClick").click(function() {
		$(".box").fadeOut("fast");
		$("#bg").fadeTo("fast", 0, function(){
			$("#bg").toggle();
		});
	});
	

	// dialog boxes ------------------------------------------>
	

//	$(".videoLink").click(function() {
//		if( $(this).attr( 'rel' ) ){
//			
//			var file = $(this).attr( 'rel' );
//			var title = $(this).attr( 'title' );
//			var subtitle = $(this).attr( 'subtitle' );
//			
//			var s1 = new SWFObject('/mediaplayer/player.swf','player','480','342','9'); 
//			s1.addParam('allowfullscreen','true'); 
//			s1.addParam('allowscriptaccess','always'); 
//			//s1.addParam('flashvars', file); 
//			//s1.addVariable('image','http://dev.stampalbumpro.com/media/title.jpg');
//			s1.addVariable('file',file);
//			s1.addVariable('autostart','true');
//			//s1.addVariable('start','start');			
//			s1.write('preview'); 
//			
//			$("#mediaPlayer").centerScreen();
//			$("#bgNoClick").show();
//			$("#bgNoClick").fadeTo("normal", 0.80, function(){
//				$("#mediaPlayer").fadeIn("normal");
//				$('#mediaTitle').text(title);
//				$('#mediaSubtitle').text(subtitle);
//			});
//		}
//	});
//	
//
//	$("#closeMediaPlayer").click(function() {
//		$(".box").fadeOut("fast");
//		$("#bgNoClick").fadeTo("fast", 0, function(){
//			$("#bgNoClick").toggle();
//			$('#preview').text('');
//		});
//	});
	
	
	$("#createPage").click(function() {
		resizeFrame();
		$("#working").centerScreen();
		$("#bgNoClick").show();
		$("#bgNoClick").fadeTo("normal", 0.80, function(){
			$("#working").show();
		});
	});
	
	$("#debugLink").click(function() {
		if($("#debug").css('display') == 'none'){
			$("#debug").centerScreen();
			$("#debug").fadeIn("normal");
		}else{
			$("#debug").fadeOut("normal");
		}
	});
	
	
	
	$("#stampListMinimize").click(function() {
		$('#stampListContentPane').slideToggle('fast');
		$(this).toggleClass('minimized');
		var state =  $(this).css('background-position') =='0px -29px'?0:1;
		$.ajax({
			type: "GET",
			url: "/update.php",
			data: "mode=pinStampList&state="+state,
			success: function(response){
				//debug( response );
			}
		});
	});
	

});
	   
	   
	   
	   
// -------------------------- end of on loaded functions -----------------------------------------------
	    
	jQuery.event.add(window, "load", resizeFrame);
	jQuery.event.add(window, "resize", resizeFrame);
	
	
		function errorBarClose() {
			$("#errorContainer").slideToggle('fast');
		}
	
		function centerStampList() {
			$("#stampList").centerScreen();
			var offset = $("#stampList").offset();
			var scrollTop = offset.top - $(window).scrollTop();
			saveCoords(offset.left, scrollTop, 'stampList');
		}


		function openDialog(id){
			$("#"+id).centerScreen();
			$("#bg").show();
			$("#bg").fadeTo("fast", 0.75, function(){
				$("#"+id).fadeIn("normal");
			});
		}
	
	
		function resizeFrame(){
		    var h = $(document).height();
		    $(".bg").css('height', h);
		}
		

		function toggleGroupTextEditBox() {
			$("#groupTextEditBox").slideToggle("fast");
			$("#groupTextEditButton").text($("#groupTextEditButton").text() == 'Edit...' ? 'Hide' : 'Edit...');
		}

		function toggleStampTextEditBox() {
			//$(this).parent().preventDefault();
			$("#stampTextEditBox").slideToggle("fast");
			$("#stampTextEditButton").text($("#stampTextEditButton").text() == 'Edit...' ? 'Hide' : 'Edit...');
		}

		
		
		function saveCoords(x, y, el, id) {
		  $.ajax({
		    type: "POST",
		    url: "/coords.php",
		    data: "x=" + x + "&y=" + y,
		    success: function(response){}
		  });
		}
	
	
		function debug(text){
			$("#debug").fadeIn("normal");
			$('#debugContent').append('<p class="tight">'+text+'</p>');
		}
		
		
		$(function() {
			$("#stampList").draggable({
			handle: '.titleBar', 
			containment: 'document',
			//opacity: 0.3,
			drag: function(event, ui) {
				//$("#stampList").css("opacity", "0.6"); // Semi-transparent when dragging
			},
			stop: function(event, ui) {
				var scrollTop = ui.absolutePosition.top - $(window).scrollTop();
				saveCoords(ui.absolutePosition.left, scrollTop, ui.helper.attr('id'));
				//$("#stampList").css("opacity", "1.0"); // Full opacity when stopped
			},
			cursor: "move"
			});
		});	



	function saveGroupTitle(group_id){
		$("#loadingError").hide();
		$("#loading").show();
		var title = $("#groupTitleEdit_"+group_id).val();
		var subtitle = $("#groupSubtitleEdit_"+group_id).val();
		var text = $("#groupTextEdit_"+group_id).val();
		$.ajax({
			type: "GET",
			url: "/update.php",
			data: "mode=saveGroupTitle&group_id="+group_id+"&title="+title+"&subtitle="+subtitle+"&text="+text,
			success: function(response){
					//debug(response);
					$("#loading").hide();
					$("#groupTitleText_"+group_id).html(response);
					$("#groupTitleBox_"+group_id).slideToggle();
					$("#addToGroupBox_"+group_id+" > label").html(response); 
			},
			error:function (xhr, ajaxOptions, thrownError){
				$("#loading").hide();
				$("#loadingError").show();
			}    			
		});
	}
	
	
	
	function selectAll(){
		$( ".checkbox" ).each(function(index) {
		    selectStamp($(this).attr('value'), 2);
		  });
	}
		
		
	function deselectAll(){
		$( ".checkbox" ).each(function(index) {
		    selectStamp($(this).attr('value'), 1);
		  });
	}
		
		
	function selectStamp(id, sel){
		// click function for selecting stamp boxes
			//alert($("#previewBox_"+id).attr('status'));
			var status = $("#previewBox_"+id).attr('status');
			//debug(status);
			if(status == 0){
				if(sel == 1){ // force deselect
					selectStampState( id, false );
				} else if(sel == 2){ // force select
					selectStampState( id, true );
				} else { // toggle selection
					var check = "#check_"+id;
					if( $(check).attr('checked') ){
						selectStampState( id, false );
					} else {
						selectStampState( id, true );
					}
				}
			}
	}
	
	
	function selectStampState( id, state ){
			var check = "#check_"+id;
			var thumb = "#previewBox_"+id;
			var detail = "#resultsGridInfoBox_"+id;
			if( state == true ){
				$(check).attr('checked', true);
				$(thumb).addClass("selected");
				$(detail).addClass("selected");
			} else {
				$(check).attr('checked', false);
				$(thumb).removeClass("selected");
				$(detail).removeClass("selected");
			} // end if
	}// end function
	
	


	function removeStamp(group_id, stamp_id){
		$("#loadingError").hide();
		$("#loading").show();
		$.ajax({
			type: "GET",
			url: "/update.php",
			data: "mode=removeStamp&group="+group_id+"&stamp="+stamp_id,
			success: function(response){
				if(response){
					document.location="/pages/search.html?page=1";
				} else {
					$("#stamps_"+stamp_id).remove(); 
					$("#resultsGridContainer_"+stamp_id).removeClass('used'); 
					$("#previewBox_"+stamp_id).attr('status', 0); 
					$("#groupList_"+group_id).sortable('refresh');
					$("#loading").hide();
					updateStampCount()
				}
				
				},
				error:function (xhr, ajaxOptions, thrownError){
					$("#loading").hide();
					$("#loadingError").show();
				 }    			
		});
	}



	function removeGroup(group_id){

		//if (confirm('Are you sure you want to remove group?')){
			$("#loadingError").hide();
			$("#loading").show();
			$.ajax({
				type: "GET",
				url: "/update.php",
				data: "mode=removeGroup&group_id="+group_id,
				success: function(response){
					if(response){
						//debug(response);
						updateStampCount();
						var rep = response.split('-');
						if(rep[1] == 'empty'){
							document.location="/pages/search.html?page=1";
						}
						
						var active = "#stampListPane_" + rep[1];
						var stamps = rep[0].split(" ");
						for (x in stamps){
							$("#resultsGridContainer_"+stamps[x]).removeClass('used'); 
							$("#previewBox_"+stamps[x]).attr('status', 0); 
						}
						accordion( "#accordion", ".stampListTab", ".stampListPane", active);
						$("#stampListTab_"+group_id).slideUp('normal'); 
						$("#addToGroupBox_"+group_id).remove(); 
						$("#accordion").sortable('refresh');
						$("#loading").hide();
					} else {
						$("#loading").hide();
						$("#loadingError").show();
					}
				},
				error:function (xhr, ajaxOptions, thrownError){
					$("#loading").hide();
					$("#loadingError").show();
				 }    			
			});
		//}// end if
	}
	
		
		
	
	

	// ajax function for rating pages
	function ratePage(pageId, rating) {
		//debug(pageId+"  "+rating);
		$("#ratingControls_"+pageId).hide();
		$.post("/update.php", { mode: "ratePage", page_id: pageId, rating: rating }, function(data){
																			 //debug(data);
																			 } );
	}
	
	
	
	// ajax function for getting formatted stamp page results
	function getStampContent(fetch, page) {
		$("#contentLoading").show();
		//var fetch = $(obj).attr('fetch');
		//var page = $(obj).attr('page');
		//debug(fetch);
		$.ajax({
			type: "GET",
			url: "/ajax.php",
			data: "mode=resultUpdate&fetch="+fetch+"&page="+page,
			success: function(response){
				$("#result").html(response);
				resizeFrame();
				$("#contentLoading").hide();
				$('.lightbox').lightbox();
				$('#yearNav').val(fetch);
			},
			error:function (xhr, ajaxOptions, thrownError){
				$("#contentLoading").hide();
				$("#loadingError").show();
			}    			
		});
	}
	
	
	
	// ajax function for getting premade page results
	function getPageContent(page) {
		$("#contentLoading").show();
		//var fetch = $(obj).attr('fetch');
		//var page = $(obj).attr('page');
		//debug(fetch);
		$.ajax({
			type: "GET",
			url: "/ajax.php",
			data: "mode=pageUpdate&page="+page,
			success: function(response){
				//debug(response);
				$("#result").html(response);
				resizeFrame();
				$("#contentLoading").hide();
				$('.lightbox').lightbox();
			},
			error:function (xhr, ajaxOptions, thrownError){
				$("#contentLoading").hide();
				$("#loadingError").show();
			}    			
		});
	}
	
	
	
	$(function() {
		var stop = false;
		$("#accordion > .stampListTab > .stampListTabTitleBar").click(function(event) {
			if (stop) {
				event.stopImmediatePropagation();
				event.preventDefault();
				stop = false;
			} else {
				var id = $(this).attr('tab');
				var active = "#stampListPane_" + id;
				if( $(active).css('display') == 'none'){
					accordion( "#accordion", ".stampListTab", ".stampListPane", active);
					$.ajax({
						type: "GET",
						url: "/update.php",
						data: "mode=activeTab&tab=" + id,
						success: function(response){
							//debug(response);
						},
					});
				}
			}
				
		});
		
		$("#accordion").sortable({
			containment: 'parent',
			opacity: 0.6,
			axis: 'y', 
			tolerance: 'pointer',
			distance: 5,			
			handle: "h3",
			stop: function(event, ui) {
					stop = true;
				},
			update : function () {
				$("#loadingError").hide();
				$("#loading").show();
				var order = $("#accordion").sortable('serialize');
				$.ajax({
					type: "GET",
					url: "/update.php",
					data: "mode=updateGroups&"+order,
					//timeout: 1,
					success: function(response){
						$("#loading").hide();
					},
					error:function (xhr, ajaxOptions, thrownError){
						$("#loading").hide();
						$("#loadingError").show();
					}    			
				});
			}
		});
	});
	
	
	// sortables ----------------------------------------------------------->
	
	$(function() {
		$(".groupList").sortable({
			containment: 'parent',
			opacity: 0.6,
			axis: 'y', 
			tolerance: 'pointer',
			activeClass: 'tabDrag',
			//revert: 20,
			start: function(event, ui) {
					$('#'+ui.item[0].id).addClass("tabDrag");			
				},
			stop: function(event, ui) {
					$('#'+ui.item[0].id).removeClass("tabDrag");			
				},
			update : function () {
				var order = $(this).sortable('serialize');
				var group = $(this).attr('alt');
				$.ajax({
					type: "GET",
					url: "/update.php",
					data: "mode=updateStampList&group="+group+"&"+order,
					success: function(response){}
				});
			}
	    });
	});


	
	
	// toggles the selection box for active layouts
	function selectLayout(id, text){
			$(".layoutImage").removeClass('selected').removeClass('bordered');
			$("#"+id+"Box").addClass('selected').addClass('bordered');
			$("#"+id).attr("checked", true);
			if(text == 1){
				$("#stampText").hide();
				$("#groupText").show()
			} else if(text == 0) {
				$("#stampText").show();
				$("#groupText").hide()
			} else {
				$("#stampText").hide();
				$("#groupText").hide()
			}
			resizeFrame();
	}
	
	
	
	
	// toggles the selection box for border styles
	function selectBorder(id){
			$(".borderStyle").removeClass('selected').removeClass('bordered');
			$("#border"+id+"Box").addClass('selected').addClass('bordered');
			$("#border"+id).attr("checked", true);
	}
	
	
	
	// toggles the selection box for border colors
	function selectBorderColor(id){
			$(".borderColorBox").removeClass('selected').removeClass('bordered');
			$("#borderColor"+id+"Box").addClass('selected').addClass('bordered');
			$("#stampBorderColor"+id).attr("checked", true);
	}
	
	
	
	
	function accordion(root, tab, pane, active){
			var parent = root +" > "+ tab;
			$('.stampListTitleEditButton').hide();
			$(parent).each(function(index) {
				var content = "#" + $(this).attr('id') + " > " + pane;
				if(content != active){
					$(content).slideUp('normal');
				} else {
				}
			});
			var edit = active.split("_");
			$("#stampListTitleEditButton_" + edit[1]).fadeIn();
			$(active).slideToggle('normal');
	}



	function toggleClass(obj, class1, class2){
		if( $(obj).attr('class') == class1 ){
			$(obj).removeClass(class1).addClass(class2); 
		}else{
			$(obj).removeClass(class2).addClass(class1); 
		}
	}


	function updateStampCount(){
		$.ajax({
			type: "GET",
			url: "/update.php",
			data: "mode=getStampCount",
			//timeout: 1,
			success: function(response){
				var count = response.split('-');
				var text = count[1]+" stamps";
				if(count[0] > 1){
					text += " in "+count[0]+" group(s)";
				}
				$("#stampListStampCount").text(text);
			},
		});
	}
	
	
	function flip(box){
		var id = "#"+box;
		$(id).toggle();
	}// end finction


	function flipAll(obj){
		var val = 1;
		if($(obj).text() == "Detail View"){
			$(".resultsGridPreview").hide();
			$.post("/update.php", { mode: "set", obj: "flip", value: 0 }, function(data){} );
			$(obj).text("Thumbnail View");
		} else {
			$(".resultsGridPreview").show();
			$.post("/update.php", { mode: "set", obj: "flip", value: 1 }, function(data){} );
			$(obj).text("Detail View");
		}
	}// end finction



	function toggleNavigation(obj){
		$("#resultHeader").toggle();
		$("#navigator").toggle();
		$(obj).text($(obj).text() == 'Expanded Navigation' ? 'Simple Navigation' : 'Expanded Navigation');
	}
	
	
	function resizeThumbs(size, obj){
		$(".stampListThumb").removeClass('thumb20').removeClass('thumb35').removeClass('thumb50').addClass('thumb'+size);
		$.post("/update.php", { mode: "set", obj: "thumbSize", size: size }, function(data){} );
		$(".thumbSize").removeClass('currentThumbSize')
		$(obj).addClass('currentThumbSize');
	}
	
	
	function quickstartSlide(slide){
		$(".QSSlide").hide();
		$("#QSSlide"+slide).show();
		
		$(".QSThumb").removeClass('QSSelected');
		$("#QSThumb"+slide).addClass('QSSelected');
	}



