// Useful prototypes
String.prototype.stripHtml=function(){return this.replace(/<(?:.|\s)*?>/g,'');};
String.prototype.stripSpaces=function(){var str=this.replace(/\t/g,'');return str.replace(/\s{2,}/g,' ');};
String.prototype.stripComments=function(){return this.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');};
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');};
String.prototype.toObject=function(){ob=new Object();ar=this.split('&');for(var i=0;i<ar.length;i++){ob[ar[i].split('=')[0]]=ar[i].split('=')[1];}return ob;};
Array.prototype.contains=function(item,from){return this.indexOf(item,from)!=-1;}
Array.prototype.unique=function(){for(var i=1;i<this.length;i++){if(this[i][0]==this[i-1][0]){this.splice(i,1);}}};
Array.prototype.empty=function(){for(var i=0;i<=this.length;i++){this.shift();}};
Array.prototype.foreach=function(fn){for(var i=0,l=this.length;i<l;i++){fn.call(null,this[i],i);}};
Object.prototype.addEvent=function(type,fn,capture){if(this.addEventListener){this.addEventListener(type,fn,typeof(capture)!='undefined'?capture:true);}else if(this.attachEvent){this.attachEvent('on'+type,fn);}};
Object.prototype.hasClass=function(s){return this.className.indexOf(s)>-1?true:false};
Object.prototype.addClass=function(s){this.className+=' '+s};
Object.prototype.remClass=function(s){this.className=this.className.replace(s,'')};
$=function(id){return(document.getElementById(id)?document.getElementById(id):false);};

// Include google analytics onload
var ga_key = "UA-644905-57";
function load_ga(){var gaJsHost  = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");var s = document.createElement('script');s.src = gaJsHost + "google-analytics.com/ga.js";s.type = "text/javascript";document.getElementsByTagName("head")[0].appendChild(s);var i = 0;run_ga();
function run_ga(){if(typeof _gat == "object"){var pageTracker = _gat._getTracker(ga_key);pageTracker._initData();pageTracker._trackPageview();}else if(i < 20){i++;setTimeout(run_ga, 500);}};};
if(window.addEventListener){window.addEventListener("load", load_ga, false);}else if(window.attachEvent){window.attachEvent("onload", load_ga);} 

// addDOMLoadEvent
addDOMLoadEvent=(function(){var load_events=[],load_timer,script,done,exec,old_onload,init=function(){done=true;clearInterval(load_timer);while(exec=load_events.shift())
exec();if(script)script.onreadystatechange='';};return function(func){if(done)return func();if(!load_events[0]){if(document.addEventListener)
document.addEventListener("DOMContentLoaded",init,false);if(/WebKit/i.test(navigator.userAgent)){load_timer=setInterval(function(){if(/loaded|complete/.test(document.readyState))
init();},10);}
old_onload=window.onload;window.onload=function(){init();if(old_onload)old_onload();};}
load_events.push(func);}})();

swfText = function(params) {
	var el = $(params.id);
	if(!el) {
		return false;
	}
	var w = el.offsetWidth;
	var h = el.offsetHeight;
	var txt = escape(el.innerHTML.stripComments().stripSpaces().trim());
	var wrp = document.createElement('div');
	wrp.style.width = w + 'px';
	wrp.style.height = h + 'px';
	wrp.style.overflow = 'hidden';
	wrp = el.parentNode.insertBefore(wrp, el);
	wrp.appendChild(el);
	swfobject.embedSWF(
		CFG_BASEURL + '/assets/swf/introtext.swf', 
		params.id, 
		600, 
		300, 
		'8.0',
		CFG_BASEURL + '/assets/swf/expressinstall.swf',
		{txt: txt, fsize: params.size, ssize: (typeof(params.ssize)!= 'undefined' ? params.ssize : params.size), twidth: w},
		{wmode: 'transparent', menu: 'false', scale: 'noscale', align: 'left'}
	);
};

brmap = {
	Open: function(el) {
		var windim = brmap.GetWinDimensions();
		
		var elmodal = document.createElement('div');
		elmodal.id = 'map-modal';
		elmodal.style.top = windim.y + 'px';
		elmodal.style.height = windim.h + 'px';
		elmodal = document.body.appendChild(elmodal);
		
		var elwrap = document.createElement('div');
		elwrap.id = 'map-wrap';
		elwrap.style.visibility = 'hidden';
		elwrap = document.body.appendChild(elwrap);

		var elfrm = document.createElement('iframe');
		elfrm.id = 'map-frame';
		elfrm.setAttribute('frameborder', '0');
		elfrm.src = el.getAttribute('href');
		elfrm = elwrap.appendChild(elfrm);
		
		var eltitle = document.createElement('span');
		eltitle.id = 'map-title';
		eltitle.innerHTML = el.getAttribute('title');
		eltitle = elwrap.appendChild(eltitle);
		
		var elclose = document.createElement('span');
		elclose.id = 'map-close';
		elclose.innerHTML = 'CLOSE X';
		elclose.onclick = function() {
			brmap.Close();
		};
		elclose = elwrap.appendChild(elclose);
		
		var wrapw = elwrap.offsetWidth;
		var wraph = elwrap.offsetHeight;
		
		elwrap.style.left = ((windim.w - wrapw) / 2) + 'px';
		elwrap.style.top = (((windim.h + windim.y) - wraph) / 3) + 'px';
		
		elwrap.style.visibility = 'visible';

	},
	Close: function() {
		$('map-modal').parentNode.removeChild($('map-modal'));
		$('map-wrap').parentNode.removeChild($('map-wrap'));
	},
	GetWinDimensions: function() {
		return {
			'w': window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null,
			'h': window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null,
			'x': typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0,
			'y': typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0
		}
	}
};

var CFG_BASEURL = 'http://' + window.location.host;
if(CFG_BASEURL.indexOf('192.') > -1) {
	CFG_BASEURL+= '/braidedriver';
}
else if(CFG_BASEURL.indexOf('volume.') > -1) {
	CFG_BASEURL+= '/clients/braidedriver';
}

// OnDomReady
addDOMLoadEvent(function(){
	$('map-link').onclick = function() {
		brmap.Open(this);	
		return false;
	};
});
