var noClick = true;
$(document).ready(function(){   

    jQuery.validator.addMethod("bankId", function(value, element) {
        return $('#clientBankId').val()!="";
    }, "Ange bank");
    
    jQuery.validator.addMethod("accountNr", function(value, element) {
                return !isNaN(value.toString().replace('-','').replace(' ',''));
    }, "Ange ett korrekt kontonummer");
    
    jQuery.validator.addMethod("validSsn", function(value, element) {     
        var ssn = $('#clientSsn1').val()+'-'+$('#clientSsn2').val()+'-'+$('#clientSsn3').val()+'-'+$('#clientSsn4').val();        
        if(noClick)
            return true;
        noClick=true;
        return PNR_IsValid(ssn) && PNR_ControlAge(ssn, 18);
    }, "Du måste ange korrekt personnummer");

    $("form").validate({
        rules: {
            code: {
                required: true,
                remote: {
                    url: "form/check-code.php",
                    type: "post",
                    data: {
                        cell: function() {
                            return $("#clientCellphone").val();
                        }
                    }
                }
            }
        },
        messages: {
            clientZip: "Du måste ange ditt postnummer",
            clientFirstname: "Fyll i ditt förnamn ",
            clientSurname: "Fyll i ditt efternamn ",
            clientPhone: "Ange korrekt nummer",
            clientEmail: "Var snäll och ange en korrekt e-postadress",
            clientAccountNr: "Ange ett korrekt kontonummer",
            clientBankId: "Ange bank",
            //monthlyExpense: "Endast siffror",
            code: "Koden är inte giltig, var god kontrollera",
            clientCellphone: "Du måste ange mobilnummer",
            terms: "Du måste godkänna villkoren"
        },
        errorPlacement: function(error, element) {
        	//alert(error.text());
            error.insertAfter($(element).parent().children('label'));
            var str='';
            $('label.error').each(function(i,e){
                e = $(e);
                if(str.indexOf(e.text())==-1) {
                    str+=e.text();
                    e.show();
                }
                else
                    e.remove();
            });
        }
    });
    
    $("form").formToWizard({
        submitButton: "save",
        prevButtonImage: "form/images/knapp_tillbaka.png",
        nextButtonImage: "form/images/knapp_vidare_small.png"
    });
    
    $('input[type=radio]').click(function(){
        checkLoanClick();
    });
    
    $("#step2commands").append("<a href='#' id='finish' class='next'><img src='"+nextButtonImage+"' /></a>");
    $("#finish").bind("click", function(e) {    
        if(processStep(this)) {        	
            var f = $('#clientFirstname').val().toLowerCase();
	    var l = $('#clientSurname').val().toLowerCase();
	    var a = $('#clientAccountNr').val().replace('-','').replace(' ','');
	    $('#clientFirstname').val(f);
            $('#clientSurname').val(l);
            $('#clientAccountNr').val(a);
            $('#application-form').submit();
            $("#finish").attr('disabled','disabled');
        }
    });
});

function PNR_IsValid(vVad) {
    if( vVad.search(/\d\d\d\d-\d\d-\d\d-\d\d\d\d/) == 0 ) {
        var d = new Date();
        var vYear = parseInt(vVad.substr(0,4));
        var vMonth = parseInt(vVad.substr(5,2));
        var vDay = parseInt(vVad.substr(8,2));
        if( vYear<1900 || vYear > d.getFullYear() ) return false; // M?ste vara minst 1900, och inte h?gre ?n nuvarande ?rtal
        if( vMonth<0 || vMonth > 12 ) return false;	// M?naden m?ste vara mellan 1 och 12
        if( vDay<0 || vDay > 31 ) return false;	// Dagen m?ste vara mellan 1 och 31
        return true;
    }
    return false;
}

function PNR_ControlAge(pNr, vMinimi) {
    var s = pNr.split("-");
    var d = new Date();
    var cAge;
    cAge = d.getFullYear()-parseInt(s[0]);
    if( parseInt(cAge)>parseInt(vMinimi)) {
        return true;
    } else if( cAge == vMinimi) {
        if( (d.getMonth()+1)> parseInt(s[1]) ) {
            return true;
        }
        if( (d.getMonth()+1)== parseInt(s[1]) && d.getDate()>= parseInt(s[2]) ) {
            return true;
        }
    }
    return false;
}

function processStep(obj) {
    var id = $(obj).attr('id');
    noClick = false;
    var ret = true;
    $('#f'+id).children('p').each(function(i,e){
        $(e).children('input').each(function(j,input) {
            if(!$("form").validate().element( input ) )
                ret = false;
        });
    });
    var str="";
    $('label.error').each(function(i,e){
        e = $(e);
        if(str.indexOf(e.text())==-1) {
            str+=e.text();
            e.show();
        }
        else
            e.remove();
    });    
    if(id=='step0Next') {
        checkLoanClick();
        if(!$('input[name="caseLoanAmount"]:checked').val())
    		return false;
        var ssn = $('#clientSsn1').val()+$('#clientSsn2').val()+$('#clientSsn3').val()+$('#clientSsn4').val();
        $.ajax({
            type: 'GET',
            url:'form/check-customer.php',
            data: {
                'ssn':ssn,
                'zip':$('#clientZip').val(),
                'loan':$('input[name="caseLoanAmount"]:checked').val()
            },
            async: false,
            success: function(data){
            	if(data=='no45loan') {
                    $("<label class='error l45'>Det är inte möjligt för dig att ansöka om detta belopp. Du kan högst ansöka om 3000 kr. Välj en ny summa nedan och klicka vidare för att fullfölja din ansökan</label>").insertAfter($('#loanLabel')).show();
                    ret =  false;
                }else if(data!="1") {
                     //alert(data.length);
                    if(data.length>4) {
                    	var d = data.split(",");
                        $('#isNewCustomer').val('false');
                        newCust = false;
                        $('#clientFirstname').removeClass('required');
			$('#clientSurname').removeClass('required');
			$('#clientPhone').removeClass('required');
                        $('#clientEmail').removeClass('required');
                        $('#clientEmail').removeClass('email');
                    }
                    else {
                        $('#hasNewAddress').val("true");
                    	$('#newAddr').show();
                    }
                }
            }
        });
    }
    return ret;
}
function putBankMessage(o, f){
    var divName = 'bankmessage'
    if(f)
        divName = f;
    if(o.value=='Danske bank'||o.value=='Swedbank'||o.value=='LF bank'||o.value=='Skandiabanken'||o.value=='SEB'||o.value=='ICA-banken'||o.value=='Ikanobanken'||o.value=='Sparbanken Finn/Gripen'||o.value=='Handelsbanken'||o.value=='FOREX Bank') {
        bmes = "Pengarna finns på ditt konto nästkommande vardag eftersom vi gör överföringen från en annan bank. Du får besked via SMS när pengarna har överförts från oss.";
        document.getElementById(divName).style.display = 'block';
        document.getElementById(divName).innerHTML = '<br><div style="border:2px #bb3333 solid; padding:10px;background-color:#fced98;width:250px;"><b>Angående '+o.value+'</b><small><br>'+bmes+'</small></div>'
    }else{
        document.getElementById(divName).innerHTML = '';
        document.getElementById(divName).style.display = 'none';
    }
}
function checkLoanClick(){
    if(!$('input[name="caseLoanAmount"]:checked').val()) {
    	if($('.cla').length == 0)
        $("<label class='error cla'>Välj önskat belopp</label>").insertAfter($('#loanLabel')).show();
    }
    else
        $('.cla').remove();
    if($('input[name="caseLoanAmount"]:checked').val()<4000)
        $('.l45').remove();
}
