/* -- McBru Portfolio -- */

		$(document).ready(function(){
			// Toggle Tabs and Content
			$('#content-navcolumn').tabs({ fx: { opacity: 'toggle' } });
			// Toggle Selected Class
			$('#content-navcolumn ul li a').click(function() {
				$('#content-navcolumn ul li').removeClass('selected');
				$(this).parent('li').addClass('selected');
				return false;
			});			
			// Next Feature Link Inside Content
			$('.featurecolumn-nav').find('.next > a').click(function() {
				$tab = $('#content-navcolumn').data('selected.tabs');
				$tab = $tab+1;
				$('#content-navcolumn').tabs('select', $tab);
				$('#content-navcolumn ul li.selected').next().addClass('selected').end().removeClass('selected');
				return false;
			});
			// Prev Feature Link Inside Content
			$('.featurecolumn-nav').find('.prev > a').click(function() {
				$tab = $('#content-navcolumn').data('selected.tabs');
				$tab = $tab-1;
				$('#content-navcolumn').tabs('select', $tab);
				$('#content-navcolumn ul li.selected').prev().addClass('selected').end().removeClass('selected');
				return false;
			});	
		});



/* ----- McBru Javascript ------ */



$(function() {
        $('#nav ul:first-child > li').hover(function() {
            $(this).find('img.rollover').attr('unhover', $(this).find('img.rollover').attr('src'));
            $(this).find('img.rollover').attr('src', $(this).find('img.rollover').attr('hover'));
            if (jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7)
                $(this).find('img.rollover').attr('src', $(this).find('img.rollover').attr('src').replace(/.png/i, '.gif'));
            $(this).find('.submenu').show();
        }, function() {
            $(this).find('img.rollover').attr('src', $(this).find('img.rollover').attr('unhover'));
            $(this).find('.submenu').hide();
        });
    });    
  
  
  
  
  
function goToPage(dd) {
var ind = dd.selectedIndex;
if (ind == 0) { return; }
var url = dd.options[ind].value
document.location=url;
}






/* -----------------  Download Form JS --------------------- */

<!-- 

// isEmail (STRING s [, BOOLEAN emptyOK])

// whitespace characters

var whitespace = " \t\n\r";



// 

// Email address must be of form a@b.c ... in other words:

// * there must be at least one character before the @

// * there must be at least one character before and after the .

// * the characters @ and . are both required

function isValidEmail(s)

{   

	if (isEmpty(s)) return false;

   

	// is s whitespace?

	if (isWhitespace(s)) return false;

	    

	// there must be >= 1 character before @, so we

	// start looking at character position 1 

	// (i.e. second character)

	var i = 1;

	var sLength = s.length;



	// look for @

	while ((i < sLength) && (s.charAt(i) != "@"))

	{ i++

	}



	if ((i >= sLength) || (s.charAt(i) != "@")) return false;

	else i += 2;



	// look for .

	while ((i < sLength) && (s.charAt(i) != "."))

	{ i++

	}



	// there must be at least one character after the .

	if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;

	else return true;

}



// Check whether string s is empty.

function isEmpty(s)

{   

	return ((s == null) || (s.length == 0))

}



// Returns true if string s is empty or 

// whitespace characters only.

function isWhitespace(s)

{   

	var i;



    // Is s empty?

    if (isEmpty(s)) return true;



    // Search through string's characters one by one

    // until we find a non-whitespace character.

    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)

    {   

		// Check that current character isn't whitespace.

		var c = s.charAt(i);



		if (whitespace.indexOf(c) == -1) return false;

    }

    // All characters are whitespace.

    return true;

}



function checkForm() { 

	if (!isValidEmail(document.subscribeForm.elements['Email Address'].value)) {

	document.subscribeForm.elements['Email Address'].style.backgroundColor='yellow';

		alert("Please enter a valid Email Address. (name@host.com)");

		document.subscribeForm.elements['Email Address'].focus();

		return false;

	}

}

//--> 






/* ------------------ Portfolio Rollover Link Text --------------------- */



/* IMPORTANT: Put script after tooltip div or 
	 put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

var origWidth, origHeight;

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 110;
var offX= 18;	// how far from mouse to show tip
var offY= 12; 
var tipFontFamily= "Arial, helvetica, Verdana, sans-serif";
var tipFontSize= "9pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#ffffff";
var tipBgColor= "#000000"; 
var tipBorderColor= "#000000";
var tipBorderWidth= 0;
var tipBorderStyle= "none";
var tipPadding= 6;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
messages[0] = new Array('http://www.mcbru.com/work/rollover-advertising.gif','On Semiconductor<br/><em><span style="color:#666666;">Netmercial Ads</span></em>',"#000000");
messages[1] = new Array('http://www.mcbru.com/work/rollover-advertising.gif','FEI<br/><em><span style="color:#666666;">Nanoscale Print Ad</span></em>',"#000000");
messages[2] = new Array('http://www.mcbru.com/work/rollover-advertising.gif','SGI<br/><em><span style="color:#666666;">Netmercial Ad</span></em>',"#000000");
messages[3] = new Array('http://www.mcbru.com/work/rollover-advertising.gif','PolyServe/HP<br/><em><span style="color:#666666;">Print Ad</span></em>',"#000000");
messages[4] = new Array('http://www.mcbru.com/work/rollover-advertising.gif','HP<br/><em><span style="color:#666666;">Banner Ad</span></em>',"#000000");
messages[5] = new Array('http://www.mcbru.com/work/rollover-brand.gif','Reaction Design<br/><em><span style="color:#666666;">Identity and Collateral</span></em>',"#000000");
messages[6] = new Array('http://www.mcbru.com/work/rollover-brand.gif','SMSC<br/><em><span style="color:#666666;">Identity and Collateral</span></em>',"#000000");
messages[7] = new Array('http://www.mcbru.com/work/rollover-campaign.gif','TriQuint<br/><em><span style="color:#666666;">Online Teaser Campaign</span></em>',"#000000");
messages[8] = new Array('http://www.mcbru.com/work/rollover-campaign.gif','On Semiconductor<br/><em><span style="color:#666666;">Global Awareness Campaign</span></em>',"#000000");
messages[9] = new Array('http://www.mcbru.com/work/rollover-eMarketing.gif','Itanium Solutions Alliance<br/><em><span style="color:#666666;">Newsletter</span></em>',"#000000");
messages[10] = new Array('http://www.mcbru.com/work/rollover-eMarketing.gif','Centennial<br/><em><span style="color:#666666;">Email Marketing</span></em>',"#000000");
messages[11] = new Array('http://www.mcbru.com/work/rollover-interactive.gif','Reaction Design<br/><em><span style="color:#666666;">Corporate Website</span></em>',"#000000");
messages[12] = new Array('http://www.mcbru.com/work/rollover-interactive.gif','Aeroflex<br/><em><span style="color:#666666;">Corporate Website</span></em>',"#000000");
messages[13] = new Array('http://www.mcbru.com/work/rollover-print.gif','Synplicity<br/><em><span style="color:#666666;">Annual Report</span></em>',"#000000");
messages[14] = new Array('http://www.mcbru.com/work/rollover-print.gif','FEI<br/><em><span style="color:#666666;">Collateral</span></em>',"#000000");
messages[15] = new Array('http://www.mcbru.com/work/rollover-print.gif','Biamp<br/><em><span style="color:#666666;">Collateral</span></em>',"#000000");
messages[16] = new Array('http://www.mcbru.com/work/rollover-print.gif','Tektronix<br/><em><span style="color:#666666;">Corporate Brochure</span></em>',"#000000");
messages[17] = new Array('http://www.mcbru.com/work/rollover-pr.gif','Reaction Design<br/><em><span style="color:#666666;">Cover Story</span></em>',"#000000");
messages[18] = new Array('http://www.mcbru.com/work/rollover-pr.gif','Isilon Systems<br/><em><span style="color:#666666;">Financial Announcement</span></em>',"#000000");
messages[19] = new Array('http://www.mcbru.com/work/rollover-socialmedia.gif','Itanium Solutions Alliance<br/><em><span style="color:#666666;">Community Management</span></em>',"#000000");
messages[20] = new Array('http://www.mcbru.com/work/rollover-socialmedia.gif','SAO<br/><em><span style="color:#666666;">Online Community Management</span></em>',"#000000");
messages[21] = new Array('http://www.mcbru.com/work/rollover-socialmedia.gif','Altium<br/><em><span style="color:#666666;">Word-of-Mouth / Social Media Program</span></em>',"#000000");


////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '" style="line-height:16px;"><tr><td align="left" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = mouseX-(tpWd+offX)+"px";
	else tipcss.left = mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = winHt-(tpHt+offY)+"px";
	else tipcss.top = mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')













/* ------------------------------   Flash Javascript   -------------------------------------- */


/*
<script language="JavaScript" type="text/javascript">
<!--
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
// -->
</script>



*/
