﻿// v=1.0.0

// ajax url
var ajaxurl = "/Ajax/WebServiceApi.asmx/";
var sortover = '';
var order = new Array();

function bodyload()
{
	Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler()
{	
	// datepicker set defaults
	$.datepicker.setDefaults({ showOn: 'button', buttonImage: '/images/calendar.gif', buttonImageOnly: true, dateFormat: 'dd-mm-yy', showMonthAfterYear: false });
	$(".datepicker").datepicker($.datepicker.regional['pl']); // TODO: wielojęzyczność?
	
	// textlayout
	try{
	$('a.lightboxgallery').lightBox();
	}catch(err){/*alert('jquery lightbox gallery not included to document.');*/}
	
	// feedback
	$('.feedContent').elastic();
}

$(document).ready(function()
{
	// datepicker set defaults
	$.datepicker.setDefaults({ showOn: 'button', buttonImage: '/images/calendar.gif', buttonImageOnly: true, dateFormat: 'dd-mm-yy', showMonthAfterYear: false });

	// control panel menu
	$('#ib2cpExpand').click(function()
	{
		// hide expand and show collapse
		$('#ib2cpExpand').hide();
		$('#ib2cpCollapse').show();	
		$('#ib2cpModes').show();		
		if($('#ib2cpProduction').val() == '0')
		{
			$('#ib2cpTabs, #ib2cpTabsContent').show();	
		}

		// save in session
		SetControlPanelState(1);
	});
	$('#ib2cpCollapse').click(function()
	{
		// show expand and hide collapse
		$('#ib2cpExpand').show();
		$('#ib2cpCollapse').hide();
		$('#ib2cpTabs, #ib2cpModes, #ib2cpTabsContent').hide();

		// save in session
		SetControlPanelState(0);
	});

	// container context menu
	$(".menuContainer").hover(
		function()
		{
			// remove existing menu
			RemoveContainerMenu();
			// create new menu
			var mid = $('input[type=hidden]', $(this).parent()).val();

			// begin create conteinerMenu
			$('body').append('<div id="containerMenu">' + $('.cmPanes', $(this).parent()).html());
			// remove context menu
			$('body').append('<script type="text/javascript">$("#containerMenu").hover(function() { },function(){RemoveContainerMenu();});</script>');
			// end create conteinerMenu
			$('body').append('</div>');

			// get icon position
			var pos = $(this).offset();
			
			var viewportWidth = window.innerWidth ? window.innerWidth : $(window).width();
			var menuWidth = $('#containerMenu').width();
			var menuLeft = pos.left + 2;
			if(viewportWidth < (pos.left + menuWidth))
			{			
				menuLeft = pos.left-menuWidth+16;
			}

			// show menu
			$('#containerMenu').show().css({
				top: pos.top + this.height + 2 + "px",
				left: menuLeft + "px"
			});
			
			$(".moveItem", $('#containerMenu')).hover(
				function()
				{
					var pos = $(this).offset();
					var moveMenuWidth = $(this).next().width();
					
					var viewportWidth = window.innerWidth ? window.innerWidth : $(window).width();					
					if(viewportWidth < (pos.left + moveMenuWidth + 8))
						moveMenuWidth = -moveMenuWidth-8;
					else
						moveMenuWidth = menuWidth+6;
					
					// show menu
					$(this).next().show().css({
						display: 'block',
						top: "14px",
						left: moveMenuWidth + "px"
					});
				},
				function() { }
			);
		},
		function() { }
	);	

	$(document).bind("click", function(e)
	{
		setTimeout(RemoveContainerMenu, 10);
	});

	// design drag nad drop
//	for (var i = 0; i < document.getElementsByTagName("ul").length; i++)
//	{
//		var list = document.getElementsByTagName("ul")[i];

//		if ($(list).attr("class") != 'sortable box') continue;

//		DragDrop.makeListContainer(list);
//		list.onDragOver = OnDragOver;
//		list.onDragOut = OnDragOut;
//		list.onDragEnd = OnDragEnd;
//	}

	$(".sortable").sortable({ connectWith: '.sortable', handle: 'h3', items: 'li.widget' });
	//$(".sortable").disableSelection();	
	$('.sortable').bind('sortstart', function(event, ui)
	{
		if ($(ui.item).hasClass('paneName'))
		{			
			$(ui.item).sortable('cancel');
			$(this).sortable('cancel');
			$(ui.item).removeAttr('style');			
		}
	});
	$('.sortable').bind('sortstop', OnDragEnd);
	$('.sortable').bind('sortupdate', function(event, ui)
	{
		order = new Array();
		$('span.hidModuleID', $(this)).each(function()
		{
			order.push(parseInt($(this).text()));
		});		
	});
	$('.sortable').bind('sortover', function(event, ui)
	{
		sortover = $('div.paneName', $(this)).text();
	});
	

	// textlayout
	try{
	$('a.lightboxgallery').lightBox();
	}catch(err){/*alert('jquery lightbox gallery not included to document.');*/}
});

$(window).resize(function()
{
	// Get page sizes
	var arrPageSizes = ___getPageSize();
	// Style overlay and show it
	$('#jquery-overlay').css({
		width: arrPageSizes[0],
		height: arrPageSizes[1]
	});

	if ($('#ib2ModuleSettings').css('display') != 'none')
		$('#ib2ModuleSettings').fixedBox();
});

function bookmark(anchor) 
{
	var title = anchor.getAttribute('title');
	var url = anchor.getAttribute('href');
		
	if (window.sidebar) // Firefox
	{
		window.sidebar.addPanel(title, url,'');
		return false;
	}
	else if(window.opera && window.print) // Opera
	{
		var elem = document.createElement('a');
		elem.setAttribute('href', url);
		elem.setAttribute('title', title);
		elem.setAttribute('rel', 'sidebar');
		elem.click();
		return false;
	}	
	else if (window.external && document.all)  // IE
	{
		window.external.AddFavorite(url, title);		
		return false;
	}
	return true;
}

function ShowTabHistory(tvid, tid, lang, sid)
{
	$('#ib2History').load("/ajax/History.aspx", { tvid: tvid, tid: tid, lang: lang, sid: sid }, function()
	{
		$('#ib2TabSettings').hide();
		$('#ib2History').fixedBox();
	});	
}

function ShowModuleHistory(mvid, tid, lang, sid)
{
	$('#ib2History').load("/ajax/History.aspx", { mvid: mvid, tid: tid, lang: lang, sid: sid }, function()
	{
		$('#ib2ModuleSettings').hide();		
		$('#ib2History').fixedBox();
	});	
}

function HideTabHistory()
{
	$('#ib2TabSettings').fixedBox()
	$('#ib2History').hide();
}

function HideModuleHistory()
{
	$('#ib2ModuleSettings').fixedBox()
	$('#ib2History').hide();
}

function HideHistory()
{	
	// reaload page
	realoadPage();	
}

function CopyModuleHistoryVersion(mid, mvid)
{
	var data = new Object();
	
	data.moduleID = mid;
	data.moduleVersionID = mvid;

	$.ajaxDotNet(ajaxurl + "CopyModuleHistoryVersion", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();	
			}
			else
				logEvent('ERROR', "error");					
		}
	});
}

function CopyTabHistoryVersion(tid, tvid)
{
	var data = new Object();
	
	data.tabID = tid;
	data.tabVersionID = tvid;

	$.ajaxDotNet(ajaxurl + "CopyTabHistoryVersion", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();	
			}
			else
				logEvent('ERROR', "error");					
		}
	});
}

function showTags(lang)
{
	// create ne window for print content
	window.open('/Handlers/Tags.ashx?lang='+lang, '', 'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,fullscreen=no,channelmode=no,width=400,height=300,left=0,top=0');
}

function FCKUpdateLinkedField(id)
{
	try
	{
		if (typeof (FCKeditorAPI) == "object")
		{
			FCKeditorAPI.GetInstance(id).UpdateLinkedField();
		}
	}
	catch (err)
	{
	}
}

function SaveTabsHierarchy(treeId)
{
	//<tr class="child-of-root initialized ui-droppable" id="t15">
	//	<td class="tabname" style="padding-left: 19px;">
	//		<span class="tab ui-draggable">Home</span>
	//	</td>
	//</tr>

	var output = '';
	var tabOrders = new Array();

	$('#' + treeId + ' li').each(function()
	{
		var id = $("a", $(this)).attr('id')
		id = id.substring(2, id.length);

		var parent = $(this).parent().parent().attr('id');
		if (parent != 'tab_tree')
			parent = parent.substring(1, parent.length);

		var lvl = $(this).parent().attr('id');
		lvl = lvl.substring(3, lvl.length);
		
		if (parent != 'tab_tree')
			output += id + ',' + parent + ';' + getTabOrder(tabOrders, parent) + ':' + lvl + '|';
		else
			output += id + ',-1;' + getTabOrder(tabOrders, parent) + ':' + lvl + '|';
	});

	output = output.substring(0, output.lastIndexOf('|'));

	//alert('save -> ' + output);
				
	var at = new Object();
	at.__type = "AjaxTabs"
	at.ids = output;	

	var data = new Object();
	data.at = at;
	
	$.ajaxDotNet(ajaxurl + "ReorderTabs", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function getTabOrder(tabOrders, parentID)
{
	tabOrders.push(parentID);

	var count = 0;

	for (j = 0; j < tabOrders.length; j++)
	{
		if (tabOrders[j] == parentID)
		{
			count++;
		}
	}

	return count;
}

function OnDragOver()
{
	this.style["border"] = "1px dashed #AAA";
}

function OnDragOut()
{
	this.style["border"] = "1px solid white";
}
function OnDragEnd(event, ui)
{
	//alert('move module to ' + sortover + ' pane.');
	//alert('module order:' + order)
	//return;

	if (order.length == 0 || sortover == '') return;

	//var paneName = $('div.paneName', $(this)).text();
	var paneName = sortover;
	var tid = 0;
	$('span.hidTabID', $(ui.item)).each(function(i)
	{
		tid = parseInt($(this).text());
		if(tid != 0)
			return;
	});
	//var mids = new Array();
	var mids = order;
	//$('span.hidModuleID', $(this)).each(function(i)
	//{
	//	mids.push(parseInt($(this).text()));
	//});
	
	var amot = new Object();
	amot.__type = "AjaxModulesOnTab"
	amot.tid = tid;
	amot.pane = paneName
	amot.mids = mids;

	var data = new Object();
	data.amot = amot;

	$.ajaxDotNet(ajaxurl + "ReorderModules", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function AddUserToPermissions(type, id, tid)
{
	$('#pAjax').show();

	var apu = new Object();
	apu.__type = "AjaxPermissionsUser"
	apu.id = parseInt(id);
	apu.type = type
	apu.user = $('#pUserName').val();

	var data = new Object();
	data.apu = apu;

	$.ajaxDotNet(ajaxurl + "AddUserToPermissions", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				$('#chbUsers', $("#ib2Permissions")).check();
				ReloadPermissions(type, id, tid)
			}
			else
			{
				$('#pAjax').hide();
				alert('User don\'t exist');
				$('#pUserName').val('');
				//logEvent('ERROR', "error");
			}
		}
	});
}

function ReloadPermissions(type, id, tid)
{
	isRole = $('#chbRoles', $("#ib2Permissions")).attr('checked');
	isGroup = $('#chbGroups', $("#ib2Permissions")).attr('checked');
	isUser = $('#chbUsers', $("#ib2Permissions")).attr('checked');

	var temp = $('<div>');
	temp.load("/ajax/Permissions.aspx", { r: isRole, g: isGroup, u: isUser, m: type, id: id, tid: tid }, function()
	{
		$('#ib2Permissions').html($('#permissions', temp).html());
	});
}

function CheckAll(permissions_id)
{
	$('.permission_row', $(permissions_id)).each(function(i)
	{
		$("input[type='checkbox']", $(this)).check();
	});
}

function RemoveContainerMenu()
{
	// remove context menu
	$('#containerMenu').remove();
}

function SetControlPanelState(state)
{	
	$('#ib2cpProduction').val(state);

	var data = new Object();
	data.state = state;

	$.ajaxDotNet(ajaxurl + "SetControlPanelViewState", {
		verb: "POST",
		data: data,
		success: function(obj) {  }
	});
}

function ChangeDisplayType(displayType, cp2tabid)
{
	var data = new Object();
	//data.displayType = parseInt($('#' + id).val());
	data.displayType = displayType;
	data.tab = cp2tabid;

	$.ajaxDotNet(ajaxurl + "ChangeDisplayType", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			// reaload page
			//realoadPage();					
			location.href = location.href.replace(/[/]lang[/][a-zA-Z-]*[/]/, "/");
		}
	});
}

function ChangeIsProduction(id, event)
{
//	if(event.clientX == 0 && event.clientY == 0)
//	{ 
//		alert(event.clientX +" "+ event.clientY);
//		return;
//	}
	
	var data = new Object();
	//data.state = $('#' + id).attr('checked');
	data.state = (id == 1 ? true : false);

	$.ajaxDotNet(ajaxurl + "ChangeIsProduction", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			// reaload page
			realoadPage();
		}
	});
}

function ChangeInheritPermissions(type, id, tid)
{
	if (!$('#msInheritPermissions').attr('checked'))
	{
		$('.permission_row', $('#ib2Permissions')).each(function(i)
		{
			$("input[type='checkbox']", $(this)).each(function(j)
			{
				if ($(this).attr("disabled"))
				{
					$(this).attr("disabled", false);
				}
			});
		});
	}
	else
	{
		isRole = $('#chbRoles', $("#ib2Permissions")).attr('checked');
		isGroup = $('#chbGroups', $("#ib2Permissions")).attr('checked');
		isUser = $('#chbUsers', $("#ib2Permissions")).attr('checked');

		var temp = $('<div>');
		temp.load("/ajax/Permissions.aspx", { r: isRole, g: isGroup, u: isUser, m: type, id: id, tid: tid }, function()
		{
			$('.permission_row', $(temp)).each(function(i)
			{
				$("input[type='checkbox']", $(this)).each(function(j)
				{
					$("input[value='" + $(this).val() + "']", $('#ib2Permissions')).attr("disabled", true);

					if ($(this).attr("checked"))
						$("input[value='" + $(this).val() + "']", $('#ib2Permissions')).check();
					else
						$("input[value='" + $(this).val() + "']", $('#ib2Permissions')).uncheck();
				});
			});
		});
	}
}

function ShowEdit(tid, mid, lang)
{
	var src = "/ajax/Edit.aspx?tid=" + tid + "&mid=" + mid + "&lang=" + lang;
	var iframe = "<iframe id='ib2EditIframe' frameborder='0' marginwidth='10' marginheight='10' width='100%' height='99%' src='" + src + "'>Twoja przeglądarka nie akceptuje ramek!</iframe>";
	$('#ib2Edit').append(iframe);

	showOverlay();

	// show on center screen
	$('#ib2Edit').fixedBox();
}

function CloseEdit()
{
	$('#ib2Edit').hide();
	$('#ib2Edit').html('');

	hideOverlay();
}

function ShowPopup(tid, mid, lang, width, height, arg)
{
	$('#ib2Popup').css("width", width);
	$('#ib2Popup').css("height", height);

	var src = "/ajax/Popup.aspx?tid=" + tid + "&mid=" + mid + "&lang=" + lang + "&arg=" + arg;
	var iframe = "<iframe id='ib2PopupIframe' frameborder='0' marginwidth='10' marginheight='10' width='100%' height='99%' src='" + src + "'>Twoja przeglądarka nie akceptuje ramek!</iframe>";
	$('#ib2Popup').append(iframe);

	showOverlay();

	// show on center screen
	$('#ib2Popup').fixedBox();
}

function ClosePopup()
{
	$('#ib2Popup').hide();
	$('#ib2Popup').html('');

	hideOverlay();
}

function UrlTypeChange(type)
{
	$('#urlType').val(type);
	
	$('#pnlUrl').hide();
	$('#pnlPage').hide();
	$('#pnlFile').hide();
	
	switch (type)
	{
		case 0:
		default:			
			break;
		case 1:
			$('#pnlUrl').show();
			break;
		case 2:
			$('#pnlPage').show();
			break;
		case 3:
			$('#pnlFile').show();
			break;
	}
}

function UrlToSelect(mode)
{
	if (mode == 1)
	{
		$('#urlLocation').hide();
		$('#ddlUrls').show();
		$('#urlToSelect').hide();
		$('#urlBack').show();
	}
	else
	{
		$('#urlLocation').show();
		$('#ddlUrls').hide();
		$('#urlToSelect').show();
		$('#urlBack').hide();
	}
}

function ShowModuleSettings(id, tid, lang)
{
	showOverlay();
	
	$('#ib2ModuleSettings').load("/ajax/ModuleSettings.aspx", { mid: id, tid: tid, lang: lang }, function()
	{
		if (id == -1)
		{
			// set moduleid
			$('#msModuleID', $("#ib2ModuleSettings")).val(id);
			$('#msTabID', $("#ib2ModuleSettings")).val(id);
			// show on center screen
			$('#ib2ModuleSettings').fixedBox();
			return;
		}

		var data = new Object();
		//data.method = "GetModuleSettings";
		data.mid = id;
		data.tid = tid;

		//	DoGet
		//$.ajaxDotNet("/Ajax/Service.svc/GetModuleSettings", {		
		$.ajaxDotNet(ajaxurl + "GetModuleSettings", {
			verb: "GET",
			data: data,
			success: function(obj)
			{
				obj = obj.d;

				$('#msModuleID', $("#ib2ModuleSettings")).val(obj.id);
				$('#msTabID', $("#ib2ModuleSettings")).val(obj.tid);

				$('#msTitle', $("#ib2ModuleSettings")).val(obj.title);
				$('#msFriendlyName', $("#ib2ModuleSettings")).val(obj.friendlyName);
				$('#msHeader', $("#ib2ModuleSettings")).val(obj.header);
				$('#msFooter', $("#ib2ModuleSettings")).val(obj.footer);
				$('#msContainers', $("#ib2ModuleSettings")).val(obj.containerID);
				$('#msCacheTime', $("#ib2ModuleSettings")).val(obj.cacheTime);

				if (obj.displayContainer)
					$('#msDisplayContainer', $("#ib2ModuleSettings")).check();
				else
					$('#msDisplayContainer', $("#ib2ModuleSettings")).uncheck();
				if (obj.allowPrint)
					$('#msAllowPrint', $("#ib2ModuleSettings")).check();
				else
					$('#msAllowPrint', $("#ib2ModuleSettings")).uncheck();
				if (obj.printRemoveButtons)
					$('#msPrintRemoveButtons', $("#ib2ModuleSettings")).check();
				else
					$('#msPrintRemoveButtons', $("#ib2ModuleSettings")).uncheck();
				if (obj.allowExportDocx)
					$('#msAllowExportDocx', $("#ib2ModuleSettings")).check();
				else
					$('#msAllowExportDocx', $("#ib2ModuleSettings")).uncheck();
				if (obj.allowExportXlsx)
					$('#msAllowExportXlsx', $("#ib2ModuleSettings")).check();
				else
					$('#msAllowExportXlsx', $("#ib2ModuleSettings")).uncheck();
				if (obj.allowExportPdf)
					$('#msAllowExportPdf', $("#ib2ModuleSettings")).check();
				else
					$('#msAllowExportPdf', $("#ib2ModuleSettings")).uncheck();
				if (obj.allowRSS)
					$('#msAllowRSS', $("#ib2ModuleSettings")).check();
				else
					$('#msAllowRSS', $("#ib2ModuleSettings")).uncheck();
				if (obj.inheritPermissions)
					$('#msInheritPermissions', $("#ib2ModuleSettings")).check();
				else
					$('#msInheritPermissions', $("#ib2ModuleSettings")).uncheck();
				if (obj.addToNewTab)
					$('#msAddToNewTab', $("#ib2ModuleSettings")).check();
				else
					$('#msAddToNewTab', $("#ib2ModuleSettings")).uncheck();
				
				//showOverlay();

				// show on center screen
				$('#ib2ModuleSettings').fixedBox();
			}
		});
	});
}

function SaveModuleSettings(mode, lang)
{
	var ams = new Object();
	ams.__type = "AjaxModuleSettings"
	ams.lang = lang;
	ams.id = $('#msModuleID', $("#ib2ModuleSettings")).val();
	ams.tid = $('#msTabID', $("#ib2ModuleSettings")).val();
	ams.title = $('#msTitle', $("#ib2ModuleSettings")).val();
	ams.settings = getSettings('#settings');
	ams.categories = getCategories('#settings');
	ams.permissions = getPermissions('#ib2Permissions');

	ams.friendlyName = $('#msFriendlyName', $("#ib2ModuleSettings")).val();
	ams.header = $('#msHeader', $("#ib2ModuleSettings")).val();
	ams.footer = $('#msFooter', $("#ib2ModuleSettings")).val();
	ams.containerID = $('#msContainers', $("#ib2ModuleSettings")).val();
	ams.cacheTime = $('#msCacheTime', $("#ib2ModuleSettings")).val();

	ams.displayContainer = $('#msDisplayContainer', $("#ib2ModuleSettings")).attr('checked');
	ams.allowPrint = $('#msAllowPrint', $("#ib2ModuleSettings")).attr('checked');
	ams.printRemoveButtons = $('#msPrintRemoveButtons', $("#ib2ModuleSettings")).attr('checked');
	ams.allowExportDocx = $('#msAllowExportDocx', $("#ib2ModuleSettings")).attr('checked');
	ams.allowExportXlsx = $('#msAllowExportXlsx', $("#ib2ModuleSettings")).attr('checked');
	ams.allowExportPdf = $('#msAllowExportPdf', $("#ib2ModuleSettings")).attr('checked');
	ams.allowRSS = $('#msAllowRSS', $("#ib2ModuleSettings")).attr('checked');
	ams.inheritPermissions = $('#msInheritPermissions', $("#ib2ModuleSettings")).attr('checked');
	ams.addToNewTab = $('#msAddToNewTab', $("#ib2ModuleSettings")).attr('checked');	

	ams.shadowTo = getShadowIDs('#msDisplayModuleOn');
	ams.copyTo = getCopyIDs('#msDisplayModuleOn');	

	var data = new Object();
	//data.method = "SetModuleSettings";
	data.ams = ams;
	//data.values = ams;

	//$.ajaxDotNet("/Ajax/Service.svc/SetModuleSettings", {
	if (mode == "translate")
	{
		$.ajaxDotNet(ajaxurl + "TranslateModuleSettings", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					CloseModuleSettings();
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}
	else
	{
		$.ajaxDotNet(ajaxurl + "SetModuleSettings", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					CloseModuleSettings();
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}
}

function getShadowIDs(display_id)
{
	var dict = new Array();

	if (!$('#rdoShadow').attr('checked')) return dict;

	$("input[type='checkbox'].shadow", $(display_id)).each(function(i)
	{
		if ($(this).attr("checked"))
		{
			dict.push($(this).val());
		}
	});

	return dict;
}

function getCopyIDs(display_id)
{
	var dict = new Array();

	if (!$('#rdoCopy').attr('checked')) return dict;

	$("input[type='checkbox'].copy", $(display_id)).each(function(i)
	{
		if ($(this).attr("checked"))
		{
			dict.push($(this).val());
		}
	});

	return dict;
}

function SwitchCopyAction(display_id)
{
	if ($('#rdoCopy').attr('checked'))
	{
		$("input[type='checkbox']", $(display_id)).each(function(i)
		{
			if ($(this).hasClass("shadow"))
				$(this).hide()
			else if ($(this).hasClass("copy"))
				$(this).show()
		});		
	}
	else
	{
		$("input[type='checkbox']", $(display_id)).each(function(i)
		{
			if ($(this).hasClass("shadow"))
				$(this).show()
			else if ($(this).hasClass("copy"))
				$(this).hide()
		});	
	}
}

function SelectAllTabs(display_id)
{
	var state = $('#chbSelectAllTabs').attr("checked");
	if ($('#rdoCopy').attr('checked'))
	{
		$("input[type='checkbox'].copy", $(display_id)).each(function(i)
		{
			if ($(this).attr('disabled')) return;
			if (state)
				$(this).check();
			else
				$(this).uncheck();
		});
	}
	else
	{
		$("input[type='checkbox'].shadow", $(display_id)).each(function(i)
		{
			if ($(this).attr('disabled')) return;
			if (state)
				$(this).check();
			else if (!$(this).hasClass("current"))
				$(this).uncheck();
		});
	}
}

function getSettings(settings_id)
{
	//	<div id="settings">
	//		<table width="90%" cellspacing="0" cellpadding="0" border="0">
	//			<tbody>
	//				<tr class="settings_row">
	//					<td class="settings_key settings_left_col"><span id="ctl00_orientation">Orientation: </span></td>
	//					<td class="settings_value settings_right_col"></td>
	//				</tr>
	//			</tbody>
	//		</table>
	//	</div>

	var dict = new Array();

	$('.settings_row', $(settings_id)).each(function(i)
	{
		// TODO: dodać rozpoznanwanie radiobutton list
		var id = $('span', $('.settings_key', $(this))).attr('id');
		id = id.split("_")[0] + "_" + id.split("_")[id.split("_").length - 1].substring(3);

		var key = $('#' + id, $('.settings_value', $(this))).attr('name');		
		if (key != null)
			key = key.split("$")[key.split("$").length - 1];
		else
		{
			// odczyt właściwośći name dla span
			key = $('#' + id, $('.settings_value', $(this))).attr('id');			
			if (key != null)
				key = key.split("_")[key.split("_").length - 1];
			//if (key == null)
			//	return;
		}

		var value = '';
		if ($("#" + id + "[type='checkbox']", $('.settings_value', $(this))).get(0) != null) // is checkbox
		{
			//alert("is checkbox: " + id);
			value = $('#' + id, $('.settings_value', $(this))).attr('checked');
		}
		else if ($('.settings_value span:first-child', $(this)).get(0) != null) // is checkbox list
		{
			key = id.substring(6);
			//alert("is checkbox list: " + id);
			$("input[type='checkbox']", $('.settings_value span:first-child', $(this))).each(function(j)
			{
				if ($(this).attr('checked'))
				{
					////ctl00_LIST_0
					//var v = $(this).attr('name');
					//v = v.split("$")[v.split("$").length - 1];
					//value += v + ";";
					//com1
					var v = $(this).attr('id');
					v = v.substring(3);
					value += v + ";";					
				}
			});
			if (value.length > 0)
			{
				value = value.substring(0, value.length - 1);
			}
		}
		else
		{
			//alert("else: " + id);
			value = $('#' + id, $('.settings_value', $(this))).val();
		}
		
		dict.push(key + '$' + value);
	});

	return dict;
}

function getCategories(settings_id)
{
	var dict = new Array();

	$('.settings_row', $(settings_id)).each(function(i)
	{
		var id = $('span', $('.settings_key', $(this))).attr('id');
		id = id.split("_")[0] + "_" + id.split("_")[id.split("_").length - 1].substring(3);

		// odczyt właściwośći name dla span
		var key = $('#' + id, $('.settings_value', $(this))).attr('id');					

		var value = '';
		if ($('.settings_value span:first-child', $(this)).get(0) != null) // is checkbox list
		{
			$("input[type='checkbox']", $('.settings_value span:first-child', $(this))).each(function(j)
			{				
				if ($(this).attr('checked'))
				{
					//cat1
					var v = $(this).attr('id');					
					v = v.substring(3);					
					value += v + ";";
				}
			});
			if (value.length > 0)
			{
				value = value.substring(0, value.length - 1);

				dict.push(key + '$' + value);
			}
		}
	});
		
	return dict;
}

function getPermissions(permissions_id)
{

	//	<div id="ib2permissions">
	//		<div>
	//			<input type="checkbox" checked="checked" name="chbroles" id="chbroles"/><label for="chbroles">roles</label>			
	//			<input type="checkbox" checked="checked" name="chbgroups" id="chbgroups"/><label for="chbgroups">groups</label>			
	//			<input type="checkbox" checked="checked" name="chbusers" id="chbusers"/><label for="chbusers">users</label>
	//			<input type="submit" id="btnfullscrean" onclick="javascript:webform_dopostbackwithoptions(new webform_postbackoptions(&quot;btnfullscrean&quot;, &quot;&quot;, false, &quot;&quot;, &quot;javascript:alert(\&#39;not%20implemented%20yet\&#39;);&quot;, false, false))" value="[fs]" name="btnfullscrean"/>			
	//		</div>
	//		<table>
	//			<tbody>
	//				<tr>
	//					<td/>
	//					<td align="center"><span title="view">v</span></td>
	//					<td align="center"><span title="edit">e</span></td>
	//					<td align="center"><span title="translate">t</span></td>
	//					<td align="center"><span title="quicktranslate">q</span></td>
	//					<td align="center"><span title="publish">p</span></td>
	//				</tr>
	//				<tr class="permission_row">
	//					<td>[r]administrate</td>
	//					<td align="center"><input type="checkbox" value="r|1|view"/></td>
	//					<td align="center"><input type="checkbox" value="r|1|edit"/></td>
	//					<td align="center"><input type="checkbox" value="r|1|translate"/></td>
	//					<td align="center"><input type="checkbox" value="r|1|quicktranslate"/></td>
	//					<td align="center"><input type="checkbox" value="r|1|publish"/></td>
	//				</tr>
	//			</tbody>
	//		</table>
	//	</div>


	var dict = new Array();

	$('.permission_row', $(permissions_id)).each(function(i)
	{
		$("input[type='checkbox']", $(this)).each(function(j)
		{
			if ($(this).attr("disabled") == false)
			{
				dict.push($(this).val() + '|' + $(this).attr('checked'));
			}
		});
	});

	return dict;
}

function CloseModuleSettings()
{
	$('#ib2ModuleSettings').hide();
	$('#ib2ModuleSettings').html('');

	hideOverlay();
}

function DeleteModule(tabID, moduleID)
{
	if (!confirm('Are you sure you want to delete module?')) return;

	var data = new Object();
	data.tabID = tabID;
	data.moduleID = moduleID;

	$.ajaxDotNet(ajaxurl + "DeleteModule", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function PublishModule(id)
{
	if (!confirm('Are you sure you want to publish module?')) return;

	var data = new Object();
	if (!id)
		data.moduleID = parseInt($('#msModuleID', $("#ib2ModuleSettings")).val())
	else
		data.moduleID = id;

	$.ajaxDotNet(ajaxurl + "PublishModule", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function ShowTabSettings(id, lang)
{
	showOverlay();
	
	$('#ib2TabSettings').load("/ajax/TabSettings.aspx", { tid: id, lang: lang }, function()
	{
		if (id == -1)
		{
			// set tabid
			$('#tsTabID', $("#ib2TabSettings")).val(id);

			$('#tsIncludeInMenu', $("#ib2TabSettings")).check();

			//showOverlay();

			// show on center screen
			$('#ib2TabSettings').fixedBox();
			return;
		}

		var data = new Object();
		data.tid = id;

		//	DoGet
		$.ajaxDotNet(ajaxurl + "GetTabSettings", {
			verb: "GET",
			data: data,
			success: function(obj)
			{
				obj = obj.d;

				$('#tsTabID', $("#ib2TabSettings")).val(obj.id);
				$('#tsName', $("#ib2TabSettings")).val(obj.name);
				$('#tsTitle', $("#ib2TabSettings")).val(obj.title);

				$('#tsDescription', $("#ib2TabSettings")).val(obj.description);
				$('#tsKeywords', $("#ib2TabSettings")).val(obj.keywords);
				$('#tsPageHeader', $("#ib2TabSettings")).val(obj.pageHeader);

				UrlTypeChange(obj.urlType);
				$('input', $('#urlTypes', $("#ib2TabSettings"))).each(function(i)
				{
					if (i == obj.urlType)
						$(this).check();
				});
				switch (obj.urlType)
				{
					case 0:
					default:
						break;
					case 1:
						$('#urlLocation', $("#ib2TabSettings")).val(obj.url);
						break;
					case 2:
						$('#ddlPages', $("#ib2TabSettings")).val(obj.url);
						break;
					case 3:
						break;
				}

				if (obj.replaceDescription)
					$('#tsReplaceDescription', $("#ib2TabSettings")).check();
				else
					$('#tsReplaceDescription', $("#ib2TabSettings")).uncheck();

				if (obj.replaceKeywords)
					$('#tsReplaceKeywords', $("#ib2TabSettings")).check();
				else
					$('#tsReplaceKeywords', $("#ib2TabSettings")).uncheck();

				if (obj.includeInMenu)
					$('#tsIncludeInMenu', $("#ib2TabSettings")).check();
				else
					$('#tsIncludeInMenu', $("#ib2TabSettings")).uncheck();

				if (obj.isDisabled)
					$('#tsIsDisabled', $("#ib2TabSettings")).check();
				else
					$('#tsIsDisabled', $("#ib2TabSettings")).uncheck();

				if (obj.skinID != -1)
					$('#tsSkins', $("#ib2TabSettings")).val(obj.skinID);
				if (obj.containerID != -1)
					$('#tsContainers', $("#ib2TabSettings")).val(obj.containerID);
				if (obj.refreshInterval != -1)
					$('#tsRefreshInterval', $("#ib2TabSettings")).val(obj.refreshInterval);

				$('#tsParent', $("#ib2TabSettings")).val(obj.parentPageID);

				//showOverlay();

				// show on center screen
				$('#ib2TabSettings').fixedBox();
			}
		});
	});
}

function SaveTabSettings(mode, lang)
{	
	if ($('#tsName', $("#ib2TabSettings")).val() == '')
	{
		alert('Name is required');
		return;
	}	
	if ($('#tsTitle', $("#ib2TabSettings")).val() == '')
	{
		alert('Title is required');
		return;
	}	

	var ats = new Object();
	ats.__type = "AjaxTabSettings"
	ats.lang = lang;
	ats.id = $('#tsTabID', $("#ib2TabSettings")).val();
	ats.name = $('#tsName', $("#ib2TabSettings")).val();
	ats.title = $('#tsTitle', $("#ib2TabSettings")).val();

	ats.description = $('#tsDescription', $("#ib2TabSettings")).val();
	ats.keywords = $('#tsKeywords', $("#ib2TabSettings")).val();
	ats.pageHeader = $('#tsPageHeader', $("#ib2TabSettings")).val();
	ats.urlType = parseInt($('#urlType', $("#ib2TabSettings")).val());

	switch (ats.urlType)
	{
		case 0:
		default:
			ats.url = ''; 
			break;
		case 1:
			ats.url = $('#urlLocation', $("#ib2TabSettings")).val(); 
			break;
		case 2:
			ats.url = $('#ddlPages', $("#ib2TabSettings")).val(); 
			break;
		case 3:
			ats.url = ''; 		
			break;
	}	

	ats.replaceDescription = $('#tsReplaceDescription', $("#ib2TabSettings")).attr('checked');
	ats.replaceKeywords = $('#tsReplaceKeywords', $("#ib2TabSettings")).attr('checked');
	ats.includeInMenu = $('#tsIncludeInMenu', $("#ib2TabSettings")).attr('checked');
	ats.isDisabled = $('#tsIsDisabled', $("#ib2TabSettings")).attr('checked');
	ats.isSecured = $('#tsIsSecured', $("#ib2TabSettings")).attr('checked');
	ats.refreshInterval = $('#tsRefreshInterval', $("#ib2TabSettings")).val() == "" ? -1 : parseInt($('#tsRefreshInterval', $("#ib2TabSettings")).val());
	ats.skinID = parseInt($('#tsSkins', $("#ib2TabSettings")).val());
	ats.containerID = parseInt($('#tsContainers', $("#ib2TabSettings")).val());
	ats.parentPageID = parseInt($('#tsParent', $("#ib2TabSettings")).val());

	ats.permissions = getPermissions('#ib2Permissions');

	var data = new Object();
	data.ats = ats;

	if (mode == "translate")
	{
		$.ajaxDotNet(ajaxurl + "TranslateTabSettings", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					CloseTabSettings();
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}
	else
	{
		$.ajaxDotNet(ajaxurl + "SetTabSettings", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					CloseTabSettings();
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}
}

function CloseTabSettings()
{
	$('#ib2TabSettings').hide();
	$('#ib2TabSettings').html('');

	hideOverlay();
}

function ShowTabTranslate(id, lang)
{
	showOverlay();
	
	$('#ib2TabSettings').load("/ajax/TabTranslate.aspx", { tid: id, lang: lang }, function()
	{
		if (id == -1)
		{
			// set tabid
			$('#tsTabID', $("#ib2TabSettings")).val(id);

			$('#tsIncludeInMenu', $("#ib2TabSettings")).check();

			//showOverlay();

			// show on center screen
			$('#ib2TabSettings').fixedBox();
			return;
		}

		var data = new Object();
		data.tid = id;

		//	DoGet
		$.ajaxDotNet(ajaxurl + "GetTabSettings", {
			verb: "GET",
			data: data,
			success: function(obj)
			{
				obj = obj.d;

				$('#tsTabID', $("#ib2TabSettings")).val(obj.id);
				$('#tsName', $("#ib2TabSettings")).val(obj.name);
				$('#tsTitle', $("#ib2TabSettings")).val(obj.title);

				$('#tsDescription', $("#ib2TabSettings")).val(obj.description);
				$('#tsKeywords', $("#ib2TabSettings")).val(obj.keywords);
				$('#tsPageHeader', $("#ib2TabSettings")).val(obj.pageHeader);
				
				//showOverlay();

				// show on center screen
				$('#ib2TabSettings').fixedBox();
			}
		});
	});
}

function SaveTabTranslate(mode, lang)
{	
	if ($('#tsName', $("#ib2TabSettings")).val() == '')
	{
		alert('Name is required');
		return;
	}	
	if ($('#tsTitle', $("#ib2TabSettings")).val() == '')
	{
		alert('Title is required');
		return;
	}	

	var ats = new Object();
	ats.__type = "AjaxTabSettings"
	ats.lang = lang;
	ats.id = $('#tsTabID', $("#ib2TabSettings")).val();
	ats.name = $('#tsName', $("#ib2TabSettings")).val();
	ats.title = $('#tsTitle', $("#ib2TabSettings")).val();

	ats.description = $('#tsDescription', $("#ib2TabSettings")).val();
	ats.keywords = $('#tsKeywords', $("#ib2TabSettings")).val();
	ats.pageHeader = $('#tsPageHeader', $("#ib2TabSettings")).val();
	
	var data = new Object();
	data.ats = ats;

	if (mode == "translate")
	{
		$.ajaxDotNet(ajaxurl + "TranslateTabSettings", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					CloseTabSettings();
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}	
}

function DeleteTab(tabID)
{
	if (!confirm('Are you sure you want to delete tab?')) return;

	var data = new Object();
	data.tabID = tabID;

	$.ajaxDotNet(ajaxurl + "DeleteTab", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				if (obj == 1)
				{
					// reaload page
					realoadPage();
				}
				else if (obj == -1)
				{
					alert('This is a parent page. Remove child pages from this page and try again.');
				}
				else 
				{
					alert('Cannot delete this page.');
				}
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function PublishTab(id)
{
	if (!confirm('Are you sure you want to publish tab?')) return;

	var data = new Object();
	if (!id)
		data.tabID = parseInt($('#tsTabID', $("#ib2TabSettings")).val())
	else
		data.tabID = id;

	$.ajaxDotNet(ajaxurl + "PublishTab", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function PublishTabCascade(id)
{
	if (!confirm('Are you sure you want to publish tab and all modules?')) return;

	var data = new Object();
	if (!id)
		data.tabID = parseInt($('#tsTabID', $("#ib2TabSettings")).val())
	else
		data.tabID = id;

	$.ajaxDotNet(ajaxurl + "PublishTabCascade", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function PublishPortal(id)
{
	if (!confirm('Are you sure you want to publish portal?')) return;

	var data = new Object();
	data.portalID = id;

	$.ajaxDotNet(ajaxurl + "PublishPortal", {
		verb: "POST",
		data: data,
		success: function(obj)
		{
			obj = obj.d;
			if (obj)
			{
				// reaload page
				realoadPage();
			}
			else
				logEvent('ERROR', "error");
		}
	});
}

function ModuleAction(tid, mid, status, direction, pane, url)
{
	if ((direction != null && direction != '') || (pane != null && pane != ''))
	{
		var ama = new Object();
		ama.__type = "AjaxModuleAction"
		ama.tid = tid;
		ama.mid = mid;
		ama.status = status;
		ama.pane = pane;
		ama.direction = direction;

		var data = new Object();
		data.ama = ama;

		$.ajaxDotNet(ajaxurl + "ModuleAction", {
			verb: "POST",
			data: data,
			success: function(obj)
			{
				obj = obj.d;
				if (obj)
				{
					// reaload page
					realoadPage();
				}
				else
					logEvent('ERROR', "error");
			}
		});
	}
	else if (url != null && url != '')
	{
		location.href = url;
	}
	else
	{
		alert('Direction, pane or url not set');
	}
}

function Print(mid)
{
	alert('not implemented yet');
}

function Export(type, tid, mid, action)
{
	location.href = '/Handlers/Export.ashx?type=' + type + '&tid=' + tid + '&mid=' + mid + '&action=' + action;
}

function Rss(tid, mid, action, lang)
{
	//alert('not implemented yet');
	location.href = '/rss.aspx?tid=' + tid + '&mid=' + mid + '&action=' + action+ '&lang=' + lang;
}

// Set Ajax Globals#
$.ajaxDotNet.globals({
	//		beforeSend: function(xhr)
	//		{
	//			logEvent("global before send");
	//			return xhr;
	//		},
	//		processData: function(r)
	//		{
	//			logEvent("global process data");
	//			return r;
	//		},
	//		success: function()
	//		{
	//			logEvent("global success");
	//		},		
	//		complete: function()
	//		{
	//			logEvent("global complete");
	//		},
	error: function()
	{
		logEvent("global error", "error");
	}
});

//	Set Ajax Defaults
$.ajaxDotNet.defaults({
	//	beforeSend: function(xhr)
	//	{
	//		logEvent("before send");
	//		return xhr;
	//	},
	//	processData: function(r)
	//	{
	//		logEvent("process data");
	//		return r;
	//	},
	//	success: function()
	//	{
	//		logEvent("success");
	//	},	
	//	complete: function()
	//	{
	//		logEvent("complete");
	//	},
	error: function()
	{
		logEvent("error", "error");
	}
});

//	Log Event
function logEvent(eventName, css)
{
	//	var li = document.createElement("li");

	//	if (typeof css == "string")
	//	{
	//		li.setAttribute("class", css);
	//		li.setAttribute("className", css);
	//	}

	//	li.appendChild(document.createTextNode(eventName + " " + new Date().format("HH:MM:ss.l")));
	//	$("#events").append(li);

	alert(eventName);
};

function showOverlay()
{
	// Apply the HTML markup into body tag
	$('body').append('<div id="jquery-overlay"></div>');
		
	// Get page sizes
	var arrPageSizes = ___getPageSize();
	// Style overlay and show it
	$('#jquery-overlay').css({
		backgroundColor: '#000',
		opacity: 0.8,
		width: arrPageSizes[0],
		height: arrPageSizes[1]
	}).fadeIn();

	// Assigning click events in elements to close overlay
	$('#jquery-overlay').click(function()
	{
		//CloseModuleSettings();
	});
	
	// add ajax indicator
	$('#jquery-overlay').append('<div id="loader" style="line-height:115px;text-align:center;width:300px;height:80px;background-color:white;padding-top:25px;border:3px solid blue;"><img alt="activity indicator" src="/images/progress.gif"></div>');
	$('#loader').fixedBox();
}

function hideOverlay()
{
	//$('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
	$('#jquery-overlay').remove();
	// Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
	$('embed, object, select').css({ 'visibility': 'visible' });
}

function realoadPage()
{
	//location.reload();
	location.href = location.href;
}

/* ----------- Layout Gallery ------------- */

function GalleryGetIndex(key)
{							
	return key.split("_")[key.split("_").length - 1];
}

function GalleryCheckPossition(li)
{
	if (li.prev().length == 0)
	{
		$('img.galleryUp', li).attr('src', '/images/lightbox-blank.gif');
		$('img.galleryDown', li).attr('src', '/images/down.gif');
	}							
	else if (li.next().length == 0)
	{
		$('img.galleryUp', li).attr('src', '/images/up.gif');
		$('img.galleryDown', li).attr('src', '/images/lightbox-blank.gif');
	}
	else
	{
		$('img.galleryUp', li).attr('src', '/images/up.gif');
		$('img.galleryDown', li).attr('src', '/images/down.gif');
	}
}		

/**
/ THIRD FUNCTION
* getPageSize() by quirksmode.com
*
* @return Array Return an array with page width, height and window width, height
*/
function ___getPageSize()
{
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY)
	{
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight)
	{ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else
	{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight)
	{	// all except Explorer
		if (document.documentElement.clientWidth)
		{
			windowWidth = document.documentElement.clientWidth;
		} else
		{
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight)
	{ // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body)
	{ // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	// for small pages with total height less then height of the viewport
	if (yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	} else
	{
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if (xScroll < windowWidth)
	{
		pageWidth = xScroll;
	} else
	{
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
	return arrayPageSize;
};

