if (typeof Photozou == 'undefined') {
  Photozou = {};
}

Photozou.DOM = {};

Photozou.DOM.loaded = {};
Photozou.DOM.onLoadFunctions = {};

Photozou.DOM.addOnLoadListener = function(id, func) {
  var dom = Photozou.DOM;
  if (typeof dom.loaded[id] != 'undefined' && dom.loaded[id]) {
    return;
  }
  dom.loaded[id] = false;
  if (typeof dom.onLoadFunctions[id] == 'undefined') {
    dom.onLoadFunctions[id] = [func];
    dom.checkLoaded(id);
  } else {
    dom.onLoadFunctions[id].push(func);
  }
}

Photozou.DOM.checkLoaded = function(id) {
  var dom = Photozou.DOM;
  if (typeof dom.loaded[id] != 'undefined' && dom.loaded[id]) {
    return true;
  }
  var counter = 0;
  var timer = setInterval(function() {
    if ($(id) != null) {
      clearInterval(timer);
      if (typeof dom.onLoadFunctions[id] != 'undefined') {
        for (var i = 0; i < dom.onLoadFunctions[id].length; i++) {
          dom.onLoadFunctions[id][i]();
        }
        dom.onLoadFunctions[id] = [];
      }
      dom.loaded[id] = true;
      return true;
    }
    counter++;
    if (counter > 800) {
      // exit loop
      clearInterval(timer);
      return false;
    }
  }, 25);
};


