/*
 * DMXzone Lightbox
 *
 * @file dmx.core.js
 *
 * version 1.0.7
 * Copyright (c) 2009-2011, DMXzone.com
 */
(function(){var b={};var c=true;var a={};b.DOM_READY=false;b.DOC_READY=false;b.setStrictMode=function(f){c=f===false?false:true;b.setStrictMode=function(){}};jQuery(function(){window.DMX.setStrictMode(true);var f=jQuery("#dmxCoreJS").attr("src");f=b.toAbsolutePath(f);a[f]=1;b.DOM_READY=true});jQuery(window).load(function(){b.DOC_READY=true});b.Observer=function(){var h={};var f=function(j){var l=[];j=String(j).toLowerCase();j=j.replace(/^[\s,]+/,"").replace(/[\s,]+$/,"");j=j.split(/\b[\s*,]+\b/g);for(var k=0;k<j.length;k++){var n={};var m=/^(\w+)\.(.+)/i.exec(j[k]);if(m&&m[2]){n.type=m[1].toLowerCase();n.namespace=m[2].toLowerCase()}else{n.type=j[k].toLowerCase();n.namespace="global"}n.fullName=n.type+"."+n.namespace;l.push(n)}return l};var g=function(j){var i=[];if(h[j.namespace]){i=i.concat(h[j.namespace])}if(j.namespace=="global"){for(var l in h){if(l=="global"){continue}for(var k in h[l]){if(k==j.type){i=i.concat(h[l][k])}}}}return i};this.add=function(n,m,q,k){var r=f(m);for(var o=0;o<r.length;o++){var l=r[o];if(!h[l.namespace]){h[l.namespace]={}}if(!h[l.namespace][l.type]){h[l.namespace][l.type]=[]}var j=jQuery.extend({},l);j.target=n;if(k){var p=this;j.callback=function(i){q.call(n,i);p.remove(n,j.fullName,arguments.callee)}}else{j.callback=q}h[l.namespace][j.type].push(j)}r=null};this.releaseEvents=function(j){j=j?String(j).toLowerCase():null;for(var i in h){if(!j||j==i){delete h[i]}}};this.remove=function(n,m,t){var o,r;if(n&&!m){for(r in h){for(var s in h[r]){for(o=0;o<h[r][s].length;o++){if(h[r][s][o].target&&h[r][s][o].target===n){h[r][s].splice(o,1)}}}}}else{var u=f(m);for(o=0;o<u.length;o++){var l=u[o];for(r in h){if(r==l.namespace||l.namespace=="global"){for(var j in h[r]){if(j==l.type){var p=h[r][j];for(var q=0;q<p.length;q++){var k=p[q];if(k.target&&k.target===n){if((t&&k.callback===t)||!t){p.splice(q,1)}}}}}}}}}};this.notify=function(o,n,p){var v=f(n);for(var q=0;q<v.length;q++){var m=v[q];for(var u in h){if(u==m.namespace||m.namespace=="global"){for(var k in h[u]){if(k==m.type){var r=h[u][k];for(var t=0;t<r.length;t++){var l=r[t];if(typeof l.callback=="function"&&l.target&&typeof l.target=="object"){var j=jQuery.extend({},l);if(p&&typeof p=="object"){j=jQuery.extend(j,p)}try{l.callback.call(l.target,j)}catch(s){if(l&&l.callback){this.remove(o,m.fullName,l.callback)}}}}}}}}}};this.listenersList=function(){return jQuery.extend({},h)}};b.QueueManager=function(){var f=[];var g=false;var h=function(){if(f.length>0){g=true;f.shift()();h()}else{g=false}};this.add=function(i){f.push(i);if(!g){h()}}};b.loadStylesheet=function(h,i){var g=jQuery.extend({onload:function(){},onerror:function(){},timeout:10,step:40},i||{});var l=jQuery('link[href*="'+h+'"]');if(l.length>0){g.onload.call(l[0]);return}var j=document.getElementsByTagName("head")[0];var m='<link rel="stylesheet" type="text/css" media="all" href="'+h+'" />';var f=false;var k=false;l=jQuery(m)[0];if(jQuery.browser.msie){l.onreadystatechange=function(){if(/loaded|complete/.test(l.readyState)&&!k){f=true;g[l.styleSheet.rules.length>0?"onload":"onerror"].call(l);return}};l.onerror=function(){k=true;g.onerror.call(l);return};l=j.appendChild(l)}else{if(jQuery.browser.opera){l.onload=function(){if(!k){f=true;g.onload.call(l);return}};l.onerror=function(){k=true;g.onerror.call(l);return};l=j.appendChild(l)}else{l=j.appendChild(l);setTimeout(function(){var n=0;(function(){n+=g.step;try{if(l.sheet&&l.sheet.cssRules){f=true;g.onload.call(l);return}}catch(o){}if(n<g.timeout*1000){setTimeout(arguments.callee,g.step)}})()},g.step)}}setTimeout(function(){if(!f||k){g.onerror.call(l)}},g.timeout*1000)};b.getSiteRoot=function(){var g=jQuery('script[src*="dmx/dmx.core.js"]');if(g.length>0){var h=g.eq(0).attr("src");var f=h.indexOf("dmx/dmx.core.js");if(f!=-1){return h.substring(0,f)}}return""};b.toAbsolutePath=function(h){h=String(h);if(h.indexOf("/dmx/")===0){h=b.getSiteRoot()+h.substr(1)}var g=jQuery('<a href="'+h+'" />');var f=String(g[0].href);g=null;return String(f)};b.basename=function(f){f=String(f);if(f.indexOf("/")==-1){return f}return f.substr(f.lastIndexOf("/")+1)};b.dirname=function(f){f=String(f);if(f.indexOf("/")==-1){return f}return f.substr(0,f.lastIndexOf("/")+1)};b.ready=function(f){jQuery(document).ready(f);return this};b.log=function(){var f=jQuery.makeArray(arguments);if(jQuery.browser.msie){for(var g=0;g<f.length;g++){if(typeof f[g]=="object"&&f[g] instanceof Error){f[g]=f[g].message}}}if(top.console&&top.console.log&&typeof dmxBrowser=="undefined"){if(top.console.firebug){top.console.log.apply(this,f)}else{top.console.log(f.join(", "))}}else{}};(function(){var f=/[\d\w\\\/_\-\.]+/i;b.include=function(h,j){var i=String(h);if(!f.test(i)){b.log("Security violation. The file path "+i+" is invalid.");return}i=i.replace(/^\s*[\\\/]/,this.getSiteRoot());i=jQuery('<a href="'+i+'"/>')[0].href;if((/\.css(\?.*)?$/i).test(i)){d(i,j)}else{if((/\.js(\?.*)?$/i).test(i)){function g(){a[i]=1;if(typeof j=="function"){j()}}if(a[i]){g()}else{if(jQuery('script[src*="'+h+'"]').length>0){g()}else{e(i);g()}}}}return this}})();b.loadFiles=function(j,m){if(typeof j=="string"){j=[j]}else{if(typeof j!="object"||!(j instanceof Array)||j.length===0){b.log("Invalid argumnts for 'DMX.loadFiles()'");return}}var h=[],p=/[\d\w\\\/_\-\.]+/i,l;var q;for(l=0;l<j.length;l++){q={};if(typeof j[l]=="object"){q.src=j[l].src||null;q.callback=j[l].callback||null}else{if(typeof j[l]=="string"){q.src=j[l];q.callback=null}}if(q.src){if(!p.test(q.src)){b.log("Security violation. The file path "+q.src+" is invalid.");continue}q.src=q.src.replace(/^\s*[\\\/]/,this.getSiteRoot());q.src=jQuery('<a href="'+q.src+'"/>')[0].href;if((/\.css(\?.*)?$/i).test(q.src)){q.type="css"}else{if((/\.js(\?.*)?$/i).test(q.src)){q.type="js"}}}if(q.src&&q.type){h[l]=q}}q=null;var n=0;var g=0;if(h.length>0){var k;for(n=0;n<h.length;n++){k=h[n];if(k.type=="css"){d(k.src,f(k,n))}else{e(k.src,f(k,n))}}}function f(i,r){return function(){g++;if(g===h.length){o()}}}function o(){for(var r=0;r<h.length;r++){if(typeof h[r].callback=="function"){h[r].callback()}}h.splice(0,h.lenght);h=[];if(typeof m=="function"){m()}}};function d(f,g){b.loadStylesheet(f,{onload:function(){if(typeof g=="function"){g.call(this)}},onerror:function(){b.log("Error loading "+this.href)}})}function e(f,h){if(!a[f]){var g=+new Date();jQuery.ajax({type:"GET",url:f,dataType:"text",async:typeof h=="function",complete:function(m,n){if(f.indexOf("file://")!==0&&m.status!==0){if(m.status!=200&&m.status!=304){b.log("Error downloading resource: "+f);return}if(c){var k=m.getResponseHeader("Content-Type");var l={"application/javascript":1,"text/javascript":1,"application/json":1,"application/x-json":1,"application/x-javascript":1,"text/x-javascript":1,"text/x-json":1,"text/x-js":1};if(k&&!l[k]){b.log("Invalid resource type for "+f);return}}}var j=document.createElement("script");j.setAttribute("type","text/javascript");try{j.text=m.responseText}catch(i){b.log(i);return}jQuery("head")[0].appendChild(j);j.parentNode.removeChild(j);a[f]=1;if(typeof h=="function"){h()}}})}else{if(typeof h=="function"){h()}}}window.DMX=b})();
