﻿function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function GetUrlParam(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function addslashes(str) {
    str=str.replace(/\'/g,'\\\'');
    str=str.replace(/\"/g,'\\"');
    str=str.replace(/\\/g,'\\\\');
    str=str.replace(/\0/g,'\\0');
    
    return str;
}
function stripslashes(str) {
    str=str.replace(/\\'/g,'\'');
    str=str.replace(/\\"/g,'"');
    str=str.replace(/\\\\/g,'\\');
    str=str.replace(/\\0/g,'\0');
    
    return str;
}

function hasClass(obj,cName) {
        return new RegExp('\\b'+cName+'\\b').test(obj.className); 
 } 

 function hasClasses(obj,classes) { 
        for (f=0; f<classes.length; f++) { 
                if (!hasClass(obj,classes[i])) return false; 
        } return true; 
 } 

 function addClass(obj,cName) { 
        if (!hasClass(obj,cName)) { 
                obj.className+=obj.className?' '+cName:cName; 
        } 
        return true; 
 } 

 function removeClass(obj,cName) { 
        if (!hasClass(obj,cName)) return false; 
        var rep=obj.className.match(' '+cName)?' '+cName:cName;
        obj.className=obj.className.replace(rep,'');
        return true; 
 } 

 function swapClasses(obj,class1,class2) { 
        if (hasClass(obj,class1)) { 
                removeClass(obj,class1); 
                addClass(obj,class2); return true; 
        } 
        if (hasClass(obj,class2)) { 
                removeClass(obj,class2); 
                addClass(obj,class1); return true; 
        } return false; 
 } 

 function switchClass(obj,to,from) { 
        if (hasClass(obj,from)) removeClass(obj,from);
        addClass(obj,to); 
        return true; 
 } 
 
 function addPageToFavorities() {
    if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(document.title, location.href,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( location.href, document.title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
}

function ToggleBox(id) {
    var dv = document.getElementById(id);
    
    if (dv != null) {
        if ((dv.style.display == "") || (dv.style.display == "block")) {
            dv.style.display = "none";
            
            return 1;
        } else {
            dv.style.display = "block";
            
            return 2;
        }
    } else {
        return 0;
    }
}

function ToggleWithCaptionChange(divID, captPanel, captOne, captTwo) {
    var opt = ToggleBox(divID);
    
    if (captPanel != null) {
        switch (opt) {
            case 0: 
                captPanel.innerHTML = captOne;
            break;
            case 1:
                captPanel.innerHTML = captTwo;
            break;
            case 2:
                captPanel.innerHTML = captOne;
            break;
            default:
            break;
        }
    }
}

function ToggleWithCaptionChange2(divID, captPanelId, captOne, captTwo) {
    var opt = ToggleBox(divID);
    
    var captPanel = document.getElementById(captPanelId);

    if (captPanel != null) {
        switch (opt) {
            case 0: 
                captPanel.innerHTML = captOne;
            break;
            case 1:
                captPanel.innerHTML = captTwo;
            break;
            case 2:
                captPanel.innerHTML = captOne;
            break;
            default:
            break;
        }
    }
}

function HideBox(id, captPanel, capt) {
    var dv = document.getElementById(id);
    
    if (dv != null) {
        if ((dv.style.display == "") || (dv.style.display == "block")) {
            dv.style.display = "none";
        }
    }
    
    captPanel.innerHTML = capt;
}

function ToggleAll(nazwa, obj) {

    if ((obj != null) && (nazwa != "")) {
        var objs = getElementsByClassName(nazwa, "div", document);

        for(var i=0; i<objs.length; i++){
		    dv = objs[i];

		    if ((dv.style.display == "") || (dv.style.display == "block")) {
                dv.style.display = "none";
            }
		}

		var t = document.getElementById(nazwa + obj.getAttribute("Id"));

		if (t.style.display == "none") {
                t.style.display = "block";
            }
    }
}

function HideAll(nazwa) {
    var objs = getElementsByClassName(nazwa, "div", document);

        for(var i=0; i<objs.length; i++){
		    dv = objs[i];
		
		    if ((dv.style.display == "") || (dv.style.display == "block")) {
                dv.style.display = "none";
            }
		}
}

function strzero(num,dec){
	if (isNaN(num)){return "";};

	var p=Math.pow(10,dec);
	num = (Math.round(num * p))/p;        
	if(num==0)return 0;
	st = num.toString(10);

	poz_kr = st.lastIndexOf('.');
	if(poz_kr == -1) {st+='.';qqq = dec;}
	else qqq=dec - st.length +poz_kr+1;

	for (p = 0; p < qqq; p++)st+='0';
	return st
}  

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

// ============================= EVENTS ================================ //

function getEventTarget(e) {
   var targ;
   
   if (!e) var e = window.event;
   
   if (e.target) targ = e.target;
       else if (e.srcElement) targ = e.srcElement;
   
   if (targ.nodeType == 3) // defeat Safari bug
       targ = targ.parentNode;
		
   return targ;
}

function getEventKeyCode(e) {
    var code;
    
    if (!e) var e = window.event;
    
	if (e.keyCode) code = e.keyCode;
	    else if (e.which) code = e.which;
	
	return code;
}

function IsRightClick(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
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
}

// ============================= EVENTS ================================ //

function testIE() {   
    for (i=6;i<=8;i++) {
        if (navigator.appVersion.indexOf("MSIE "+i+".")>-1) {
            return i;
        }
    }
}

function getViewPortSizeX() {
    var viewportwidth;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') {
        viewportwidth = window.innerWidth
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
         && typeof document.documentElement.clientWidth !=
         'undefined' && document.documentElement.clientWidth != 0) {
        viewportwidth = document.documentElement.clientWidth
    }

    // older versions of IE

    else {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth
    }

    return viewportwidth;
}

function getViewPortSizeY() {
    var viewportheight;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') {
        viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
         && typeof document.documentElement.clientWidth !=
         'undefined' && document.documentElement.clientWidth != 0) {
        viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else {
        viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }

    return viewportheight;
}

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);
}
