	function ToggleDivDisplay(id)
	{
		var element = document.getElementById(id);
		if(element.style.display != 'none')
			element.style.display = 'none';
		else
			element.style.display = '';
	}
		
	/*Reads the querystring*/
	function gup( name )
	{
		  var regexS = "[\\?&]"+name+"=([^&#]*)";
		  var regex = new RegExp( regexS );
		  var tmpURL = window.location.href;
		  var results = regex.exec( tmpURL );
		  if( results == null )
		    return "";
		  else
		    return results[1];
	}
	
	
	function dateFormatSearch(dateString)
	{
		var date = new Date(dateString.substring(0, 4), dateString.substring(4, 6)-1, dateString.substring(6, 8));
		document.write(getBRWFormatDate(date, false));
	}

   /**
   	* In between the Latest Publication date and First publication date
   	* we wish to only display the latest of two dates!
	*/
	function dateFormatLatest(pubDate, pubDisplay, updateDate, updateDisplay, showWeekday)
	{   
		var one_day = 86400;
		var half_day = 43200;
		var datestring ="";
		
		if (updateDate == ""){
			// we can safely move on to just displaying the pubDate
			// document.write(" here pubdate "+ isUpDateLatest);
			dateDisplay(pubDate, pubDisplay, showWeekday);
			 
		}else{ 
			// we have an update date which is not empty
			pub = new Date(pubDate);
			up = new Date(updateDate);
			var isUpDateLatest = GetDateDiff(pub, up);
			
			if(isUpDateLatest > 0){
				// update date is not latest!!
				// in this case we render pubDate!
				// document.write(" here pubdate "+ isUpDateLatest);
				dateDisplay(pubDate, pubDisplay, showWeekday);
			}else{
				
				// update date is being rendered
				//document.write(" here update!");
				dateDisplay(updateDate, updateDisplay, showWeekday);
			}
			 
		}
	}

   /**
	 * pubdate is formated HH:MM:SS and publishdisplaydate 
	 * is formatted in hh:mm:ss to display into web
	*/
	function dateDisplay(date, displaydate, showWeekday) 
	{  
		var one_day=86400;
	    var half_day=43200;
		
		var datestring = date;
		
		// Create a Date Object set to the last modified date
		da = new Date(datestring);
		today = new Date();
		var secs = GetDateDiff(da, today);
		if (secs < half_day)
		{	
			time = GetHourMinFromSecs(secs);
			if(time.hours == 0){
			
				document.write( time.minutes + " minutes ago" );
				
			}else{
			
				document.write(" " + time.hours + " hours " + time.minutes + " minutes ago" );
			}
			
		}
		else{
		
			//If date is more than 12 hr ,display hh:mm:ss format
			// however we want different format for the date
			da = new Date(displaydate);
			document.write(getBRWFormatDate(da, showWeekday));
			}
	}


   /**
	 * pubdate is formated HH:MM:SS and publishdisplaydate 
	 * is formatted in hh:mm:ss to display into web
	*/
	function dateFormatUpdate(pubdate, updateDate, updatedisplay)
	{   var one_day=86400;
		var half_day=43200;
		var status = "";
		var datestring ="";
		
		if (pubdate != updateDate && updateDate != "")
		{  
			datestring = updateDate;
		   // Create a Date Object set to the last modified date
			da = new Date(datestring);
		    today = new Date();
			var secs = GetDateDiff(da, today);
			
			if (secs < half_day)
			{		    
				time = GetHourMinFromSecs(secs);
				document.write(" " + time.hours + " hours " + time.minutes + " minutes ago" );
				
			}
			else{
			   // display hh:mm format date
				document.write(status + " "+ updatedisplay); 
				}
		}	
	}
	
	/**
	 * pubdate is formated HH:MM:SS and publishdisplaydate 
	 * is formatted in hh:mm:ss to display into web
	*/	
	function dateFormatPub(pubdate, publishdisplaydate, showWeekday) 
	{  
		var one_day=86400;
	    var half_day=43200;
		var status = " ";
		var datestring = pubdate;
		
		// Create a Date Object set to the last modified date
		da = new Date(datestring);
		today = new Date();
		var secs = GetDateDiff(da, today);
		if (secs < half_day)
		{	
			time = GetHourMinFromSecs(secs);
			document.write(status + " " + time.hours + " hours " + time.minutes + " minutes ago" );
		}
		else{
		
			//If date is more than 12 hr ,display hh:mm:ss format
			// however we want different format for the date
			da = new Date(publishdisplaydate);
			document.write(status + getBRWFormatDate(da, showWeekday));
			}
	}
	
	
	/*
	* BRW displays full month name
	*/
	function getBRWFormatDate(dt, showWeekday){
	
		var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
		var monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
		//var dt = new Date();
		var y = dt.getYear();
		if (y < 1000) y +=1900;
		var d = dt.getDate()<10? "0" + dt.getDate(): dt.getDate();
		if(!showWeekday)
		{
			return ( d + " "+ monthNames[dt.getMonth()] + " " + y);
		}else {
			   return (dayNames[dt.getDay()] + ", " + d + " "+ monthNames[dt.getMonth()] + " " + y);
			  }
	}
	
	
	/**
	 * get the difference between two dates
	*/
	function GetDateDiff(fromdate, todate)
	{	
		var diff = Math.round((todate.getTime() - fromdate.getTime())/1000);
		return diff;
	}
	
	/**
	 * get the Hour and min from seconds
	*/
	function GetHourMinFromSecs(seconds)
	{  
		hours = (seconds - seconds % 3600)/3600;
		mins = (seconds %3600 - seconds %60) / 60 ;
		secs = seconds%60;
		return {hours:hours,minutes:mins,seconds:secs};
	}
	
	/*reading the query string parameters*/
	function GetQueryParam( name )
	{
		  var regexS = "[\\?&]"+name+"=([^&#]*)";
		  var regex = new RegExp( regexS );
		  var tmpURL = window.location.href;
		  var results = regex.exec( tmpURL );
		  if( results == null )
		    return "";
		  else
		    return results[1];
	}
	/* editorial_carousel-1 */	
	function moveRight(elementId, step, millsecond, target) 
	{
	    if (window["_scrolling"]) return;
	    var element = document.getElementById(elementId);
	    window["_scrolling"] = true;
	    var target = element.scrollLeft + target;
	    var left
	    if (!element.scrollLeft) {
	        left = 0;
	        element.scrollLeft = 0
	    }
	    else
	        left = parseInt(element.scrollLeft);
	
	    ScrollRight(elementId, left, target, step, millsecond);
	}
	/* editorial_carousel-2 */
	function moveLeft(elementId, step, millsecond, target) 
	{
	    if (window["_scrolling"]) return;
	    var element = document.getElementById(elementId);
	    window["_scrolling"] = true;
	    var target = element.scrollLeft - target;
	    var left
	    if (!element.scrollLeft) {
	        left = 0;
	        element.scrollLeft = 0
	    }
	    else
	        left = parseInt(element.scrollLeft);
	    ScrollLeft(elementId, left, target, step, millsecond);
	}
	/* editorial_carousel-3 */
	function ScrollRight(element, current, target, step, millSeconds) 
	{
	    scroll_clipper = document.getElementById(element);
	    left = parseInt(scroll_clipper.scrollLeft);
	    
	    if (current >= target) 
	    {
	        scroll_clipper.scrollLeft = target;
	        window["_scrolling"] = false;
	        return;
	    }
	    else{
	        scroll_clipper.scrollLeft = (left + step);
	    }
	
	    setTimeout("ScrollRight('" + element + "'," + (current + step) + "," + target + "," + step + "," + millSeconds + ");", millSeconds);
	}
	/* editorial_carousel-4 */
	function ScrollLeft(element, current, target, step, millSeconds) 
	{
	    scroll_clipper = document.getElementById(element);
	    left = parseInt(scroll_clipper.scrollLeft);
	    if (target == 0 || target < scroll_clipper.scrollWidth - scroll_clipper.offsetWidth) 
	    {
	        if (current <= target) 
	        {
	            scroll_clipper.scrollLeft = target;
	            window["_scrolling"] = false;
	            return;
	        }
	        else
	            scroll_clipper.scrollLeft = (left - step);
	        setTimeout("ScrollLeft('" + element + "'," + (current - step) + "," + target + "," + step + "," + millSeconds + ");", millSeconds);
	    }
	}
	
// ===================================================================================== Table highlight	
		function HighlightTableRows(){
			var highlightTables = document.getElementById('story_content').getElementsByTagName('table');
			
			
			for(j = 0; j < highlightTables.length; j++){
				var tbody = highlightTables[j].getElementsByTagName('tbody');
				var rows = tbody[0].getElementsByTagName('tr');
				for (var i=0; i < rows.length; i++) {
					//attachEventListener(rows[i], 'mouseover', highlightOn, false);
					//attachEventListener(rows[i], 'mouseout', highlightOff, false);
					rows[i].onmouseover = function () {highlightOn(this);};
					rows[i].onmouseout = function () {highlightOff(this);};
				}
			}
		   
			function highlightOn(row){
				row.style.backgroundColor = '#C8D2DB'
				var data = row.getElementsByTagName('td');
				data[0].style.backgroundColor = '#C8D2DB'
				//this.parentNode.style.background = '#C8D2DB';
			}
			function highlightOff(row){
				//this.parentNode.style.background = '';
				row.style.backgroundColor = ''
				var data = row.getElementsByTagName('td');
				data[0].style.backgroundColor = ''
			}
		}
		// Utility Function - cross browser event listener
		function attachEventListener(target, eventType, functionRef, capture) {
			if (typeof target.addEventListener != "undefined")  {
				target.addEventListener(eventType, functionRef, capture);
			} else if (typeof target.attachEvent != "undefined") {
				target.attachEvent("on" + eventType, functionRef);
			} else {
				eventType = "on" + eventType;
				if (typeof target[eventType] == "function") {
					var oldListener = target[eventType];
					target[eventType] = function()  {
						oldListener();
						return functionRef();
					}
				} else {
					target[eventType] = functionRef;
				}
			}
			return true; 
		}
		
		
// ===================================================================================== PNG Support for IE6		
		
		// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
// (c) 2008-2009 Angus Turnbull http://www.twinhelix.com

// This is licensed under the GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/

var IEPNGFix = window.IEPNGFix || {};

IEPNGFix.tileBG = function(elm, pngSrc, ready) {
	// Params: A reference to a DOM element, the PNG src file pathname, and a
	// hidden "ready-to-run" passed when called back after image preloading.

	var data = this.data[elm.uniqueID],
		elmW = Math.max(elm.clientWidth, elm.scrollWidth),
		elmH = Math.max(elm.clientHeight, elm.scrollHeight),
		bgX = elm.currentStyle.backgroundPositionX,
		bgY = elm.currentStyle.backgroundPositionY,
		bgR = elm.currentStyle.backgroundRepeat;

	// Cache of DIVs created per element, and image preloader/data.
	if (!data.tiles) {
		data.tiles = {
			elm: elm,
			src: '',
			cache: [],
			img: new Image(),
			old: {}
		};
	}
	var tiles = data.tiles,
		pngW = tiles.img.width,
		pngH = tiles.img.height;

	if (pngSrc) {
		if (!ready && pngSrc != tiles.src) {
			// New image? Preload it with a callback to detect dimensions.
			tiles.img.onload = function() {
				this.onload = null;
				IEPNGFix.tileBG(elm, pngSrc, 1);
			};
			return tiles.img.src = pngSrc;
		}
	} else {
		// No image?
		if (tiles.src) ready = 1;
		pngW = pngH = 0;
	}
	tiles.src = pngSrc;

	if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
		bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
		return;
	}

	// Convert English and percentage positions to pixels.
	var pos = {
			top: '0%',
			left: '0%',
			center: '50%',
			bottom: '100%',
			right: '100%'
		},
		x,
		y,
		pc;
	x = pos[bgX] || bgX;
	y = pos[bgY] || bgY;
	if (pc = x.match(/(\d+)%/)) {
		x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
	}
	if (pc = y.match(/(\d+)%/)) {
		y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
	}
	x = parseInt(x);
	y = parseInt(y);

	// Handle backgroundRepeat.
	var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
		repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
	if (repeatX) {
		x %= pngW;
		if (x > 0) x -= pngW;
	}
	if (repeatY) {
		y %= pngH;
		if (y > 0) y -= pngH;
	}

	// Go!
	this.hook.enabled = 0;
	if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
		elm.style.position = 'relative';
	}
	var count = 0,
		xPos,
		maxX = repeatX ? elmW : x + 0.1,
		yPos,
		maxY = repeatY ? elmH : y + 0.1,
		d,
		s,
		isNew;
	if (pngW && pngH) {
		for (xPos = x; xPos < maxX; xPos += pngW) {
			for (yPos = y; yPos < maxY; yPos += pngH) {
				isNew = 0;
				if (!tiles.cache[count]) {
					tiles.cache[count] = document.createElement('div');
					isNew = 1;
				}
				var clipR = Math.max(0, xPos + pngW > elmW ? elmW - xPos : pngW),
					clipB = Math.max(0, yPos + pngH > elmH ? elmH - yPos : pngH);
				d = tiles.cache[count];
				s = d.style;
				s.behavior = 'none';
				s.left = (xPos - parseInt(elm.currentStyle.paddingLeft)) + 'px';
				s.top = yPos + 'px';
				s.width = clipR + 'px';
				s.height = clipB + 'px';
				s.clip = 'rect(' +
					(yPos < 0 ? 0 - yPos : 0) + 'px,' +
					clipR + 'px,' +
					clipB + 'px,' +
					(xPos < 0 ? 0 - xPos : 0) + 'px)';
				s.display = 'block';
				if (isNew) {
					s.position = 'absolute';
					s.zIndex = -999;
					if (elm.firstChild) {
						elm.insertBefore(d, elm.firstChild);
					} else {
						elm.appendChild(d);
					}
				}
				this.fix(d, pngSrc, 0);
				count++;
			}
		}
	}
	while (count < tiles.cache.length) {
		this.fix(tiles.cache[count], '', 0);
		tiles.cache[count++].style.display = 'none';
	}

	this.hook.enabled = 1;

	// Cache so updates are infrequent.
	tiles.old = {
		w: elmW,
		h: elmH,
		x: bgX,
		y: bgY,
		r: bgR
	};
};


IEPNGFix.update = function() {
	// Update all PNG backgrounds.
	for (var i in IEPNGFix.data) {
		var t = IEPNGFix.data[i].tiles;
		if (t && t.elm && t.src) {
			IEPNGFix.tileBG(t.elm, t.src);
		}
	}
};
IEPNGFix.update.timer = 0;

if (window.attachEvent && !window.opera) {
	window.attachEvent('onresize', function() {
		clearTimeout(IEPNGFix.update.timer);
		IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100);
	});
}