// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

$.datepicker.setDefaults({
  firstDay: 1,
  dayNamesMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"],
  monthNames:  [
    "Januari",
    "Februari",
    "Mars",
    "April",
    "Maj",
    "Juni",
    "Juli",
    "Augusti",
    "Septemper",
    "Oktober",
    "November",
    "December"
  ]
});

jQuery.fn.extend({
  showDateField: function(date_field, fn) {
    $(date_field).hide();

    return $(this).each(function() {
      $(this).click(function() {
        if( fn === undefined ) {
          $(date_field).show("slow");
        } else {
          $(date_field).show("slow", fn);
        };
        $("#ui-datepicker-div").css({
          position: 'relative !important',
          'top':    '0 !important',
          'left':   '0 !important'
        }).appendTo("#new_date_picker_div");
      });
    });
  },
  hideDateField: function(date_field, fn) {
    $(date_field).hide();

    return $(this).each(function() {
      $(this).click(function() {
        if( fn === undefined ) {
          $(date_field).hide("slow");
        } else {
          $(date_field).hide("slow", fn);
        }
      });
    })
  },
  showCompanyField: function(company_field, fn) {
    $(company_field).hide();

    return $(this).each(function() {
      $(this).click(function() {
        if( fn === undefined ) {
          $(company_field).show("slow");
        } else {
          $(company_field).show("slow", fn);
        }
      });
    });
  },
  hideCompanyField: function(company_field, fn) {
    $(company_field).hide();

    return $(this).each(function() {
      $(this).click(function() {
        if( fn === undefined ) {
          $(company_field).hide("slow");
        } else {
          $(company_field).hide("slow", fn);
        }
      });
    });
  },
  clearField: function(field) {
    $(field).clear();
  }
});

$(document).ready(function() {	
	var email_ok    = false;
	var password_ok = false;
	
  var validate_email = function(field) {
		$(".new_user #email_helper").show();
		var email_validator = /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i;
		if($(field).val().match(email_validator)) {
			$(".new_user #email_helper").text("OK");
			$(".new_user #email_helper").addClass("helper_ok");
			email_ok = true;
		} else {
			$(".new_user #email_helper").text("Fyll i din e-postadress");
			$(".new_user #email_helper").removeClass("helper_ok");
			email_ok = false;
		}
  }

  var validate_password = function(field) {
  	$(".new_user #password_helper").show();
		if($(field).val().length >= 3 ) {
			$(".new_user #password_helper").text("OK");
			$(".new_user #password_helper").addClass("helper_ok");
			password_ok = true;
		} else {
			$(".new_user #password_helper").text("Minst 3 tecken");
			$(".new_user #password_helper").removeClass("helper_ok");
			password_ok = false;
		}
  }

  if(window.location.href.match("signup") || window.location.href.match("users/new")){
    validate_email($(".new_user #user_email"));
  }

	$(".new_user #user_email").keyup(function(event) {
    validate_email(this);
	});
	
	$(".new_user #user_password").keyup(function(event) {
    validate_password(this);
	});

  $(".new_user #user_email").click(function(event) {
    validate_email(this);
	});
	
	$(".new_user #user_password").click(function(event) {
    validate_password(this);
	});
	
	$(".new_user #user_email").focus();
	
	$(".new_user #user_submit").click(function(){
		if(password_ok == true && email_ok == true){
			return true;
		}else{
			if(password_ok == false){
				$(".new_user #password_label").addClass("signup_label_error");
			}else{
				$(".new_user #password_label").removeClass("signup_label_error");
			}
			if(email_ok == false){
				$(".new_user #email_label").addClass("signup_label_error");
			}else{
				$(".new_user #email_label").removeClass("signup_label_error");
			}
			return false;
		}
	});

	$.each($('.completion_form'), function() {
	  var validator = $(this).validate({
	    rules: {
	      info_field: "required",
	      birthdate_field: {
	        required: true,
	        minlength: 12
	      },
	    },
	    messages: {
	      info_field:      null,
	      birthdate_field: null
	    }
	  });
	});

	$("#pdf_flyer_start_date, #pdf_flyer_end_date, .datepicker, #datepicker").each(function() {
		$(this).datepicker({numberOfMonths: 3, showButtonPanel: true});
	});
  
  var date_picker   = $("form[action$=report] #date_picker");
  var date_field    = $("form[action$=report] #date");
  var company_field = $("form[action$=report] #select_company");
  var date_helper   = $("form[action$=report] #date_helper");

  $(date_helper).hide();
  $(date_picker).hide();
  $(company_field).hide();
  $(date_field).datepicker();

  $("form[action$=report] #adressed_yes").hideDateField(date_picker).showCompanyField(company_field);
  $("form[action$=report] #adressed_no" ).showDateField(date_picker, function() {
    $(date_field).focus();
  }).hideCompanyField(company_field);

});