////////////////////////////////////////
//ENABLE CURRENT PAGINATION DIV
function enablePage(page_to_enable)
    {
    //alert(page_to_enable);
    
    //READ TAB MENU ARRAY
    for (var tab in tabs_menu_array)
        {
        if(tab == page_to_enable)
            {//if founded the right page
            $('#pagination_'+tab).show();
            now_var = tab;
            }
        else
            {
            $('#pagination_'+tab).hide();
            }

        }
    drawPaginationMenu(page_to_enable);
    }

////////////////////////////////////////
// DRAW THE MENU
function drawPaginationMenu(page_enabled)
    {

    var tabs_menu_display = "";
    var bold = "";
    var mainClass = "";

    for (var tab in tabs_menu_array)
        {
        //alert(tab);
        
        if(now_var == tab){mainClass = "pag-active-tab";}
        else{mainClass = "pag-tab";}
        tabs_menu_display += "<span class=\""+mainClass+" pag-tab-link pagtabcomplete0\" id=\"pagtabspan"+tab+"\"><a href='#' onclick='enablePage("+tab+");return false;' id='pagtab"+tab+"' class='a2'>"+tab+": "+tabs_menu_array[tab]["title"]+"</a></span> ";
        //tabs_menu_display += "<span class=\"pag-tab pag-tab-link pagtabcomplete0\" id=\"pagtabspan"+tab+"\"><a href='#' onclick='enablePage("+tab+");' id='pagtab"+tab+"' class=\"pag-tab-link\">"+tab+": "+tabs_menu_array[tab]["title"]+"</a></span> ";
        }

        //-- if it's the last page
    if(page_enabled<=real_tab_length)
        {
        //-- draws the tabs and respective buttons
        $('#tabs_menu').html(tabs_menu_display);
        $('#div_end').html(tabs_menu_array[page_enabled]["div_end"]);//Submit button
        
        //-- if tab has errors registered in previous verification
        if(typeof tabs_error_array[page_enabled]!='undefined' && tabs_error_array[page_enabled]==1)
            {
            $('#success_control').addClass("err_loading");
            $('#success_control').html(msg_correct);
            }
        else
            {
            $('#success_control').removeClass("err_loading");
            $('#success_control').toggleClass("vac_loading");
            $('#success_control').html(tabs_menu_array[page_enabled]["success_control_content"]);
            }
        
        //-- build the tab's form
        toggleCompleteStatus();
        }
    else{
        for(var tab_2 in tabs_complete_array)
            {
            if(tabs_complete_array[tab_2]==0)
                {
                //alert(action);
                
                $('#success_control').toggleClass("vac_loading");
                //$('#success_control').removeClass("err_loading");
                //$('#success_control').hide();
                validateDivPages(tab_2,action);
                enablePage(tab_2);
                exit;
                }
            }
        //-- last msg
        $('#success_control').toggleClass("vac_loading");
        $('#success_control').html(msg_calculating);
        $('#div_end').hide();

        $('#quote_form')[0].submit();
        //var t=setTimeout("$('#quote_form')[0].submit();",5000);

        exit;
        }
    }

////////////////////////////////////////
//MARK COMPLETE / INCOMPLETE TABS
function toggleCompleteStatus()
    {
    //-- 
    $('#div_end').show();
    $('#success_control').removeClass("vac_loading");
     
    //--
    for(tab in tabs_complete_array)
        {
        if(tabs_complete_array[tab])
            {
            $('#pagtabspan'+tab).addClass("pagtabcomplete1");
            $('#pagtab'+tab).addClass("a1");
            }
        else
            {
            $('#pagtabspan'+tab).removeClass("pagtabcomplete1");
            $('#pagtab'+tab).addClass("a2");
            }
        }   
    }

////////////////////////////////////////
// FIELDS VALIDATION
function validateDivPages(page_to_validate,action)
    {
    $('#success_control').removeClass("err_loading");
    $('#success_control').toggleClass("vac_loading");
    $('#success_control').html(msg_validating);

    var params="";
    var p={ncf:1,fields_to_validate:tabs_menu_array[page_to_validate]["div_fields"],page:page_to_validate};
    for (var x in p)
        {
        params += x+"="+p[x]+"&";
        }
    var p2=$('#quote_form').formToArray();

    //BEFORE VALIDATE
    //TO FIX THE ERROR HIGHLIGHT
    var tabs_tmp = tabs_menu_array[page_to_validate]["div_fields"].split(",");
    for(var i_tabs_tmp in tabs_tmp)
        {
        $("#err_"+tabs_tmp[i_tabs_tmp]).css({ color: "#000000","font-weight": "normal"});
        $("#"+tabs_tmp[i_tabs_tmp]).unbind("mouseover")
        }

    //-- send form
    $.post(action+"?"+params,p2, function(data)
        {
        //alert(data);
        
        // kludge - data is coming with this string
        if(data.substr(0,2)=='\r\n')
            {
            data = data.substr(2)
            }
        
        $('#success_control').toggleClass("vac_loading");

        if(isNaN(data))
            {
            //alert(data);
            var values = data.split("|");
            var error_fields = values[0].split(",");
            var error_msgs = values[1].split(",");
            
            //HIGHLIGHT FIELDS
            hlErrFields(error_fields);

            // BIND EVENT HANDLERS FOR ERROR MESSAGES / TOOLTIPS
            hlMsgTips(error_msgs,error_fields);
            
            $('#success_control').toggleClass("vac_loading");
            $('#success_control').addClass("err_loading");
            $('#success_control').html(msg_correct);
            //$('#success_control').css({border: "thin dotted #FFAAAA"});
            
            //SET VARS
            tabs_complete_array[page_to_validate]=0;
            tabs_error_array[page_to_validate]=1
            }
        else{
            //SET VARS
            tabs_complete_array[page_to_validate]=1;

            //show tab with error's content
            enablePage(data);
            }

        //TOGGLE TABS
        toggleCompleteStatus();
        });
    }

////////////////////////////////////////
//ERRORS
function handler(event)
    {
    $("#success_control").html(event.data.foo);
    }
////////////////////////////////////////
//HIGHLIGHT ERRORS
function hlMsgTips(msg,field)
    {
    for(i=0;i<msg.length;i++)
        {
        m=(msg[i])?msg[i]:msg_correct;
        $('#'+field[i]).bind("mouseover",{foo: m}, handler);
        $('#'+field[i]).bind("mouseout",{foo: msg_correct}, handler);
        }
    }
function hlErrFields(a)
    {
    for(i=0;i<a.length;i++)
        {
        //alert(a[i]);
        $('#err_'+a[i]).css({ color: "#FF0000","font-weight": "bold"});
        }
    }
