
_ua  = navigator.userAgent.toUpperCase();
_mac = (_ua.indexOf("MAC") != -1) ? true : false;
_ff  = (_ua.indexOf('FIREFOX') != -1) ? true : false;

Quotes = {
	data: [
		["Capoeira is for men, women, and children. You can't learn it only because you don't want to.",
			"-Mestre Pastinha"],
		["Capoeira e tudo e a boca come.",
			"-Mestre Pastinha"],
		["A capoerista must be like a chameleon, able to adapt to any jogo or environment.",
			"-Mestre Suassuna"],
		["Capoeira: Que beleza pra jogar!!",
			"-Mestre Ezekiel"],
		["To be a capoeirista is to be part of a greater community - you can't do capoeira by yourself.",
			"-Contra Mestre Chicote"],
		["Capoeira e pra homem, menino, e mulher. Quem não aprende e quem não quera.",
			"-Mestre Pastinha"],
		["I never wanted to manipulate capoeira, it belongs to all of us.",
			"-Mestre Suassuna"],
		["Capoeira e pra tudo mas não tudo e pra capoeira.",
			"-Mestre João Grande"]
	],

	init: function() {
		var i, k, n, a = document.getElementsByTagName('blockquote');
		for (i=0, k=a.length; i<k; i++) {
			n = Math.round(Math.random() * (Quotes.data.length - 1));
			a[i].innerHTML = '<p>"' + Quotes.data[n][0] + '"</p>';

			var o = a[i].nextSibling;
			while ((o.tagName + '') != 'P') {
				o = o.nextSibling;
			}

			if (o) {
				o.innerHTML = Quotes.data[n][1];
			}
		}
	}
}



More = {
	init: function() {
		var i, k, elements, current, o;

		i = window.location.href.indexOf('#');
		if (i >= 0) {
			current = window.location.href.substr(i + 1);
		}

		elements = document.getElementsByTagName('A');
		for (i=0, k=elements.length; i<k; i++) {
			o = elements[i];
			if (o.className.indexOf('more') >= 0) {
				o.onclick = More.onClick;
				if (o.href.substr(o.href.indexOf('#') + 1) == current) {
					o.onclick();
				}
			} else if (!o.href) {
				// mailto
				var mail = o.title.replace(' at ', '@').replace(' dot ', '.');
				if (mail.indexOf('@') > 0) {
					o.href = 'mailto:' + mail;
					if (o.innerHTML == o.title) {
						o.innerHTML = mail;
					}
				}
			} else if (o.className.indexOf('go-out') >= 0) {
				// let's keep xhtml valid. init taget here
				o.target = '_blank';
			}
		}
	},

	onClick: function() {
		var id, short, full, img;

		id    = this.href.substr(this.href.indexOf('#') + 1);
		short = document.getElementById(id + '-short');
		full  = document.getElementById(id + '-full');
		img   = document.getElementById(id + '-img');

		if (short && full) {
			if (short.style.display == 'none') {
				short.style.display = '';
				full.style.display  = 'none';
				this.innerHTML = this.innerHTML.replace('-', '+').replace(/Less/ig, 'More');
				if (img) {
					img.src = (img.src + '').replace('-big', '-small');
				}
			} else {
				short.style.display = 'none';
				full.style.display  = '';
				this.innerHTML = this.innerHTML.replace('+', '-').replace(/More/ig, 'Less');
				if (img) {
					img.src = (img.src + '').replace('-small', '-big');
				}
			}
		}

		return false;
	}
}


function setOpacity(o, value) {
	o.style.opacity = value / 100;
	o.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + value +')';
}


Dim = {
	box: null,
	opacity: 0,

	enabled: function() {
		if (Dim.box) {
			if (Dim.box.style.display == 'block') {
				return true;
			}
		}
		return false;
	},

	on: function() {
		if (!Dim.box) {
			Dim.box = document.createElement('DIV');

            Dim.box.className = 'dim';

            Dim.box.selectable = 'no';
            Dim.box.unselectable = 'on';
            Dim.box.className += ' unselectable';

			Dim.box.onclick = Lightbox.close;

			document.body.appendChild(Dim.box);			
		}

        document.body.className += ' dim-on';

		Dim.opacity = 0;

		Dim.fadeIn();
		Dim.box.style.display = 'block';
	},

	fadeIn: function() {
		if (Dim.opacity <= 80) {
			setOpacity(Dim.box, Dim.opacity);
			Dim.opacity += 20;
			setTimeout(Dim.fadeIn, 10);
		}
	},

	fadeOut: function() {
		if (Dim.opacity >= 0) {
			setOpacity(Dim.box, Dim.opacity);
			Dim.opacity -= 20;
			setTimeout(Dim.fadeOut, 10);
		} else {
			Dim.box.style.display = 'none';
		}
	},

	off: function() {
		if (Dim.box) {
			Dim.opacity = 80;
			Dim.fadeOut();
		}
		document.body.className = document.body.className.replace(/\s*dim-on/ig, '');
	}
}



Lightbox = {

	imageCount: 0,
	current: 0,

	init: function() {
		var i, k, a = document.getElementsByTagName('A');
		var imgId = 1;
		for (i=0,k=a.length; i<k; i++) {
			if (a[i].className.indexOf('image') >= 0) {
				Lightbox.imageCount++;
				a[i].id = '_' + Lightbox.imageCount;
				a[i].onclick = Lightbox.onGalleryClick;				
/*
				// add overlay icon
				if (a[i].href.indexOf('.swf') > 0) {
					var vb = document.createElement('SPAN');
					vb.className = 'video-icon';
					a[i].appendChild(vb);
				}
*/
			}

			if (a[i].id.indexOf('-map') > 0) {
				a[i].onclick = Lightbox.onContactClick;
			}

			if (a[i].id.indexOf('-photo') > 0) {
				a[i].onclick = Lightbox.onContactClick;
			}
		}
	},


	smallMaps: {
		oakland: 'http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=5212+Broadway,+Oakland,+CA+94618-1426&amp;jsv=107&amp;sll=37.0625,-95.677068&amp;sspn=55.323926,75.9375&amp;ie=UTF8&amp;z=14&amp;ll=37.84585,-122.247276&amp;output=embed&amp;s=AARTsJpBEmYPrXlR38rocftRQ1rIIDR-_w',
//'http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=3650+Webster+St,+oakland+ca&amp;sll=37.0625,-95.677068&amp;sspn=48.50801,80.859375&amp;ie=UTF8&amp;z=14&amp;iwloc=addr&amp;ll=37.834124,-122.257662&amp;output=embed&amp;s=AARTsJqLpM3W9HS2UBsR36qz0bYTyXVuQw',
		vallejo: 'http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=415+Mississippi+St.+vallejo+ca&amp;sll=38.115128,-122.252455&amp;sspn=0.007259,0.009409&amp;layer=c&amp;ie=UTF8&amp;z=14&amp;iwloc=addr&amp;ll=38.123686,-122.24822&amp;output=embed&amp;s=AARTsJr83dIZh1YMVIDYlooKbE35QQtJdA',
		'los-angeles': 'http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=10501+Burbank+Blvd.,+North+Hollywood,+CA+91601&amp;sll=38.115347,-122.251074&amp;sspn=0.006812,0.012177&amp;layer=c&amp;ie=UTF8&amp;cbll=34.17214,-118.35941&amp;ll=34.182625,-118.355198&amp;spn=0.006285,0.010096&amp;t=p&amp;z=14&amp;iwloc=addr&amp;output=embed&amp;s=AARTsJo9dKF-Jn2_WPO6Ynr_Ewkumi5Pxw'
	},


	showPhoto: function(id) {
		var i, k, a = document.getElementById('photo-content').parentNode.parentNode.getElementsByTagName('A');
		for (i=0, k=a.length; i<k; i++) {
			a[i].className = a[i].className.replace(/\s*current/g, '');
		}

		try {
			(document.getElementById('photo-content').getElementsByTagName('IMG'))[0].src = document.getElementById('lightbox-contact-photo').href;
		} catch(e) {
			document.getElementById('photo-content').innerHTML = '<img src="'+ document.getElementById('lightbox-contact-photo').href +'" alt="" />';
		}

		document.getElementById('lightbox-contact-photo').className += ' current';
	},


	showSmallMap: function(id) {
		var i, k, a = document.getElementById('photo-content').parentNode.parentNode.getElementsByTagName('A');
		for (i=0, k=a.length; i<k; i++) {
			a[i].className = a[i].className.replace(/\s*current/g, '');
		}

		document.getElementById('photo-content').innerHTML = '<iframe width="530" height="398" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'+document.getElementById('lightbox-contact-smallmap').href+'"></iframe>';

		document.getElementById('lightbox-contact-smallmap').className += ' current';
	},


	showContactBox: function(id) {
		var html = '<div class="photo"><div id="photo-content"></div></div>\
			<a href="#" class="close" onclick="Lightbox.close();this.blur();return false">Close</a>\
			<a id="lightbox-contact-photo" href="'+ document.getElementById(id + '-photo').href +'" onclick="Lightbox.showPhoto(\''+ id +'\');this.blur();return false">Photo</a>\
			<a id="lightbox-contact-smallmap" href="'+Lightbox.smallMaps[id]+'" onclick="Lightbox.showSmallMap(\''+ id +'\');this.blur();return false">Small Map</a>\
			<a href="'+document.getElementById(id + '-map').href+'" target="_blank" onclick="this.blur();">Large Map</a>\
		';

		Lightbox.open(html);
	},

	onContactClick: function() {
		var id = this.id.replace('-photo','').replace('-map', '');
		Lightbox.showContactBox(id);

		if (this.id.indexOf('photo') > 0) {
			Lightbox.showPhoto(id);
		} else {
			Lightbox.showSmallMap(id);
		}

		this.blur();
		return false;
	},


	onGalleryClick: function() {
		imageId = this.id.substr(1) * 1;

		Lightbox.current = imageId;

		var html = '<div class="photo"><div id="photo-content"></div></div>\
			<a href="#" class="close" onclick="Lightbox.close();return false">Close</a>\
			<span id="photo-pages" class="pages">'+ imageId +' of '+ Lightbox.imageCount +'</span>\
			<a id="lightbox-prev" href="#" class="prev" onclick="Lightbox.prev();this.blur();return false">Previous</a>\
			<a id="lightbox-next" href="#" class="next" onclick="Lightbox.next();this.blur();return false">Next</a>\
		';

		Lightbox.open(html);

		Lightbox.setContent(imageId);
		Lightbox.resize();

		this.blur();
		return false;
	},

	resize: function() {
		var content = document.getElementById('photo-content');
		var done = true;

		if (content.clientWidth > Lightbox.width) {
			content.style.width = Math.max(Lightbox.width, content.clientWidth - Lightbox.deltaX) + 'px';
			content.style.marginLeft = ((Lightbox.maxWidth - content.clientWidth) / 2) + 'px';
			done = false;
		} else if (content.clientWidth < Lightbox.width) {
			content.style.width = Math.min(Lightbox.width, content.clientWidth + Lightbox.deltaX) + 'px';
			content.style.marginLeft = ((Lightbox.maxWidth - content.clientWidth) / 2) + 'px';
			done = false;
		}


		if (content.clientHeight > Lightbox.height) {
			content.style.height = Math.max(Lightbox.height, content.clientHeight - Lightbox.deltaY) + 'px';
			content.style.marginTop = ((Lightbox.maxHeight - content.clientHeight) / 2) + 'px';
			done = false;
		} else if (content.clientHeight < Lightbox.height) {
			content.style.height = Math.min(Lightbox.height, content.clientHeight + Lightbox.deltaY) + 'px';
			content.style.marginTop = ((Lightbox.maxHeight - content.clientHeight) / 2) + 'px';
			done = false;
		}


		if (!done) {
			setTimeout(Lightbox.resize, 5);
		} else {
			if (content.innerHTML.indexOf('.swf') > 0) {
				content.style.borderWidth = 0;
			} else {
				content.style.borderWidth = '1px';
			}
			content.parentNode.className = content.parentNode.className.replace(/\s*loading/g, '');
		}
	},

	deltaX: 40,
	deltaY: 40,
	maxWidth: 530,
	maxHeight: 398,
	width: 0,
	height: 0,

	setContent: function(id) {
		var oA = document.getElementById('_' + id);
		var content = document.getElementById('photo-content');

		Lightbox.width = Lightbox.maxWidth;
		Lightbox.height = Lightbox.maxHeight;

		if (oA.className.indexOf('image') >= 0) {
			if (oA.href.indexOf('#') > 0) {
				var dimensions = oA.href.substr(oA.href.indexOf('#') + 1).split('x');
				if (dimensions.length == 2) {
					Lightbox.width = dimensions[0] * 1;
					Lightbox.height = dimensions[1] * 1;
				}
			}

			if (oA.href.indexOf('.swf') < 0 && oA.href.indexOf('.flv') < 0) {
				content.innerHTML = '<img src="'+ oA.href +'" alt="" width="'+Lightbox.width+'" height="'+Lightbox.height+'" />';
			} else {

				var url = (oA.href.indexOf('.flv') > 0) ? '/Film.swf' : oA.href;



				content.innerHTML = '<object type="application/x-shockwave-flash"\
										width="'+Lightbox.width+'" height="'+Lightbox.height+'" wmode'+(_mac&&_ff?'1':'')+'="transparent"\
										data="'+url+'" flashvars="movie='+oA.href+'">\
										<param name="movie" value="'+url+'" />\
										<param name="flashvars" value="movie='+oA.href+'" />\
										<param name="bgcolor" value="#191919" />\
										<param name="wmode'+(_mac&&_ff?'1':'')+'" value="transparent" />\
									</object>';

/*
				content.innerHTML = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"\
			        codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"\
				         width="'+Lightbox.width+'" height="'+Lightbox.height+'" id="Film" align="middle">\
				        <param name="allowScriptAccess" value="sameDomain" />\
				        <param name="allowFullScreen" value="false" />\
				        <param name="movie" value="'+url+'" />\
				        <param name="quality" value="high" />\
				        <param name="bgcolor" value="#ffffff" />\
				        <param name="flashvars" value="movie='+oA.href+'" />\
				        <param name="wmode" value="transparent" />\
				        <embed src="'+url+'" quality="high" bgcolor="#ffffff" width="'+Lightbox.width+'" height="'+Lightbox.height+'"\
			            name="Film" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" wmode="transparent"\
						flashvars="movie='+oA.href+'"\
			            type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\
				    </object>';
*/
			}
		}

		content.style.borderWidth = '1px';
		content.parentNode.className += ' loading';
		document.getElementById('photo-pages').innerHTML = id + ' of ' + Lightbox.imageCount;

		Lightbox.resize();

		var prev = document.getElementById('lightbox-prev');
		var next = document.getElementById('lightbox-next');

		prev.className = prev.className.replace(/\s*disabled/g, '');
		next.className = next.className.replace(/\s*disabled/g, '');

		if (Lightbox.current == Lightbox.imageCount) {
			next.className += ' disabled';
		}

		if (Lightbox.current == 1) {
			prev.className += ' disabled';
		}
	},

	next: function() {
		var content = document.getElementById('photo-content');
		if (content.parentNode.className.indexOf('loading') >= 0) {
			return;
		}
		if (Lightbox.current == Lightbox.imageCount) {
			return;
		}
		Lightbox.current++;
		Lightbox.setContent(Lightbox.current);
	},

	prev: function() {
		var content = document.getElementById('photo-content');
		if (content.parentNode.className.indexOf('loading') >= 0) {
			return;
		}
		if (Lightbox.current == 1) {
			return;
		}
		Lightbox.current--;
		Lightbox.setContent(Lightbox.current);
	},

	open: function(html) {
		Dim.on();

		var o, s;

		var width = 568, height = 436;
		
		o = document.createElement('DIV');
        o.id = 'lightbox';
		o.className = 'lightbox';

        s = o.style;

//		s.width  = width + 'px';
//		s.height = height + 'px';
		s.left = Math.round((100 - ((width  * 102) / document.body.clientWidth)) / 2) + '%';
		s.zIndex = 10001;

		o.innerHTML = html;

    	document.body.appendChild(o);
	},

	close: function() {
		var o = document.getElementById('lightbox');
		if (o) {
			o.parentNode.removeChild(o);
		}
		Dim.off();
	}

}



if (typeof Form == 'object') {
	Form.response.newsletter = function(response, request) {
		if (request.btn_add) {
			document.getElementById('newsletter-row-1').innerHTML
				= 'Thank you for submitting your email.';
			document.getElementById('newsletter-row-1').style.textAlign = 'left';
		} else if (request.btn_remove) {
			document.getElementById('newsletter-row-2').innerHTML
				= 'Your email will be removed from the newsletter mailing list.';
			document.getElementById('newsletter-row-2').style.textAlign = 'left';
		}
	}

	Form.validation.newsletter = function(data) {
		if (data.btn_add) {
			if (data.email.length < 3 || data.email.indexOf('@') <= 0) {
				alert('Please enter valid email');
			} else {
				return true;
			}
		} else if (data.btn_remove) {
			if (data.email_remove.length < 3 || data.email_remove.indexOf('@') <= 0) {
				alert('Please enter valid email');
			} else {
				return true;
			}
		}

		return false;
	}
}



window.onload = function() {
}

function page_load() {
	Quotes.init();

	if (typeof sIFR == "function") {
		sIFR.replaceElement(named({sSelector:"h1, h2", sFlashSrc:"/js/unitus.swf", sColor:"#A9D46F", sLinkColor:"#000000", sBgColor:"transparent", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:18, sFlashVars:"textalign=left&offsetTop=0", sWmode: 'transparent'}));
		sIFR.replaceElement(named({sSelector:"blockquote p", sFlashSrc:"/js/unitus.swf", sColor:"#A9D46F", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"textalign=left&offsetTop=0", sWmode: 'transparent'}));
	}

	More.init();
	Lightbox.init();

	// init gallery hovers
	if (document.body.className.indexOf('page-galleries') >= 0) {
		var i, k, a = document.getElementById('content').getElementsByTagName('A');

		for (i=0,k=a.length; i<k; i++) {

			// fix for IE
			if (document.all) {
				var iframe = document.createElement('IFRAME');
				iframe.src = 'about:blank';
				iframe.frameBorder = 0;
				a[i].parentNode.appendChild(iframe);
			}

			a[i].onmouseover = function() {
				this.parentNode.className += ' gallery-hover';
			}
			a[i].onmouseout = function() {
				this.parentNode.className = this.parentNode.className.replace(/\s*gallery-hover/g, '');
			}
		}
	}

	if (typeof Form == 'object') {
		Form.init();
	}
}
