﻿

try { document.execCommand('BackgroundImageCache', false, true); } catch (e) { }
var orto = false;
var g = "Services/getIcon.aspx?file=";
var cwl = document.body.clientWidth;
var chl = document.body.clientHeight;

var topOff = 152;
var rightOff = 19;
var rightOff1 = 300;

function gi(str) {
    return document.getElementById(str);
}

function browserCheck() {

    var body = document.body || null;
    var range;
    isIe = body && typeof body.insertAdjacentHTML != "undefined";
    isMoz = (body && !isIe &&
		typeof body.appendChild != "undefined" &&
		typeof document.createRange != "undefined" &&
		typeof (range = document.createRange()).setStartBefore != "undefined" &&
		typeof range.createContextualFragment != "undefined");
    isIe = isIe && document.all && !window.opera;

    isMoz = isMoz && typeof body.style.MozOpacity != "undefined";
}

browserCheck();

function handleEnter(field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        var i;
        for (i = 0; i < field.form.elements.length; i++)
            if (field == field.form.elements[i])
            break;
        i = (i + 1) % field.form.elements.length;
        field.form.elements[i].focus();
        return false;
    }
    else
        return true;
}

function getClickedObject(e) {

    var clickedObject;

    if (isIe) {
        clickedObject = event.srcElement;
    } else {
        if (e && e.target)
            clickedObject = e.target;
    }
    return clickedObject

}

function insertAfter(referenceNode, newNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

function deselectText()
{
    document.getElementById("srcframe").contentWindow.document.getElementById("tbsrc").blur();
//    if (document.selection)
//    {
//        document.selection.empty();
//    }
//    else
//    {
//        window.getSelection().removeAllRanges();
//    }
}


function selectSomeText(element,begin,end)
{
	if (element.setSelectionRange)
	{
		element.setSelectionRange(begin,end);
	}
	else if (element.createTextRange)
	{
		var range = element.createTextRange();
		range.moveStart("character",begin);
		range.moveEnd("character",end);
		range.select();
	}
}


function getKeyCode(e) {
    if (isIe) {
        return window.event.keyCode;
    } else {
        var retVal = e.which;
        e.preventDefault();
        return retVal;
    }
}

function isShift(e) {
    if (isIe) {
        return window.event['shiftKey'];
    } else {
        return e.shiftKey;
    }
}

function getMouseX(e) {
    var delta;
    if (isIe) delta = 4; else delta = 0;

    var scrollLeft = document.body.scrollLeft;

    if (isIe) return scrollLeft + window.event.clientX - delta; else return e.pageX - delta;
}


function getMouseY(e) {
    var delta;
    if (isIe) delta = 4; else delta = 0;

    var scrollTop = document.body.scrollTop;

    if (isIe) return scrollTop + window.event.clientY - delta; else return e.pageY - delta;
}

function getStyleLeft(obj) {
    if (isIe) return parseInt(obj.style.posLeft); else return parseInt(obj.style.left);
}


function setStyleLeft(obj, left) {
    if (isIe) obj.style.posLeft = left; else obj.style.left = left;
}


function getStyleTop(obj) {
    if (isIe) return parseInt(obj.style.posTop); else return parseInt(obj.style.top);
}


function setStyleTop(obj, top) {
    if (isIe) obj.style.posTop = top; else obj.style.top = top;
}


function getStyleWidth(obj) {
    if (isIe) return parseInt(obj.style.posWidth); else return parseInt(obj.style.width);
}


function setStyleWidth(obj, width) {
    if (isIe) obj.style.posWidth = width; else obj.style.width = width;
}


function getStyleHeight(obj) {
    if (isIe) return parseInt(obj.style.posHeight); else return parseInt(obj.style.height);
}


function setStyleHeight(obj, height) {
    if (isIe) obj.style.posHeight = height; else obj.style.height = height;
}


function setElementStyle(element, property, value) {
    element.style[property] = value;
}


function getElementStyle(element, property) {
    return element.style[property];
}


function sv(element, v) {
    if (v)
        element.style.visibility = "visible";
    else
        element.style.visibility = "hidden";
}

function sd(element, v) {
    try {
        if (v) {
            if (isIe)
                element.style.display = "block";
            else
                element.style.display = "";
        }
        else
            element.style.display = "none";
    }
    catch (ex) { }
}

function XMLParser(sXML) {

    var xmlDoc;

    if (isIe) {
        if (sXML.documentElement) {
            xmlDoc = sXML; //already XML document
        }
        else {
            try {
                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = "false";
                xmlDoc.loadXML(sXML);
            }
            catch (ex) {
                //reportError("XMLParser", ex);
            }
        }
    } else {
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(sXML, "text/xml");
    }
    return xmlDoc;
}


//AJAX and REPLACEMENT for ActiveX problem
var myRequestId = 0;
var myRequestObjects = [];

function executeAjaxRequest(url, callBackFunction, type) {

    setCursor('progress');
    var xmlhttp = false;

    if (type != "preview")
        CheckAjaxRequestAndAbort(type);

    //if(!window.XMLHttpRequest) {	
    if (isIe) {
        // jednog dana sa vezijom IE 7 XMLHttp object nece biti ActiveX i moci ce da radi normalno kao u Mozilli ili u Intranetu
        //xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                // Something went wrong
                return false;
            }
        }
        //xmlhttp = new myXMLHttpRequest(type);
    } else {
        //allow cross-domain-xmlhttprequest
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
        } catch (e) {
            //alert("Permission UniversalBrowserRead denied.");
        }
        xmlhttp = new XMLHttpRequest(type);
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send(true);


    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            //var response = xmlhttp.responseText.toString();	
            var response = xmlhttp.responseText;
            eval(callBackFunction);
        }
        setCursor('default');
    }
}

function executeAjaxRequestPost(url, callBackFunction, type, arrayOfValues) {

    setCursor('progress');
    var xmlhttp = false;

    if (type != "preview")
        CheckAjaxRequestAndAbort(type);

    //if(!window.XMLHttpRequest) {	
    if (isIe) {
        // jednog dana sa vezijom IE 7 XMLHttp object nece biti ActiveX i moci ce da radi normalno kao u Mozilli ili u Intranetu
        //xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                // Something went wrong
                return false;
            }
        }
        //xmlhttp = new myXMLHttpRequest(type);
    } else {
        //allow cross-domain-xmlhttprequest
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
        } catch (e) {
            //alert("Permission UniversalBrowserRead denied.");
        }
        xmlhttp = new XMLHttpRequest(type);
    }

    xmlhttp.open("POST", url, true);

    //    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //    xmlhttp.setRequestHeader("Content-length", 0);
    //    xmlhttp.setRequestHeader("Connection", "close");

    for (i = 0; i < arrayOfValues.length; i++) {
        xmlhttp.setRequestHeader(i, arrayOfValues[i]);
    }

    xmlhttp.send(true);


    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            //var response = xmlhttp.responseText.toString();	
            var response = xmlhttp.responseText;
            eval(callBackFunction);
        }
        setCursor('default');
    }
}

function myXMLHttpRequest(type) {
    var i = 0;
    var url = '';
    var responseText = '';
    this.onreadystatechange = function() {
        return false;
    }
    this.type = type;

    this.open = function(method, url) {
        this.i = ++myRequestId; // id number of this request
        this.url = url;

        //var iframe = document.createElement('<iframe id="myRequestIframe_'+this.i+'" type="text/xml" style="display:none"></iframe>');	
        //var iframe = document.createElement('<script id="myRequestIframe_' + this.i + '" type="text/javascript" src=""></script>');
        
        var iframe = document.createElement('<xml id="myRequestIframe_' + this.i + '" type="text/javascript" src=""></xml>');
        //var iframe = document.createElement("iframe");
        //iframe.setAttribute("id", "myRequestIframe_" + this.i);

        document.body.appendChild(iframe);
    }
    this.send = function(postdata) {

        var myIframe = document.getElementById('myRequestIframe_' + this.i);
        myIframe.src = this.url;
        myRequestObjects[this.i] = this;
        setTimeout('myXMLHttpRequestCheckState(' + this.i + ',"' + type + '")', 500);
    }
    return true;
}


function CheckAjaxRequestAndAbort(type) {
    if (type) {
        for (var i = 0; i < myRequestObjects.length; i++) {
            var xmlhttp = myRequestObjects[i];
            if (xmlhttp)
                if (xmlhttp.type == type) {
                xmlhttp.onreadystatechange = function() { return false; };
                var myIframe = document.getElementById('myRequestIframe_' + xmlhttp.i);
                myIframe.innerHTML = "";
                myIframe = null;
                xmlhttp = null;
                myRequestObjects[i] = null;
            }
        }
    }
}

function myXMLHttpRequestCheckState(inst, type) {

    if (myRequestObjects[inst]) {
        var myIframe = document.getElementById('myRequestIframe_' + inst);

        if (myIframe.readyState == 'complete') { //for iframe and xml
            //if(myIframe.readyState == 'loaded'){ //for script

            var responseText = ""; // for script nothing - already in code
            //.document.body.childNodes[0].data; //for iframe html
            //var responseText = window.frames['myRequestIframe_'+inst].document.body.innerText; //for iframe XML
            responseText = myIframe.XMLDocument; //for xml

            myRequestObjects[inst].responseText = responseText;
            myRequestObjects[inst].readyState = 4;
            myRequestObjects[inst].status = 200;
            myRequestObjects[inst].onreadystatechange();
            if (myIframe.parentNode) {
                myIframe.parentNode.removeChild(myIframe);
            }
        } else {
            setTimeout('myXMLHttpRequestCheckState(' + inst + ')', 500);
        }
    }
}
//end AJAX and REPLACEMENT for ActiveX problem


function addEvent(obj, evType, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        return false;
    }
}

function whichKeyPressed(e) {
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);
    alert('Character was ' + character);
}


function whichMouseButton(e) {
    var rightclick;
    if (!e) var e = window.event;
    if (e.which) rightclick = (e.which == 3);
    else if (e.button) rightclick = (e.button == 2);

    return rightclick;
}


function mousePosition(e) {
    var posx = 0;
    var posy = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY) {
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY) {
        posx = e.clientX + document.body.scrollLeft;
        posy = e.clientY + document.body.scrollTop;
    }
}


function getURLParam(strParamName) {
    var strReturn = "";
    var strHref = document.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }

    return strReturn;
}

function getURLParamUnescape(strParamName) {
    var strReturn = "";
    var strHref = document.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?"));
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = unescape(aParam[1]);
                break;
            }
        }
    }

    return strReturn;
}


function ReplaceEmptySpace(str) {
    var pom = str;
    var res = "";

    for (var i = 0; i < pom.length; i++) {
        if (pom.charCodeAt(i) == 32)
            res += "&nbsp;";
        else
            res += pom.charAt(i);

    }

    return res;
}

function isImageOk(img) {
    if (!img.complete) { return false; }
    if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) { return false; }
    return true;
}

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}

function loadjsfile(filename) {
    var fileref = document.createElement('script')
    fileref.setAttribute("type", "text/javascript")
    fileref.setAttribute("src", filename)
    document.body.appendChild(fileref);
}

function validateEmail(elementValue) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(elementValue);
}


function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function SetMapCookiePosition() {
    var centerMetX = getLeftInMeter() + getWidthInMeter() / 2;
    var centerMetY = getTopInMeter() + getHeightInMeter() / 2;

    createCookie("locX", centerMetX, 3000);
    createCookie("locY", centerMetY, 3000);
    createCookie("locZ", z.zoom, 3000);

}

function setCursor(cursorStyle) {
    document.body.style.cursor = cursorStyle;
}


function getWindowWidth() {
    if (isIe) return document.body.clientWidth;
    else return window.innerWidth;

}

function getWindowHeight() {
    if (isIe) return document.body.clientHeight;
    else return window.innerHeight;
}

//Skida nasa slova sa stringova za pretragu
function ReplaceLatin(str) {
    var pom = str.toLowerCase();
    var res = "";

    for (var i = 0; i < pom.length; i++) {
        if (pom.charCodeAt(i) == 269)
            res += "c";
        else
            if (pom.charCodeAt(i) == 263)
            res += "c";
        else
            if (pom.charCodeAt(i) == 353)
            res += "s";
        else
            if (pom.charCodeAt(i) == 382)
            res += "z";
        else
            if (pom.charCodeAt(i) == 273)
            res += "dj";
        else
            if (pom.charAt(i) == '&')
            res += "an132";
        else
            res += pom.charAt(i);

    }

    return res;
}

function yObject() {
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function IzmeriString(s){
    var span = document.getElementById("ruller");
    span.innerHTML = s;

    var w = span.offsetWidth
    span.innerHTML = "";

    return w;    
}

function RazbijStringNaRedove(s, w){
    var span = document.getElementById("ruller");
    span.innerHTML = s;

    var startstr = s;
    var lind = -1;
    
    var niz = [];

    if(span.offsetWidth >= w){
        while(span.offsetWidth >= w){
        
            lind = startstr.lastIndexOf(" ");
            startstr = startstr.substring(0, lind);

            span.innerHTML = startstr;

            if(span.offsetWidth < w){
                niz[niz.length] = s.substring(0, lind);
                s = s.substring(lind+1, s.length);                
                startstr = s;
                span.innerHTML = startstr;
            }            
        }
        niz[niz.length] = s;

        var result = "";
        for(var i = 0; i < niz.length; i++){
            if(i < niz.length - 1)
                result += niz[i] + "<br>";
            else
                result += niz[i];
        }
        
        span.innerHTML = "";
        
        return result;
    }
    else
        return s;    
    
}
