    var ROOT_URL = 'http://'+window.location.hostname+'/';
    
    
    
    //__ UPORABA
    // a) if(exists('selektor'))
    // b) var oParentLi = oDeleteCat.parent('ul').parent('li');
    //    if(exists(oParentLi))
    function exists(selector) {return ($(selector).length > 0);}
    
    
// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    // ::::::::::::  AJAY LOADER IMAGE  ::::::::::::::::::::::::::::::::::
    // Če nastavimo loader na body, se bo fixiru samo na viden del zaslona čez celo površino
    // drugače pa na določen parent selektor
    function ajaxLoader(sParent) {
        if(exists(sParent)) {
            var oLoaderBox = $('<div id="loader"></div>');
            
            var sImg =  ROOT_URL+'css/cms/ajax-loader.gif';
            oLoaderBox.appendTo('body');
            if(sParent=='body') { iTop = 0; iLeft = 0; iWidth = '100%'; iHeight = '100%'; sPosition = 'fixed'; 
            } else { 
                iTop = $(sParent).offset().top; iLeft = $(sParent).offset().left;
                iWidth = $(sParent).width()+'px'; iHeight = $(sParent).height()+'px'; 
                sPosition = 'absolute'; 
            }
                
            oLoaderBox.css({ 
                'background': 'url('+sImg+') no-repeat top center',
                'width': iWidth, 
                'height': iHeight,  
                'z-index': '100000',
                'top': iTop, 'left': iLeft,
                'position': sPosition,   
                'background-color': '#000000',
            	'opacity': '0.8'                                         
            });
        }
    }
    function ajaxLoaderRemove() {
        $('div#loader').fadeOut(500, function() { $(this).remove(); });
    }
    
//__ TAG REMOVER PLUGIN ______________________//
// http://stackoverflow.com/questions/1369816/remove-tag-around-a-text-node-using-javascript
// Primer (odstraniš link iz li taga, ampak ohraniš vsebino linka): 
/* html: <ul><li><a href="">povezava</a></li></ul> 
 * jquery: $('ul li a').wrapperRemover();
 * rezultat: <ul><li>povezava</li></ul> 
 * opomba: plugin ne odstrani child tagov, ampak samo wrapper
*/
(function($) {   
    $.fn.wrapperRemover = function() {           
        return this.each(function() {            
        var $this = $(this);
        var content = $this.contents();
        $this.replaceWith(content);            
        });            
    }    
})(jQuery);

function displayNotification(sNotification, sSelector) {
    var sSelector = sSelector ? sSelector : 'div#notifications'; 
    $(sSelector).slideDown(400,function(){
            $(this).html(sNotification);
            setTimeout(function(){ $(sSelector).slideUp(function(){ $(this).html(''); }); }, 2500);
    }); 
}

    
$(function(){
    
    
    //__ FORM VALIDATION ____________________//
    $('form.form-validation').skFormValidator({ 
        sProcessURL: ROOT_URL+'libs/plugins/skformvalidator/process.form.validation.php', 
        sWarningWrapper:'<span>{TARGET}</span>'
        //,iRemoveWarningTimeout: 5000 
    });
    

      //__ AJAXIFY ____________________________//

        $('form.ajaxify').live('submit',  function(){
            ajaxLoader('body');
            var oThisForm = $(this);
            var bResetOnSuccess = (oThisForm.find('input[name=ResetOnSuccess]').val()==1) ? true : false;
            var sUrl = oThisForm.find('input[name=ProcessUrl]').val();
           
            if(oThisForm.find('textarea.mceEditor')) {                    
                oThisForm.find('textarea.mceEditor').each(function(){
                    sTextareaName = $(this).attr('name');
                    // getContent() ne vrne spremenjeno vsebine, ampak jo prekopira vsebino 
                    // iz virtualnega texteditorja nazaj v originaln textarea da se lahko normalno
                    // submita !!!!!!!!!!!
                    var sContent = tinyMCE.get(sTextareaName).getContent();
                });
            }
    
            $.ajax({ url: sUrl, type: 'POST', data: oThisForm.serialize(), async: false,
                success: function(jsonResponse){
                    var oResponse=''; var sMessage='';
                    if(jsonResponse && (oResponse = $.parseJSON(jsonResponse))) {
                        if(oResponse.warning) { sMessage = oResponse.warning; } 
                        else if(oResponse.redirect) { window.location = oResponse.redirect; }
                        else if(oResponse.success) { 
                            sMessage = oResponse.success; //loadMenu(); 
                            if(bResetOnSuccess) oThisForm[0].reset(); 
                        }
                        displayNotification(sMessage);
                        
                        /*
                        oMessageDiv = oThisForm.find('div.submit-message');
                        oMessageDiv.html(sMessage).slideDown(400, function(){
                            setTimeout(function() { oMessageDiv.slideUp(1000);}, 3000);
                        });
                        */                        
                    }      
                }
            });    
            ajaxLoaderRemove();
            return false;
        });
    
    
     //__ PRINT POPUP _____________________#
        $('.popup').live('click', function(){
            var iWidth=600; var iHeight=800;
            var sElementMetaData = $(this).attr('data-popup');
            if(sElementMetaData){ 
                var sElementMetaData = jQuery.parseJSON(sElementMetaData);
                if(sSize = sElementMetaData.size) { aSize = sSize.split("x"); iWidth = aSize[0]; iHeight = aSize[1];}
            }
            var sUrl = $(this).attr('href');
            window.open(sUrl,'Bredent.Si','width='+iWidth+',height='+iHeight);
            return false; 
        });


    //__ CHECKBOX SELECTION
    //__ UPORABA: 
        //__ value v izbirnem checkboxu določa vse checkboxe z istoimenskim classom
        //__ 1. Input s katerim izbereš vse: <input type="checkbox" class="CheckAll" value="CheckAllGroup1" />
        //__ 2. Inputi, ki jih izbereš s klikom na zgornji input:
        //__    <input type="checkbox" class="CheckAllGroup1"/>
        //__    <input type="checkbox" class="CheckAllGroup1"/>
        //__    <input type="checkbox" class="CheckAllGroup1"/>
        //__    <input type="checkbox" class="CheckAllGroup1"/>
        //__    <input type="checkbox" class="CheckAllGroup1"/>
        
        $('input.CheckAll').live('click', function(){
            var sCheckboxGroup = $(this).val();
            if($(this).is((':checked'))) $('input.'+sCheckboxGroup).attr('checked','checked');
            else $('input.'+sCheckboxGroup).removeAttr('checked');
        });
});
