
function phone_numbers_highlight(){
    if(!$(this).text()) return;
    $(this).toggleClass("highlighted");
    var number_highlighted = "";
    for(var i=1; i<=8; i++){
        if($("#number_digit_"+i).hasClass("highlighted")){
            number_highlighted+="1";
        }
        else {
            number_highlighted+="0";        
        }
    }
    $("#number_highlighted").val(number_highlighted);
}

function phone_numbers_toggle_digits(){
    $(".phone_numbers_letters").css("display", "none");
    $(".phone_numbers_digits").css("display", "inline");
}

function phone_numbers_toggle_letters(){
    $(".phone_numbers_letters").css("display", "inline");
    $(".phone_numbers_digits").css("display", "none");
}

var phone_numbers_update_message = null;

var phone_numbers_digits = [];

function phone_numbers_update(){
    var number = "";
    var empty = true;
    
    for(var i=1; i<=8; i++){
        var value = String($("#number_input_"+i).val()).toUpperCase();
        phone_numbers_digits[i-1] = value;
        if(value.match(/^[a-zA-Z0-9]$/g)){       
            empty = false;
        }        
        else {
            value =  "-";        
        }
        $("#number_digit_"+i).text(value);
        number += value;        
    }
    
    if(empty){
        for(var i=1; i<=8; i++){    
            $("#number_digit_"+i).text("");
            $("#number_digit_"+i).removeClass("highlighted");
        }
        $("#number_highlighted").attr("value", "00000000");
    }
    
    
    if(empty) number = "";

    var current_number = String($("input[name=number]").val()).toUpperCase();
    
    if(number!=current_number){
        $("input[name=number]").attr("value", number);
        if(phone_numbers_update_message){
            phone_numbers_update_message();
        }
        else {            
            $("div.error").css("display", "none");
            $(".search-info").addClass("search-info-empty");
        }
    }
}

function phone_numbers_keyup(event){
    var idx = String($(this).attr("id")).replace("number_input_", "")-1;
    var previous_value = String(phone_numbers_digits[idx]).toLowerCase();
    var current_value = $.trim(String($(this).val()).toLowerCase());
    phone_numbers_update();    
    if(current_value && current_value!=previous_value&&idx<7){  
        var i = document.getElementById("number_input_"+(idx+2));        
        if(i) i.select();
        return false;
    }
}

function phone_numbers_reset(){
    $("#phone_number_digits input.form-phone").val("");
    phone_numbers_update();
}

function phone_numbers_init(){
    $(document).ready(function(){
        $(".search-add-arrow input.form-phone").keyup(phone_numbers_keyup);
        $("input[name=number_not_used]").change(function(){
            if(phone_numbers_update_message) phone_numbers_update_message();
        });
        $("#number_exact").click(function(){
            if(phone_numbers_update_message) phone_numbers_update_message();
        });        
        $("#reset").click(function(){phone_numbers_reset(); return false;});
        phone_numbers_update();
        $("span.digit").click(phone_numbers_highlight);
    });
}

