// JavaScript Document

var rarebrick = new Object();
rarebrick.geom = new Object();
rarebrick.elems = new Object();

rarebrick.geom.scale = 1;
rarebrick.geom.screenH = 700;
rarebrick.geom.screenW = 1100;
rarebrick.geom.colW = 1000;
rarebrick.geom.colWP = 100;
rarebrick.geom.mastH = 172;
rarebrick.geom.slideshowH = 518;
rarebrick.geom.logosize = 200;


/*
 * INIT
 */
rarebrick.prepreInit = function() {	
	rarebrick.elems.wrap = jQuery('div#wrap');
	rarebrick.elems.col = jQuery('div#col');
	rarebrick.elems.mast = jQuery('div#mast');
	rarebrick.elems.slideshow = jQuery('div#slideshow');
	rarebrick.elems.slides = jQuery('div#slideshow div.slide');
	rarebrick.elems.contentLow = jQuery('div#contentLow');
	rarebrick.elems.contentLowIn = jQuery('div#contentLowIn');
	rarebrick.elems.iframe = jQuery('div#iframe');
	rarebrick.elems.logo = jQuery('#logoWrap');
	rarebrick.elems.nav = jQuery('ul#nav');
	rarebrick.elems.nav0 = jQuery('ul#nav0');
	rarebrick.elems.promo = jQuery('div#promo');
	
	if(rarebrick.pageContextPrepreInit) rarebrick.pageContextPrepreInit();
	
	rarebrick.elems.wrap.css('opacity',0.01).show();
	
	rarebrick.resizeNow();
	rarebrick.elems.wrap.hide();
	
	setTimeout(rarebrick.preInit, 800);
}

rarebrick.preInit = function() {
	rarebrick.elems.img1 = jQuery('div#slideshow div img').first();
	//rarebrick.elems.img1.load(rarebrick.init);
	if (!rarebrick.elems.img1[0] || rarebrick.elems.img1[0].complete || rarebrick.elems.img1[0].readyState === 4) {
		//alert('loaded');
		rarebrick.init();
	} else {
		//alert('load');
		rarebrick.elems.img1.load(rarebrick.init);
	}
}

rarebrick.init = function() {
	//alert('init');
	rarebrick.elems.wrap.hide().css('opacity',1);
	rarebrick.initAnim();
	rarebrick.addFlash();
	if(rarebrick.pageContextInit) rarebrick.pageContextInit();
	//rarebrick.resizeNow();
}

rarebrick.initAnim = function() {
	rarebrick.initSlideshow();
	rarebrick.initNavs();
	rarebrick.initMast();
	rarebrick.initLogo();
	rarebrick.initPromo();
	
	rarebrick.elems.wrap.slideDown(1000, jQuery.easing.easeOutExpo);
	//rarebrick.elems.wrap.css('top','-1000px').css('opacity',0.1).show().animate({top:'0',opacity:1}, 2000);
}

rarebrick.initMast = function() {
	rarebrick.elems.mast.hide().fadeIn(6000, jQuery.easing.easeOutExpo);
}

rarebrick.initLogo = function() {
	var size = rarebrick.geom.logosize;
	var startSize = 
	rarebrick.elems.logo.css('opacity',0).css('bottom','100%').delay(1100).animate({bottom:'0',opacity:1}, 1400, jQuery.easing.easeOutExpo);
}

rarebrick.initPromo = function() {
	if(rarebrick.elems.promo.length==0) return;
	rarebrick.elems.promoBorder = jQuery('<div id="promoBorder" />').addClass('promo').css('opacity',0.5);
	rarebrick.elems.promo.after(rarebrick.elems.promoBorder);
	rarebrick.elems.promoHolder = jQuery('div#promoHolder');
	rarebrick.elems.promoHolder.css('left','-100%');
	//.delay(8000).queue(rarebrick.showPromo);
}

rarebrick.showPromo = function() {
	rarebrick.elems.promoHolder.stop(true,true);
	rarebrick.resizePromo();
	rarebrick.elems.promoHolder.animate({left:'0.5em'}, 2000, jQuery.easing.easeOutExpo);
}


/*
 * NAVIGATION 
 */
rarebrick.initNavs = function() {
	rarebrick.positionNav0();
	rarebrick.elems.nav.children('li').css('opacity','0.01');
	rarebrick.elems.nav0.children('li').css('opacity','0.01');
	rarebrick.navDelay = 3000;
	rarebrick.navDelta = 300;
	rarebrick.elems.nav0.children('li').each(rarebrick.showNav0Item);
	rarebrick.navDelay = 2000;
	rarebrick.navDelta = 300;
	rarebrick.elems.nav.children('li').each(rarebrick.showNavItem);
	rarebrick.elems.nav0.find('li > a').each(rarebrick.initInnNav);
	rarebrick.initSubnavs();
}

rarebrick.showNav = function() {
	
}

rarebrick.showNav0 = function() {
	
}

rarebrick.initInnNav = function() {
	var li = jQuery(this).closest('li');
	li.hover(rarebrick.navOver, rarebrick.navOut);
	var panel = jQuery('#panels div').first();
	panel.click(rarebrick.clickPanel);
	li.append(panel);
}
rarebrick.clickPanel = function(e) {
	e.preventDefault();
	var href = jQuery(this).find('a').first().attr('href');
	document.location.replace(href);
}

rarebrick.navOver = function() {
	jQuery(this).children('div').css('z-index',2).stop(true,true).slideDown(600);
}
rarebrick.navOut = function() {
	jQuery(this).children('div').css('z-index',1).stop(true,true).slideUp(300);
}

rarebrick.showNav0Item = function() {
	rarebrick.navDelay = rarebrick.navDelay + rarebrick.navDelta;
	jQuery(this).delay(rarebrick.navDelay).animate({opacity:1}, 2000, jQuery.easing.easeOutQuint);
}
rarebrick.showNavItem = function() {
	rarebrick.navDelay = rarebrick.navDelay + rarebrick.navDelta;
	jQuery(this).delay(rarebrick.navDelay).animate({opacity:1}, 1000);
}
rarebrick.initSubnavs = function() {
	jQuery('ul#nav0 li:has(ul)').bind('mouseover', rarebrick.resizeSubnavs);
}


/*
 * SLIDESHOW
 */
rarebrick.ssZindex = 100;
rarebrick.ssDelay = 1000;
rarebrick.initSlideshow = function() {
	rarebrick.elems.slides.hide();
	rarebrick.ssCurrent = -1;
	rarebrick.ssIsPlaying = true;
	rarebrick.elems.slides.first().each(rarebrick.initSlide);
	rarebrick.elems.slideshow.delay(rarebrick.ssDelay).queue(rarebrick.nextSlide);
}

rarebrick.initSlide = function () {
	var slide = jQuery(this);
	if(slide.data('inited')) return;
	
	//init images
	var img = slide.children('img');
	if(!isIphone()) img.each(rarebrick.replaceLoRes);
	
	//init text
	var h2 = slide.children('h2').hide();
	var h1 = jQuery('<h1/>').append(h2.children('span.lg')).hide();
	slide.append(h1);
	slide.data('h1', h1).data('h2', h2);
	
	//alert(slide.attr('class'));
	var clazzs = slide.attr('class');
	if(clazzs) {
		clazzs = clazzs.split(' ');
		for(var i=0; i<clazzs.length; i++) {
			if(clazzs[i].indexOf('action:')==0) {
				slide.data('action', clazzs[i].split(':')[1]);
			}
			if(clazzs[i].indexOf('effect:')==0) {
				slide.data('effect', clazzs[i].split(':')[1]);
			}
		}
	}
	
	slide.data('inited', true);
}

rarebrick.replaceLoRes = function() {
	var img = jQuery(this);
	var src = img.attr('src');
	var srcNew = src.replace('/lores', '');
	if(src!=srcNew) img.attr('src', srcNew);
}

rarebrick.nextSlide = function() {
	var slide;
	
	//hide current if exists
	if(rarebrick.ssCurrent!=-1) {
		slide = jQuery(rarebrick.elems.slides[rarebrick.ssCurrent]);
		var img = rarebrick.elems.slides[rarebrick.ssCurrent];
		if(slide.data('effect')=='fade') jQuery(img).each(rarebrick.imgOutFade);
		else jQuery(img).each(rarebrick.imgOut);
	}
	
	//set current
	rarebrick.ssCurrent++;
	if(rarebrick.ssCurrent == rarebrick.elems.slides.length) {
		rarebrick.ssCurrent = 0;
	}
	slide = jQuery(rarebrick.elems.slides[rarebrick.ssCurrent]);
	slide.css('z-index', rarebrick.ssZindex++);
	
	//start image anim
	slide.each(rarebrick.imgIn);
		
	//check for action
	var action = slide.data('action');
	if(action) eval(action+'()');
	
	//initNextSlide
	try {
		jQuery(rarebrick.elems.slides[rarebrick.ssCurrent+1]).each(rarebrick.initSlide);
	} catch(e) {}
	
	if(rarebrick.elems.slides.length > 1 && !slide.hasClass('stop')) setTimeout(rarebrick.nextSlide, 6000);
}

rarebrick.imgIn = function() {
	var img = jQuery(this);
	
	try {
		img.data('h1').each(rarebrick.slideTextLeft);
		img.data('h2').each(rarebrick.slideTextRight);
	} catch(e) {}
	
	if(img.hasClass('tri')) return img.each(rarebrick.slideInTri);
	if(img.hasClass('duo')) return img.each(rarebrick.slideInTri);
	if(img.data('effect')=='fade') return img.each(rarebrick.imgInFade);
	var delay = 0;
	var initLeft = rarebrick.geom.colW+'px';
	
	img.css('left',initLeft).show().delay(delay).animate({left:'-1px'}, 1000, jQuery.easing.easeOutQuint);
	
}
rarebrick.imgInFade = function() {
	var img = jQuery(this);
	img.css('left','-1px').fadeIn(2000);
}

rarebrick.imgOut = function() {
	jQuery(this).delay(50).animate({left:'-100%'}, 1300, jQuery.easing.easeInQuint);
}
rarebrick.imgOutFade = function() {
	var img = jQuery(this);
	img.fadeOut(2000);
}

rarebrick.slideInTri = function() {
	var slide = jQuery(this);
	slide.show();
	var delay = 0
	if(slide.data('effect')=='fade') slide.children('img').hide().fadeIn(2000);
	else slide.children('img').hide().css('top','-100%').show().each(rarebrick.imgInTri);
}

rarebrick.imgInTriCnt = 0;
rarebrick.imgInTri = function() {
	var img = jQuery(this);
	img.delay(500*rarebrick.imgInTriCnt++).animate({top:'0'}, 1000, jQuery.easing.easeOutQuint);
}

rarebrick.slideTextLeft = function() {
	jQuery(this).show().css('opacity','0').css('left',rarebrick.geom.colW/5+'px').delay(1000).animate({left:'0',opacity:1}, 2000);//.delay(750).animate({'left':-rarebrick.geom.colW/5+'px',opacity:0}, 500, jQuery.easing.easeOutQuint);
}

rarebrick.slideTextRight = function() {
	jQuery(this).show().css('opacity','0').css('left',-rarebrick.geom.colW/5+'px').delay(1000).animate({left:'0',opacity:1}, 2500);//.delay(750).animate({'left':rarebrick.geom.colW/5+'px',opacity:0}, 500, jQuery.easing.easeOutQuint);
}

rarebrick.slideTrans = function(imgBlur, img) {
	imgBlur.fadeOut(2000);
	img.fadeIn(3000, jQuery.easing.easeInSine);
}



/*
 * RESIZE
 */
var resizeTimeoutID;
rarebrick.onresize = function() {
	//return rarebrick.resizeNow();
	clearTimeout(resizeTimeoutID);
	resizeTimeoutID = setTimeout(rarebrick.resizeNow, 100);
}

rarebrick.resizeNow = function() {
	rarebrick.calcSizes();
	
	rarebrick.elems.wrap.css('font-size', rarebrick.geom.fontSize+'%');
	//rarebrick.elems.col.width(rarebrick.geom.colW+'px');
	rarebrick.elems.col.width(rarebrick.geom.colWP+'%');
	
	rarebrick.elems.col.height(rarebrick.geom.colH+'px');
	rarebrick.elems.mast.height(rarebrick.geom.mastH+'px');
	rarebrick.elems.slideshow.height(rarebrick.geom.slideshowH+'px');
	rarebrick.elems.contentLow.css('padding-top',rarebrick.geom.slideshowH+'px');
	rarebrick.elems.logo.width(rarebrick.geom.logosize*1.5+'px').height(rarebrick.geom.logosize+'px');
	
	rarebrick.positionNav0();
	rarebrick.positionLogo();
	rarebrick.resizePromo();
	
	if(rarebrick.pageContextResize) rarebrick.pageContextResize();
}

rarebrick.resizePromo = function() {
	if(rarebrick.elems.promo.length==0 || rarebrick.elems.promoBorder==undefined) return;
	var img = rarebrick.elems.promo.children('img');
	img.height(img.width()+'px');
	rarebrick.elems.promoBorder.height(rarebrick.elems.promo.height()+'px');
}

rarebrick.positionNav0 = function() {
	rarebrick.geom.nav0W = rarebrick.elems.nav0.width();
	if(rarebrick.geom.nav0W==0) return;
	rarebrick.elems.nav0.css('right', (rarebrick.geom.colW/2 - rarebrick.geom.nav0W/2)+'px');
}

rarebrick.positionLogo = function() {
	rarebrick.geom.logoW = rarebrick.elems.logo.width();
	if(rarebrick.geom.logoW==0) return;
	rarebrick.elems.logo.css('left', (rarebrick.geom.colW/2 - rarebrick.geom.logoW/2)+'px');
}
rarebrick.resizeSubnavs = function() {
	jQuery(this).find('ul').each(rarebrick.resizeSubnav);
}
rarebrick.resizeSubnav = function() {
	var as = jQuery(this).find('a');
	var longest = 0;
	for(var i=0; i<as.length; i++) {
		var w = jQuery(as[i]).width();
		if(longest<w) longest = w;
	}
	as.each( function() { jQuery(this).width(longest+'px'); } );
}


/*
 * CALCULATIONS
 */
rarebrick.calcSizes = function() {
	rarebrick.geom.screenW = rarebrick.elems.wrap.width();
	rarebrick.geom.screenH = rarebrick.elems.wrap.height();
	rarebrick.geom.scale = rarebrick.geom.screenW / 1000;
	
	rarebrick.geom.fontSize = Math.pow(rarebrick.geom.scale, .8) * 100;
	if(rarebrick.geom.scale>1) rarebrick.geom.fontSize = Math.pow(rarebrick.geom.scale, .3) * 100;
	
	rarebrick.geom.colW = (rarebrick.geom.screenW>1000) ? rarebrick.geom.screenW-100 : rarebrick.geom.screenW-4;
	if(rarebrick.geom.colW<700) rarebrick.geom.colW=700;
	rarebrick.geom.colWP = (rarebrick.geom.colW / rarebrick.geom.screenW) * 100;
	rarebrick.geom.colH = rarebrick.geom.screenH;
	if(rarebrick.geom.colH<600) rarebrick.geom.colH=600;
	
	var aspectMin = 1.2;
	var aspect = rarebrick.geom.colW / rarebrick.geom.colH;
	if(aspect<aspectMin) rarebrick.geom.colH = rarebrick.geom.colW/aspectMin
	
	rarebrick.geom.mastH = rarebrick.geom.screenH/5;
	if(rarebrick.geom.mastH>250) rarebrick.geom.mastH=250;
	rarebrick.geom.slideshowH = rarebrick.geom.colH*0.85;
	rarebrick.geom.logosize = rarebrick.geom.mastH * .88;
}


/*
 * FLASH
 */
rarebrick.isFlashed = false;

rarebrick.useFlash = function() {
	if(getInternetExplorerVersion() < 7) return false;
	if(navigator.userAgent.indexOf('Android')!=-1) return false;
	return(swfobject.hasFlashPlayerVersion("9.0.0"));
}

rarebrick.addFlash = function() {
	//first create print logo
	var logosrc = jQuery('img#logo').attr('src');
	var logoPrint = jQuery('<img src="'+logosrc+'" id="logoPrint" />');
	jQuery('#printMast').append(logoPrint);
	
	if(!rarebrick.useFlash()) return;
	
	var flashFile = jQuery('img#logo').attr('src').replace('images','swf').replace('png','swf');
	//alert(flashFile);
	var flashvars = {};
	flashvars.param = '';
	var params = {};
	params.allowScriptAccess = "always";
	params.wmode = "transparent";
	var attributes = {};
	
	swfobject.embedSWF(flashFile, 'logo', 375, 250, '9.0.0', '/swf/expressInstall.swf', flashvars, params, attributes);
	rarebrick.isFlashed = true;
}


/*
 * UTILS
 */

rarebrick.printClick = function() {
	
}

rarebrick.addAction = function(action) {
	jQuery(this).closest('div').data('action', action);
}
function isIpad() {
	return (navigator.userAgent.indexOf('iPad') != -1);
}
function isIphone() {
	return ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1));
}

function isIE() {
	return (navigator.appName.indexOf('Explorer') != -1);
}

function getInternetExplorerVersion()
{
  var rv = 1000; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    if ( ver >= 8.0 ) 
      msg = "You're using a recent copy of Internet Explorer."
    else
      msg = "You should upgrade your copy of Internet Explorer.";
  }
  alert( msg );
}


function emailsignup() {
	var dx=440;
	var dy=260;

	var w = window.open('http://ccprod.roving.com/roving/d.jsp?m=1011330468048&p=oi', 'dir', 'width=' + dx + ',height=' + dy + ',status=no,resizable=no,menubar=yes,location=no,scrollbars=yes,toolbar=no');
	w.focus();
}



jQuery('document').ready(rarebrick.prepreInit);
window.onresize = rarebrick.onresize;	

