﻿var zadnjiFokus = "";
// funkcije koje sluze postavljanju fokusa na pravo mjesto nakon ajaxa

// sprema zadnji fokus u varijablu
function postaviFokus(polje) {
    zadnjiFokus = polje.id;
    if (polje.type == "text") {
        polje.select();
    }
}
// ova funkcija se poziva nakon ajax call backa, a postavlja focus na zadnje primljeni
function postaviZadnjiFokus() {
    if (zadnjiFokus != "") {
        polje2 = document.getElementById(zadnjiFokus);
        polje2.focus();
        if (polje2.type == "text") {
            polje2.select();
        }
    }
}

function nextFocus(el) {
    if (el.value.length < el.getAttribute('maxlength')) return;

    var f = el.form;
    var els = f.elements;
    var x, nextEl;
    for (var i = 0, len = els.length; i < len; i++) {
        x = els[i];
        if (el == x && (nextEl = els[i + 1])) {
            if (nextEl.focus) nextEl.focus();
        }
    }
}


function Numbersonly(sender, e, sep, cijeli) {
    //Dozvoliti Ctrl+nešto (npr. Ctrl-C, ctrl-V, Ctrl-x)...
    if (e.ctrlKey) {
        return true;
    }
    

    var valueString = sender.value;
    var unicode = e.charCode ? e.charCode : e.keyCode;
    //  var unicodeSep = sep.charCode ? sep.charCode : sep.keyCode;

    //if the key isn't the backspace key (which we should allow), tab, enter, strelice, delete, home, end
    //dopusteni znakovi (osim brojeva, zareza, minusa)

    var dopusteniZnakovi = new Array(8, 9, 10, 13, 26, 35, 36, 37, 38, 39, 40)

    for (i = 0; i < dopusteniZnakovi.length; i++) {
        if (unicode == dopusteniZnakovi[i]) {
            return true;
        }
    }

    ///46 je char code tocke ".", a key code od "Delete"
    ///ako je delete, onda se dopusta, inace se gleda po daljnjim pravilima
    if (e.keyCode != null && e.keyCode == 46) {
        return true;
    }

    if (unicode != 8 && unicode != 9 && unicode != 10 && unicode != 13 && unicode != 26) {
        //ako je separator, a text box ne sadrzi separator
        if (sep == String.fromCharCode(unicode)) {
            //false ako se smiju upisivati samo cijeli brojevi
            if (valueString.indexOf(sep) >= 0 || cijeli) {
                return false;
            }
            else {
                return true;
            }
        }

        //ako je minus na prvom mjestu, onda dozvoli, inace nemoj dozvoliti minus
        if (unicode == 45) {
            ///ako je selektiran cijeli text box, vrati true
            if (sender.value.length == (sender.selectionEnd - sender.selectionStart)) {
                return true;
            }
            if (sender.value[0] == '-') {
                sender.value = sender.value.substring(1);
            }
            else {
                sender.value = '-' + sender.value;
            }

            return false;
        }

        //if not a number
        if (unicode < 48 || unicode > 57) {
            //disable key press
            return false;
        } //end if
        else {
            // enable keypress
            return true;
        } //end else
    } //end if
    else {
        // enable keypress
        return true;
    } //end else
} //end function

///funkcija koja provjerava je li pritisnut enter na text box-u
function JeLiEnter(e) {
    var unicode = e.charCode ? e.charCode : e.keyCode;

    ///ako je telerikov date picker
    if (unicode == null) {
        try {
            unicode = e._keyCode;
        }
        catch (ex) {
        }
    }
    return unicode == 13;
}

function GetRadWindow() {
    var oWindow = null;

    if (window.radWindow)
        oWindow = window.radWindow;
    else if (window.frameElement && window.frameElement.radWindow)
        oWindow = window.frameElement.radWindow;
    // else oWindow = window;
    return oWindow;
}

function Test() {
    var win = GetRadWindow();
    if (win != null)
        win.close();
}

function NoviRadWindow(url, ime, sirina, visina) {
    if (GetRadWindow() == null) {
        r = window;
        r.name = 'window';
    }
    else {
        r = GetRadWindow().BrowserWindow;
    }
    // ako u urlu vec postoji upitnik, onda dodaj &, inace dodaj upitnik
    if (url.toString().indexOf("?") > -1) {
        znak = "&"
    }
    else znak = "?";

    w = r.radopen(url + znak + 'window=' + self.name, ime);

    size(w, sirina, visina);

    w.Center();

    //GetRadWindowManager().cascade();

}

function NoviRadWindowSQueryString(url, ime, sirina, visina, queryStringWindow) {
    if (GetRadWindow() == null) {
        r = window;
        r.name = 'window';
    }
    else {
        r = GetRadWindow().BrowserWindow;
    }
    // ako u urlu vec postoji upitnik, onda dodaj &, inace dodaj upitnik
    if (url.toString().indexOf("?") > -1) {
        znak = "&"
    }
    else znak = "?";

    w = r.radopen(url + znak + 'window=' + queryStringWindow, ime);

    size(w, sirina, visina);

    w.Center();
    //GetRadWindowManager().cascade();
}

function showHide(caller, shDivName, showText, hideText) {
    var d = document.getElementById(shDivName);

    d.style.display = d.style.display == "block" ? "none" : "block";
    caller.innerHTML = d.style.display == "none" ? showText : hideText;
}

function showHideArray(caller, shDivNameArray, showText, hideText) {
    for (i = 0; i < shDivNameArray.length; i++) {
        var d = document.getElementById(shDivNameArray[i]);

        d.style.display = d.style.display == "block" ? "none" : "block";
        caller.innerHTML = d.style.display == "none" ? showText : hideText;
    }
}

//postavljanje naslova prozoru ili stranici
function PostaviTitle(naslov) {
    try {
        GetRadWindow().set_title(naslov);
    }
    catch (e) {
    }
}


function promijeniNaslovLabel(clientID, naslov) {
    try {
        var naslovLabel = document.getElementById(clientID);
        if (naslovLabel != null) {
            naslovLabel.textContent = naslov;
        }
    }
    catch (e) {
    }
}


/* skripte za grid */

function RadGridKeyPressed(sender, eventArgs) {
    if (eventArgs.get_keyCode() == 13) {
        masterTable = sender.MasterTableView;

        redak = masterTable.get_selectedItems()[0];

        ondblclickFunkcija = String(redak.get_element().getAttribute('ondblclick'));

        returnFalsePozicija = ondblclickFunkcija.lastIndexOf("return false;");
        if (returnFalsePozicija >= 0) {
            ondblclickFunkcija = ondblclickFunkcija.substring(0, returnFalsePozicija);
        }
        eval(ondblclickFunkcija);

        eventArgs.set_cancel(true);

        return false;
    }
}

function RadGridRowSelected(sender, args) {
    var grid = $find(sender.get_id());
    {
        grid.set_activeRow($get(args.get_id()));
    }
}
function RadGridActiveRowChanged(sender, args) {
    if (sender.get_masterTableView().get_selectedItems().length < 1 || sender.get_masterTableView().get_selectedItems()[0].get_id() != args.get_id()) {
        args.get_tableView().selectItem($get(args.get_id()));
    }
}

function GridCreated(sender, eventArgs) {
    sender.get_element().focus();
}

/* skripte za grid */


/*  skripte za tooltip   */

/// funkcija koja gasi zadnje uapljeni tool tip
function ugasiToolTip() {
    var controller = Telerik.Web.UI.RadToolTipController.getInstance();
    var activeTooltip = controller.get_activeToolTip();
    if (activeTooltip != null) {
        activeTooltip.hide();
    }
}


/* END::  skripte za tooltip   */

/* funkcije za brojeve (dodane zbog decimalnog separatora) */
function broj(brojUStringu) {
  
    pretvoreniBroj = parseFloat(brojUStringu.toString().replace(decimalniSeparator, "."));
    if (isNaN(pretvoreniBroj)) {
        return 0;
    }
    return pretvoreniBroj;
}

function str(broj) {
    return (broj.toString()).replace(".", decimalniSeparator);
}

function str(broj, brojDecimala) {
    if (brojDecimala == null) {
        return (broj.toString()).replace(".", decimalniSeparator);
    }
    brojString = (broj.toFixed(2).toString()).replace(".", decimalniSeparator);
    separatorTisuce = ",";
    if (decimalniSeparator == ",") {
        separatorTisuce = ".";
    }
    brojString = addSeparatorsNF(brojString, decimalniSeparator, decimalniSeparator, separatorTisuce);

    return brojString;
}

///dodaje seprator u broj i grupira tisucice
function addSeparatorsNF(nStr, inD, outD, sep) {
    nStr += '';
    var dpos = nStr.indexOf(inD);
    var nStrEnd = '';
    if (dpos != -1) {
        nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
        nStr = nStr.substring(0, dpos);
    }
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(nStr)) {
        nStr = nStr.replace(rgx, '$1' + sep + '$2');
    }
    return nStr + nStrEnd;
}


function zaokruziBroj(broj, brojZnamenki) {
    potencija = Math.pow(10, brojZnamenki);
    return Math.round(broj * potencija) / potencija;
}
/* funkcije za brojeve (dodane zbog decimalnog separatora) */


String.IsNullOrEmpty = function(value) {
    var isNullOrEmpty = true;
    if (value) {
        if (typeof (value) == 'string') {
            if (value.length > 0)
                isNullOrEmpty = false;
        }
    }
    return isNullOrEmpty;
}

