/*
	$Revision: 45542 $

	r2 preDisplay
*/

/*
	r2 clock
*/
function arrayOfMonthNames() {
        this[0] = "January";
        this[1] = "February";
        this[2] = "March";
        this[3] = "April";
        this[4] = "May";
        this[5] = "June";
        this[6] = "July";
        this[7] = "August";
        this[8] = "September";
        this[9] = "October";
        this[10] ="November";
        this[11] ="December";
}

function getMonthName(m) {
        var monthNames = new arrayOfMonthNames();
        return monthNames[m];
}

function updateClock (dateFormat)
{
  var currentTime = new Date ( );

  var currentHours = currentTime.getHours ( );
  var currentMinutes = currentTime.getMinutes ( );
  var currentTimeString = "";
 
  // Pad the minutes with leading zeros, if required
  currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
 
  // Choose either "AM" or "PM" as appropriate
  var timeOfDay = ( currentHours < 12 ) ? "am" : "pm";

  // Convert the hours component to 12-hour format if needed
  currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;

  // Convert an hours component of "0" to "12"
  currentHours = ( currentHours == 0 ) ? 12 : currentHours;

  var currentDayOfMonth = currentTime.getDate()
  var currentMonth = getMonthName(currentTime.getMonth());
  var currentYear =  currentTime.getYear();
  if (currentYear < 1000) currentYear += 1900;
  
  // Compose the string for display
  if(dateFormat && dateFormat == "HH:MM:tt dd MMM YYYY") {
  	currentTimeString = "updated " + currentHours + ":" + currentMinutes + timeOfDay + ' ' + currentDayOfMonth + ' ' + currentMonth + ' ' + currentYear;
  	
  }
  else {
  	currentTimeString = currentDayOfMonth + ' ' + currentMonth + ' ' + currentYear + ': ' +currentHours + ":" + currentMinutes + timeOfDay;
  }

  // Update the time display
  var clk = document.getElementById("clock");
  if ( clk != undefined ) 
  	clk.firstChild.nodeValue = currentTimeString;
}

/*
xp:135337 fix top ad slot
*/

(function (){
	var adclass = function() {
		if (!document.getElementById || !document.getElementsByTagName) return;
		var adContainer = document.getElementById('top-search-ad-wrapper');
		if (!adContainer) return;
		var c = adContainer.className;
		//  look for child elt over 700px wide
		var elTypes = ['A','OBJECT', 'DIV', 'IMG', 'IFRAME'];
		for (var i=0; i < elTypes.length; i++ ) {
			var els = adContainer.getElementsByTagName(elTypes[i]);
			for (var j=0; j < els.length; j++ ) {
				w = els[j].offsetWidth;
				if (typeof w == 'undefined') return;
				if (w > 700) {
					adContainer.className = c + ' ' + 'top-leaderboard'; 
					return;
				}
			}
		}
		adContainer.className = c + ' ' + 'top-banner'; 
	}
	if (window.addEventListener) { // Moz etc
		window.addEventListener('load', adclass, false);
	} else if (window.attachEvent) { // IE
		window.attachEvent('onload', adclass);
	}
})()

/*
xp:144754 defer ad creative
*/

function tmgDeferHTML () {
	/*
	map keys to HTML fragments
	*/
	this.deferred = new Object();
	this.useDeferred = ((window.addEventListener || window.attachEvent) 
		&& document.getElementById
		&& ! document.all); // TODO IE :(
	this.lastkey = 0;
	this.idPrefix = 'tmgdfc-';
}
/*
Store html for later rendering
*/
tmgDeferHTML.prototype.defer = function(html) {
	if (!this.useDeferred) {
		/*
		Not a supported browser.
		*/
		document.write(html);
		return;
	}
	this.lastkey ++;
	key = 'k' + this.lastkey;
	this.deferred[key] = html;
	document.write('<div style="display:none" id="'+this.idPrefix + key +'"></div>');
}
/*
After all rendering, install rendered html into target locations
*/
tmgDeferHTML.prototype.loadDeferred = function() {
	for (key in this.deferred) {
		var rendered = document.getElementById(this.idPrefix +'r'+key);
		var target = document.getElementById(this.idPrefix + key);
		if (rendered == null) {
			continue;
		}
		rendered.style.display = 'block'; //?	
		// ie replaceChild() is buggy :(
		target.parentNode.replaceChild(rendered,target);
	}
}
/*
render the deferred content, then set up the call to loadDeferred().
*/
tmgDeferHTML.prototype.renderDeferred = function() {

	for (var key in this.deferred) {
		document.write('<div style="display:none" id="'+this.idPrefix +'r'+key +'">');
		try {
			document.write(this.deferred[key]);
		} catch (ex) {
			//whatever
		}
		document.write('<\/div>');
	}
	var t = this;
	var l = function () { t.loadDeferred(); }
	if (window.addEventListener) {
		window.addEventListener('load', l, false); // W3C
	} else {
		window.attachEvent('onload', l); // IE
	}

}
// single instance.  Call renderDeferred() at the end of the <body>.
var tmgDH = new tmgDeferHTML();
