/*
 | Main javascript file for waxbook.com
 | (c) 2008-2009 David Södermark
 */

var base_url = 'http://www.waxbook.se/';
var temperatureSets = 0; // may be changed in vallor_skapa and vallor_editera.
var glidewaxes = 0;
var gripwaxes = 0;
var maxwaxes = 10;
var editWaxAtLoad = false;
var editVallningAtLoad = false;
var rateWaxId = 0;
var manufacturerNames = new Array();
var manufacturerIds = new Array();
var productNames = new Array();
var waxIds = new Array();

jQuery(document).ready(function(){
	jQuery('a[rel*=facebox]').facebox();

	// Register, Login and Forgot/GetPassword.
	jQuery(document).bind('reveal.facebox', function() {
		jQuery("#anvandaravtal").hide();
		jQuery("#get_password").hide();
		jQuery("#formloading").append('<img src="'+$.facebox.settings.loadingImage+'"/>').hide();
		jQuery("#getpwloading").append('<img src="'+$.facebox.settings.loadingImage+'"/>').hide();

		// Register.
		jQuery("#registerForm").validate({
			rules: {
				reg_username: {
					minlength: 4,
					maxlength: 50
				}
			},
			messages: {
				reg_avtal: "Du måste godkänna användaravtalet.",
				reg_username: {
					required: "Du måste ange ett användarnamn.",
					minlength: "Användarnamnet måste vara minst 4 tecken.",
					maxlength: "Användarnamnet får vara maximalt 50 tecken."
				},
				reg_epost: {
					required: "Du måste ange en e-postadress.",
					email: "E-postadressen måste vara riktig så vi kan sända dig ditt lösenord."
				}
			},
			submitHandler: function(form){
				jQuery(form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#formloading").show();
							jQuery("#formresult").removeClass("formerror").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							var message = data["message"];
							jQuery("#formloading").hide();
							if(error == ""){
								jQuery("#formresult").html(message);
							} else {
								jQuery("#formresult").addClass("formerror").html(
									'Följande fel uppstod:<br />' + error
								);
							}
						}
				});
			}
		});
		jQuery("#toggle_anvandaravtal").click(function(){
			jQuery("#anvandaravtal").toggle();
		});

		// Login.
		jQuery("#loginForm").validate({
			messages: {
				login_epost: {
					required: "Du måste ange en e-postadress.",
					email: "Du måste logga in med den fungerande e-postadress du registrerat hos Waxbook."
				},
				login_password: {
					required: "Du måste ange ett lösenord."
				}
			},
			submitHandler: function(form){
				jQuery(form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#formloading").show();
							jQuery("#formresult").removeClass("formerror").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							jQuery("#formloading").hide();
							if(error == ""){
								jQuery("#formresult").html("Loggar in...");
								location.reload(true);
							} else {
								jQuery("#formresult").addClass("formerror").html(
									'Följande fel uppstod:<br />' + error
								);
							}
						}
				});
			}
		});

		// Forgot and get password.
		jQuery("#forgot_password_toggle").click(function(){
			jQuery("#get_password").toggle();
		});
		jQuery("#getpwForm").validate({
			messages: {
				getpw_epost: {
					required: "Du måste ange en e-postadress.",
					email: "Du måste ange den fungerande e-postadress du registrerat hos Waxbook."
					}
				},
			submitHandler: function(form){
				jQuery(form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#getpwloading").show();
							jQuery("#getpwresult").removeClass("formerror").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							var message = data["message"];
							jQuery("#getpwloading").hide();
							if(error == ""){
								jQuery("#getpwresult").html(message);
							} else {
								jQuery("#getpwresult").addClass("formerror").html(
									'Följande fel uppstod:<br />' + error
								);
							}
						}
				});
			}
		});
	});

	// *************************************************************************
	// Defaults.
	// *************************************************************************

	/*jQuery.ajaxSetup({
		dataType: "json"
	});*/

	// *************************************************************************
	// Sök vallor.
	// *************************************************************************

	// Form Sök vallor - detaljerad: On select waxtypecategory. [Hard coded: slice(1)]
	jQuery("#sok_waxtypecategory_id").change(function(){
		var waxtypeCategoryId = 0;
		waxtypeCategoryId = jQuery("#sok_waxtypecategory_id").val();

		// Update waxtypes when waxtypecategory changes.
		jQuery("#sok_waxtype_id option:first").attr("selected", true);
		jQuery("#sok_waxtype_id option").slice(1).hide();
		jQuery(".cat"+waxtypeCategoryId).show();
	})
	.change();

	// *************************************************************************
	// Lista vallor & vallningar. (sökresultat, visa, mina)
	// *************************************************************************

	jQuery(".tr_hover").hover(function(){
			if (jQuery(this).hasClass("greyline")){
				jQuery(this).addClass("tr_hoverdark");
			}else{
				jQuery(this).addClass("tr_hoverlight");
			}
		}, function(){
			if (jQuery(this).hasClass("greyline")){
				jQuery(this).removeClass("tr_hoverdark");
			}else{
				jQuery(this).removeClass("tr_hoverlight");
			}
	});

	// *************************************************************************
	// Visa en valla.
	// *************************************************************************

	// Gäller för visa en vallning också (den som är star_disabled).
	if (jQuery("#visa_en_body_right").length>0){
		jQuery("#visa_en_body_right input[type=radio].star_disabled").rating().rating("disable");
	}
	if (jQuery("#visa_en_body_right_below").length>0){
		jQuery("#formloading_ratewax").append('<img src="'+$.facebox.settings.loadingImage+'"/>').hide();
		jQuery("#visa_en_body_right_below input[type=radio].star").rating({
			cancel:			'Ta bort betyg',
			cancelValue:	0,
			//url:			base_url+'vallor/rate_wax/'+rateWaxId,
			callback: function(value, link){
				jQuery(this.form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#formloading_ratewax").show();
							jQuery("#formFeedback").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							var inputIndex = data["newStarratingcheckedindex"];
							var newRatings = data["newRatings"];
							jQuery("#formloading_ratewax").hide();
							if(error == ""){
								jQuery("#formFeedback").append("<div id=\"formSuccess\">"+
									"<p>Tack för att du betygsatte vallan!</p></div>").show();
								jQuery("#form_average_rating input").
									rating('enable').rating('select', inputIndex).rating('disable');
								jQuery("#ratings").empty().append('('+newRatings+')');
							} else {
								jQuery("#formFeedback").append("<div id=\"formError\"><p>"+
									error+"</p></div>").show();
							}
						}
				});
			}
		});
		jQuery("div.rating-cancel a").click(function(){
			jQuery.ajax({
				url: base_url+"vallor/rate_wax/"+rateWaxId,
				type: "post", dataType: "json",
				data: {"wax_rating": 0},
				beforeSend:
					function(){
						jQuery("#formloading_ratewax").show();
						jQuery("#formFeedback").empty();
					},
				success:
					function(data,success,matchedset){
						var error = data["error"];
						var inputIndex = data["newStarratingcheckedindex"];
						var newRatings = data["newRatings"];
						jQuery("#formloading_ratewax").hide();
						if(error == ""){
							jQuery("#formFeedback").append("<div id=\"formSuccess\">"+
								"<p>Tack för att du betygsatte vallan!</p></div>").show();
							jQuery("#form_average_rating input").
									rating('enable').rating('select', inputIndex).rating('disable');
							jQuery("#ratings").empty().append('('+newRatings+')');
						} else {
							jQuery("#formFeedback").append("<div id=\"formError\"><p>"+
								error+"</p></div>").show();
						}
					}
			});
		});
		/*jQuery("#form_rate_wax").ajaxSubmit({
			dataType:	"json",
			beforeSubmit:
				function(){
					jQuery("#formloading_noclear").show();
					jQuery("#formresult").removeClass("formerror").empty();
				},
			success:
				function(data,success,matchedset){
					var error = data["error"];
					var message = data["message"];
					//jQuery("#formloading_noclear").hide();
					if(error == ""){
						//jQuery("#formresult").html(message);
					} else {
						jQuery("#formFeedback").addClass("formerror").html(
							'Följande fel uppstod:<br />' + error
						);
					}
				}
		});*/
	}

	// *************************************************************************
	// Skapa ny valla. + Editera valla.
	// *************************************************************************

	// Form Add Wax: Hide "Ny:" input elements.
	// Form Add Vallning: Hide "Ny:" input elements.
	jQuery(".ny").hide();

	// Form Add Wax: Hide extra weather conditions. [Hard coded no of temperature sets]
	for (var i=(temperatureSets + 1); i<3; i++) {
		jQuery("#temperature"+i).hide();
	}
	if (temperatureSets == 0){
		jQuery("#less_temperatures").hide();
	}else if (temperatureSets == 2){
		jQuery("#more_temperatures").hide();
	}

	// Form Add Wax: On select manufacturer.
	jQuery("#manufacturer_id").change(function(){
		var manufacturerId = -1;
		manufacturerId = jQuery("#manufacturer_id").val();

		// If "Lägg till ny..." is selected, show "Ny:" input element.
		if (manufacturerId == 0){
			jQuery("#new_manufacturer").fadeIn();
		}else{
			jQuery("#new_manufacturer").fadeOut();
			jQuery("#new_manufacturer_name").val("");
		}
	})
	.change();

	// Form Add Wax: On select waxtypecategory. [Hard coded no of temperature sets] [Hard coded: slice(2)]
	jQuery("#waxtypecategory_id").change(function(){
		var waxtypeCategoryId = 0;
		waxtypeCategoryId = jQuery("#waxtypecategory_id").val();

		// Update waxtypes when waxtypecategory changes.
		jQuery("#new_waxtype").fadeOut();
		jQuery("#new_waxtype_name").val("");
		if (editWaxAtLoad){
			jQuery("#waxtype_id option").slice(2).not(".cat"+waxtypeCategoryId).hide();
			editWaxAtLoad = false;
		}else{
			jQuery("#waxtype_id option:first").attr("selected", true);
			jQuery("#waxtype_id option").slice(2).hide();
			jQuery(".cat"+waxtypeCategoryId).show();
		}

		// If "Lägg till ny..." is selected, show "Ny:" input element.
		if (waxtypeCategoryId == 0){
			jQuery("#new_waxtypecategory").fadeIn();
		}else{
			jQuery("#new_waxtypecategory").fadeOut();
			jQuery("#new_waxtypecategory_name").val("");
		}
	})
	.change();

	// Form Add Wax: On select waxtype.
	jQuery("#waxtype_id").change(function(){
		var waxtypeId = -1;
		waxtypeId = jQuery("#waxtype_id").val();

		// If "Lägg till ny..." is selected, show "Ny:" input element.
		if (waxtypeId == 0){
			jQuery("#new_waxtype").fadeIn();
		}else{
			jQuery("#new_waxtype").fadeOut();
			jQuery("#new_waxtype_name").val("");
		}
	})
	.change();

	// Form Add Wax: On select snowtype. [Hard coded no of temperature sets]
	// Form Add Vallning: On select snowtype.
	jQuery("#snowtype_id0").add("#snowtype_id1").add("#snowtype_id2")
			.add("#snowtype_id")
			.change(function(){
		var snowtypeId = -1;
		snowtypeId = jQuery(this).val();

		// If "Lägg till ny..." is selected, show "Ny:" input element.
		if (snowtypeId == 0){
			jQuery(this).next().fadeIn();
		}else{
			jQuery(this).next().fadeOut();
			jQuery(this).next().children("input").val("");
		}
	})
	.change();

	// Form Add Wax: Add/remove extra weather conditions. [Hard coded no of temperature sets]
	jQuery("#more_temperatures_toggle").click(function(){
		if (temperatureSets < 2){
			temperatureSets++;
			jQuery("#temperature"+temperatureSets).slideDown();
			if (temperatureSets == 2){
				jQuery("#more_temperatures").hide();
			}
			jQuery("#less_temperatures").show();
		}else{
			// You cannot have more than 3 (nos 0,1,2) temperature sets.
		}
	});
	jQuery("#less_temperatures_toggle").click(function(){
		if (temperatureSets > 0){

			// Empty/reset values in temperature set that we are hiding.
			jQuery("#temperature"+temperatureSets+" input").val("");
			jQuery("#snowtype_id"+temperatureSets+" option:first").attr("selected", true);

			// Hide temperature set.
			jQuery("#new_snowtype"+temperatureSets).hide();
			jQuery("#temperature"+temperatureSets).slideUp();

			temperatureSets--;
			if (temperatureSets == 0){
				jQuery("#less_temperatures").hide();
			}
			jQuery("#more_temperatures").show();
		}else{
			// You cannot have less than 1 (no 0) temperature sets.
		}
	});

	// *************************************************************************
	// Skapa vallning. + Editera vallning.
	// *************************************************************************

	// Default values in text fields.
	jQuery("#vallning_place").DefaultValue("Ex: Göteborg");
	jQuery("#vallning_date").DefaultValue("Ex: 2009-10-06");

	// This is already fixed above under "Skapa valla".
	//jQuery(".ny").hide();
	//jQuery("#snowtype_id").change(function(){ ... });

	if (glidewaxes == 0) {
		jQuery("#less_glidewaxes").hide();
	} else if (glidewaxes == maxwaxes) {
		jQuery("#more_glidewaxes").hide();
	}
	if (gripwaxes == 0) {
		jQuery("#less_gripwaxes").hide();
	} else if (gripwaxes == maxwaxes) {
		jQuery("#more_gripwaxes").hide();
	}

	// If edit vallning with waxes, get autocomplete information to waxes inputs.
	for(i=1; i<=glidewaxes; i++){
		addACtoWaxesInVallningar(i, "glidewax");
	}
	for(i=1; i<=gripwaxes; i++){
		addACtoWaxesInVallningar(i, "gripwax");
	}
	jQuery(".waxInfoLoading").hide();

	// On select vallning typ (klassisk / skate).
	jQuery("input[@name='vallning_typ']").change(function(){
		if (jQuery("input[@name='vallning_typ']:checked").val() == '0'){
			jQuery("#gripwax_fieldset").hide();
		}else if (jQuery("input[@name='vallning_typ']:checked").val() == '1'){
			jQuery("#gripwax_fieldset").show();
		}
	});

	jQuery("#more_glidewaxes_toggle").click(function(){
		glidewaxes++;
		jQuery("#glidewaxes").append(
			"<div id=\"glidewax"+glidewaxes+"\" class=\"form_row\">"+
				"<label for=\"glidewaxid"+glidewaxes+"\" class=\"nowidth\" title=\"Välj valla genom att börja skriva tillverkare eller produktnamn\">Valla:</label>"+
				"<input id=\"glidewaxid"+glidewaxes+"\" name=\"glidewaxid"+glidewaxes+"\" type=\"text\" />"+
				"<div class=\"waxInfoWrapper\">"+
					"<div class=\"waxInfoLoading\"><img src=\""+$.facebox.settings.loadingImage+"\"/></div>"+
					"<div class=\"waxInfo\"></div>"+
				"</div>"+
			"</div>"
		);
		jQuery("#glidewax"+glidewaxes+" div .waxInfoLoading").hide();
		addACtoWaxesInVallningar(glidewaxes, "glidewax");
		if (glidewaxes == maxwaxes) {
			jQuery("#more_glidewaxes").hide();
		}
		jQuery("#less_glidewaxes").show();
	});
	jQuery("#less_glidewaxes_toggle").click(function(){
		jQuery("#glidewaxid"+glidewaxes).unautocomplete();
		jQuery("#glidewax"+glidewaxes).remove();
		glidewaxes--;
		if (glidewaxes == 0) {
			jQuery("#less_glidewaxes").hide();
		}
		jQuery("#more_glidewaxes").show();
	});

	jQuery("#more_gripwaxes_toggle").click(function(){
		gripwaxes++;
		jQuery("#gripwaxes").append(
			"<div id=\"gripwax"+gripwaxes+"\" class=\"form_row\">"+
				"<label for=\"gripwaxid"+gripwaxes+"\" class=\"nowidth\" title=\"Välj valla genom att börja skriva tillverkare eller produktnamn\">Valla:</label>"+
				"<input id=\"gripwaxid"+gripwaxes+"\" name=\"gripwaxid"+gripwaxes+"\" type=\"text\" />"+
				"<div class=\"waxInfoWrapper\">"+
					"<div class=\"waxInfoLoading\"><img src=\""+$.facebox.settings.loadingImage+"\"/></div>"+
					"<div class=\"waxInfo\"></div>"+
				"</div>"+
			"</div>"
		);
		jQuery("#gripwax"+gripwaxes+" div .waxInfoLoading").hide();
		addACtoWaxesInVallningar(gripwaxes, "gripwax");
		if (gripwaxes == maxwaxes) {
			jQuery("#more_gripwaxes").hide();
		}
		jQuery("#less_gripwaxes").show();
	});
	jQuery("#less_gripwaxes_toggle").click(function(){
		jQuery("#gripwaxid"+gripwaxes).unautocomplete();
		jQuery("#gripwax"+gripwaxes).remove();
		gripwaxes--;
		if (gripwaxes == 0) {
			jQuery("#less_gripwaxes").hide();
		}
		jQuery("#more_gripwaxes").show();
	});
	if (jQuery("#form_vallning").add("#form_edit_vallning").length>0){
		jQuery("input[type=radio].star").rating({cancel:'Ta bort betyg',cancelValue:0});
	}
	// Below: fixed above, same as visa en valla.
	/*if (jQuery("#visa_en_body_right").length>0){
		jQuery("input[type=radio].star_disabled").rating().rating("disable");
	}*/
	//jQuery("input[type=radio].star").rating();

	// *************************************************************************
	// Editera konto.
	// *************************************************************************

	if (jQuery("#form_edit_konto").length>0){
		jQuery("input[type=radio].star").rating({cancel:'Ej angiven',cancelValue:0});
	}

	// Edit password form.
	if (jQuery("#form_edit_password").length>0){
		jQuery("#form_edit_password").validate({
			rules: {
				pass: {
					required: true,
					minlength: 8
				},
				newpass: {
					required: true,
					minlength: 8
				},
				newpassconfirm: {
					required: true,
					minlength: 8,
					equalTo: "#newpass"
				}
			},
			messages: {
				pass: {
					required: "Du måste ange ditt gamla lösenord.",
					minlength: "Lösenordet måste vara minst 8 tecken långt."
				},
				newpass: {
					required: "Var vänlig ange ett nytt lösenord.",
					minlength: "Lösenordet måste vara minst 8 tecken långt."
				},
				newpassconfirm: {
					required: "Var vänlig ange ett det nya lösenordet igen.",
					minlength: "Lösenordet måste vara minst 8 tecken långt.",
					equalTo: "Du måste upprepa e-postadressen exakt som i fältet ovanför."
				}
			},
			submitHandler: function(form){
				jQuery(form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#formFeedbackPass").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							var message = data["success"];
							if(error == ""){
								jQuery("#formFeedbackPass").
									append("<div id=\"formSuccess\"><p>"+message+"</p></div>").show();
							} else {
								jQuery("#formFeedbackPass").
									append("<div id=\"formError\"><p>"+error+"</p></div>").show();
							}
						}
				});
			}
		});
	}

	// Edit email form.
	/*if (jQuery("#form_edit_email").length>0){
		jQuery("#form_edit_email").validate({
			rules: {
				email: {
					required: true,
					email: true
				},
				emailconfirm: {
					required: true,
					email: true,
					equalTo: "#email"
				}
			},
			messages: {
				email: {
					required: "Du måste ange en e-postadress.",
					email: "Du måste ange en fungerande e-postadress."
				},
				emailconfirm: {
					required: "Du måste ange e-postadressen igen.",
					email: "Du måste ange en fungerande e-postadress.",
					equalTo: "Du måste upprepa e-postadressen exakt som i fältet ovanför."
				}
			},
			submitHandler: function(form){
				jQuery(form).ajaxSubmit({
					dataType:	"json",
					beforeSubmit:
						function(){
							jQuery("#formFeedbackEmail").empty();
						},
					success:
						function(data,success,matchedset){
							var error = data["error"];
							var message = data["success"];
							if(error == ""){
								jQuery("#formFeedbackEmail").
									append("<div id=\"formSuccess\"><p>"+message+"</p></div>").show();
							} else {
								jQuery("#formFeedbackEmail").
									append("<div id=\"formError\"><p>"+error+"</p></div>").show();
							}
						}
				});
			}
		});
	}*/

	// *************************************************************************
	// Kontakt.
	// *************************************************************************

	if (jQuery("#form_contact").length>0){
		jQuery("#changeimage").click(function(){
			changeImage();
		});
		jQuery("#form_contact").ajaxForm({
			dataType:	"json",
			beforeSubmit:
				function(){
					jQuery("#formFeedback").empty();
				},
			success:
				function(data,success,matchedset){
					var error = data["error"];
					var message = data["message"];
					if(error == ""){
						jQuery("#formFeedback").
							append("<div id=\"formSuccess\"><p>"+message+"</p></div>").show();
						jQuery("#type_of_contact option:first").attr("selected", true);
						jQuery("#contact_name").val("");
						jQuery("#contact_mail").val("");
						jQuery("#contact_message").val("");
						jQuery("#contact_spamcontrol").val("");
						changeImage();
					} else {
						jQuery("#formFeedback").
							append("<div id=\"formError\"><p>"+error+"</p></div>").show();
					}
				}
		});
	}

	// *************************************************************************
	// Sökresultat.
	// *************************************************************************

	//jQuery("#sokresultat_vallor").hide();
	jQuery("#sokresultat_vallningar").hide();
	jQuery("#sokresultat_vallor_tab").click(function(){
		jQuery("#sokresultat_vallningar").hide();
		jQuery("#sokresultat_vallningar_tab").removeClass("tabs_current");
		jQuery("#sokresultat_vallor_tab").removeClass("tabs_current");
		jQuery("#sokresultat_vallor_tab").addClass("tabs_current");
		jQuery("#sokresultat_vallor").show();
	});
	jQuery("#sokresultat_vallningar_tab").click(function(){
		jQuery("#sokresultat_vallor").hide();
		jQuery("#sokresultat_vallningar_tab").removeClass("tabs_current");
		jQuery("#sokresultat_vallor_tab").removeClass("tabs_current");
		jQuery("#sokresultat_vallningar_tab").addClass("tabs_current");
		jQuery("#sokresultat_vallningar").show();
	});
	/*jQuery("#sokresultat_vallor_toggle").click(function(){
		if (jQuery("#sokresultat_vallor").is(":visible")){
			jQuery("#sokresultat_vallor").slideUp();
		}else{
			jQuery("#sokresultat_vallor").slideDown();
		}
	});
	jQuery("#sokresultat_vallningar_toggle").click(function(){
		if (jQuery("#sokresultat_vallningar").is(":visible")){
			jQuery("#sokresultat_vallningar").slideUp();
		}else{
			jQuery("#sokresultat_vallningar").slideDown();
		}
	});*/
});

function addACtoWaxesInVallningar(id, waxCategory){
	jQuery("#"+waxCategory+"id"+id).autocomplete(base_url+"vallor/get/vallor_ac/"+waxCategory, {
		minChars: 2,
		width: 300,
		max: 100,
		matchContains: true,
		autoFill: false,
		dataType: "json",
		parse: function(data) {
			return jQuery.map(data, function(row) {
				return {
					data: row,
					value: ""+row.id,
					result: row.id //row.manufacturerName + ": " + row.productName + " (id: " + row.id + ")"
				}
			});
		},
		formatItem: function(row) {
			return row.manufacturerName + ": " + row.productName + " (id: " + row.id + ")";
		}
	}).result(function(e, item) {
		displayWaxInfo(e, item, waxCategory);
	});
}

function displayWaxInfo(e, item, waxCategory){
	var waxnumber = (waxCategory == "glidewax")?e.target.id.substring(10):e.target.id.substring(9);
	jQuery("#"+waxCategory+waxnumber+" div .waxInfoLoading").show();
	jQuery("#"+waxCategory+waxnumber+" div .waxInfo").empty();
	jQuery.ajax({
		url: base_url+"vallor/get/info/"+item.id,
		type: "post", dataType: "json",
		success:
			function(data){
				jQuery("#"+waxCategory+waxnumber+" div .waxInfoLoading").hide();
				var error = data["error"];
				var info = data["info"];
				if (error == ""){
					jQuery("#"+waxCategory+waxnumber+" div .waxInfo").html(
						info.manufacturer+", "+info.product
					);
				}else{
					jQuery("#"+waxCategory+waxnumber+" div .waxInfo").html(
						"Följande fel inträffade: "+error
					);
				}
			}
	});
}
/**
        Returns the names of all the obj’s
         variables and functions in a sorted
         array
*/
function getMembers(obj) {
        var members = new Array();
        var i = 0;

        for (var member in obj) {
                members[i] = member;
                i++;
        }

        return members.sort();
}

/**
        Print the names of all the obj’s variables
         and functions in an HTML element with id
*/
function printMembers(obj, id) {
        var members = getMembers(obj);
        var display = document.getElementById(id);

        for (var i = 0; i < members.length; i++) {
                var member = members[i];
                var value = obj[member];
                display.innerHTML += member + " = ";
                display.innerHTML += value + "<br>";
        }
}

function raderaValla(waxId){
	jQuery.ajax({
		url: base_url+"vallor/radera/"+waxId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallan raderades.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function minaVallorLaggTill(waxId){
	jQuery.ajax({
		url: base_url+"konto/mina_vallor/lagg_till/"+waxId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallan lades till i mina vallor.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function minaVallorTaBort(waxId){
	jQuery.ajax({
		url: base_url+"konto/mina_vallor/ta_bort/"+waxId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallan togs bort från mina vallor.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function reportWaxComment(commentId){
	jQuery.ajax({
		url: base_url+"vallor/report_comment/"+commentId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Tack för din rapport! Kommentaren kommer att ses över av en admin.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

/*function requestControlOfWax(waxId){
	jQuery.ajax({
		url: base_url+"vallor/request_control/"+waxId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Önskan om kontroll av vallan är mottagen.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}*/

function raderaVallning(vallningId){
	jQuery.ajax({
		url: base_url+"vallningar/radera/"+vallningId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallningen raderades.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function minaVallningarLaggTill(vallningId){
	jQuery.ajax({
		url: base_url+"konto/mina_vallningar/lagg_till/"+vallningId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallningen lades till som favorit i mina vallningar.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function minaVallningarTaBort(vallningId){
	jQuery.ajax({
		url: base_url+"konto/mina_vallningar/ta_bort/"+vallningId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Vallningen togs bort som favorit från mina vallningar.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function reportVallningComment(commentId){
	jQuery.ajax({
		url: base_url+"vallningar/report_comment/"+commentId,
		type: "post", dataType: "json",
		success:
			function(data){
				var error = data["error"];
				jQuery("#formFeedback").empty();
				if (error == ""){
					jQuery("#formFeedback").html("<div id=\"formSuccess\"><p>Tack för din rapport! Kommentaren kommer att ses över av en admin.</p></div>");
				}else{
					jQuery("#formFeedback").html("<div id=\"formError\"><p>"+error+"</p></div>");
				}
			}
	});
}

function changeImage(){
	jQuery("#captcha").attr("src",base_url+"securimage/securimage_show.php?"+Math.random());
}

/*,
		rules: {
			reg_username: {
				required: true,
				minlength: 4,
				maxlength: 50
			},
			reg_epost: {
				required: true,
				email: true
			}
		},
		messages: {
			reg_username: {
				required: "Namn måste anges.",
				minLength: "Namnet måste ha minst 4 tecken.",
				maxLength: "Namnet får inte ha fler än 50 tecken."
			},
			reg_epost: "Du måste ange en giltig e-postadress."
		}*/

/*
function appendAndHideFormLoadingTo(selector){
	jQuery(selector).append('<img src="'+$.facebox.settings.loadingImage+'"/>').hide();
}

function processFormBeforeSubmit(loadingSelector, resultSelector){
	jQuery("#formloading").show();
	jQuery("#formresult").removeClass("formerror").empty();
}

function processFormResult(error, message){
	jQuery("#formloading").hide(); //empty();
	if(error == ""){
		jQuery("#formresult").html(message);
	} else {
		jQuery("#formresult").addClass("formerror").html(
			'Följande fel uppstod:<br />' + error
		);
	}
}
*/
