$(document).ready(function(){
	bookmark_hover();
});

function bookmark_hover(){
	$(".story_preview_bookmark").hover(function(){
		if($(this).find(".sample_bookmark_expand").height()!="25"){
			$(this).find(".sample_bookmark_expand").animate({ height: "10px" },200);
		}
	},function(){
		if($(this).find(".sample_bookmark_expand").height()!="25"){
			$(this).find(".sample_bookmark_expand").animate({ height: "1px" },200);
		}
	});
	
	$(".story_open").hover(function(){
		var text_width = $(this).find(".icon_text").show().width(); $(this).find(".icon_text").hide();
		$(this).find(".icon_text").animate({ width: text_width+"px" },200);
	},function(){
		$(this).find(".icon_text").animate({ width: "0px" },200);
	});
}

$('html').click(function(event) {
    if(!$(event.target).closest('#user_drop_button').length && !$(event.target).closest('#user_area_drop').length) {
		show_user_drop(0);
    };
});

$("#user_drop_button").click(function(event){
	event.stopPropagation();
});
 
/*Slider*/
function slider(_type){
	
	if($("#slider_"+_type).is(":visible")){
		$("#slider_"+_type).slideUp(400);
		$("#slider_arrow_"+_type).removeClass("arrow_up");
		$("#slider_arrow_"+_type).addClass("arrow_down");
	} else {
		$("#slider_"+_type).slideDown(400);
		$("#slider_arrow_"+_type).removeClass("arrow_down");
		$("#slider_arrow_"+_type).addClass("arrow_up");
	}
	
}

function show_user_drop(_specify){
	if(_specify==null){ _specify = 1; }
	
	if($("#user_area_drop").is(":visible") || _specify==0){
		//Show background
		//$("#overlay").fadeOut(300);
		
		$("#user_area_drop").slideUp(200,function(){
			$("#user_area").removeClass("top_round");
			$("#user_area").addClass("full_round");
		});
		$("#user_area_arrow").removeClass("arrow_up");
		$("#user_area_arrow").addClass("arrow_down");
	} else {
		//Darken background
		//$("#overlay").fadeIn(300);
		
		$("#user_area").removeClass("full_round");
		$("#user_area").addClass("top_round");
		
		$("#user_area_drop").slideDown(200);
		$("#user_area_arrow").removeClass("arrow_down");
		$("#user_area_arrow").addClass("arrow_up");
	}
}

/*Display loader*/
function display_loader(_status){
	
	if(_status==1 || _status==null){
		$("#light_loader").animate({ top: "0px" }, 300);
	} else if(_status==0){
		$("#light_loader").animate({ top: "-166px" }, 300);
	}
	
}

/*Open story*/
function login(_path,_location){
		
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["username"] = $("#login_username").val();
	variable_array["password"] = $("#login_password").val();
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	display_loader(1);
	
	//Ajax request
	$.ajax({ url: _path+"includes/actions/login.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
		$(xml).find('response').each(function(){
			var type = $(this).find('type').text();
			var message = $(this).find('message').text();
			
			if(type=="success"){
				if(_location=="home"){
					$("#light_loader").animate({ top: "-166px" }, 300, function(){
						window.location = '/';
					});
				} else {
					window.location = '/';
				}
					
			} else if(type=="fail"){
				if(_location=="home"){
					$("#login_error").fadeIn(300);
				} else {
					$("#login_alert").html('<div id="login_alert_message" style="display: none;">Your login credentials are incorrect</div>');
					$("#login_alert_message").fadeIn(300);
				}
				
				//Display loader
				display_loader(0);
			}
		});
	}});
	
}

$(document).keyup(function(event){
	if(event.keyCode == 27){
		//Reset open story
		$("#open_story").val("");
		
		//Close lightbox
		lightbox('close');
	}
});

function lightbox(_type,_set){
	
	//Offset
	if(document.documentElement.scrollTop){ var scroll_offset = document.documentElement.scrollTop; }
	else if(document.body.scrollTop){ var scroll_offset = document.body.scrollTop; }
	else { var scroll_offset = 0; }
	
	scroll_offset = scroll_offset-15;
	
	if(_type=="open"){
		//Darken background
		if(_set=="story"){
			var _height = $("#lightbox").show().height();
			$("#lightbox").css({ top: scroll_offset-_height+"px" })
		
			$("#lightbox").delay(300).animate({ top: 40+parseInt(scroll_offset)+"px" });
		} else {
			$("#overlay").fadeIn(300,function(){
				var _height = $("#lightbox").show().height();
				$("#lightbox").css({ top: scroll_offset-_height+"px" })
				
				/*if(_set=="main"){ scroll_offset = -41; }*/
				
				$("#lightbox").animate({ top: 40+parseInt(scroll_offset)+"px" });
			});
		}
		
	} else if(_type=="close"){
		var _height = $("#lightbox").height();
		$("#lightbox").animate({ top: scroll_offset-_height-10+"px" },function(){
			//Fade out overlay
			$("#overlay").fadeOut(300);
		});
		$("#lightbox").fadeOut(300,function(){
			$("#bookmark").hide();
			
			//Set open story to none
			$("#open_story").val("");
			if($("#viewing_options").is(":visible")){ $("#viewing_options").slideUp(300); }
			
			if(_set=="main"){ Recaptcha.reload(); }
		});
		
		show_user_drop(0);
	}
	
}

function check_submit(){
	if(event.keyCode == 13){
		//Reset open story
		login();
	}
}

function open_login(){
	
	var content = '<div class="light_title mb10">Login</div>';
	content += '<div id="login_error" class="light_error">Your login credentials are invalid.</div>';
	content += '<div class="light_input_title">Username/Email</div><div class="light_input"><input id="login_username" type="text" class="light_input_text" /></div>';
	content += '<div class="light_input_title mt10">Password</div><div class="light_input"><input id="login_password" type="password" class="light_input_text" onkeydown="check_submit();" /></div>';
	content += '<div class="mt15"><div class="button left" onclick="login();"><div class="button_pad">Login</div></div><div class="button ml10 left"><div class="button_pad">Forgot Password?</div></div><div class="clear"></div></div></div></div>';
	
	var nav = '<div class="indiv_nav left"><div class="indiv_pad">Create Account</div></div>';
	nav += '<div class="indiv_nav indiv_nav_last_only right" onclick="lightbox(\'close\');"><div class="indiv_pad">Close</div></div><div class="clear"></div>';
	
	$("#lightbox_nav").html(nav);
	$("#lightbox_content").html(content);
	
	//Open lightbox
	lightbox('open');
	
}

/*Open story*/
function open_story(_id,_path){

	if($("#open_story").val()==""){
		
		//Initial variables that are always sent
		var variable_array = { }
		
		//Variables
		variable_array["id"] = _id;
		
		//Set path
		if(_path==null){
			_path = "";
		}
		
		$("#overlay_text").show();
		$("#overlay").fadeIn(300,function(){
			//display_loader(1);
		});
		
		//Set open story value
		$("#open_story").val(_id);
		
		//Ajax request
		$.ajax({ url: _path+"includes/actions/story/retrieve.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
			$(xml).find('response').each(function(){
				var id = $(this).find('id').text();
				var story = $(this).find('story').text();
				var title = $(this).find('title').text();
				var username = $(this).find('username').text();
				var user = $(this).find('user').text();
				var rcount = $(this).find('rcount').text();
				var logged = $(this).find('logged').text();
				var bookmarked = $(this).find('bookmarked').text();
				
				//Display loader
				$("#overlay_text").fadeOut(300);
				
				var content = '<div class="light_title">'+title+'</div><div class="light_input_title mb15"><a href="http://'+username+'.ficpost.com">'+username+'</a></div>';
				content += '<div id="bookmark" class="bookmark"></div>';
				content += '<div id="light_story_content" class="light_content"><div id="light_content_overlay" class="light_content_overlay"></div><div id="light_story_text">'+story+'</div><div id="light_review_text"></div></div>';
				//content += '<div id="review_button" class="button left" onclick="view_reviews(\''+id+'\')"><div id="review_button_text" class="button_pad">Reviews (0)</div></div><div class="clear"></div>';
				
				var nav = '';
				if(logged==1){ nav += '<div class="indiv_nav indiv_nav_first_only left" onclick="story_bookmark(\''+id+'\');"><div id="bookmark_text" class="indiv_pad">Bookmark</div></div>'; }
				nav += '<div class="indiv_nav left" onclick="view_reviews(\''+id+'\',\''+_path+'\')"><div id="reviews_button_text" class="indiv_pad">View Reviews</div><div id="light_alert_number" class="alert_number">'+rcount+'</div></div>';
				//nav += '<div class="indiv_nav left" onclick="viewing_options();"><div class="indiv_pad">Viewing Options <img id="viewing_arrow" class="ml5" src="http://www.ficpost.com/images/icons/arrow_down.png" /></div></div>';
				nav += '<div class="indiv_nav indiv_nav_last_only right" onclick="lightbox(\'close\');"><div class="indiv_pad">Close</div></div><div class="clear"></div>';
				
				var viewing = '<div id="viewing_options" class="lightbox_nav viewing_options">';
				viewing += '<div class="indiv_nav indiv_nav_last_only right" onclick="story_style(\'size\',\'down\')"><div class="indiv_pad">-</div></div>';
				viewing += '<div class="indiv_nav indiv_nav_last_only right" onclick="story_style(\'size\',\'up\')"><div class="indiv_pad">+</div></div>';
				viewing += '<div class="right options_text mr10">Text Size</div>';
				viewing += '<div class="clear"></div></div>';
				
				$("#lightbox_nav").html(nav);
				$("#lightbox_nav").after(viewing);
				$("#lightbox_content").html(content);
				if(bookmarked==1){ $("#bookmark").show(); $("#bookmark_text").html("Remove Bookmark"); }
				
				//Open lightbox
				lightbox('open','story');
			});
		}});
	} else {
		//Reset open story
		$("#open_story").val("");
		
		lightbox('close');
	}
	
}

function view_reviews(_id,_path,_set){
	//Initial variables that are always sent
	var variable_array = { }
		
	//Variables
	variable_array["id"] = _id;
		
	//Set path
	if(_path==null){
		_path = "";
	}
	
	if(!$("#light_story_text").is(":visible")){
		$("#light_story_text").show();
		$("#light_review_text").hide();
		$("#reviews_button_text").html("View Reviews");
		$("#light_alert_number").show();
	} else {
		$("#light_content_overlay").show();
		$("#reviews_button_text").html("Loading Reviews...");
		$("#light_alert_number").hide();
		
		//Ajax request
		$.ajax({ url: _path+"includes/actions/story/retrieve_reviews.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
			$(xml).find('response').each(function(){
				var id = $(this).find('id').text();
				var reviews = $(this).find('reviews').text();
			
				$("#light_content_overlay").hide();
				$("#light_story_text").hide();
				
				$("#light_review_text").show().html(reviews);
				$("#reviews_button_text").html("Back to Story");
			});
		}});
	}
}

function story_feed(_type,_value,_path){
	//Initial variables that are always sent
	var variable_array = { }
	
	//Pagination
	if(_type=="page"){
		variable_array["current_page"] = _value;
	} else {
		variable_array["current_page"] = $("#current_page").val();
	}
	
	//Set
	if(_type=="set"){
		$("#current_set").val(_value);
		
		$("[name='set_sidebar']").each(function(i){
			$(this).removeClass("indiv_side_selected");
		});
		$("#set_"+_value).addClass("indiv_side_selected");
		
		//Display length slider if appropriate
		if(_value=="poetry"){
			$("#sidebar_slider_length").hide();
			$("#current_lengths").val("");
			$("[name='lengths_slider']").each(function(){
				$(this).removeClass("indiv_side_selected");
				var length_id = $(this).attr("id").substr(8);
				$("#lengths_"+length_id+"_deselect").remove();
			});
		} else {
			$("#sidebar_slider_length").show();
		}
	}
	
	//Type
	if(_type=="type"){
		$("#current_type").val(_value);
		
		$("[name='type_button']").each(function(){
			$(this).removeClass("indiv_nav_selected");
		});
		$("#type_"+_value).addClass("indiv_nav_selected");
	}
	
	//Genres
	if(_type=="genre"){
		if(!$("#genre_"+_value).hasClass("indiv_side_selected")){
			var genres = $("#current_genres").val();
			$("#current_genres").val(genres+_value+";");
			$("#genre_"+_value).addClass("indiv_side_selected");
			$("#genre_"+_value).append('<div id="genre_'+_value+'_deselect" class="deselection_box">x</div>');
		} else {
			var deslect = $("#current_genres").val().replace(_value+";","");
			$("#current_genres").val(deslect);
			$("#genre_"+_value).removeClass("indiv_side_selected");
			$("#genre_"+_value+"_deselect").remove();
		}
	}
	
	var current_genres = $("#current_genres").val().substr(0,(parseInt($("#current_genres").val().length)-1));
	var genre_array = current_genres.split(";");
	
	//Lengths
	if(_type=="lengths"){
		if(!$("#lengths_"+_value).hasClass("indiv_side_selected")){
			var lengths = $("#current_lengths").val();
			$("#current_lengths").val(lengths+_value+";");
			$("#lengths_"+_value).addClass("indiv_side_selected");
			$("#lengths_"+_value).append('<div id="lengths_'+_value+'_deselect" class="deselection_box">x</div>');
		} else {
			var deslect = $("#current_lengths").val().replace(_value+";","");
			$("#current_lengths").val(deslect);
			$("#lengths_"+_value).removeClass("indiv_side_selected");
			$("#lengths_"+_value+"_deselect").remove();
		}
	}
	
	var current_lengths = $("#current_lengths").val().substr(0,(parseInt($("#current_lengths").val().length)-1));
	var lengths_array = current_lengths.split(";");
	
	//Maturity
	if(_type=="maturity"){
		if(!$("#maturity_"+_value).hasClass("indiv_side_selected")){
			var maturity = $("#current_maturity").val();
			$("#current_maturity").val(maturity+_value+";");
			$("#maturity_"+_value).addClass("indiv_side_selected");
			$("#maturity_"+_value).append('<div id="maturity_'+_value+'_deselect" class="deselection_box">x</div>');
		} else {
			var deslect = $("#current_maturity").val().replace(_value+";","");
			$("#current_maturity").val(deslect);
			$("#maturity_"+_value).removeClass("indiv_side_selected");
			$("#maturity_"+_value+"_deselect").remove();
		}
	}
	
	var current_maturity = $("#current_maturity").val().substr(0,(parseInt($("#current_maturity").val().length)-1));
	var maturity_array = current_maturity.split(";");
	
	variable_array["type"] = $("#current_type").val();
	variable_array["set"] = $("#current_set").val();
	variable_array["genres"] = genre_array;
	variable_array["lengths"] = lengths_array;
	variable_array["maturity"] = maturity_array;
	variable_array["userid"] = $("#current_userid").val();
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	//Display loader
	display_loader(1);
	
	//Append white out
	$("#story_feed").append('<div id="white_out" class="white_out"></div>');
	$("#white_out").css({ width: $("#story_feed").width()+"px", height: $("#story_feed").height()+"px" });
	
	
	//Ajax request
	$.ajax({ url: _path+"includes/actions/story/feed.php", type: "POST", dataType: "html", data: variable_array, success: function(html){
		//Hide loader
		display_loader(0);
		
		//Remove white out
		$("#white_out").remove();
		
		//Scroll to top
		if(_type=="page"){ javascript:scroll(0,0); }
		
		//Display loaded data
		$("#story_feed").html(html);
		bookmark_hover();
	}});
}

function viewing_options(){
	if($("#viewing_options").is(":visible")){
		$("#viewing_arrow").attr("src","http://www.ficpost.com/images/icons/arrow_down.png");
	} else {	
		$("#viewing_arrow").attr("src","http://www.ficpost.com/images/icons/arrow_up.png");
	}
	
	$("#viewing_options").slideToggle(300);
}

function story_bookmark(_story,_type,_path){
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["id"] = _story;
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	display_loader(1);
	
	//Ajax request
	$.ajax({ url: _path+"includes/actions/story/bookmark.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
		$(xml).find('response').each(function(){
			var type = $(this).find('type').text();
			var action = $(this).find('action').text();
			
			//Display loader
			display_loader(0);
			
			if(type=="fail" || action=="remove"){
				$("#sample_bookmark_"+_story).animate({ height: "1px" },200);
				$("#bookmark_text").html("Bookmark");
				
				if(_type!="preview"){
					$("#bookmark").fadeOut(400);
				}
				
				
				if(action=="log"){
					window.location = "/";	
				}
			} else if(type=="success" || action=="add"){
				$("#sample_bookmark_"+_story).animate({ height: "25px" },200);
				$("#bookmark_text").html("Remove Bookmark");
				
				if(_type!="preview"){
					$("#bookmark").fadeIn(400);
				}
			}
		});
	}});	
}

function story_write(_set,_path){
	
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["set"] = _set;
	variable_array["title"] = $("#title").val();
	variable_array["type"] = $("#type").val();
	variable_array["genre"] = $("#genre").val();
	variable_array["maturity"] = $("#maturity").val();
	variable_array["content"] = $("#content").val();
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	display_loader(1);
	
	//Ajax request
	$.ajax({ url: _path+"includes/actions/story/write.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
		$(xml).find('response').each(function(){
			var type = $(this).find('type').text();
			var message = $(this).find('message').text();
			
			//Display loader
			display_loader(0);
			
			if(type=="fail"){
				$("#form_errors").html(message);
				$("#form_errors").fadeIn(300);
				
			} else if(type=="success"){
				$("#form_errors").fadeOut(300);
				$("#form_slide").slideUp(300,function(){
					var success_message = '<div class="form_success">Your story has been successfully submitted.</div>';
					success_message += '<div class="button_surround left">';
					success_message += '<div class="button mr10 left" onclick="open_story(\''+message+'\',\'../\');"><div class="button_pad">View Story</div></div>';
					success_message += '<a href="../"><div class="button left"><div class="button_pad">Back to Story Feed</div></div></a><div class="clear"></div>';
					success_message += '<input id="open_story" type="hidden" value="" /></div><div class="clear"></div>';
					
					$("#form_slide").html(success_message);
					$("#form_slide").slideDown(300);
				});
			}
		});
	}});
}

function story_style(_type,_value){
	
	if(_type=="size"){
		var font_size = parseFloat($("#light_story_content").css("fontSize"));
		var line_height = parseFloat($("#light_story_content").css("lineHeight"));
			
		if(_value=="up"){
			//Set new size and line height
			font_size = font_size+1;
			line_height = line_height+1;
		} else if(_value=="down"){
			//Set new size and line height
			font_size = font_size-1;
			line_height = line_height-1;
		}
		
		$("#light_story_content").css({ fontSize: font_size+"px", lineHeight: line_height+"px" });
	}
	
}

function save_settings(_type,_path){
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["type"] = _type;
	if(_type=="account"){
		variable_array["username"] = $("#username").val();
		variable_array["email"] = $("#email").val();
		variable_array["privacy"] = $("#privacy").val();
	} else if(_type=="password"){
		variable_array["current"] = $("#current_pass").val();
		variable_array["new"] = $("#new_pass").val();
		variable_array["confirm"] = $("#confirm_pass").val();
	} else if(_type=="profile"){
		variable_array["name"] = $("#name").val();
		variable_array["bio"] = $("#bio").val();
		variable_array["books"] = $("#books").val();
		variable_array["authors"] = $("#authors").val();
		variable_array["featured"] = $("#featured").val();
	}
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	display_loader(1);
	
	//Ajax request
	$.ajax({ url: _path+"../includes/actions/settings.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
		$(xml).find('response').each(function(){
			var type = $(this).find('type').text();
			var message = $(this).find('message').text();
			
			//Display loader
			display_loader(0);
			
			$("#form_errors").html(message);
			$("#form_errors").fadeIn(300);
			
			if(type=="fail"){
				$("#form_errors").removeClass("form_success");
				$("#form_errors").addClass("form_errors");
				
			} else if(type=="success"){
				$("#form_errors").removeClass("form_errors");
				$("#form_errors").addClass("form_success");
			}
		});
	}});
}

function add_review(_story,_path){
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["story"] = _story;
	variable_array["review"] = $("#review").val();
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	display_loader(1);
	
	//Ajax request
	$.ajax({ url: _path+"../includes/actions/story/add_review.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
		$(xml).find('response').each(function(){
			var type = $(this).find('type').text();
			var content = $(this).find('content').text();
			
			//Display loader
			display_loader(0);
			
			if(type=="success"){
				$("#no_reviews").hide();
				$("#place_reviews").append(content);
				$("#review").val("");
			
				var alert_number = parseInt($("#light_alert_number").html())+1;
				$("#light_alert_number").html(alert_number);
			} else {
				alert("Something went wrong. The review was not removed.");
			}
		});
	}});
}

function remove_review(_review,_path){
	//Initial variables that are always sent
	var variable_array = { }
	
	//Variables
	variable_array["review"] = _review;
	
	//Set path
	if(_path==null){
		_path = "";
	}
	
	if(confirm('Are you sure you want to remove this review?')){
		display_loader(1);
	
		//Ajax request
		$.ajax({ url: _path+"../includes/actions/story/remove_review.php", type: "POST", dataType: "xml", data: variable_array, success: function(xml){
			$(xml).find('response').each(function(){
				var type = $(this).find('type').text();
			
				//Display loader
				display_loader(0);
				
				if(type=="success"){
					$("#review_"+_review).remove();
					var alert_number = parseInt($("#light_alert_number").html())-1;
					$("#light_alert_number").html(alert_number);
				} else {
					alert("Something went wrong. The review was not removed.");
				}
			});
		}});
	}
}
