// Magazine Manager service routines

mm_includejs('/js/mm_data1.js');
mm_includejs('/js/mm_data2.js');;

//write a date in the format dd textmonth yyyy
function mm_date () {
	d = new Date();
	y = ['January','February','March','April','May','June','July','August','September','October','November','December'];
	document.write (d.getDate()+" "+y[d.getMonth()]+" "+d.getFullYear());
	}

//
// Banner and button placement routines
//

function mm_rhcol_ads(lev) {	
	mm_button_ads(lev, 'r', 0, 0, 'y'); // fails with limit of 4; set to 0
}

function mm_button_ads(lev, placement, limit, topzone, filluptop) {  //indirected
	if (lev==0) {
		pfx = "";
	} else if (lev==1) {
		pfx = "../";
	}

	imdir = "images/ad/";

	r = "http://www.efficientenergy.net/service/mmgo.php"+"?http://";

	display_limit = limit;
	top_priv = topzone; // size of the top privileged zone

	//var buttons = mm_button_initialise();
	
	if (typeof mm_buttons=="undefined") exit;
	
	var buttons = mm_buttons;

	var seq = new Array();
	var rest = new Array();
	var priv = new Array(); // privileged buttons
	var nodisplay = new Array(); // buttons NOT to display
	
	for (i=0; i<buttons.length; i++) {
		//alert(buttons[i].display);
		if (buttons[i].placement == "x") {
				//mmx_diag("Nodisplay button: " + i + "encountered");
				nodisplay.push(i); // do nothing array
		} else {
			if (buttons[i].placement == placement) { // pick out rh col ads
				if (buttons[i].display == "t") {
					priv.push(i);
				} else {
					rest.push(i);
				}
			}
		}
	 }
	 
	//mmx_diag(nodisplay,"No Display");
	//mmx_diag(priv,"Privileged");
	//mmx_diag(rest,"The Rest");

	// how many 'rest' items should go into 'privileged?
	var extrapriv = top_priv - priv.length; 
	// first shuffle rest
	rest = mm_shuffle(rest);
	// then pop off randomised rest items onto priv
	if (filluptop == 'y') {
		for (z=0; z<extrapriv; z++)
			priv.push(rest.pop());
	}
	// shuffle priv and add what's left of rest	
	priv = mm_shuffle(priv);
	seq = priv.concat(rest);
	
	//mmx_diag(priv,"Privileged");
	//mmx_diag(rest,"The Rest");
	//mmx_diag(seq,"Sequenced");

	//alert(seq.toString() + " shuffled");

	document.write ("<table width=\"100%\" class=\"rhcolads\">\n");

	if (!display_limit) {
		to_display = buttons.length - nodisplay.length; // no limit
	} else {
		if (buttons.length > display_limit) {
			to_display = display_limit;
		} else {
			to_display = buttons.length - nodisplay.length;
		}
	}

	for (i=0; i<to_display; i++) {
		s = seq[i];
		if (buttons[s].adlinktype!=11) { // not swf
			if (buttons[s].adlinktype) {
				adlink=r+buttons[s].adlink; // a redirect, via mmgo
			} else {
				adlink = pfx+buttons[s].adlink; // local link
			}
			adimgsrc  = pfx+imdir+buttons[s].source;
			adcaption = buttons[s].caption;
			adwidth = buttons[s].width;
			adheight = buttons[s].height;
			document.write ("<tr><td><a href=\""+adlink+"|b"+i+"\"><img src=\""+adimgsrc+"\" width=\""+adwidth+"\" height=\""+adheight+"\"></a>");
			if (adcaption.length > 0) {
				document.write ("<br><a href=\""+adlink+"\">"+adcaption+"\</a></td></tr>");
			} else {
				document.write ("</td></tr>");	
			}
		} else {
			//alert("swf "+buttons[s].adlinktype);
			if (buttons[s].adlinktype==11) { //swf
				// link is contained within the /swf file
				adimgsrc  = pfx+imdir+buttons[s].source;
				adwidth = buttons[s].width;
				adheight = buttons[s].height;
				afname = buttons[s].source.split(".");
				var ad = "";
				ad = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\"  width=\""+adwidth+"\" height=\""+adheight+"\" id=\""+afname[0]+"\" align=\"middle\">\n" +
				"<param name=\"allowScriptAccess\" value=\"sameDomain\" />" +
				"<param name=\"movie\" value=\""+adimgsrc+"\" />\n" +
				"<param name=\"quality\" value=\"high\" />\n" +
				//"<param name=\"bgcolor\" value=\"#ffffff\" />\n" +
				//"<embed src=\""+adimgsrc+"\"  quality=\"high\" bgcolor=\"#ffffff\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
				"<embed src=\""+adimgsrc+"\"  quality=\"high\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
				"</object>\n";
		
		        //alert(ad);
				document.write ("<tr><td>"+ad+"</td></tr>");
		
			}
		}
	}

	document.write("</table>");
}

function mm_single_button_ad(lev, co) {  
	if (lev==0) {
		pfx = "";
	} else if (lev==1) {
		pfx = "../";
	}
	;
	imdir = "images/ad/";

	r = "http://www.efficientenergy.net/service/mmgo.php"+"?http://";

	var buttons = mm_button_initialise();

	document.write ("<table width=\"100%\" class=\"rhcolads\">\n");

	for (i=0; i<buttons.length; i++) {
		//alert(buttons[i].co+" "+co);
		if (buttons[i].co == co) {
			if (buttons[i].adlinktype!=11) { // not swf
				if (buttons[i].adlinktype) {
					adlink=r+buttons[i].adlink; // a redirect, via mmgo
				} else {
					adlink = pfx+buttons[i].adlink; // local link
				}
				adimgsrc  = pfx+imdir+buttons[i].source;
				adcaption = buttons[i].caption;
				adwidth = buttons[i].width;
				adheight = buttons[i].height;
				document.write ("<tr><td><a href=\""+adlink+"|b"+i+"\"><img src=\""+adimgsrc+"\" width=\""+adwidth+"\" height=\""+adheight+"\"></a>");
				if (adcaption.length > 0) {
					document.write ("<br><a href=\""+adlink+"\">"+adcaption+"\</a></td></tr>");
				}
			} else {
				//alert("swf "+buttons[s].adlinktype);
				if (buttons[i].adlinktype==11) { //swf
					// link is contained within the /swf file
					adimgsrc  = pfx+imdir+buttons[i].source;
					adwidth = buttons[i].width;
					adheight = buttons[i].height;
					afname = buttons[i].source.split(".");
					var ad = "";
					ad = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\"  width=\""+adwidth+"\" height=\""+adheight+"\" id=\""+afname[0]+"\" align=\"middle\">\n" +
					"<param name=\"allowScriptAccess\" value=\"sameDomain\" />" +
					"<param name=\"movie\" value=\""+adimgsrc+"\" />\n" +
					"<param name=\"quality\" value=\"high\" />\n" +
					//"<param name=\"bgcolor\" value=\"#ffffff\" />\n" +
					//"<embed src=\""+adimgsrc+"\"  quality=\"high\" bgcolor=\"#ffffff\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
					"<embed src=\""+adimgsrc+"\"  quality=\"high\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
					"</object>\n";

				//alert(ad);
					document.write ("<tr><td>"+ad+"</td></tr>");

				}


			}
		}
	}

	document.write("</table>");
}


//
//  An email address service routine (partly courtesy of Actinic)
//  <a href="mailto:chrishutchins@btinternet.com">chrishutchins@btinternet.com</a>

function mm_mto (mad) {
	_ad = mad.replace(/&/,"@");
	document.write("<a href=\"mailto:" + _ad + "\">" + _ad + "</a>");
	return;
}

//  A variant on the one above, where you give your own caption.
//  An email address service routine (partly courtesy of Actinic)
//  <a href="mailto:chrishutchins@btinternet.com">chrishutchins@btinternet.com</a>

function mm_mto_caption (mad, cap) {
	_ad = mad.replace(/&/,"@");
	document.write("<a href=\"mailto:" + _ad + "\">" + cap + "</a>");
	return;
}


//  A variant on the one above, which doesn't put in a mail link, but still hides what's
//  obviously an email address

function mm_ema (mad) {
	_ad = mad.replace(/&/,"@");
	document.write(_ad);
	return;
}

function mm_premium_ads(lev) {
	if (lev==0) {
		pfx = "";
	} else if (lev==1) {
		pfx = "../";
	} else if (lev<0) {
		pfx = "/";
	}

	imdir = "images/ad/";

	r = "http://www.efficientenergy.net/service/mmgo.php"+"?http://";

	if (typeof mm_banners=="undefined") exit;
	
	var banners = mm_banners;

	// which banner shall we use this time?
	var ridx = Math.floor(Math.random()*banners.length);

	if (banners[ridx].adlinktype!=11) { // not swf
		if (banners[ridx].adlinktype) {
				adlink=r+banners[ridx].adlink; // a redirect, via mmgo
		} else {
				adlink = pfx+banners[ridx].adlink; // local link
		}
		adimgsrc  = pfx+imdir+banners[ridx].source;
		adcaption = banners[ridx].caption;
		adwidth = banners[ridx].width;
		adheight = banners[ridx].height;
		if (adheight < 90)  {
			toppad = "padding-top:"+ (90 - adheight)/2 +"px;"; 
		} else {
			toppad = "";
		}
		if (adwidth < 728) {
			rightpad = "padding-right:"+ (728 - adwidth)/2 + "px;";
		} else {
			rightpad = "";
		}		
		if (adheight+adwidth) {
			adstyle = " style=\"background-color:#FF9933;"+toppad+rightpad+"\"";
		} else {
			adstyle = " style=\"background-color:#FF9933;\"";;		
		}
		
		document.write ("<a href=\""+adlink+"\"><img src=\""+adimgsrc+"\" width=\""+adwidth+"\" height=\""+adheight+"\""+adstyle+"></a>");
	} else {
		//alert("swf "+banners[ridx].adlinktype);
		if (banners[ridx].adlinktype==11) { //swf
			// link is contained within the /swf file
			adimgsrc  = pfx+imdir+banners[ridx].source;
			adwidth = banners[ridx].width;
			adheight = banners[ridx].height;
			
			document.write("<table width=\"100%\" padding=\"0\" border=\"0\">\n");
			document.write("<tr><td colspan=\"2\" width=\"100%\"><img href=\"/images/trans.gif\" height=\"10\"></td>\n")
			document.write("<tr><td width=\"130px\">&nbsp;</td><td>");
			
			afname = banners[ridx].source.split(".");
			var ad = "";
			ad = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\"  width=\""+adwidth+"\" height=\""+adheight+"\" id=\""+afname[0]+"\" align=\"middle\">\n" +
			"<param name=\"allowScriptAccess\" value=\"sameDomain\" />" +
			"<param name=\"movie\" value=\""+adimgsrc+"\" />\n" +
			"<param name=\"quality\" value=\"high\" />\n" +
			"<param name=\"bgcolor\" value=\"#ffffff\" />\n" +
			"<embed src=\""+adimgsrc+"\"  quality=\"high\" bgcolor=\"#ffffff\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
			"</object>\n";
			//alert(ad);
			document.write (ad);
			
			document.write("</td></tr></table>\n");

		}
	}

}

function mm_category_ads(incats, lev) {
	if (lev==0) {
		pfx = "";
	} else if (lev==1) {
		pfx = "../";
	}

	//alert("Question: choose an ad from "+incats);

	imdir = "images/ad/";

	r = "http://www.efficientenergy.net/service/mmgo.php"+"?http://";

	var allbanners = mm_premium_ad_initialise();

	//alert("Count allbanners "+allbanners.length);

	var banners = new Array();
	//alert(incats);

	var catchoice = incats.split("&");
	//alert("Catchoice contains "+catchoice.length+" elements");

	for (i=0; i<allbanners.length; i++) {
		ban = allbanners[i];
		//alert("Question: Is "+ban.rid+" in "+incats+" ?");
		//alert ("Recid: "+ban.rid);
		for (j=0; j<catchoice.length;j++) {
			if (catchoice[j] == ban.rid) {
				//alert(ban.rid+" is in "+incats);
				banners.push(ban);
			}
		}


		//if (!mm_contains(ban.rid, incats)) {
			//alert("Push "+ban.rid+" linking to "+ban.adlink);
			//banners.push(ban);
		//}
	}

	// at this point we should have an array of ad objects for the categories

	// which banner shall we use this time? Pick one
	var ridx = Math.floor(Math.random()*banners.length);

	//alert ("No of banners "+banners.length+" ridx = "+ridx);

	if (banners[ridx].adlinktype!=11) { // not swf
		if (banners[ridx].adlinktype) {
				adlink=r+banners[ridx].adlink; // a redirect, via mmgo
		} else {
				adlink = pfx+banners[ridx].adlink; // local link
		}
		adimgsrc  = pfx+imdir+banners[ridx].source;
		adcaption = banners[ridx].caption;
		adwidth = banners[ridx].width;
		adheight = banners[ridx].height;
		if (adheight < 90)  {
			toppad = "padding-top:"+ (90 - adheight)/2 +"px;"; 
		} else {
			toppad = "";
		}
		if (adwidth < 728) {
			rightpad = "padding-right:"+ (728 - adwidth)/2 + "px;";
		} else {
			rightpad = "";
		}		
		if (adheight+adwidth) {
			adstyle = " style=\"background-color:#FF9933;"+toppad+rightpad+"\"";
		} else {
			adstyle = " style=\"background-color:#FF9933;\"";;		
		}
		
		document.write ("<a href=\""+adlink+"\"><img src=\""+adimgsrc+"\" width=\""+adwidth+"\" height=\""+adheight+"\""+adstyle+"></a>");
		//document.write ("<a href=\""+adlink+"\"><img src=\""+adimgsrc+"\" width=\""+adwidth+"\" height=\""+adheight+"\"></a>");
	} else {
		//alert("swf "+banners[ridx].adlinktype);
		if (banners[ridx].adlinktype==11) { //swf
			// link is contained within the /swf file
			adimgsrc  = pfx+imdir+banners[ridx].source;
			adwidth = banners[ridx].width;
			adheight = banners[ridx].height;
			afname = banners[ridx].source.split(".");
			var ad = "";
			ad = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\"  width=\""+adwidth+"\" height=\""+adheight+"\" id=\""+afname[0]+"\" align=\"middle\">\n" +
			"<param name=\"allowScriptAccess\" value=\"sameDomain\" />" +
			"<param name=\"movie\" value=\""+adimgsrc+"\" />\n" +
			"<param name=\"quality\" value=\"high\" />\n" +
			"<param name=\"bgcolor\" value=\"#ffffff\" />\n" +
			"<embed src=\""+adimgsrc+"\"  quality=\"high\" bgcolor=\"#ffffff\" width=\""+adwidth+"\" height=\""+adheight+"\" name=\"banner_ad_flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />\n" +
			"</object>\n";

			document.write (ad);

		}
	}

}

function mm_search_header() {
document.write ('<div style="float: left; width: 975px; padding: 0; margin: 0 auto; border: 0; background-image: url(/images/ee_logo_4.gif);">');
document.write ('<div style="float: left; width: 247px; padding: 0; margin: 0; border: 0px black solid;">');
document.write ('<a href="/index.htm"><img src="/images/trans.gif" width="247" height="90" style="border: 0;"></a>');
document.write ('</div>');
//document.write ('<div style="float: right; width: 728px; padding: 0; margin: 0; border: 0;">');
//document.write ('<img src="/images/trans.gif" width="1" height="8">');
//document.write ('Top margin');
//document.write ('</div>');
document.write ('<div style="float: right; width: 728px; text-align: center; padding: 0; margin: 0; border: 0;">');
//document.write ('The ad');
//document.write ('<div style="float: right; padding: 5px 60px 5px 0; margin: 0; border: 0;">');
document.write ('<div style="float: right; padding:0; margin: 0; border: 0;">');
document.write ('<style>');
document.write ('img {border: 0;}');
document.write ('</style>');
document.write ('<script type="text/javascript">mm_premium_ads(-1)</script>');
//document.write ('<a  href="/service/mmgo.php?http://www.machinebuilding.net/pdf/MB_Media_Guide_2008.pdf"><img style="border: 0;"  src="/images/ad/m1273_ban_sizesample.gif" width="728" height="90"></a></td>');
document.write ('</div>');
document.write ('</div>');
//document.write ('<div style="float: right; width: 728px; padding: 0; margin: 0; border: 0;">');
//document.write ('Bottom margin');
//document.write ('<img src="/images/trans.gif" width="1" height="8">');
//document.write ('</div>');
//document.write ('<div style="float:right"><img src="/images/ad/m1273_ban_mediapack1.gif"  width="468" height="60"></div>');

document.write ("</div>  <!-- end of topbanner -->");

}

function mm_search_headerx() {
document.write ("<div style=\"float: left;width: 975px; padding: 0; margin: 0; border: 0; background-image: url(/images/mb_banner3.gif);\"");
document.write ('<table border="1" cellpadding="0" cellspacing="0" width="975px">');
document.write ('<tr>');
document.write ('<td style="border: 1px black solid;" rowspan="3"><a href="/index.htm"><img src="/images/trans.gif" width="247" height="84" style="border: 0;"></a></td>');
document.write ('<td style="border: 1px black solid;"><img src="/images/trans.gif" width="1" height="8"></td></tr>');
document.write ('</tr>');
document.write ('<tr>');
document.write ('<td align="right"><a  href="/service/mmgo.php?http://www.machinebuilding.net/pdf/MB_Media_Guide_2008.pdf"><img style="border: 0;"  src="/images/ad/m1273_ban_mediapack1.gif" width="468" height="60"></a></td>');
document.write ('</tr>');
document.write ('<tr>');
document.write ('<td style="border: 1px black solid;"><img src="/images/trans.gif" width="1" height="8"></td>');
document.write ('</tr>');
document.write ("</table>");
//document.write ('<div style="float:right"><img src="/images/ad/m1273_ban_mediapack1.gif"  width="468" height="60"></div>');

document.write ("</div>  <!-- end of topbanner -->");

}


function mm_shuffle (o) {
    for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	return o;
}

function mm_getSizeData(){
  var e = $('pagebody');
  pbh=e.getHeight();
  //alert ( "pbh set:" +e.getHeight());
}

function mmx_diag (a, txt) {
// print out the contents of an array of numbers	

if (txt.length) {
	document.write(txt+"<br />\n");
	
	for (k = 0; k<a.length; k++)
		document.write(a[k]+"<br />\n");
	}
	
	document.write("--------"+"<br />\n");
}

function mm_includejs (jsfile) {
	
	document.write('<script type="text/javascript" src="'+ jsfile + '"></script>'); 
}