<!--

//helper functions for the doubleclick calls
var ordnum = Math.round(Math.random() * 1000000000);

// ----------------------------------------------

function BuildDartAd (server, site, page, width, height, tile, pos, tags) {
	var ad
	//set some defaults
	if (!server) server = "ln.doubleclick.net";
	if (!site) site = "wn.ln";
	if (!page) page = "business";
	if (!width) width = 468;
	if (!height) height = 60;
	if (!tile) tile = 1;
	if (!pos) pos = 1;
	if (!tags) tags = "!category=adult;";
	//write the ad
	ad = '<iframe src="' + BuildDartUrl("adi", server, site, page, width, height, tile, pos, tags) + '" width="' + width + '" height="' + height + '" marginheight="0" scrolling="no" frameborder="0">';
	ad = ad + '<a href="' + BuildDartUrl("jump", server, site, page, width, height, tile, pos, tags) + 'target="_top">';
	ad = ad + '<img width="' + width + '" height="' + height + '" src="' + BuildDartUrl("ad", server, site, page, width, height, tile, pos, tags) + '" alt="Advertisement" /></a>';
	ad = ad + '</iframe>';
	document.write(ad);
}

// ----------------------------------------------

function BuildDartUrl (type, server, site, page, width, height, tile, pos, tags) {
   	var dartUrl = 'http://'+server+'/'+ type+'/'+site+'/'+page+';'+tags+'sz='+width+'x'+height+';ptile='+tile+';pos='+pos+'ord='+ordnum;
	return dartUrl;
}

// ----------------------------------------------
// StyleSwitcher functions written by Paul Sowden
// http://www.idontsmoke.co.uk/ss/
// - - - - - - - - - - - - - - - - - - - - - - -
// For the details, visit ALA:
// http://www.alistapart.com/stories/alternate/
//
// nifty StyleSwitcher scripts modified by Aaron Jones 10/10/2002
// ----------------------------------------------

function setActiveStyleSheet(title, reset) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
  if (reset == 1) {
	  createCookie("wstyle", title, 365);
  }
}

function setStyle() {
	var style = readCookie("wstyle");
	if (style != null) {
		setActiveStyleSheet(style, 0);
	}
}

// ----------------------------------------------
// end StyleSwitcher functions
// ----------------------------------------------

function popChild(url, width, height, winName) {
  var features = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=" + width + ",height=" + height;
  if (winName == "") {
  	winName = "childWin";
  }
  SmallWin = window.open(url,winName,features);
  if (window.focus) {
    SmallWin.focus();
  }
}

// ----------------------------------------------

function loadParent(url) {
  var parentWin = window.opener
  if (window.opener.closed) {
    window.open(url,"parentWin");
  } else {
    parentWin.location = url;
    if (window.focus) {
      parentWin.focus();
    }
  }
}

// ----------------------------------------------

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = ";expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+";domain=.wired.com;path=/;";
}

// ----------------------------------------------

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

// ----------------------------------------------

function isValidDay(iMonth, iDay, iYear) {

	//if selected exceeds max days in the month, returns max

	//set the days of the month array
	var aMonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	//if it's a leap year, add a day to feb
	if (iYear%4 == 0) {
		aMonthDays[1] = 29;
	}

	var iMonthIndex = iMonth-1;
	var iMaxDays = aMonthDays[iMonthIndex];
	
	//if the day exceeds the max, return the max
	if (iDay > iMaxDays) {
		return iMaxDays;
	} else {
		return iDay;
	}

}

//-->
