


if (!console) {
	var console = {
		log: function(text) {},
		info: function(text) {},
		warn: function(text) {},
		error: function(text) {}
	};
}

var bp = {};
bp.version = '1.0';

bp.module = {}; //namespace
bp.module.timer = {};  // contains timers for scripts
bp.module.scripts = [];  // contains called script references
bp.module.load = function(url, callback) {
	// handle object or path
	var classname = null;
	var properties = null;
	try {
		// make sure we only load once
		//if ($A(bp.module.scripts).indexOf(url) == -1) {
			// note that we loaded already
			bp.module.scripts.push(url);
			var script = document.createElement("script");
			script.src = url;
			script.type = "text/javascript";
			//$$("head")[0].appendChild(script);  // add script tag to head element
			document.getElementsByTagName("head")[0].appendChild(script);


			// was a callback requested
			if (callback) {
				// test for onreadystatechange to trigger callback
				script.onreadystatechange = function () {
					if (script.readyState == 'loaded' || script.readyState == 'complete') {
						callback();
					}
				}				
				// test for onload to trigger callback
				script.onload = function () {
					callback();
					return;
				}
				// safari doesn't support either onload or readystate, create a timer
				// only way to do this in safari
				if ((Prototype.Browser.WebKit && !navigator.userAgent.match(/Version\/3/)) || Prototype.Browser.Opera) { // sniff
					bp.module.timer[url] = setInterval(function() {
						if (/loaded|complete/.test(document.readyState)) {
							clearInterval(bp.module.timer[url]);
							callback(); // call the callback handler
						}
					}, 10);
				}
			//}
		} else {
			if (callback) { callback(); }
		}
	} catch (e) {
		console.error(e);
	}
}



/*
var bp.loadscript = function(url, helper) {
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = url;

	if (helper && typeof(helper) == 'function') {
		script.onreadystatechange = function () {
		if (this.readyState == 'complete') helper();
		}
	}
	document.getElementsByTagName('head')[0].appendChild(script);  
}
*/

//create onDomReady Event
window.onDomReady = DomReady;

//Setup the event
function DomReady(fn) {
	//W3C
	if(document.addEventListener) {
		document.addEventListener("DOMContentLoaded", fn, false);
	} else { //IE
		document.onreadystatechange = function(){readyState(fn)}
	}
}

//IE execute function
function readyState(fn) {
	//dom is ready for interaction
	if(document.readyState == "interactive") {
		fn();
	}
}

//var tiempo_msj = 2000;

bp.init = function() {
//bp.module.load('http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js');
//bp.module.load('http://ramonantonio.net/bp/8_6/prototype.js');
//loadscript('http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js');

//loadscript('bpwin.js');
//bp.module.load('http://ramonantonio.net/bp/8_6/bpkeys.js');
//bp.module.load('/bigpress/extra/bpauth.js');
//bp.module.load('http://ramonantonio.net/bp/8_6/bptable.js');

//bp.module.load('/bigpress/extra/modfiles.js');
//bp.module.load('/bigpress/extra/modnoticias.js');
//bp.module.load('/bigpress/extra/moduser.js');

bp.module.load('/bigpress/extra/datetimepicker.js');
bp.module.load('/bigpress/extra/lista.js');
bp.module.load('/bigpress/extra/actor.js');
bp.module.load('/bigpress/extra/noticia.js');
bp.module.load('/bigpress/extra/video.js');
bp.module.load('/bigpress/extra/aim.js');
bp.module.load('/bigpress/extra/imagen.js');
bp.module.load('/bigpress/extra/documento.js');
bp.module.load('/bigpress/extra/moduser.js');
//bp.module.load('http://ramonantonio.net/bp/8_6/gridfox.js');
}

//window.onDomReady(bpwin.init);


bp.error = {};
bp.error.myHandler = function(msg, url, line) {

console.log('msg:'+msg+' url:'+url+' line:'+line);
}

//hook in all frames...
bp.error.addErrorHandler = function(win, handler) {
  win.onerror = handler;
  for(var i=0;i<win.frames.length;i++){
    addErrorHandler(win.frames[i], handler);
  }
}

//start with this window... and add handler recursively
bp.error.addErrorHandler(window, bp.error.myHandler);



String.prototype.removeAccents = function() {
console.log('String.removeAccents');
	var __r = {
			'À':'A','Â':'A','Ã':'A','Ä':'A','Å':'A','Á':'A',
			'È':'E','É':'E','Ê':'E','Ë':'E',
			'Ì':'I','Î':'I','Í':'I',
			'Ò':'O','Ó':'O','Ô':'O','Ö':'O',
			'Ù':'U','Ú':'U','Û':'U','Ü':'U',
			'Ñ':'N'};
	
	return this.replace(/[ÀÂÃÄÅÈÉÊËÌÎÒÓÔÖÙÚÛÜÑ]/gi, function(m){
		var ret = __r[m.toUpperCase()];
					
		if (m === m.toLowerCase())
			ret = ret.toLowerCase();
			
		return ret;
	});
};


String.prototype.prettyUrl = function() {
//var textosalida = this.replace(/(á|é|í|ó|ú|ñ|ä|ë|ï|ö|ü)/gi,'');

        var cleanUrl = this.replace(/[^a-zA-Z0-9]+/g, '');

        return cleanUrl.slice(0, cleanUrl.length).toLowerCase();

}

bp.init();

