﻿var eMailInUse = false;
var userNameInUse = false;
var invalidEmail = false;

function validateMembership() {
    var errors = new Array();
    
    if ($('#firstName').val().length == 0)
       errors.push('Adınızı belirtmelisiniz.');
    if ($('#lastName').val().length == 0)
       errors.push('Soyadınızı belirtmelisiniz.');
    if ($('#eMail').val().length == 0)
       errors.push('Geçerli bir e-posta adresi seçmelisiniz.');
    if (!validateGmail($('#eMail').val()))
		errors.push("E-posta adresiniz 3 karakterden kısa olamaz ve sadece harf ve rakamlardan oluşabilir.");
    if ($('.registration #userName').val().length == 0)
      errors.push('Takma ad belirlemelisiniz.');

    if (!validateGmail($('.registration #userName').val()))
      errors.push("Takma adınız sadece harflerden oluşabilir ve en fazla 10 karakter olabilir.");
    
    if (!$('input[@name=avatar]:checked').val() && $("#avatarFile").val().length == 0)
        errors.push('Listeden bir avatar seçin ya da kendi avatarınızı belirleyin.');

    if (eMailInUse) {
        errors.push('Seçmiş olduğunuz e-posta adresi kullanımda..');
    }
       
    if (userNameInUse) {
        errors.push('Seçmiş olduğunuz takma ad kullanımda..');
    }
    
    if (invalidEmail) {
        errors.push('E-posta adresiniz en az 3 karakter olmalı ve Türkçe karakter içermemeli.');
    }
    
    if (errors.length > 0) {
       var $errorList = $('#uyelik .error-list .errors ul');
       $errorList.children().remove();
       for (var i = 0; i < errors.length; i++) {
           $errorList.append($.format('<li>{0}</li>', errors[i]));
       }
       $('#uyelik .error-list').slideDown();
       
       return false;
    }
    else {
        $('#uyelik .error-list').hide();
        return true;
    }
}

function validateSecurity() {
    var errors = new Array();
    
    if ($('#password1').val().length == 0)
       errors.push('Bir parola belirlemelisiniz.');
    if ($('#password2').val().length == 0)
       errors.push('Parolanızı ikinci kutuya tekrar girmelisiniz.');
    else {
       if ($('#password2').val() != $('#password1').val())
           errors.push('Belirttiğiniz parolalar birbirinden farklı.');
    }
    if ($('#password2').val().length < 6)
		errors.push("Parolanız en az 6 karakter uzunluğunda olmalıdır.");
    if ($('#answer').val().length == 0)
       errors.push('Güvenlik sorusuzun yanıtını belirleyin.');
    if (($('#alternateMail').val().length == 0) || (!validateMail($('#alternateMail').val())) )
       errors.push('Alternatif bir e-posta adresi belirtin.');

    if ($('#captcha').val().length == 0)
       errors.push('Güvenlik kodu belirtmelisiniz.');
    
    if (errors.length > 0) {
       var $errorList = $('#guvenlik .error-list .errors ul');
       $errorList.children().remove();
       for (var i = 0; i < errors.length; i++) {
           $errorList.append($.format('<li>{0}</li>', errors[i]));
       }
       $('#guvenlik .error-list').slideDown();
       
       return false;
    }
    else {
        $('#guvenlik .error-list').hide();
        return true;
    }
}

function validatePersonalInfo() {
    var errors = new Array();
    
    if (!$('input[@name=gender]:checked').val())
        errors.push('Cinsiyetinizi belirtin.');
    
    //var birthDate = $('select[@name=day] option:selected').val() + '/' + $('select[@name=month] option:selected').val() + '/' + $('select[@name=year] option:selected').val();

    var birthDate = $('#day').selectedValues()[0] + '/' + $('#month').selectedValues()[0] + '/' + $('#year').selectedValues()[0]; 
    if (!validateDate(birthDate))
        errors.push('Doğum tarihi geçersiz.');

    if ($('#approved:checked').length == 0) {
        errors.push("Kullanım şartlarını kabul etmelisiniz.");
    }
    
    if (errors.length > 0) {
       var $errorList = $('#kisisel .error-list .errors ul');
       $errorList.children().remove();
       for (var i = 0; i < errors.length; i++) {
           $errorList.append($.format('<li>{0}</li>', errors[i]));
       }
       $('#kisisel .error-list').slideDown();
       
       return false;
    }
    else {
        $('#kisisel .error-list').hide();
        return true;
    }}

/* Helper validation functions */
function validateGmail(value) {
	return /[A-Za-z0-9\.\-_]{3,10}/.test(value);
}
function validateMail(value) {
    var pattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return (pattern.test(value));
}

//function validateDate(value) {
//    alert(value);
//    var pattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
//    return (pattern.test(value));
//}

function validateDate(value) { 
    var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/; 
    if ((value.match(RegExPattern)) && (value!='')) 
    { 
        return true;
    } else { 
        return false;
    } 
}

/* Error list */
function showErrors(container, errors) {
	var $errorDiv = $('<div class="error-list">' +
			'	<h1>Lütfen aşağıdaki hataları düzeltin:</h1>' +
			'	<div class="errors">' +
			'		<ul></ul>' +
			'	</div>' +
			'</div>');
   var $errorList = $('.errors ul', $errorDiv);
   $errorList.children().remove();
   for (var i = 0; i < errors.length; i++) {
       $errorList.append($.format('<li>{0}</li>', errors[i]));
   }
   $(container).append($errorDiv);		
}
