// Target Browser function
var pre_w3c = false;
var isMac = false;
var isMacIE5 = false;
var isNS = false;
var isSafari = (navigator.appVersion.indexOf( "Safari" ) != -1) ? true : false;
var isIE = (navigator.appName.indexOf("Microsoft") != -1);

// Color values that would be best defined in css
var bgcol = "#FFFFFF";
var hicol = "#00FFFF";
var frcol = "#DFD261";

// Edit function variables
var selectedFormName = "";
var selCard = "1";
var selTab = "1";
var snapLeftOffset = 12;
var snapTopOffset = 35;

// Positioning for exmple page layers
var exLeftOffset = 12;
var exTopOffset = 35;

w3c();
//checkPrint();

// Flash functions
var afv = 0;
var reqFlashVersion = 7;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

function checkFlash(){
	if ( plugin ) {
		// Netscape
		//afv = parseInt(plugin.description.substring(plugin.description.indexOf(".")-1));
		afv = getMajorFlashVersion(plugin.description);
		plugin = afv >= reqFlashVersion;
	} else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.userAgent.indexOf("Windows 95")>=0 || navigator.userAgent.indexOf("Windows 98")>=0 || navigator.userAgent.indexOf("Windows NT")>=0)) {
		// MSIE & PC
		document.write('<SCRIPT LANGUAGE=VBScript\> \n');
		document.write('on error resume next \n');
		document.write('plugin = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4")))\n');
		document.write('<\/SCRIPT\> \n');
	}
}

function getMajorFlashVersion(pluginstr){
	d = pluginstr.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
	var pv0 = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
	var pv1 = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
	var pv2 = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
	//alert("Major = " + pv0 + ", minor = " + pv1 + ", release = " + pv2);
	return pv0;
}

function wfjs(n,file,w,h,bgcolor){
	var out = "";
	if(bgcolor == "") bgcolor = "#FFFFFF";
	out = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"" + w + "\" height=\"" + h + "\" id=\"" + n + "\" align=\"middle\">";
	out = out + "<param name=\"allowScriptAccess\" value=\"sameDomain\" />";
	out = out + "<param name=\"movie\" value=\"" + file + "\" />";
	out = out + "<param name=\"quality\" value=\"high\" />";
	out = out + "<param name=\"bgcolor\" value=\"" + bgcolor + "\" />";
	out = out + "<embed src=\"" + file + "\" quality=\"high\" bgcolor=\"" + bgcolor + "\" width=\"" + w + "\" height=\"" + h + "\" name=\"" + n + "\" swLiveConnect=\"true\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />";
	out = out + "</object>";
	document.write(out);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function w3c()  { 
	if(navigator.appVersion.indexOf( "Macintosh" ) != -1){
		isMac = true;
		isMacIE5 = ((navigator.userAgent.indexOf("MSIE 5")>=0) && isMac);
	}

  if (navigator.appName.indexOf("Netscape") != -1) {
   var version = navigator.appVersion
    var subVersion = version.substring(0,3)
    var subVersion_p = parseFloat(subVersion)
     if (subVersion_p < 5)  {
        //document.layers[0].visibility = "show"
		pre_w3c = true;
		isNS = true;
    }  
  }   
 if (navigator.appName.indexOf("Explorer") != -1) {
    var version = navigator.appVersion
    var subVersion = version.substring(22,25)
    var subVersion_p = parseFloat(subVersion)
     if (subVersion_p < 5)  {
       //document.all.w_ie.style.visibility = "visible"
	   pre_w3c = true;
	   isNS = false;
  }  
  }   
}  

// MACIE5.23 doesn't handle absolute within relative prositioned elements well.
// So, align website to the top (no vertical displacement) on MacIE5
function adjustMacIE5(){
	if(!isMacIE5){
		document.write("<style type=\"text/css\"><!--");
		document.write("@media screen {");
		document.write("	table {height: 100%;}")
		document.write("}--></style>");
	} else {
		document.write("<style type=\"text/css\"><!--");
		document.write("	#wrapper {margin-top: 10px;}")
		document.write("--></style>");
	}
}
function adjustMacIE5FM(){
	if(!isMacIE5){
		document.write("<style type=\"text/css\"><!--");
		document.write("@media screen {");
		document.write("	table#ftable {height: 100%; margin-bottom:100px;}")
		document.write("}--></style>");
	} else {
		document.write("<style type=\"text/css\"><!--");
		document.write("	#wrapper {margin-top: 10px;}")
		document.write("--></style>");
	}
}
// Printing
// Reload page with print=1 added to query to force refresh of
// page prior to printing.
function checkPrint(){
	var loc = document.location.href;
	var pos = loc.indexOf("?");
	if(pos != -1) loc = loc.substring(0,pos);
	document.location = loc + "?print=1";
}

// If query contains "print," print page
function printAction(){
	//alert("PrintAction");
	var str = document.location.search;
	if((str != "") && (str.indexOf("print"))){
		if (window.print) {
			window.print();
			//top.location.href = top.location.href.substring(0,top.location.href.indexOf("?"));
		}
	}
}

// Date variables

var day="";
var month="";
var ampm="";
var ampmhour="";
var myweekday="";
var year="";
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getFullYear();
year = myyear;
myhours = mydate.getHours();
ampmhour  =  (myhours > 12) ? myhours - 12 : myhours;
ampm =  (myhours >= 12) ? ' PM' : ' AM';
mytime = mydate.getMinutes();
myminutes =  ((mytime < 10) ? ':0' : ':') + mytime;
if(myday == 0)
day = " Sunday, ";
else if(myday == 1)
day = " Monday, ";
else if(myday == 2)
day = " Tuesday, ";
else if(myday == 3)
day = " Wednesday, ";
else if(myday == 4)
day = " Thursday, ";
else if(myday == 5)
day = " Friday, ";
else if(myday == 6)
day = " Saturday, ";
if(mymonth == 0) {
month = "January ";}
else if(mymonth ==1)
month = "February ";
else if(mymonth ==2)
month = "March ";
else if(mymonth ==3)
month = "April ";
else if(mymonth ==4)
month = "May ";
else if(mymonth ==5)
month = "June ";
else if(mymonth ==6)
month = "July ";
else if(mymonth ==7)
month = "August ";
else if(mymonth ==8)
month = "September ";
else if(mymonth ==9)
month = "October ";
else if(mymonth ==10)
month = "November ";
else if(mymonth ==11)
month = "December ";

// Open window functions

var newWindow = null;

function openWindow_nobars(page,width,height,sbars) {
	if ((newWindow != null) && !isSafari && !isMacIE5){
		if(navigator.appName.indexOf("Netscape")>=0){
			if(newWindow.name){
		 		newWindow.close();
			}
		}else{
			newWindow.close();
		}
	}
	newWindow = window.open("", "newWin", "width=" + width + ",height=" + height + ",screenX=0,screenY=0,top=0,left=0,status=yes,toolbar=no,menubar=no,location=no,scrollbars=" + sbars + ",resizable=yes");
	newWindow.location.href = page;
	if (newWindow.opener == null) newWindow.opener = window;
	if(!newWindow.name){newWindow.name="newWin"}

}
function closeWindow(){
	if(window.opener != null){
		window.opener.doClearWindow();
	}
	window.close();
	return true;
}
// Delay clear window (esp. for MacIE5)
function doClearWindow(){
	setTimeout ( "clearWindow", 1000 );
}
function clearWindow(){
	newWindow = null;
}

// Popup window links only if opener window is present
function parentLink(url){
	if(window.opener != null) {
		// in external window
		window.opener.window.location = url;
		window.close();
	}else{
		return true;
	}
}

// Examples scripts ***
// Open example window
// Requires: global exarray
function exaction(obj){
	eval(exarray[obj][0]);
}

// Change spotlight image and link
// Requires: currex
function rolloveraction(obj){
	currex = obj;
	MM_setTextOfLayer('examplelink','',exarray[obj][1]);
	MM_swapImage('spot','',exarray[obj][2],1);
}

// DW Behavior functions
// Change layer text
function MM_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages(a) {
  	var d=document; 
  	if(d.images){ 
  		if(!d.MM_p) d.MM_p=new Array();
    	var i,j=d.MM_p.length; 
		for(i=0; i<a.length; i++){
			if (a[i].indexOf("#")!=0){ 
				d.MM_p[j]=new Image; 
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Functions controlling tabbed image states
function tabRestore(tab){
	//alert(tab != selCard);
	if(tab != parseInt(selCard)){
		MM_swapImgRestore();
	}
}

function tabHilight(i){
	var i;
	var img;
	var imgDwn;
	if(i != parseInt(selCard)){
		obj = "image" + i.toString();
			switch(i){
				case 1: 
				img = "images/overview_reg.gif";
				imgDwn = "images/overview_dwn.gif";
				break;
				case 2:	
				img = "images/solutions_reg.gif";
				imgDwn = "images/solutions_dwn.gif";
				break;
				case 3:	
				img = "images/media_reg.gif";
				imgDwn = "images/media_dwn.gif";
				break;
				case 4: 
				img = "../images/objective_reg.gif";
				imgDwn = "../images/objective_dwn.gif";
				break;
				case 5:	
				img = "../images/design_reg.gif";
				imgDwn = "../images/design_dwn.gif";
				break;
				case 6:	
				img = "../images/tech_reg.gif";
				imgDwn = "../images/tech_dwn.gif";
				break;
			}

		MM_swapImage(obj,'',img,1)
	}
}

function swapClearImages() { //v3.0
  var obj;
  var img;
  var imgDwn;
  for(i=1;i<7;++i){
		obj = "image" + i.toString();
			switch(i){
				case 1: 
				img = "images/overview_reg.gif";
				imgDwn = "images/overview_dwn.gif";
				break;
				case 2:	
				img = "images/solutions_reg.gif";
				imgDwn = "images/solutions_dwn.gif";
				break;
				case 3:	
				img = "images/media_reg.gif";
				imgDwn = "images/media_dwn.gif";
				break;
				case 4: 
				img = "../images/objective_reg.gif";
				imgDwn = "../images/objective_dwn.gif";
				break;
				case 5:	
				img = "../images/design_reg.gif";
				imgDwn = "../images/design_dwn.gif";
				break;
				case 6:	
				img = "../images/tech_reg.gif";
				imgDwn = "../images/tech_dwn.gif";
				break;
			}
		if (i != parseInt(selCard)){
			MM_swapImage(obj,'',img,1)
		}else{
			MM_swapImage(obj,'',imgDwn,1)
		}
	}
}

// Functions required for DHTML "file cards"
// first card
	cardNumber = 1;
	
// ### GetBgcol returns global dynamic color value
function getBgcol(){
	return bgcol;
}

// reset buttons on the tab
function resetCardBtns(exclude, tbtns){
	var tname = "";
	for(x=1; x <= tbtns; x++){
		tname = getNameFromNum(x);
		if (x == exclude){
			s = "url(../images/" + tname + "_dwn.gif)";
		} else {
			s = "url(../images/" + tname + "_reg.gif)";
		}
		changeImg(tname,s);
	}
}

function rcb(num, which){
	if(!pre_w3c){
		if(num != selTab){
			tname = getNameFromNum(num);
			if(which == "r"){
				s = "url(../images/" + tname + "_reg.gif)";
			} else {
				s = "url(../images/" + tname + "_over.gif)";
			}
			changeImg(tname,s);
		}
	}
}

// Since we are running through all images that are used on the website,
// and not just those found on a particular page, check existence of layer
// before the manipulation
function changeImg(tn,str){
	//alert("ChangeImg(): tn=" + tn + ", str=" + str);
	if(document.getElementById){
		el = document.getElementById(tn);
		if(el != null)
			el.style.backgroundImage = str;
	}else if (document.all){
		if(document.all(tn) != null)
      		document.all(tn).style.backgroundImage=str;
   	}else if (document.layers){
	   	if(document.layers[tn] != null)
      		document.layers[tn].backgroundImage=str;
	}
}
function getNameFromNum(num) {
	var tname = "";
	switch(num){
		case 1: 
			tname = "overview";
			break;
		case 2:	
			tname = "solutions";
			break;
		case 3:	
			tname = "media";
			break;
		case 4:	
			tname = "objective";
			break;
		case 5:	
			tname = "design";
			break;
		case 6:	
			tname = "tech";
			break;
	}
	return tname;
}
// show card based on which tag clicked
function show_card(cardnum, tabnum) {
	// selCard is the global, selected tab number
	// First clear last selected, then show new
	//alert("Show_card(): cardnum=" + cardnum + ", tabnum=" + tabnum);
	if(!pre_w3c){
		
		if(document.getElementById){
			el = document.getElementById("contents" + selCard);
			el.style.visibility = "hidden";
			el.style.display = "none";
		}else if (document.all){
	      document.all("contents" + selCard).style.visibility="hidden";
		  document.all("contents" + selCard).style.display="none";
	   	}else if (document.layers){
	      document.layers["contents" + selCard].visibility="hidden";
		  document.layers["contents" + selCard].display="none";
		}
	
	   selCard = cardnum;
	   selTab = tabnum;
	   
		if(document.getElementById){
			el = document.getElementById("contents" + selCard);
			el.style.visibility = "inherit";
			el.style.display = "block";			
		}else if (document.all){
	      document.all("contents" + selCard).style.visibility="inherit";
		  document.all("contents" + selCard).style.display="block";
	   }else if (document.layers){
	      document.layers["contents" + selCard].visibility="inherit";
		  document.layers["contents" + selCard].display="block";
		}
		swapClearImages();
		resetCardBtns(tabnum, 6);
	}
}

  function hilite(name){
    if(document.layers){
      document.layers[name].clip.width=200;
      document.layers[name].document.bgColor= bgcol;
    }else{
      var cell=document.getElementById("td"+name);
      cell.style.backgroundColor= bgcol;
    }
  }
  
  function clearhilite(name){
  /*
    if(document.layers){
      document.layers[name].document.bgColor= frcol;
    }else{
      var cell=document.getElementById("td"+name);
      cell.style.backgroundColor= frcol;
    }
	*/
  }

  function clearhiliteall(){
  	clearhilite("sep1");
	clearhilite("sep2");
	clearhilite("sep3");
	clearhilite("sep4");
	clearhilite("sh1");
	clearhilite("sh2");
	clearhilite("sh3");
	//clearhilite("sh4"); // Comment line to keep far-right button line white
  }
  
 // P7 behavior used to align tab layers
function snapLayers(){
	P7_Snap('cards','contents1',snapLeftOffset,snapTopOffset);
	P7_Snap('cards','contents2',snapLeftOffset,snapTopOffset);
	P7_Snap('cards','contents3',snapLeftOffset,snapTopOffset);
}
function snapExampleLayers(){
	P7_Snap('Image4','contents1',exLeftOffset,exTopOffset);
	P7_Snap('Image4','contents2',exLeftOffset,exTopOffset);
	P7_Snap('Image4','contents3',exLeftOffset,exTopOffset);
}
 function P7_Snap() { //v2.62 by PVII
  var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arguments;a=parseInt(a);
  for (k=0; k<(args.length-3); k+=4)
   if ((g=MM_findObj(args[k]))!=null) {
    el=eval(MM_findObj(args[k+1]));
    a=parseInt(args[k+2]);b=parseInt(args[k+3]);
    x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']";
    if(document.getElementById) {
     d="document.getElementsByName('"+args[k]+"')[0]";
     if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}}
    }else if(document.all) {d=da;} 
    if (document.all || document.getElementById) {
     while (tx==1) {p+=".offsetParent";
      if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
      }else{tx=0;}}
     ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy;
     if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) {
      ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);
      }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
      a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
      x=document.body.scrollLeft + event.clientX + bx;
      y=document.body.scrollTop + event.clientY;}}
   }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd="";
    for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name;
     if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}}
   if(el) {e=(document.layers)?el:el.style;
   var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
   if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px";}
   if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
    xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);
    xx+="px";yy+="px";}e.left=xx;e.top=yy;}}
}

  /// Utility functions
  // copyright / date
function printCFCopyright(){
	var now = new Date();
	var year = now.getFullYear();
	document.write("&copy;" + year + " Cake Farm. All rights reserved.");
}

function parseQueryString (str) {
  str = str ? str : location.search;
  var query = str.charAt(0) == '?' ? str.substring(1) : str;
  var args = new Object();
  if (query) {
    var fields = query.split('&');
    for (var f = 0; f < fields.length; f++) {
      var field = fields[f].split('=');
      args[unescape(field[0].replace(/\+/g, ' '))] = unescape(field[1].replace(/\+/g, ' '));
    }
  }
  return args;
}
