////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
//-- VARS WITH GLOBAL SCOPE
var classArray =  Array();
var fromArray  =  Array();
var untilArray =  Array();
var addClaimCounter = '1';
var addConvictionCounter = '1';

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
//-- ON PAGE LOAD
$(document).ready(function(){
    //-- Calendar
    if($('#full_abi').attr("id")!=undefined){ $('#year_of_manufacture').attr("onchange","validateYearOfManufacture();return false;"); }
});

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
//-- VALIDATION
function validateYearOfManufacture()
    {
    if($("#full_abi").val()!="")
        {
        var tmp = $("#full_abi option:selected").text().split(",");
        var range = tmp[1].split("-");
        
        if($('#year_of_manufacture').val()>(range[1]+1) || $('#year_of_manufacture').val()<(range[0]-1)){alert("Please insert the correct Year Of Manufacture, according to the Vehicle Details.");}
        }
    }
    
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
//-- CLAIMS AND CONVICTIONS

//-- CLAIMS
function addClaim(c)
    {
    var last_included=c-1;
    if(c==1 || 
       ($('#type_'+last_included).val()!='' && $('#type_'+last_included).val()!='--' && 
        $('#dated_'+last_included).val()!='' && 
        $('#status_'+last_included).val()!='--' && $('#status_'+last_included).val()!=''))
        {
        var can_return=false;

        var fields_to_change = $('#div_f_fields_model_claim').html();
        fields_to_change=fields_to_change.replace(/model/g, c);
        fields_to_change=fields_to_change.replace(/_claims/g, 'claims');
        if(c==1)
            {
            $('#claim_table').html("<thead><tr id='div_f_claim_header'>"+$('#div_f_header_model_claim').html()+"</tr></thead><tbody id='to_apend_claim'><tr id='div_f_claim_1'>"+fields_to_change+"</tr></tbody>");
            can_return=true;
            }
        else
            {
            $('#to_apend_claim').append("<tr id='div_f_claim_"+c+"'>"+fields_to_change+"</tr>");
            can_return=true;
            }

        //--
        quotivaCalendar("#dated_"+c,"",todaysDate("full"));
        //-- RETURN
        if(can_return){ return true; }
        }
    else{ return false; }
    }

//-- CONVICTIONS
function addConviction(c)
    {
    var last_included=c-1;
    
    if(c==1 || ($('#code_'+last_included).val()!='' && $('#conv_dated_'+last_included).val()!=''))
        {
        var insert_autocomplete=false;
        var can_return=false;
        //-- create fields
        var fields_to_change = $('#div_f_fields_model_conviction').html();
        fields_to_change=fields_to_change.replace(/model/g, c);
        fields_to_change=fields_to_change.replace(/_convictions/g, 'convictions');
        
        if(c==1)
            {
            $('#conviction_table').html("<thead><tr id='div_f_conviction_header'>"+$('#div_f_header_model_conviction').html()+"</tr></thead><tbody id='to_apend_conviction'><tr id='div_f_conviction_1'>"+fields_to_change+"</tr></tbody>");
            insert_autocomplete=true;
            }
        else
            {
            //$('#to_apend_conviction').append("<tr id='div_f_conviction_"+c+"'>"+fields_to_change+"</tr>");
            if($.browser.msie==true)
                {
                $("#to_apend_conviction").html($("#to_apend_conviction").html()+"<tr id='div_f_conviction_"+c+"'>"+fields_to_change+"</tr>");
                insert_autocomplete=true;
                }
            else
                {
                $('#to_apend_conviction').append("<tr id='div_f_conviction_"+c+"'>"+fields_to_change+"</tr>");
                insert_autocomplete=true;
                }
            }

        //--
        quotivaCalendar("#conv_dated_"+c,"",todaysDate("full"));
        //-- autocomplete
        if(insert_autocomplete){ setAutocomplete(c); can_return=true; }
        //-- RETURN 
        if(can_return){ return true; }
        }
    else{ return false; }
    }

/**
* Include the autocomplete plugin in the code field of the convictions row
*/
function setAutocomplete(c)
    {
    $("#code_"+c).autocomplete("/lib/ajx_conviction_pickup.php", { minChars:1, matchSubset:1, matchContains:1, cacheLength:10,selectOnly:1,formatItem:formatItem});
    }

/**
* Format the div that apears when autocomplete is triggered
*/    
function formatItem(row)
    {
    return "<b>"+row[0]+"</b>" + "<br />" + row[1];
    }

/**
* Delete a row, conviction or claim
*/
function deleteRow(c,c_c)
    {
    $('#div_f_'+c_c+c).remove();
    var ctrl = lastRowChk(c_c);
    if(ctrl){ $('#div_f_'+c_c+'header').remove(); }
    else{ changeID_toRespectSequence(c_c); }
    }

/**
* When deleting the only row available, deletes also the heading
*/
function lastRowChk(c_c)
    {
    var c_cLength = 20;
    
    for(var i=0;i<=c_cLength;i++)
        {
        if($('#div_f_'+c_c+i).html()!=null) { return 0; }
        }
        
    return 1;
    
    }

/**
* Changes the id and name of all the remained rows so it keeps the sequencial number to be used by the engine
*/
function changeID_toRespectSequence(c_c)
    {
    for(var i=1;i<$('tr[@id^="div_f_'+c_c+'"]').length;i++)
        {
        // vars to change contents        
        var tmp_att_id = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+')').attr("id");
        var _substitution=false;
        var reset_autocomplete=false;
        
        //-- TR id
        if(tmp_att_id)
            { var tmp_att_id_1 = tmp_att_id.charAt(tmp_att_id.length-1);
              var tmp_att_id_2 = '_'+tmp_att_id.charAt(tmp_att_id.length-1); }
            
        if(tmp_att_id_2)
            { var att_id = tmp_att_id.replace(tmp_att_id_2,'_'+i); }

        //-- TR fields
        if(tmp_att_id_2)
            {
            //-- INPUTS
            for(var inp_i=0;inp_i<$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input').length;inp_i++)
                {
                // vars to change contents        
                var tmp_att_id_input = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input:eq('+inp_i+')').attr("id");
                var tmp_att_name_input = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input:eq('+inp_i+')').attr("name");
                
                if(tmp_att_id_input)
                    { var att_id_input = tmp_att_id_input.replace(tmp_att_id_2,'_'+i); }
                if(tmp_att_name_input)
                    { var att_name_input = tmp_att_name_input.replace(tmp_att_id_2,'_'+i); }
                    
                if(att_id_input)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input:eq('+inp_i+')').attr("id",att_id_input); att_id_input=false;tmp_att_id_input=false;}
                if(att_name_input)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input:eq('+inp_i+')').attr("name",att_name_input); att_name_input=false; tmp_att_name_input=false;}
                }
            
            // @ DEBUG
            //console.log("Input length: "+$('tr[@id^="div_f_conviction"]:eq('+i+') input').length);
            //console.log("Input counter: "+inp_i);

            //-- SELECTS
            for(var inp_s=0;inp_s<$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select').length;inp_s++)
                {
                // vars to change contents        
                var tmp_att_id_select = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("id");
                var tmp_att_name_select = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("name");
                var tmp_att_onchange_select = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("onchange");

                if(tmp_att_id_select)
                    {
                    var att_id_select = tmp_att_id_select.replace(tmp_att_id_2,'_'+i);
                    
                    // @ DEBUG
                    //console.log("Select "+inp_s+": "+tmp_att_id_select);
                    //console.log("Select "+inp_s+": "+att_id_select);
                    }
                if(tmp_att_name_select)
                    { var att_name_select = tmp_att_name_select.replace(tmp_att_id_2,'_'+i); }
                if(tmp_att_onchange_select)
                    { var att_onchange_select = tmp_att_onchange_select.replace(tmp_att_id_2,'_'+i); }

                if(att_id_select)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("id",att_id_select); att_id_select=false;tmp_att_id_select=false;}
                if(att_name_select)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("name",att_name_select); att_name_select=false; tmp_att_name_select=false;}
                if(att_onchange_select)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select:eq('+inp_s+')').attr("onchange",att_onchange_select); att_onchange_select=false; tmp_att_onchange_select=false;}
                }

            //-- ANCHORS
            for(var inp_a=0;inp_a<$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a').length;inp_a++)
                {
                // vars to change contents        
                var tmp_att_id_a = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a:eq('+inp_a+')').attr("id");
                var tmp_att_name_a = $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a:eq('+inp_a+')').attr("name");

                if(tmp_att_id_a)
                    { var att_id_a = tmp_att_id_a.replace(tmp_att_id_1,i); }
                if(tmp_att_name_a)
                    { var att_name_a = tmp_att_name_a.replace(tmp_att_id_1,i); }

                if(att_id_a)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a:eq('+inp_a+')').attr("id",att_id_a); att_id_a=false;tmp_att_id_a=false;}
                if(att_name_a)
                    { $('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a:eq('+inp_a+')').attr("name",att_name_a); att_name_a=false; tmp_att_name_a=false;}
                }

            if(inp_i==$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') input').length && 
               inp_s==$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') select').length &&
               inp_a==$('tr[@id^="div_f_'+c_c+'"]:eq('+i+') a').length){ _substitution=true; }
            }

        //-- Substitutions
        if(_substitution){ $('tr[@id^="div_f_'+c_c+'"]:eq('+i+')').attr("id",att_id); _substitution=false; reset_autocomplete=true;}
        if(reset_autocomplete){setAutocomplete(i);}
        }
    }
