// FlavorGames.com
$(function() {

    //nav links
    var timeout    = 500;
    var closetimer = 0;
    var linkitem = 0;

    function navlinks_open(){
       navlinks_canceltimer();
       navlinks_close();
       linkitem = $(this).find('ul').css('visibility', 'visible');
   }

    function navlinks_close(){
        if(linkitem) linkitem.css('visibility', 'hidden');
    }

    function navlinks_timer(){
        closetimer = window.setTimeout(navlinks_close, timeout);
    }

    function navlinks_canceltimer(){
        if(closetimer){
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    }

    $('#navlinks > li').bind('mouseover', navlinks_open);
    $('#navlinks > li').bind('mouseout',  navlinks_timer);
    //document.onclick = navlinks_close;


    //login
    $('p#login_error').hide();
    $('#login_submit').click(function() {
        $('p#login_error').hide();
		
        var username = $("input.username").val();
        if(username == "") {
            $("p#login_error").html("Please enter your username.");
            $("p#login_error").show();
            $("input.username").focus();
            return false;
    	}
        var password = $("input.password").val();
        if(password == "") {
            $("p#login_error").html("Please enter your password.");
            $("p#login_error").show();
            $("input.password").focus();
            return false;
    	}
        var gamepage_id = $("input#gamepage_id").val();
        var dataString = 'username='+ username + '&password=' + password + '&gamepage_id=' + gamepage_id;
		
        $.ajax({
            type: "POST",
            url: "/xhr/login.php",
            data: dataString,
            dataType: "json",
            success: function(data) {
                if(data.login == 'true') {
                    $('#login_container').html("<div class=\"login2\"><div class=\"left\">Logged in as <b>"+data.username+"</b>.<br />- <a href=\""+data.favorites_link+"\">Your Flavor List</a><br />- <a href=\""+data.profile_link+"\">Your Profile</a><br />- <a href=\""+data.logout_link+"\">Logout</a></div><div id=\"qaright\" style=\"width:354px\"><p><b>News</b></p><p>"+data.news+"</p></div></div>");
                    $('#login_container').hide();
                    $('#login_container').fadeIn(1500, function() {
                        $("p#login_error").show();
                    });
					
                    if(gamepage_id != "null") {
                        $('form#loggedin').hide();
                        if(data.gReviewed == 'true') {
                            $('p.reviewed').show();
                        } else {
                            $('#review_form').show();
                            $('p#review_error').hide();
                        }
                        if(data.gRated == 'true') {
                            $('p.rated').show();
                        } else {
                            $('#rate_form').show();
                        }
                        if(data.favadded == 'true') {
                            $('p#addfav').html("<a href=\"#\">Click here to REMOVE this game from your flavor list.</a>");
                            $('p#addfav').show();
                        } else {
                            $('p#addfav').html("<a href=\"#\">Click here to add this game to your flavor list!</a>");
                            $('p#addfav').show();
                        }
                    }
					
                } else {
                    $("p#login_error").html("Incorrect username and/or password. <a href=\"http://www.flavorgames.com/pages/forgot-password\">Click here</a> if you've forgotten your username or password.");
                    $("p#login_error").show();
                }
            }
     	});
        return false;
    });

    //review
    $('p#review_error').hide();
    $('input#review_submit').click(function() {
        $('p#review_error').hide();
		
        var review_text = $("textarea#review_text").val();
        if(review_text == "") {
            $("p#review_error").show();
            $("textarea#review_text").focus();
            return false;
        }
        var gamepage_id = gup('id');
        var dataString = 'review_text=' + review_text + '&gamepage_id=' + gamepage_id;
        
        $.ajax({
            type: "POST",
            url: "/xhr/review.php",
            data: dataString,
            success: function() {
                $('#review_container').html("<p class=\"reviewed\">Thank you for reviewing this game! Each game can only be reviewed once per day from a user, but feel free to submit another review for this game tomorrow.</p>");
            }
        });
	return false;
    });
    
    //rate
    function rate(rating) {
        var gamepage_id = gup('id');
        var dataString = 'rating=' + rating + '&gamepage_id=' + gamepage_id;
        $.ajax({
            type: "POST",
            url: "/xhr/rate.php",
            data: dataString,
            success: function() {
                $('#rate_container').html("<p class=\"rated\">Thank you for rating this game! Each game can only be rated once per day from a user, but feel free to rate this game again tomorrow.</p>");
            }
        });
    }
    $('input#good').click(function() { rate('good'); return false; });
    $('input#ok').click(function() { rate('ok'); return false; });
    $('input#bad').click(function() { rate('bad'); return false; });
    $('input#loggedin').click(function() { alert("You must be logged in to rate this game."); return false; });
    
    //favorite
    $('#addfavlink').click(function() {
        var gamepage_id = gup('id');
        var dataString = 'gamepage_id=' + gamepage_id;
        $.ajax({
            type: "POST",
            url: "/xhr/favorite.php",
            data: dataString,
            dataType: "text",
            success: function(data) {
                if(data == 'added') {
                    $('p#addfav').html("This game has been added to your flavor list.");
                } else {
                    $('p#addfav').html("This game has been removed from your flavor list.");
                }
            }
        });
        return false;
    });
    $('input.remove').click(function() {
        var gamepage_id = $(this).siblings('.id').val();
        var dataString = 'gamepage_id=' + gamepage_id;
        $.ajax({
            type: "POST",
            url: "/xhr/favorite.php",
            data: dataString
        });
        $(this).parents('.gamecontainer').remove();
        return false;
    });
    
    //search
    $('input#search').click(function() {
        var cat_id = $("input#cat_id").val();
        var keywords = $("input#keywords").val();
        var dataString = 'cat_id=' + cat_id + '&keywords=' + keywords;
        $.ajax({
            type: "POST",
            url: "/xhr/search.php",
            data: dataString,
			dataType: "text",
			success: function(data) {
                window.location = data;
            }
        });
        return false;
    });
	
	//register
    $('input#register_submit').click(function() {
		$("#reg_errors").html('');
		var errors;
        var username = $("input#reg_username").val();
        if(username == "") {
            $("#reg_errors").append("<div id=\"error\">Please enter your username.</div>");
            $("input#reg_username").focus();
            errors = true;
    	}
        var password1 = $("input#reg_password1").val();
        if(password1 == "") {
            $("#reg_errors").append("<div id=\"error\">Please enter your password.</div>");
			if(errors != true) {
	            $("input#reg_password1").focus();
				errors = true;
			}
    	}
		var password2 = $("input#reg_password2").val();
        if(password2 == "") {
            $("#reg_errors").append("<div id=\"error\">Please re-enter your password.</div>");
			if(errors != true) {
            	$("input#reg_password2").focus();
            	errors = true;
			}
		}
		if(password1 != password2) {
			$("#reg_errors").append("<div id=\"error\">Your passwords do not match.</div>");
			if(errors != true) {
	            $("input#reg_password1").focus();
    	        errors = true;
			}
		}
		var email = $("input#reg_email").val();
        if(email == "") {
            $("#reg_errors").append("<div id=\"error\">Please enter your email.</div>");
			if(errors != true) {
	            $("input#reg_email").focus();
    	        errors = true;
			}
		}
		var bday = $("input#reg_day").val();
        if(bday == "DD") {
            $("#reg_errors").append("<div id=\"error\">Please enter your birth day.</div>");
			if(errors != true) {
				$("input#reg_day").val('');
    	        $("input#reg_day").focus();
        	    errors = true;
			}
		}
		var byear = $("input#reg_year").val();
        if(byear == "YYYY") {
            $("#reg_errors").append("<div id=\"error\">Please enter your birth year.</div>");
			if(errors != true) {
				$("input#reg_year").val('');
    	        $("input#reg_year").focus();
        	    errors = true;
			}
		}
		
		if(errors == true) {
			$("#reg_errors").show();
			return false;
		}
		
        if($("input#reg_news").attr('checked')) {
			var news = 1;
		} else {
			var news = 0;
		}
		var bmonth = $("select#reg_month").val();
        var dataString = 'username='+ username + '&password1=' + password1 + '&password2=' + password2 + '&email=' + email + '&news=' + news + '&bmonth=' + bmonth + '&bday=' + bday + '&byear=' + byear;
		
        $.ajax({
            type: "POST",
            url: "/xhr/register.php",
            data: dataString,
            dataType: "text",
            success: function(data) {
                if(data == '0') {
					window.location = "/";
				} else {
					$("#reg_errors").html(data);
					$("#reg_errors").show();
				}
            }
     	});
        return false;
    });
	
	//forgot pw
    $('input#forgotpw_submit').click(function() {
		$("#reg_errors").html('');
		var errors;
		var email = $("input#for_email").val();
        if(email == "") {
            $("#reg_errors").append("<div id=\"error\">Please enter your email.</div>");
			if(errors != true) {
	            $("input#for_email").focus();
    	        errors = true;
			}
		}
		var bday = $("input#for_day").val();
        if(bday == "DD") {
            $("#reg_errors").append("<div id=\"error\">Please enter your birth day.</div>");
			if(errors != true) {
				$("input#for_day").val('');
    	        $("input#for_day").focus();
        	    errors = true;
			}
		}
		var byear = $("input#for_year").val();
        if(byear == "YYYY") {
            $("#reg_errors").append("<div id=\"error\">Please enter your birth year.</div>");
			if(errors != true) {
				$("input#for_year").val('');
    	        $("input#for_year").focus();
        	    errors = true;
			}
		}
		
		if(errors == true) {
			$("#reg_errors").show();
			return false;
		}
		
		var bmonth = $("select#for_month").val();
        var dataString = '&email=' + email + '&bmonth=' + bmonth + '&bday=' + bday + '&byear=' + byear;
		
        $.ajax({
            type: "POST",
            url: "/xhr/forgotpw.php",
            data: dataString,
            dataType: "text",
            success: function(data) {
                if(data == '0') {
					$("#reg_left").html("A new password and your existing username have been sent to your email address. Please use this to log in and then change your password to something you can easilly remember.");
				} else {
					$("#reg_errors").html(data);
					$("#reg_errors").show();
				}
            }
     	});
        return false;
    });
	
	//profile update
	$('input#update_profile').click(function() {
		$("#prof_update").html('');
		var errors;
		var password1 = $("input#reg_password1").val();
		var password2 = $("input#reg_password2").val();
		if(password2 == "" && password1 != "") {
			$("#prof_update").append("Please re-enter your new password. ");
			if(errors != true) {
				$("input#reg_password2").focus();
				errors = true;
			}
		}
		if(password1 != password2) {
			$("#prof_update").append("Your new passwords do not match. ");
			if(errors != true) {
				$("input#reg_password1").focus();
				errors = true;
			}
		}
		var email = $("input#reg_email").val();
		if(email == "") {
			$("#prof_update").append("Please enter your email. ");
			if(errors != true) {
				$("input#reg_email").focus();
				errors = true;
			}
		}
		
		if(errors == true) {
			$("#prof_update").show();
			return false;
		}
		
		if($("input#reg_news").attr('checked')) {
			var news = 1;
		} else {
			var news = 0;
		}
		var dataString = '&password1=' + password1 + '&password2=' + password2 + '&email=' + email + '&news=' + news;
		$.ajax({
			type: "POST",
			url: "/xhr/profile.php",
			data: dataString,
			dataType: "text",
			success: function(data) {
				$("#prof_update").html(data);
				$("#prof_update").show();
			}
		});
		return false;
	});
    
    //get url param
    function gup(name){
        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var regexS = "play-game/"+"([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );
        if( results == null )
            return "";
        else
            return results[1];
    }
	
	var carousel = $("#qaright").html();
	carousel = carousel.replace('<!--','');
	carousel = carousel.replace('-->','');
	$("img#loadingimg").hide();
	$("#qaright").html(carousel);
    
});