﻿/************************************************************************************************
Required functionalities for content box.
Version	- 1.3.6
Author	- Anoop Nair.
Company	- MKCL.
Usage	- Please check documentation.

# COPYRIGHT NOTICE
# Copyright (c) 2006-2007 MKCL, All rights reserved.
# This script may be used and modified free of charge for Non-profit purposes by anyone as long
# as this copyright notice and the comments above are kept in their original form.
************************************************************************************************/

ContentBox_imageUp = new Image();
ContentBox_imageUpGlow = new Image();
ContentBox_imageDown = new Image();
ContentBox_imageDownGlow = new Image();
ContentBox_imageClose = new Image();

/*Set Button Images*/
ContentBox_imageUp.src = "../Images/ContentBox_up.gif";
ContentBox_imageUpGlow.src = "../Images/ContentBox_upgw.gif";
ContentBox_imageDown.src = "../Images/ContentBox_down.gif";
ContentBox_imageDownGlow.src = "../Images/ContentBox_downgw.gif";
ContentBox_imageClose.src = "../Images/ContentBox_close.gif";
try{document.execCommand("BackgroundImageCache", false, true);}
catch(err){}

var ContentBox_ScrollEvent;
var ContentBox_IsIE= (navigator.userAgent.indexOf('IE')== -1? false: true);
var ContentBox_Version= parseFloat(navigator.appVersion);
var ContentBox_SuppressCollapse= false;
//Event handlers.
function ContentBox_SuppressCollapsing()
{
	ContentBox_SuppressCollapse= true;
}
function ContentBox_ChangeStyle(contentBox)
{
	var ImageButton = contentBox.getElementsByTagName('div')[0].getElementsByTagName('img').item(0);

	if(ImageButton.src.endsWith("upgw.gif"))
		ImageButton.src = ContentBox_imageUp.src;
	else if(ImageButton.src.endsWith("up.gif"))
		ImageButton.src = ContentBox_imageUpGlow.src;
	else if(ImageButton.src.endsWith("downgw.gif"))
		ImageButton.src = ContentBox_imageDown.src;
	else if(ImageButton.src.endsWith("down.gif"))
		ImageButton.src = ContentBox_imageDownGlow.src;

	if(document.body.style.cursor== 'pointer')
		document.body.style.cursor= 'default';
	else
		document.body.style.cursor= 'pointer';
}
function ContentBox_ChangeDisplay(contentBox)
{
	if(ContentBox_SuppressCollapse)
	{
		ContentBox_SuppressCollapse= false;
		return;
	}
	var panels= contentBox.getElementsByTagName('div');
	var bodyPanel = panels.item(2);
	var ImageButton = contentBox.getElementsByTagName('div')[0].getElementsByTagName('img').item(0);
	if(bodyPanel.style.display== '')
	{
		bodyPanel.style.display= 'none';
		if(ImageButton.src.endsWith("gw.gif"))
			ImageButton.src = ContentBox_imageDownGlow.src;
		else
			ImageButton.src = ContentBox_imageDown.src;
	}
	else
	{
		bodyPanel.style.display= '';
		if(ImageButton.src.endsWith("gw.gif")!= -1)
			ImageButton.src = ContentBox_imageUpGlow.src;
		else
			ImageButton.src = ContentBox_imageUp.src;
	}
}
function ContentBox_WindowScroll(contentBox)
{
	if(contentBox.scrollPosY== GetScrollPosition('Y') && contentBox.scrollPosX== GetScrollPosition('X'))
		return;
	contentBox.scrollPosY= GetScrollPosition('Y');
	contentBox.scrollPosX= GetScrollPosition('X');
	ContentBox_ResetBox(contentBox);
}
function ContentBox_WindowResize(contentBox)
{
	ContentBox_ResetBox(contentBox);
	ContentBox_ResetOverlay(contentBox);
}

function ContentBox_ResetBox(contentBox)
{
	contentBox.style.top= ((GetWindowSize('H')- contentBox.offsetHeight)/2+ GetScrollPosition('Y'))+ 'px';
	contentBox.style.left= ((GetWindowSize('W')- contentBox.offsetWidth)/2+ GetScrollPosition('X'))+ 'px';
}
function ContentBox_ResetOverlay(contentBox)
{
	var overlayOne= contentBox.overlayOne;
	var overlayTwo= contentBox.overlayTwo;

	overlayOne.style.height= document.body.scrollHeight+ 'px';
	overlayOne.style.width= document.body.scrollWidth+ 'px';
	overlayOne.style.top= (ContentBox_IsIE && ContentBox_Version<7 ? (0- parseInt(contentBox.style.top)- 10): 0)+ 'px';
	overlayOne.style.left= (ContentBox_IsIE && ContentBox_Version<7 ? (0 - parseInt(contentBox.style.left)- 2): 0)+ 'px';

	overlayTwo.style.height= document.body.offsetHeight+ 'px';
	overlayTwo.style.width= document.body.offsetWidth+ 'px';
	overlayTwo.style.top= '0px';
	overlayTwo.style.left= '0px';
}
function ContentBox_SetBox(contentBox)
{
	contentBox.style.zIndex= 102;
	contentBox.scrollPosY= GetScrollPosition('Y');
	contentBox.scrollPosX= GetScrollPosition('X');
	/* workaround for 'submit' problem */
	//problem code.
	//document.body.appendChild(contentBox);
	//solution
	if(ContentBox_IsIE)
		document.body.childNodes[0].appendChild(contentBox);
	/* end */
	contentBox.style.display= 'block';
	ContentBox_ResetBox(contentBox);
}
function ContentBox_SetOverLay(contentBox)
{
	var overlayOne= contentBox.overlayOne;
	var overlayTwo= contentBox.overlayTwo;
	if(ContentBox_IsIE)
	{
		overlayOne.style.filter= 'alpha(opacity=0)';
		overlayTwo.style.filter= 'alpha(opacity=50)';
	}
	else
	{
		overlayOne.style.opacity= .0;
		overlayTwo.style.opacity= .5;
		document.body.appendChild(overlayOne);
	}
	overlayOne.style.zIndex= (ContentBox_IsIE && ContentBox_Version<7 ? -1: 100);
	overlayTwo.style.zIndex= 101;
	document.body.appendChild(overlayTwo);

	overlayOne.style.display= 'block';
	overlayTwo.style.display= 'block';
	ContentBox_ResetOverlay(contentBox);
}
function ContentBox_ShowWindow(show, contentBox, colorSelected, showClose, closeEventHandler)
{
	if(show)
	{
		ContentBox_SetBox(contentBox);
		ContentBox_SetOverLay(contentBox);
		if(colorSelected) ContentBox_SetOverlayColor(contentBox, colorSelected);
		contentBox.scrollEvent= setInterval(contentBox.id+ ".WindowScroll()", 200);
		addEventHandler(window, 'resize', contentBox.WindowResize);
		if(showClose)
		{
			var lnk= document.createElement('A');
			var img= document.createElement('IMG');
			img.src= ContentBox_imageClose.src;
			if(Browser.isIe) img.style.width= '15px';
			lnk.appendChild(img);
			lnk.href= "javascript:void(0);";
			if(closeEventHandler)
			{
				addEventHandler(lnk, 'click',
					function()
					{
						var e= new function(){this.closePopup= true;};
						closeEventHandler(e);
						if(e.closePopup)
							contentBox.Hide();
					}
				);
			}
			else
			{
				addEventHandler(lnk, 'click', contentBox.Hide);
			}
			contentBox.Head.appendChild(lnk);
		}
	}
	else
	{
		contentBox.style.display= 'none';
		contentBox.overlayOne.style.display= 'none';
		contentBox.overlayTwo.style.display= 'none';
		clearInterval(contentBox.scrollEvent);
		removeEventHandler(window, 'resize', contentBox.WindowResize);
	}
}
function ContentBox_SetOverlayColor(contentBox, colorSelected)
{
	if(contentBox.overlayTwo)
		contentBox.overlayTwo.style.background= colorSelected;
}

function ContentBox_IeHeightSetHandler(contentBox)
{
	contentBox.InnerBody.style.width= contentBox.offsetWidth - 14;
}
function ContentBox_PrepareObject(contentBox, enableOverlay, enablePercentageWidth, enablePrinting)
{
	var boxId= contentBox.id;
	contentBox.Head= contentBox.getElementsByTagName('DIV')[0];
	if(enableOverlay)
	{
		contentBox.overlayOne= document.getElementById(boxId+ '_ContentBoxOverlayOne');
		contentBox.overlayTwo= document.getElementById(boxId+ '_ContentBoxOverlayTwo');
		contentBox.WindowScroll= function() {ContentBox_WindowScroll(contentBox);};
		contentBox.WindowResize= function() {ContentBox_WindowResize(contentBox);};
		contentBox.SetOverlayColor= function(newColor) {ContentBox_SetOverlayColor(contentBox, newColor);};
		contentBox.Show= function(newColor, showClose, closeEventHandler) {ContentBox_ShowWindow(true, contentBox, newColor, showClose, closeEventHandler);};
		contentBox.Hide= function() {ContentBox_ShowWindow(false, contentBox);};
	}
	if(enablePercentageWidth)
	{
		contentBox.InnerBody= contentBox.getElementsByTagName('DIV')[2];
		contentBox.IeHeightHandle= function() {ContentBox_IeHeightSetHandler(contentBox);};
		//addEventHandler(window, 'resize', contentBox.IeHeightHandle);
	}
	if(enablePrinting)
	{
		if(contentBox.Head.className!= 'HeadDiv') contentBox.Head= null;
		contentBox.Print= function() {ContentBox_Print(contentBox);};
	}
}
function ContentBox_Print(contentBox)
{
	//Hide rest of page.
	ContentBox_HideForPrint(contentBox);
	if(contentBox.Head)
	{
		var links= contentBox.Head.getElementsByTagName('A');
		for(var i= 0; i< links.length; i++)
			links[i].style.display= 'none';
	}
	//Print page.
	window.print();
	if(Browser.isFirefox)
		setTimeout('ContentBox_Print_Continued('+contentBox.id+')', 1000);
	else
		ContentBox_Print_Continued(contentBox);
}
function ContentBox_Print_Continued(contentBox)
{
	//Show hidden part of page.
	ContentBox_ShowAfterPrint(document.body);
	if(contentBox.Head)
	{
		var links= contentBox.Head.getElementsByTagName('A');
		for(var i= 0; i< links.length; i++)
			links[i].style.display= '';
	}
}
function ContentBox_HideForPrint(elem)
{
	var parent= elem.parentNode;
	if(parent==null)
		return;
	for(var i=0; i< parent.childNodes.length; i++)
		if(parent.childNodes[i]!=elem && parent.childNodes[i].style!= null)
			if(parent.childNodes[i].style.display!= 'none')
			{
				parent.childNodes[i].oldDisplay= 'yes';
				parent.childNodes[i].style.display= 'none';
			}
	ContentBox_HideForPrint(parent);
}
function ContentBox_ShowAfterPrint(elem)
{
	for(var i=0; i< elem.childNodes.length; i++)
	{
		if(typeof(elem.childNodes[i].oldDisplay)!= 'undefined')
		{
			elem.childNodes[i].style.display= '';
			elem.childNodes[i].oldDisplay= null;
		}
		else
		{
			ContentBox_ShowAfterPrint(elem.childNodes[i]);
		}
	}
}
