﻿var vSignup;

$(document).ready(
  function()
  {
    $('#txtNickName').focus();

    vSignup = $('#frmSignup').validate(
      {
        rules: {
          txtNickName: {
            required: true,
            nickname: true,
            minlength: 3,
            maxlength: 25
          },
          txtPassword: {
            required: true,
            maxlength: 25
          },
          txtPassword2: {
            equalTo: '#txtPassword'
          },
          txtLastName: {
            required: true,
            nohtml: true
          },
          txtFirstName: {
            required: true,
            nohtml: true
          },
          txtDateOfBirth:{
            required: true,
            datehu: true,
            atleast14: true
          },
          rbGender: {
            required: true
          },
          txtEmail: {
            required: true,
            email: true
          },
          txtPhoneProvider: {
            required: function(element) {
              return ($("#txtPhoneNumber").val() != '');
              },
            phoneprovider: true
          },
          txtPhoneNumber: {
            required: function(element) {
              return ($("#txtPhoneProvider").val() != '');
              },
            number: true,
            minlength: 7,
            maxlength: 7
          },
          txtAddressZip: {
            required: true,
            range: [1000, 9999]
          },
          txtAddressCity: {
            required: true,
            maxlength: 50,
            nohtml: true
          },
          txtAddressStreet: {
            required: true,
            maxlength: 100,
            nohtml: true
          },
          txtHobby: {
            maxlength: 500,
            nohtml: true
          },
          txtIntroduction: {
            maxlength: 500,
            nohtml: true
          },
          chkTerms: {
            required: true
          },
          chkTerms2: {
            required: true
          }
        },
        messages: {
          txtNickName: {
            required: 'A mező kitöltése kötelező!',
            nickname: 'Csak az angol ABC betűi, számok és alulvonás használható.',
            minlength: 'Legalább 3 karaktert adj meg.',
            maxlength: 'Legfeljebb 25 karaker hosszú lehet.'
          },
          txtPassword: {
            required: 'A mező kitöltése kötelező!',
            maxlength: 'Legfeljebb 25 karaker hosszú lehet.'
          },
          txtPassword2: {
            equalTo: 'A két jelszó nem egyezik meg.'
          },
          txtLastName: {
            required: 'A mező kitöltése kötelező!',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          txtFirstName: {
            required: 'A mező kitöltése kötelező!',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          txtDateOfBirth:{
            required: 'A mező kitöltése kötelező!',
            datehu: 'A dátumot éééé.hh.nn formában add meg.',
            atleast14: 'Csak 14 éven felüliek regisztrálhatnak.'
          },
          rbGender: {
            required: 'A mező kitöltése kötelező!'
          },
          txtEmail: {
            required: 'A mező kitöltése kötelező!',
            email: 'Az e-mail cím formátuma nem megfelelő.'
          },
          txtPhoneProvider: {
            required: 'Magyarországi mobiltelefonszámot adj meg.',
            phoneprovider: 'Magyarországi mobiltelefonszámot adj meg.'
          },
          txtPhoneNumber: {
            required: 'Magyarországi mobiltelefonszámot adj meg.',
            number: '7 számjegyet adj meg.',
            minlength: '7 számjegyet adj meg.',
            maxlength: '7 számjegyet adj meg.'
          },
          txtAddressZip: {
            required: 'A mező kitöltése kötelező!',
            range: '4 számjegyet adj meg.'
          },
          txtAddressCity: {
            required: 'A mező kitöltése kötelező!',
            maxlength: 'A beírt település neve túl hosszú.',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          txtAddressStreet: {
            required: 'A mező kitöltése kötelező!',
            maxlength: 'A beírt cím túl hosszú.',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          txtHobby: {
            maxlength: 'Legfeljebb 500 karaktert írhatsz be.',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          txtIntroduction: {
            maxlength: 'Legfeljebb 500 karaktert írhatsz be.',
            nohtml: 'A HTML kódok használata nem megengedett.'
          },
          chkTerms: {
            required: 'A regisztrációhoz el kell fogadnod a feltételeket.'
          },
          chkTerms2: {
            required: 'A regisztrációhoz el kell fogadnod a nyilatkozatot.'
          }
        }
	    }
	  );

	  $('#txtDateOfBirth').DatePicker(
	    {
	      format:'Y.m.d',
	      date: $('#txtDateOfBirth').val(),
	      current: $('#txtDateOfBirth').val(),
	      position: 'bottom',
	      onBeforeShow: function(){
		      $('#txtDateOfBirth').DatePickerSetDate($('#txtDateOfBirth').val(), true);
		      $('#txtDateOfBirth').val($('#txtDateOfBirth').DatePickerGetDate(true));
	      },
	      onChange: function(formated, dates){
		      if ($('#txtDateOfBirth').val() != formated)
		      {
			      $('#txtDateOfBirth').val(formated);
			      $(this).hide();
		      }
	      },
	      locale: {
		      days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"],
		      daysShort: ["Vas", "Hét", "Kedd", "Sze", "Csü", "Pén", "Szo", "Vas"],
		      daysMin: ["&nbsp;&nbsp;&nbsp;V", "&nbsp;&nbsp;H", "&nbsp;&nbsp;K", "Sze", "&nbsp;Cs", "&nbsp;&nbsp;P", "Szo", "&nbsp;&nbsp;&nbsp;V"],
		      months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"],
		      monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec"],
		      weekMin: ""
	      }
      }
    );

    ajaxup = new AjaxUpload('btnUploadAvatar',
                    {
                      action: '/ajax/upload/Picture.ashx',
                      onSubmit: function(file , ext)
                                {
		                              if ( !(ext && /^(jpg|png|jpeg|gif)$/.test(ext)))
		                              {
			                              displayError('Elfogadott formátumok: gif, jpg, png');
			                              return false;
		                              }
		                              else
		                              {
		                                showCropProgress();
		                                this.disable();
		                              }
                                },
                      data: {
                        type : 'avatar'
                      },
                      onComplete: function(file, response)
                                  {
                                    try
                                    {
                                      var resp = response.split('|');
                                      if (resp[1] == "success")
                                      {
                                        var avatarURL = resp[2].replace('/static/images/upload/', '/static/temp/images/avatar/').replace('_crop', '_50x50');
                                        $('#imgAvatar').attr('src', avatarURL);
                                        $('#hAvatarURL').val(avatarURL);
                                        showCropLayer(resp[2], resp[3], resp[4], resp[5], resp[6], true, 'javascript:avatarCropCallback(\'imgAvatar\', \'hAvatarURL\')', true);
                                      }
                                      else
                                      {
                                        this.enable();
                                        displayError('A feltöltés során hiba történt. Kérjük, próbáld meg később! (' + resp[2] + ')');
                                      }
                                    }
                                    catch(e)
                                    {
                                      this.enable();
                                      displayError('A feltöltés során hiba történt. Kérjük, próbáld meg később!');
                                    }
                                  },
                      onError: function(exception)
                               {
                                 this.enable();
                                 displayError('A feltöltés során hiba történt. Kérjük, ellenőrizd, hogy a kép mérete nem haladja-e meg az 5 MB-ot!');
                               }
                    }
              );

    ajaxup2 = new AjaxUpload('btnUploadBackground',
                    {
                      action: '/ajax/upload/Picture.ashx',
                      onSubmit: function(file , ext)
                                {
		                              if ( !(ext && /^(jpg|png|jpeg|gif)$/.test(ext)))
		                              {
			                              displayError('Elfogadott formátumok: gif, jpg, png');
			                              return false;
		                              }
		                              else
		                              {
		                                showCropProgress('Kép feltöltése');
		                                this.disable();
		                              }
                                },
                      data: {
                        type : 'background'
                      },
                      onComplete: function(file, response)
                                  {
                                    try
                                    {
                                      var resp = response.split('|');
                                      if (resp[1] == "success")
                                      {
                                        $('#imgBackground').attr('src', resp[2].replace('_crop', '_preview'));
                                        this.enable();
                                        hideZizzPopUp();
                                        setUserCSS($('#imgBackground'), $('#chkBackgroundRepeat'));
                                      }
                                      else
                                      {
                                        this.enable();
                                        displayError('A feltöltés során hiba történt. Kérjük, próbáld meg később! (' + resp[2] + ')');
                                      }
                                    }
                                    catch(e)
                                    {
                                      this.enable();
                                      displayError('A feltöltés során hiba történt. Kérjük, próbáld meg később!');
                                    }
                                  },
                      onError: function(exception)
                               {
                                 this.enable();
                                 displayError('A feltöltés során hiba történt. Kérjük, ellenőrizd, hogy a kép mérete nem haladja-e meg az 5 MB-ot!');
                               }
                    }
              );
              
    $('img.publicstate').click(
      function(eventData)
      {
        switchFieldPublicState(eventData.target);
      }
    );
    
    $('#chkBackgroundRepeat').click(
      function(eventData)
      {
        setUserCSS($('#imgBackground'), $('#chkBackgroundRepeat'));
      }
    );
    
    setThemeHovers();
  }
);

function doSignup()
{
  firstInvalidElement = null;
  if (vSignup.form())
  {
    var phone = '+36' + $('#txtPhoneProvider').val() + $('#txtPhoneNumber').val();
    $.ajax(
      {
        url: "/ajax/DoSignup.ashx",
        type: "POST",
        data: {
                nickname:  $('#txtNickName').val(),
                password: $('#txtPassword').val(),
                password2: $('#txtPassword2').val(),
                lastname: $('#txtLastName').val(),
                firstname: $('#txtFirstName').val(),
                location: "",
                email: $('#txtEmail').val(),
                //phone: (phone == '+36') ? '' : phone,
                addresszip: $('#txtAddressZip').val(),
                addresscity: $('#txtAddressCity').val(),
                addressstreet: $('#txtAddressStreet').val(),
                avatar: $('#hAvatarURL').val(),
                introduction: $('#txtIntroduction').val(),
                streamprivate: $('#chkStreamPrivate').is(':checked'),
                dateofbirth: $('#txtDateOfBirth').val(),
                gender: $('.gender:checked').val(),
                hobby: $('#txtHobby').val(),
                showfirstname: getFieldPublicState('#imgStateFirstName'),
                showlastname: getFieldPublicState('#imgStateLastName'),
                showemail: getFieldPublicState('#imgStateEmail'),
                showlocation: 1,
                showdateofbirth: getFieldPublicState('#imgStateDateOfBirth'),
                showgender: getFieldPublicState('#imgStateGender'),
                showhobby: getFieldPublicState('#imgStateHobby'),
                //showphone: getFieldPublicState('#imgStatePhone'),
                showaddress: getFieldPublicState('#imgStateAddress'),
                themeid: $('#hThemeId').val(),
                css_background_image: $('#imgBackground').attr('src').replace('_preview', ''),
                css_background_repeat: $('#chkBackgroundRepeat').is(':checked')
              },
        cache: false,
        dataType: 'json',
        timeout: 10000,
        success: function(jsonObj){
          defaultCallback(jsonObj);
          }
      }
    );
  }
  else
  {
    showFirstInvalidElement();
  }
}

function setTheme(obj, themeId)
{
  if (themeId != $('#hThemeId').val())
  {
    $('#hThemeId').val(themeId);
    $('img.tableBgSelectOn').addClass('tableBgSelect').removeClass('tableBgSelectOn').removeClass('selected');
    $(obj).addClass('tableBgSelectOn').addClass('selected').removeClass('tableBgSelect');
    setThemeHovers();
    if ($('#imgBackground').attr('src').indexOf('theme') == -1)
    {
      setUserCSS($('#imgBackground'), $('#chkBackgroundRepeat'));
    }
    else
    {
      $('#imgBackground').attr('src', '/static/images/theme/' + themeId + '/_thumb.jpg');
      $('#ctl00_linkThemeCss').attr('href', '/static/css/theme/' + themeId + '.css');
    }
    fixFieldPublicSatateImages($('#hThemeId').val());
  }
}

function removeBackground()
{
  $('#imgBackground').attr('src', '/static/images/theme/' + $('#hThemeId').val() + '/_thumb.jpg');
  $('#ctl00_linkThemeCss').attr('href', '/static/css/theme/' + $('#hThemeId').val() + '.css');
}
