// JavaScript Document

function getYears(){  //displays qty of years in web design
   var beginDate = 2000
   var today = new Date()
   var difference = (today.getFullYear()-beginDate)
   return difference
}
// ----------------------------------------
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getMyElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
// ------------------------------------------------------

function hilight(id){
	var hue = "ff0000"
	var backhue = "ffffff"
	var arrTargets = getMyElementsByClassName(document,'span','target')
	for (i=0;i<arrTargets.length; i++){
			arrTargets[i].style.color = ""
			arrTargets[i].style.backgroundColor = ""
	}
	document.getElementById(id).style.color = hue;
	document.getElementById(id).style.backgroundColor = backhue;
}
// ------------------------------------------------------
 var innerHtmlText ="";
 var cmsText = 'Menu currently highlights <img src="../Assets/images/port/arrow-green.gif"> sites using a <b>CMS</b> / Database.';
 var staticText = 'Menu currently highlights <img src="../Assets/images/port/arrow-green.gif"> sites that are <b>Static</b> (not Database driven).';
 var animText = 'Menu currently highlights <img src="../Assets/images/port/arrow-green.gif"> sites which incorporate elements of <b>Animation</b>.';
 var ecomText = 'Menu currently highlights <img src="../Assets/images/port/arrow-green.gif"> <b>ECommerce</b> sites (Employs a shopping cart system).';
 
 function customizePort(){
	 if (readCookie('portSort') != null) {
		 showMeTheSites(readCookie('portSort'))
		 var message = "";
		 switch(readCookie('portSort')){
		  case 'portArr':
		    document.getElementById('sortit').portRad[0].checked=true;
		  	break;
		  case 'mycms':
		  	document.getElementById('sortit').portRad[1].checked=true;
			message = cmsText;
			document.getElementById('glossary').innerHTML = message;
			document.getElementById('glossary').visibility = 'visible';
			break;
		  case 'static':
		  	document.getElementById('sortit').portRad[2].checked=true;
			message = staticText;
			document.getElementById('glossary').innerHTML = message;
			document.getElementById('glossary').visibility = 'visible';
			break;
		  case 'anim':
		  	document.getElementById('sortit').portRad[3].checked=true;
			message = animText;
			document.getElementById('glossary').innerHTML = message;
			document.getElementById('glossary').visibility = 'visible';
			break;
		  case 'ecom':
		  	document.getElementById('sortit').portRad[4].checked=true;
			message = ecomText;
			document.getElementById('glossary').innerHTML = message;
			document.getElementById('glossary').visibility = 'visible';
		    break;
	  }
		 
	 }
}

// ----------------------------------------------------
function showMeTheSites(which){
	  
	  var arrAllPortTargets = getMyElementsByClassName(document,'a','portArr')
	  for (i=0;i<arrAllPortTargets.length; i++){
			arrAllPortTargets[i].style.visibility = "hidden"
	  }
	  
	  var arrPortTargets = getMyElementsByClassName(document,'a',which)
	  for (i=0;i<arrPortTargets.length; i++){
			arrPortTargets[i].style.visibility = "visible"
	  }
	  
	  var arrHilightTargets = getMyElementsByClassName(document,'span','hilight')
	  for (i=0;i<arrHilightTargets.length; i++){
			arrHilightTargets[i].style.visibility = "hidden"
	  }
	  switch(which){
		  case 'portArr':
		    var arrLinkTargets = getMyElementsByClassName(document,'span','hilight')		
			for (i=0;i<arrLinkTargets.length; i++){
				arrLinkTargets[i].style.visibility = "hidden"
	  		}
			innerHtmlText = "";
		  	break;
		  case 'mycms':
		  	var arrLinkTargets = getMyElementsByClassName(document,'span','cmsLink')
			for (i=0;i<arrLinkTargets.length; i++){
				arrLinkTargets[i].style.visibility = "visible"
  			}
			innerHtmlText = cmsText;
			break;
		  case 'static':
		  	var arrLinkTargets = getMyElementsByClassName(document,'span','staticLink')
			for (i=0;i<arrLinkTargets.length; i++){
				arrLinkTargets[i].style.visibility = "visible"
  			}
			innerHtmlText = staticText;
			break;
		  case 'anim':
		  	var arrLinkTargets = getMyElementsByClassName(document,'span','animLink')
			for (i=0;i<arrLinkTargets.length; i++){
				arrLinkTargets[i].style.visibility = "visible"
	  		}
			innerHtmlText = animText;
			break;
		  case 'ecom':
		  	var arrLinkTargets = getMyElementsByClassName(document,'span','ecomLink')
			for (i=0;i<arrLinkTargets.length; i++){
				arrLinkTargets[i].style.visibility = "visible"
	  		}
			innerHtmlText = ecomText;
		    break;
	  }
	  setCookie("portSort",which);
}
	
//----------------------------------------------------------

  function makeExternal() {
	//make sure the function works
	if (! document.getElementsByTagName) { return; }
	var myRgExp = new RegExp("ext","i");
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("rel") && anchor.getAttribute("rel").match(myRgExp) ) {
			anchor.className+=" external";
			anchor.target='_blank';
		}
	}
  }
  
  // ----------------------------------------------
 
  function showGlossary(which){
	  innerHtmlText = document.getElementById('glossary').innerHTML; //save for later
	  var message = "";
	  switch(which){
		  case 'cms':
		    message = '<b>CMS</b> = Highlights sites using a <u>C</u>ontent <u>M</u>anagement <u>S</u>ystem / database';
		  	break;
		  case 'static':
		    message = '<b>Static</b> = Highlights sites that are hand coded - not using a database.';
		  	break;
		  case 'anim':
		    message = '<b>Animation</b> = Highlights sites incorporating elements of animation.';
		  	break;
		  case 'ecom':
		    message = '<b>ECommerce</b> = Highlights sites employing a shopping cart system.';
		  	break;
		  case 'all':
		    message = '<b>Display All</b> = Removes hilighting and displays all thumbnail images.';
		  	break;
		  default:
		    message = '<b>Reset</b> = Removes any arrow hilighting to Portfolio Link Gallery.';
	  }
	  document.getElementById('glossary').innerHTML = message;
  }
  
  function clearGlossary(){
	document.getElementById('glossary').innerHTML = innerHtmlText;
  }
  
  function setRadio(x){
	  document.getElementById('sortit').portRad[x].checked=true;
  }
  
// -----------------------------------------------------------------
// for dhtml raise division (homepage)
function MM_timelinePlay(tmLnName, myID) { //v1.2   
  //Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Macromedia, Inc. All rights reserved.
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  if (myID == tmLn.ID) { //if Im newest
    setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
    fNew = ++tmLn.curFrame;
    for (i=0; i<tmLn.length; i++) {
      sprite = tmLn[i];
      if (sprite.charAt(0) == 's') {
        if (sprite.obj) {
          numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
          if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
            keyFrm=1;
            for (j=0; j<sprite.values.length; j++) {
              props = sprite.values[j]; 
              if (numKeyFr != props.length) {
                if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
                else        sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
              } else {
                while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
                if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
                  if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
                  else        sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
        } } } } }
      } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
      if (fNew > tmLn.lastFrame) tmLn.ID = 0;
  } }
}

function MM_initTimelines() { //v4.0
    //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
    var ns = navigator.appName == "Netscape";
    var ns4 = (ns && parseInt(navigator.appVersion) == 4);
    var ns5 = (ns && parseInt(navigator.appVersion) > 4);
    var macIE5 = (navigator.platform ? (navigator.platform == "MacPPC") : false) && (navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4);
    document.MM_Time = new Array(1);
    document.MM_Time[0] = new Array(1);
    document.MM_Time["Timeline1"] = document.MM_Time[0];
    document.MM_Time[0].MM_Name = "Timeline1";
    document.MM_Time[0].fps = 15;
    document.MM_Time[0][0] = new String("sprite");
    document.MM_Time[0][0].slot = 1;
    if (ns4)
        document.MM_Time[0][0].obj = document["featCont"] ? document["featCont"].document["featProj"] : document["featProj"];
    else if (ns5)
        document.MM_Time[0][0].obj = document.getElementById("featProj");
    else
        document.MM_Time[0][0].obj = document.all ? document.all["featProj"] : null;
    document.MM_Time[0][0].keyFrames = new Array(40, 65);
    document.MM_Time[0][0].values = new Array(2);
    if (ns5 || macIE5)
        document.MM_Time[0][0].values[0] = new Array("0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px", "0px");
    else
        document.MM_Time[0][0].values[0] = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
    document.MM_Time[0][0].values[0].prop = "left";
    if (ns5 || macIE5)
        document.MM_Time[0][0].values[1] = new Array("82px", "79px", "75px", "72px", "69px", "66px", "62px", "59px", "56px", "52px", "49px", "46px", "43px", "39px", "36px", "33px", "30px", "26px", "23px", "20px", "16px", "13px", "10px", "7px", "3px", "0px");
    else
        document.MM_Time[0][0].values[1] = new Array(82,79,75,72,69,66,62,59,56,52,49,46,43,39,36,33,30,26,23,20,16,13,10,7,3,0);
    document.MM_Time[0][0].values[1].prop = "top";
    if (!ns4) {
        document.MM_Time[0][0].values[0].prop2 = "style";
        document.MM_Time[0][0].values[1].prop2 = "style";
    }
    document.MM_Time[0].lastFrame = 65;
    for (i=0; i<document.MM_Time.length; i++) {
        document.MM_Time[i].ID = null;
        document.MM_Time[i].curFrame = 0;
        document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
    }
}