$(document).ready(function() {
	/// FILTER SETTINGS
    filterFunctionalities();

	/// FANCYBOX GALLERY
    fancyBoxFunctionalities();

    addParameterToAvoidCache();

});

var selectedFilters = new Array();
var limitToFour = false;
var filterLimitCols = 0;
var filterHandlingScriptPath = "/custom/filters/handling.jsp";
var basePath = "/";
var sitePath = "/";

function setBasePath(bp){
    basePath = bp;
    filterHandlingScriptPath = basePath+filterHandlingScriptPath;
}
function setSitePath(sp){
    sitePath = sp;
    var h = filterHandlingScriptPath+"?ck="+new Date().getTime();
    $.get(h,{'siteHandle': sp});
}

function getFilterSettingsFromSession(){
    var h = filterHandlingScriptPath+"?ck="+new Date().getTime();
   $.get(h, function(data){
        var returnValues = eval('(' + data + ')');
        //selectedFilters
        var arr = returnValues['selectedFilters'];
        var len=arr.length;
        for(var i=0; i<len; i++) {
            var id = arr[i];
            $("#"+id).addClass("active");
        }
       selectedFilters = returnValues['selectedFilters'];

   });
}function setFilterSettingsToSession(){
    var h = filterHandlingScriptPath+"?ck="+new Date().getTime();
   $.get(h, { 'selectedFilters[]': selectedFilters },function(data){
       displayArticlesFromFilterList();
   });
}

function displayArticlesFromFilterList(){
    var h = filterHandlingScriptPath+"?ck="+new Date().getTime();
    if(selectedFilters.length>0){
        $("#articleList").html('<div id="articleListLoader"></div>');
        $.get(h, { 'cmd': "generateOutput", 'limit': filterLimitCols, 'selectedFilters[]': selectedFilters, 'siteHandle':sitePath },
             function(data){
                 generateArticleListOutput(data);
             });
    }else{
        $("#articleList").html("");

    }
}
var contentFetchRetry = false;
function generateArticleListOutput(data){
    var returnValues = eval('(' + data + ')');
    /* bug fix for safari empty output */
    if(returnValues['output'] && returnValues['output'].length<40&&!contentFetchRetry){
        contentFetchRetry = true;
        window.setTimeout('displayArticlesFromFilterList()',100);
    }
    $("#articleList").html(returnValues['output']);

}
function displayFilters(fl,limit,sp){
    sitePath = sp;
    filterLimitCols = limit;
//    limitToFour = limit;
    if(!fl||fl.length==0){
        getFilterSettingsFromSession();
    }else{
        selectedFilters = fl;
        setFilterSettingsToSession();
    }
}
function toggleFilterHelp(){
    $("#filter_help_display").slideToggle();
}

/* helper methods */

var defaultShowFilterHelp = false;
function setDefaultShowFilterHelp(b){
    defaultShowFilterHelp = b;
}
function filterFunctionalities(){
    if(defaultShowFilterHelp){$("#filter_help_display").slideDown(0);}
    $('#filter').hide();
    $("#filter_switcher a.close").click(function(){
        if(!$("#filter").is(":visible")){
            displayArticlesFromFilterList();
            if(defaultShowFilterHelp){$("#filter_help_display").slideDown();}
        }else{
            $("#articleList").html('');$("#filter_help_display").slideUp();
        }
        $("#filter").slideToggle();
        $('#filter_switcher a.close').toggleClass("open");
        $("#navigation li a").toggleClass("fade"); return false;
    });
    $('#filter li').click(function(){
        $(this).toggleClass("active");
        selectedFilters = new Array();
        $('#filter li.active').each(function(){
            selectedFilters.push($(this).attr("id"));
        });
        setFilterSettingsToSession();
    });
}

function fancyBoxFunctionalities(){
    $(".gallery a, a.fancyBox").fancybox({
        'overlayColor'		: '#7b7c7e',
        'overlayOpacity'	: 0.75,
        'titlePosition' 	: 'over'
    });
}

function addParameterToAvoidCache(){
/* append url parameter to avoid mgnl cache */
    $(".kclink").each(function(){
        var $l = $(this).attr("href");
        if($l.indexOf("?")==-1){
            $l+="?";
        }else{
            $l+="&";
        }
        $l+="kc"+new Date().getTime();
        $(this).attr("href", $l)
    });
}

$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});
/* decryp addresses*/
function dcmadr(nnnn){
    var a = "";
    for(i=0,m=nnnn.length;i < m;i++){
        if(i%3==0){
            a += String.fromCharCode(nnnn.substr(i, 3));
        }
    }
    location.href=(a);
}

