function round(number,X) 
{
    // rounds number to X decimal places, defaults to 2
    X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

jqTarget="";
jqPage="";
jqWait=false;
jqDelay=1500; //miliseconds
jqTimer=null;
jqLevel=0;
function jqLoad(tcTarget, tcPage, tlWait)
{
    jqTarget = tcTarget;
    jqPage = tcPage;
    jqWait = tlWait; // Am nevoie doar in cazul in care browserul este Chrome sau Firefox, unde aplic un fade-out...
    
    // Apel cu afisare de wait form... resetam tot
    if (tlWait)
    {
        if (jqTimer != null)
        {
            // Un alt request cu afisare de waitform, dar un alt waitform anterior este activ. Il anulez.
            clearTimeout(jqTimer);
            jqTimer = null;
        }
        jqLevel=1; // Primul nivel de jqLoad.
    }
    else
    {
        if (jqTimer != null)
        {
            jqLevel++; // Asta inseamna ca un alt jqLoad a aparut in requestul precedent iar waitformul trebuie sa ramana acelasi si activ.
        }
    }
    
    if($.browser.msie)
    {
        // MS Internet Explorer
        if (tlWait)
        {
            jqTimer=setTimeout("showLoadForm('Așteptați...');", jqDelay);
        }
        $("#"+tcTarget).load(tcPage,jqIELoadComplete); // In IE nu vrea sa mearga acest JQuery, nu da eroare dar nu merge...
        //AjaxLoad(tcPage, document.getElementById(tcTarget));
    }
    else
    {
        //$("#"+tcTarget).fadeOut(150, jqHideComplete);
        jqHideComplete();
    }
}

function jqHideComplete()
{
   // Afisez animatie....
   if (jqWait)
   {
        jqTimer=setTimeout("showLoadForm('Așteptați...');", jqDelay);
   }
   $("#"+jqTarget).load(jqPage,'',jqLoadComplete);
}

function jqLoadComplete(response, status, xhr)
{
    if (jqLevel > 0)
    {
        jqLevel--;
        if (jqLevel == 0)
        {
            // Ascunde animatie
            clearTimeout(jqTimer);
            if ($("#dialogConfirm").dialog("isOpen"))
            {
                hideLoadForm();
            }
        }
    }  

    if (status == "error") 
    {
        var msg = "A aparut o eroare: ";
        $("#"+jqTarget).html(msg + xhr.status + " " + xhr.statusText);
    }
    else
    {
      //alert(response);
      //alert(jqTarget+response);
      //document.getElementById(jqTarget).innerHTML=response;
    }
    
    //$("#"+jqTarget).fadeIn(150);
}

function jqIELoadComplete(response, status, xhr)
{
    //alert($("#"+jqTarget).html());
    if (jqLevel > 0)
    {
        jqLevel--;
        if (jqLevel == 0)
        {
            // Ascunde animatie
            clearTimeout(jqTimer);
            if ($("#dialogConfirm").dialog("isOpen"))
            {
                hideLoadForm();
            }
        }    
    } 
    //alert(jqTarget+response);       
}

// O fereastra modala ce afiseaza o animatie la incarcare
function showLoadForm(cMesaj)
{
    if (cMesaj == '') cMesaj = "Așteptați...";
    $("#dialogConfirmMsg").html(cMesaj+"<br/><br/><img style='margin-left: 70px;' src='images/loading2.gif'/>");
    $("#dialogConfirm").dialog({
        buttons: {},
        resizable: true,
        height:150,
        width:300,
        modal: true
    });   
}

// Ascunde animatia
function hideLoadForm()
{
    $("#dialogConfirm").dialog('close');
}

// Confirmare delete
function confDel(cMesaj, cPage, nId)
{
    // cMesaj = Mesajul de afisat
    // cPage = Pagina php de submit unde tratez actiunea de delete
    // nId = ID-ul inregistrarii de sters
    $("#dialogConfirmMsg").html(cMesaj+"<br/><br/><div id='status' style='color: black; margin-left: 5px; background-color: #FFDFB9;'></div>");
    $("#dialogConfirm").dialog({
        resizable: true,
        height:250,
        modal: true,
        buttons: {
            'Da': function() {
                $("#status").html("Asteptati... <img src='images/loading3.gif'/>");
                //alert(cPage+"?action=del&id="+nId);
                
                $.ajax({
                  url: cPage+'?action=del&id='+nId,
                  async: false,
                  success: function(data) {
                    $('#status').html(data);
                    $('#dialogConfirm').dialog('close');
                    executeJavascript(data); // Execut eventual cod JS
                  }
                });                
                 
                // Aici am fost facuta sa vada utilizatorul rezultatul stergerii, insa daca intorc un cod JS nu trebe aratat ci executat, cum am facut mai sus. 
                //$('#status').load(cPage+"?action=del&id="+nId, function() {
                //    var t = setTimeout("$('#dialogConfirm').dialog('close');", 2000);
                //});
            },
            'Nu': function() {
                $("#dialogConfirm").dialog('close');
            }
        }
    });    
}

function showFullImage(imageURL)
{
    window.open('./poze/showfullimage.php?imageurl='+imageURL, 'newwindow', config='height=800, width=1068, toolbar=yes, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no');
    //window.print();
}

function showform(imageURL)
{
    window.open('images/forms/showform.php?imageurl='+imageURL, 'newwindow', config='height=768, width=1024, toolbar=yes, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no');
    //window.print();
}

// ATENTIE: ACESTA FUNCTIE ESTE DEFINITA SI IN base.php. INSA ESTE MAI BINE EXTERNALIZATA.
function mesaj(cMesaj, cComanda, nTip)
{
    $("#dialogConfirmMsg").html(cMesaj);
    $("#dialogConfirm").dialog({
        resizable: true,
        height:250,
        modal: true
    });
    
    switch(nTip)
    {
    case 1:
        $("#dialogConfirm").dialog({
            buttons: {
                'Ok': function() {
                    $(this).dialog('close');
                    eval(cComanda);
                }
            },
            close: function(event, ui) { eval(cComanda); }
        });        
      break;
    case 2:
        $("#dialogConfirm").dialog({
            buttons: {
                'Da': function() {
                    eval(cComanda);
                    $(this).dialog('close');
                },
                'Nu': function() {
                    $(this).dialog('close');
                }
            }
        });        
      break;
    default:
        $("#dialogConfirm").dialog({
            buttons: {
                'Ok': function() {
                    $(this).dialog('close');
                    eval(cComanda);
                }
            }
        });        
    } // end switch        
}

// ASTEA AR TREBUI PUSE UNDEVA INTR-UN LOC MAI NORMAL
function getProduse()
{
    refreshTable2('/pages/meniuri/meniuri.php?idtab=0&afisare=1&categorie='+$('#cboCategoriiProduse').val(),'div0');
}

function getCategoriiProduse(nCentr, nCentrTip, nInMain)
{
    // nCentr = Afisare in mod centralizator
    // nInMain = Afisat in MainPage
    //alert(nCentr);
    $.ajax({
      url: 'pages/controls/combocategoriiproduse.php?id_mcat='+$('#cboCategoriiMeniuri').val(),
      success: function(data) {
        $('#spnCategoriiProduse').html(data);
        getProduseComanda(nCentr, nCentrTip, nInMain);
      }
    });    
    //$("#spnCategoriiProduse").load("/pages/controls/combocategoriiproduse.php?id_mcat="+$('#cboCategoriiMeniuri').val(),'',getProduseComanda);
}

function getProduseComanda(nCentr, nCentrTip, nInMain)
{
    // Setari ce in principiu nu se schimba
    //alert(nCentr);
    refreshTable2('/pages/meniuri/meniuri.php?zi=0&afisare=1&centr='+nCentr+'&centrtip='+nCentrTip+'&inmain='+nInMain+'&id_cate='+$('#cboCategoriiProduse').val()+'&id_mcat='+$('#cboCategoriiMeniuri').val(),'div0');
}

function printMeniuObject(cMenuObjId)
{
    //alert(select);
    window.open('./printService/printmeniuobject.php?id_mcat='+$("#cboCategoriiMeniuri").val()+'&menuobjid='+cMenuObjId, 'newwindow', config='height=600, width=800, toolbar=yes, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no');    
}


