$(document).ready(function() {
	$('.formGood').hide();
	var modal = $('#modal');

$('#modal_prefs input[type="submit"]').click(function(){
	savePrefs();
	var m = $('.formGood');
	m.html('Saved...').fadeIn(1000,function(){m.fadeOut(2500);});
});


//$('.prefs').click(setPrefs);
	$('.modal').click(function(){
		$('theHiddenDiv').show();
		resizeModal('#modal')
		$('#theModalDiv').show();
		setPrefs();
		modal.fadeIn(500).center();
	})
	var modal_close = $('.modal_close');
	modal_close.click(function(){
		$('#theModalDiv').hide();
		modal.fadeOut(500);
		if(hashStr('cat')!== undefined){
			openwithparm(hashStr('cat'));
		} else {
			openwithparm('main');
		}
	})
	modal_close.fadeTo("fast",0.5);
	modal_close.hover(
		function(){
		$(this).stop().fadeTo("fast", 1.0); // This should set the opacity to 100% on hover
		},
		function(){
		$(this).stop().fadeTo("fast", 0.5); // This should set the opacity back to 60% on mouseout
	});
});

function resizeModal(div){
	$('#modal').css('height',$(div).height());
}

// show/hide the needed divs. 
$(document).ready(function () {
    $(".show_option").click(function(){
		var linkHref = $(this).attr("href")
		if ($(linkHref).is(':hidden')) {
			$(".options").filter(':visible').stop(1, 1).fadeOut(200, function(){
				resizeModal(linkHref);
				$('#formMessage').removeClass('formGood');
				$(linkHref).stop(1, 1).fadeIn(500)
				if (linkHref == '#modal_prefs') {
					setPrefs();
				}
			})
		}
	return false;	
	});			
});

	function readCookies() {
		var setHide = $.cookie('hideTiles');
		var setResults = $.cookie('showResults');
		var setDefEngine = $.cookie('defaultSearch');
		return [setHide, setResults, setDefEngine];
	}

	function setPrefs() {
		// set out variables for the cookies.
		var tiles = $('#hides_tiles');
		var cookies = readCookies();
		var setHide = cookies[0];
		var setResults = cookies[1];
		var setDefEngine = cookies[2];
		// set whether we show tiles in prefs form
		if (setHide == 'true') {
			$('#hide_tiles').attr('checked','checked');
		} else {
			$('#hide_tiles').removeAttr('checked');
		}
		// set Number of results in form
		if (setResults == '8') {
			$('input[name="results"]')[1].checked = true;
		} else {
			$('input[name="results"]')[0].checked = true;
		}
		// set Default Engine....
		if (setDefEngine == 'google') {
			$('input[name="engine"]')[1].checked = true;
		} else {
			$('input[name="engine"]')[0].checked = true;
		}
	}

function savePrefs() {

		//create variables from form values
		var isHidden = $('#hide_tiles').is(':checked');
		var numResults = $('input[name=results]:checked').attr("value");
		var defSearch = $('input[name=engine]:checked').attr('value');

		//write cookies based on form values
		$.cookie('hideTiles',isHidden, {expires: 365});
		$.cookie('showResults',numResults, {expires: 365});
		$.cookie('defaultSearch',defSearch, {expires: 365});
		// set last panel to prefs for when they re-open the panel
		$.cookie('panelState','prefs', {expires: 365});

}

// ##################################
// ##################################

// let's validate the site suggestion form
$(document).ready(function() { 
	
    // validate signup form on keyup and submit
    var suggester = $("#suggest_form").validate({ 
        rules: {
			suggest_handle: {
				required: true,
				minlength: 6,
			},
			suggest_email: {
				required: true,
				email: true,
			},
			suggest_site: {
				required: true,
				minlength: 8,
				url: true,
			},
			suggest_cat: {
				required: true,
			},			
			suggest_reason: {
				required: true,
				maxlength: 500,
			}
			},
			messages: {
				suggest_handle: {
					required: "*Enter your forum handle",
					minlength: jQuery.format("*{0} characters required"),
				},
				suggest_email: {
					required: "*Provide email",
					required: "*Enter a valid email address",
				},
				suggest_site: {
					required: "*Please enter URL",
					minlength: jQuery.format("*Valid site URL please"),
					url: "*Valid site URL please"
				},
				suggest_cat: {
					required: "*Please enter category for site",
				},
				suggest_reason: {
					required: "*Provide reason for site change",
					maxlength: "*Message is too long. Please edit.",
				}
			}, 
			debug:true,
			errorClass: "invalid",
			errorPlacement: function(error, element){
 					error.insertAfter(element.prev('label:first'));	
			},
		});
		
		$('#suggest_form input[type="submit"]').click(function () {
			var form = $('#suggest_form');
			var valid = form.valid();
			if (valid){
				$.ajax	({
					type:'post',
					url: 'files/mailer.php',
					data:$(form).serialize(), 
					success: function(msg){
						var m = $('.formGood');
     	 				m.html(msg).fadeIn(1000,function(){m.fadeOut(1000);});
						$(form)[0].reset();
					}
				});	
			}
		})		
}); // end of suggest form validation

// ##################################
// ##################################

// let's now validate our feedback form
$(document).ready(function() { 
    // validate signup form on keyup and submit
    var feedbackvalidator = $("#feedback_form").validate({ 
        rules: {
			feedback_handle: {
				required: true,
				minlength: 6,
			},
			feedback_email: {
				required: true,
				email: true,
			},
			suggest_reason: {
				required: true,
				maxlength: 500,
			}
			},
			messages: {
				feedback_handle: {
					required: "*Enter your forum handle",
					minlength: jQuery.format("*{0} characters required"),
				},
				feedback_email: {
					required: "*Provide email",
					required: "*Enter a valid email address",
				},
				suggest_reason: {
					required: "*Provide reason for site change",
					maxlength: "*Message is too long. Please edit.",
				}
			}, 
			debug:true,
			errorClass: "invalid",
			errorPlacement: function(error, element){
 					error.insertAfter(element.prev('label:first'));	
			},
		});
		$('#feedback_form input[type="submit"]').click(function(){
				var form = $('#feedback_form');
				var valid = form.valid()
				if (valid){
					$.ajax	({
						type:'post',
						url: 'files/mailer.php',
						data:$(form).serialize(), 
						success:function(msg){
							var m = $('.formGood');
	     	 				m.html(msg).fadeIn(1000,function(){m.fadeOut(1000);});
							$(form)[0].reset();
						}
		
					});	
				}
		})
		
}); // end of feedback form validation

// our centering plugin
jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 3+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

