﻿function getMoonPhase()
{
	var height=1;
	var size = 15;
	var i;
	var currentDate  = new Date();
	var x = currentDate;
	currentDate.setTime(currentDate.getTime() + (currentDate.getTimezoneOffset()*60000));
	var blueMoonDate = new Date(96, 1, 3, 16, 15, 0);
	var lunarPeriod  = 29*(24*3600*1000) + 12*(3600*1000) + 44.05*(60*1000);
	var moonPhaseTime = (currentDate.getTime() - blueMoonDate.getTime()) % lunarPeriod;
	var percentRaw = (moonPhaseTime / lunarPeriod);
	var percent    = Math.round(100*percentRaw) / 100;
	var percentBy2 = Math.round(200*percentRaw);
	var daysleft = Math.round((lunarPeriod - moonPhaseTime)/(24*3600*1000));
	if (percentBy2 > 100) {
		percentBy2 = percentBy2 - 100;
	}
	return daysleft;
}


function articleResizeFont(containerID, reSize)
{
    if (isNaN(parseFloat(document.getElementById(containerID).style.fontSize)))
    {
        articleSetFont(containerID, '1.0em');
    }

    var fs = document.getElementById(containerID).style.fontSize;

    articleSetFont(containerID, (parseFloat(fs) + parseFloat(reSize)).toString() + fs.substring(parseFloat(fs).toString().length));
}

function articleIncreaseFont(containerID)
{
    var fs;
    if (isNaN(parseFloat(document.getElementById(containerID).style.fontSize)))
        fs = '1.0em';
    else
        fs = document.getElementById(containerID).style.fontSize;
    if (parseFloat(fs) <= 1.3)
    {
        articleResizeFont(containerID, '0.2');
    }
}

function articleDecreaseFont(containerID)
{
    var fs;
    if (isNaN(parseFloat(document.getElementById(containerID).style.fontSize)))
        fs = '1.0em';
    else
        fs = document.getElementById(containerID).style.fontSize;
    if (parseFloat(fs) >= 0.7)
    {
        articleResizeFont(containerID, '-0.2');
    }
}


function articleSetFont(containerID, iSize)
{
	document.getElementById(containerID).style.fontSize = iSize;
}

var ip = null;

function PrepareDelayedImages() 
{
	var aActualImages = new Array;

	// Collect all images with delayed src
	for ( var i = 0; i < document.images.length; i++ )	 
	{
		var oActualImage = document.images[i];

		var oDelayedSrcAttr = oActualImage.attributes.getNamedItem("delayedSrc");
		
		if (oDelayedSrcAttr != null) 
		{		
			oActualImage.src = "Images/wait24trans.gif";
			
			aActualImages.push(oActualImage);
		}
	}	

	if (aActualImages != null && aActualImages.length > 0) 	
		ip = new ImagePreloader( aActualImages );
}

/*
	images  has an array of img element ids
	callback is a function that is called when an image is loaded.
*/
function ImagePreloader(images)
{
	if (images == null) 
		return;

   // initialize internal state.
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;

   // record the number of images.
   this.nImages = images.length;
   // for each image, call preload()

   for ( var i = 0; i < images.length; i++ ) 
      this.preload(images[i]);
}

ImagePreloader.prototype.preload = function(oActualImage)
{
   if (oActualImage != null) 
   {		 
		 var oDelayedSrcAttr = oActualImage.attributes.getNamedItem("delayedSrc");
		 if (oDelayedSrcAttr == null) return;
		 
		 var sDelayedSrc = oDelayedSrcAttr.value;

		 // create new Image object and add to array
		 var oImage = new Image;
		 this.aImages.push(oImage);

		 // set up event handlers for the Image object
		 oImage.onload = ImagePreloader.prototype.onload;
		 oImage.onerror = ImagePreloader.prototype.onerror;
		 oImage.onabort = ImagePreloader.prototype.onabort;

		 // assign pointer back to this.
		 oImage.oImagePreloader = this;
		 oImage.bLoaded = false;
		 oImage.oActualImage = oActualImage;

		 // assign the .src property of the Image object
			oImage.src = sDelayedSrc;
   }
}

ImagePreloader.prototype.onload = function()
{
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   
   if (this.oActualImage != null)	
   {   
		this.oActualImage.src = this.src;
		this.oActualImage.width = this.width;
		//this.oActualImage.height = this.height;
		
		var oDelayedWidthAttr = this.oActualImage.attributes.getNamedItem("delayedWidth");
		if (fitImageToWidth != null && oDelayedWidthAttr != null) 
		{
		  fitImageToWidth(this.oActualImage, oDelayedWidthAttr.value);
		}
	}
}

ImagePreloader.prototype.onerror = function()
{
   this.bError = true;
}

ImagePreloader.prototype.onabort = function()
{
   this.bAbort = true;
}

function fitImageToWidth(image, width) 
{
	 if (image == null || width == null) return;
	 
	 if (image.width > width) {
		image.width = width;
		//image.height = (image.width/width) * image.height;
	 }
}

// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
var oldonload = window.onload;
if (typeof window.onload != 'function')
{
  	window.onload = onLoadActions;//PrepareDelayedImages;
} 
else 
{
	window.onload = function(){
	oldonload();
	onLoadActions();
	//PrepareDelayedImages()();
	}
}

function onLoadActions() 
{
    //PrepareDelayedImages();
    //PrepareIFrames();
    if (enableAds) DelayLoadAds();
    correctPNG();
}

function DelayLoadAds() 
{
    var zones = ["212", "213", "214", "215", "216", "219", "222", "223", "224"];
    
    try 
    {
	    for ( var i = 0; i < zones.length; i++ )	 
	    {	        
		    var sDelayedAdContainerTag = "delayedAdContainer" + "_zone" + zones[i];
		    var sDelayedAdPlaceholderTag = "delayedAdPlaceholder" + "_zone" + zones[i];
		    var oDelayedAdContainerTag = document.getElementById(sDelayedAdContainerTag);
		    var oDelayedAdPlaceholderTag = document.getElementById(sDelayedAdPlaceholderTag);

		    if (oDelayedAdContainerTag != null && oDelayedAdPlaceholderTag != null) 
		    {
		        var scriptCounter = 2;
		        var j=0;
		        
		        while (j < oDelayedAdPlaceholderTag.length && scriptCounter > 0) 
		        {
	                var c = oDelayedAdPlaceholderTag.childNodes[j];
	                try 
	                {
	                    if (c.tagName == "SCRIPT") 
	                    {
	                        oDelayedAdPlaceholderTag.removeChild(c);
	                        scriptCounter--;
	                    }
	                    else
	                        j++;
                    } catch (err) {}
		        }
		        
                oDelayedAdPlaceholderTag.innerHTML = oDelayedAdContainerTag.innerHTML;
                //document.body.removeChild(oDelayedAdContainerTag);           
                //oDelayedAdPlaceholderTag.appendChild(oDelayedAdContainerTag);
                //oDelayedAdContainerTag.style.display = 'block';
		    }
	    }	
    
    } catch (e){}
}

var enableAds = true;
