var sifremi_unuttum_ver = 8484786984;
var captchaId;
var userId;
var token;


jQuery(function() {
	jQuery.validator.addMethod("ttpassword",
        function(value, element) {
        	return value.length >= 6;
        }, "");
        
    jQuery.validator.addMethod("ttpasswordCustom",
        function(value, element) {
        	return ValidatePassword(value);
        }, "");

	jQuery.validator.addMethod("tcinumber",
    function(value, element) {
    	if (value.length != 11)
    		return false;
    	return checkIdentityNumber(value);
    }, "Lütfen T.C Kimlik numaranızı kontrol ediniz.");

	jQuery.validator.addMethod("formdate",
        function(value, element) {
        	var dateparts = value.split(' / ');
        	if (dateparts.length != 3) return false;
        	var d = dateparts[0];
        	var m = dateparts[1];
        	var y = dateparts[2];
        	if (y < 1900 || y > 2008) return false;
        	if (!(m >= 1 && m <= 12)) return false;
        	if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && (!(d >= 1 && d <= 31))) return false;
        	if ((m == 4 || m == 6 || m == 9 || m == 11) && !(d >= 1 && d <= 30)) return false;
        	if (((y % 4) == 0) && (m == 2) && (d > 29)) return false;
        	if (((y % 4) != 0) && (m == 2) && (d > 28)) return false;
        	return true;

        }, "Lütfen tarihi kontrol ediniz.");

	var validator = $("#formPasswordStep1").validate(
    {
    	rules:
        {
        	username:
			{
				required: true,
				number: true,
				tcinumber: true
			},
        	captcha: { required: true }
        },
    	messages:
        {
        	username:
            { required: "T.C. kimlik numaranızı girin.",
            	number: "T.C. kimlik numarası 11 rakamdan oluşmalıdır.",
            	tcinumber: "Lütfen T.C. kimlik numaranızı kontrol ediniz."
            },
        	captcha: { required: "Kontrol metnini girin." }
        },
    	errorPlacement: function(error, element) {
    		error.appendTo(element.parent().next());

    	},
    	submitHandler: function() {
    		checkUsernameFP();
    	},
    	success: function(label) {
    		label.html("&nbsp;").addClass("checked");
    	}
    });

	var validator2 = $("#formPasswordStep2").validate(
    {
    	rules:
        {
        	birthDate:
			{
				required: true,
				formdate: true
			},
        	secretQuestion:
            {
            	required: true
            },
        	secretAnswer:
            {
            	required: true
            }
        },
    	messages:
        {
        	birthDate:
            {
            	required: "Doğum tarihinizi girin.",
            	formdate: "Doğum tarihiniz gün / ay / yıl şeklinde olmalıdır."
            },
        	secretQuestion:
            {
            	required: "Gizli sorunuzu seçin."
            },
        	secretAnswer:
            {
            	required: "Gizli cevabınızı girin."
            }
        },
    	errorPlacement: function(error, element) {
    		error.appendTo(element.parent().next());

    	},
    	submitHandler: function() {
    		checkSecretQuestion();
    	},
    	success: function(label) {
    		label.html("&nbsp;").addClass("checked");
    	}
    });

	var validator3 = $("#formPasswordStep3").validate(
    {
    	rules:
        {
        	password:
            {
            	required: true,
            	ttpassword: true,
            	ttpasswordCustom: true
            },
        	password2:
            {
            	required: true,
            	ttpassword: true,
            	equalTo: "#password"
            }
        },
    	messages:
        {
        	password:
            {
            	required: "Yeni şifrenizi girin.",
            	ttpassword: "Şifreniz en az 6 haneli olmalıdır.",
            	ttpasswordCustom: "Lütfen geçerli bir şifre oluşturunuz."
            },
        	password2:
            {
            	required: "Yeni şifrenizi tekrar girin.",
            	ttpassword: "Şifreniz en az 6 haneli olmalıdır.",
            	equalTo: "Tekrar girdiğiniz şifreyi kontrol edin."
            }
        },
    	errorPlacement: function(error, element) {
    		error.appendTo(element.parent().next());
    	},
    	submitHandler: function() {
    		changePassword();
    	},
    	success: function(label) {
    		// set &nbsp; as text for IE
    		label.html("&nbsp;").addClass("checked");
    	}
    });

	$("#birthDate").mask("99 / 99 / 9999");
	$("#captcha").mask("99999");
	setCaptcha();

	//popupDisplay("Test", "contentLeftWrapper", true);

	// $('#formPasswordStep1Fields *').tooltip();
	// $('#formPasswordStep2Fields *').tooltip();
	// $('#formPasswordStep3Fields *').tooltip();

});

function setCaptcha() {
	captchaId = ((new Date()).getTime() + Math.floor(Math.random() * 101));	
	$("#captchaContainer").html("<img id='captchaImg' style='border: 1px solid #a0a0a0;' width='140' height='40' src='"+ _TTV_SERVICE_URL +"/captcha.jpg?captchaId=" + captchaId + "'/>");
}

function fillSecretQuestionsFP() {
	//debug('fillSecretQuestionsFP');
	if ($("#secretQuestion").length < 2)
		getSecretQuestionsFlashFP("getsecretquestions", "afterFillSecretQuestionsFP");
}

function afterFillSecretQuestionsFP(data) {
	//debug('afterFillSecretQuestionsFP: ' + data);
	var array = data.split("!");
	if (array[0] == "message") {
		var messageCode = array[1];
		handleMessageCode(messageCode);
	}
	else if (array[0] == "data") {
		var qSelect = document.getElementById("secretQuestion");
		var result = array[1];

		if (window.ActiveXObject) {
			var xmlText = result;
			result = new ActiveXObject("Microsoft.XMLDOM");
			result.async = "false";
			result.loadXML(xmlText);
		}

		var html = "";
		var i = 1;
		$("secret_question", result).each(function() {
			var id = $(this).find("id").text();
			var name = $(this).find("value").text();
			qSelect.options[i++] = new Option(name, id);
		});
	}

}

var step1Enabled = true;
var step2Enabled = true;
var step3Enabled = true;

function step1() {
	if (step1Enabled)
		$('#formPasswordStep1').submit();
}

function step2() {
	if (step2Enabled)
		$('#formPasswordStep2').submit();
}

function step3() {
	if (step3Enabled)
		$('#formPasswordStep3').submit();
}

function checkUsernameFP() {
	step1Enabled = false;
	$('#step1Container').removeClass('devam');
	$('#step1Container').addClass('bekle');

	var username = $("#username").val();
	var captchaResponse = $("#captcha").val();
	//debug('checkUsernameFP');
	checkUsernameFPFlash("checkusername", username, captchaId, captchaResponse, "afterCheckUsernameFP");
}

function afterCheckUsernameFP(data) {
	//debug('afterCheckUsernameFP: ' + data);
	var array = data.split("!");
	if (array[0] == "message") {
		setCaptcha();
		$('#captcha').val('');
		var messageCode = array[1];
		handleServerError(messageCode);
	}
	else if (array[0] == "data") {
		userId = array[1];
		//debug('userId: ' + userId);
		fillSecretQuestionsFP();
		$("#passwordStep1").css("display", "none");
		$("#passwordStep2").css("display", "block");
		$("#passwordStep3").css("display", "none");
		
		dcsMultiTrack('DCS.dcsuri','/wt.gif','DCSext.goal3','1');
	}
	step1Enabled = true;
	$('#step1Container').removeClass('bekle');
	$('#step1Container').addClass('devam');
}

function checkSecretQuestion() {
	step2Enabled = false;
	$('#step2Container').removeClass('devam');
	$('#step2Container').addClass('bekle');

	var birthDate = $("#birthDate").val().replace(" / ", ".").replace(" / ", ".");
	var secretquestion = $("#secretQuestion").val();
	var secretanswer = $("#secretAnswer").val();
	//debug('checkSecretQuestion');
	checkSecretQuestionFlash("checksecretquestion", userId, birthDate, secretquestion, secretanswer, "afterCheckSecretQuestion");
}

function afterCheckSecretQuestion(data) {
	//debug('afterCheckSecretQuestion: ' + data);
	var array = data.split("!");
	if (array[0] == "message") {
		var messageCode = array[1];
		handleServerError(messageCode);
	}
	else if (array[0] == "data") {
		token = array[1];
		$("#passwordStep1").css("display", "none");
		$("#passwordStep2").css("display", "none");
		$("#passwordStep3").css("display", "block");
	}

	step2Enabled = true;
	$('#step2Container').removeClass('bekle');
	$('#step2Container').addClass('devam');
}

function changePassword() {
	step3Enabled = false;
	$('#step3Container').removeClass('devam');
	$('#step3Container').addClass('bekle');
	//debug('changePassword');
	var password = $("#password").val();
	//debug('changePassword: ' + userId + ' - ' + password + ' - ' + token);
	changePasswordFlash("changepassword", userId, password, token, "afterChangePassword");
}

function afterChangePassword(data) {
	//debug('afterChangePassword: ' + data);
	var array = data.split("!");
	if (array[0] == "message") {

		var messageCode = array[1];

		if (messageCode == "212") {

			var msg = getErrorMessage(messageCode);
			$('#ok_button').bind('click', function(e) {
				e.preventDefault();
				window.location.href = "/ilkogretim/";
			});
			popupDisplay(msg, "contentLeftWrapper", true);
		}
		else
			handleServerError(messageCode);
	}
	step3Enabled = true;
	$('#step3Container').removeClass('bekle');
	$('#step3Container').addClass('devam');
}

function handleServerError(errorCode) {
	var msg = getErrorMessage(errorCode);
	popupDisplay(msg, "contentLeftWrapper", false);
}

function ValidatePassword(p)
{
    var _birthDate = $("#birthDate").val().replace(" / ", "").replace(" / ", "");
	
    var num1 = "01234567890";
    var num2 = "09876543210";
    var ltr1 = "abcdefghijklmnopqrstuvwxyz";
    var ltr2 = "zyxwvutsrqponmlkjihgfedcba";
    var ltr3 = "abcçdefgğhıijklmnoöprsştuüvyz";
    var ltr4 = "zyvüutşsrpöonmlkjiıhğgfedçcba";
    var ltr5 = "qwertyuıopğü";
    var ltr6 = "üğpoıuytrewq";
    var ltr7 = "asdfghjklşi";
    var ltr8 = "işlkjhgfdsa";
    var ltr9 = "zxcvbnmöç";
    var ltr10 = "çömnbvcxz";
    
    if(p.length<6) return false;
    
    if(num1.indexOf(p) >-1 || num2.indexOf(p) >-1 || ltr1.indexOf(p) >-1 || ltr2.indexOf(p) >-1 || ltr3.indexOf(p) >-1 || ltr4.indexOf(p) >-1 || ltr5.indexOf(p) >-1 || ltr6.indexOf(p) >-1 || ltr7.indexOf(p) >-1 || ltr8.indexOf(p) >-1 || ltr9.indexOf(p) >-1 || ltr10.indexOf(p) >-1) return false;
    
    if(p==_birthDate || p==_birthDate.substring(4,8) || p.indexOf(_birthDate)>-1 || p.indexOf(_birthDate.substring(4,8))>-1) return false;
    
    if(p.indexOf("000")>-1 || p.indexOf("111")>-1 || p.indexOf("222")>-1 || p.indexOf("333")>-1 || p.indexOf("444")>-1 || p.indexOf("555")>-1 || p.indexOf("666")>-1 || p.indexOf("777")>-1 || p.indexOf("888")>-1 || p.indexOf("999")>-1) return false;
        
    p += ".";
    var pa = [];
    var flg;
    var swp = "";
    
    for(var i=0; i<p.length; i++)
    {
        if(i==0)
        {
            swp = p[i];
            flg = isDigit(p[i]) ? 1 : 0;
        }
        else if(i==p.length-1)
        {
            pa.push(swp);
        }
        else
        {
            var crrflg = isDigit(p[i]) ? 1 : 0;
            
            if(flg == crrflg)
            {
                swp += p[i];
            }
            else
            {
                pa.push(swp);
                swp = p[i];
            }
            
            flg = isDigit(p[i]) ? 1 : 0;
        }
    }
    
    for(var i=0; i<pa.length; i++)
    {
        if(pa[i].length>=3)
        {
            if(num1.indexOf(pa[i]) >-1 || num2.indexOf(pa[i]) >-1 || ltr1.indexOf(pa[i]) >-1 || ltr2.indexOf(pa[i]) >-1 || ltr3.indexOf(pa[i]) >-1 || ltr4.indexOf(pa[i]) >-1 || ltr5.indexOf(pa[i]) >-1 || ltr6.indexOf(pa[i]) >-1 || ltr7.indexOf(pa[i]) >-1 || ltr8.indexOf(pa[i]) >-1 || ltr9.indexOf(pa[i]) >-1 || ltr10.indexOf(pa[i]) >-1)
                return false;
        }
    }
    
    if(ValidationDetail(p,num1,3)==false) return false;
    if(ValidationDetail(p,num2,3)==false) return false;
    if(ValidationDetail(p,ltr1,3)==false) return false;
    if(ValidationDetail(p,ltr2,3)==false) return false;
    if(ValidationDetail(p,ltr3,3)==false) return false;
    if(ValidationDetail(p,ltr4,3)==false) return false;
    if(ValidationDetail(p,ltr5,3)==false) return false;
    if(ValidationDetail(p,ltr6,3)==false) return false;
    if(ValidationDetail(p,ltr7,3)==false) return false;
    if(ValidationDetail(p,ltr8,3)==false) return false;
    if(ValidationDetail(p,ltr9,3)==false) return false;
    if(ValidationDetail(p,ltr10,3)==false) return false;
    
    function isDigit(num) 
    {
        if(num==null||num==""||num.length==null) return false;
        if (num.length>1) return false;
        var string="1234567890";
        if (string.indexOf(num)!=-1) return true;
        return false;
    }
    
    return true;
}

function ValidationDetail(p,str,kln)
{
    for(var j=0; j<str.length; j++)
    {
        for(var i=j; i<str.length; i=i+kln)
        {
            var key = str.substring(i,i+kln);
            
            if(key.length==kln)
            {
                if(p.indexOf(key)>-1) return false;
            }
        }
    }
    
    return true;
}