/**
 * SWFObject v1.5.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept == "undefined") var deconcept = {};
if(typeof deconcept.util == "undefined") deconcept.util = {};
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = {};
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = {};
	this.variables = {};
	this.attributes = [];
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	if (!window.opera && document.all && this.installedVer.major > 7) {
		// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
		// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
		if (!deconcept.unloadSet) {
			deconcept.SWFObjectUtil.prepUnload = function() {
				__flash_unloadHandler = function(){};
				__flash_savedUnloadHandler = function(){};
				window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
			}
			window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
			deconcept.unloadSet = true;
		}
	}
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', false);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
	useExpressInstall: function(path) {
		this.xiSWFPath = !path ? "expressinstall.swf" : path;
		this.setAttribute('useExpressInstall', true);
	},
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name] || "";
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name] || "";
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = [];
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs[variablePairs.length] = key +"="+ variables[key];
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "PlugIn");
				this.setAttribute('swf', this.xiSWFPath);
			}
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ (this.getAttribute('style') || "") +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "ActiveX");
				this.setAttribute('swf', this.xiSWFPath);
			}
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ (this.getAttribute('style') || "") +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
		var axo = 1;
		var counter = 3;
		while(axo) {
			try {
				counter++;
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
//				document.write("player v: "+ counter);
				PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
			} catch (e) {
				axo = null;
			}
		}
	} else { // Win IE (non mobile)
		// do minor version lookup in IE, but avoid fp6 crashing issues
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}catch(e){
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {
				if (PlayerVersion.major == 6) {
					return PlayerVersion;
				}
			}
			try {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch(e) {}
		}
		if (axo != null) {
			PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param) {
		var q = document.location.search || document.location.hash;
		if (param == null) { return q; }
		if(q) {
			var pairs = q.substring(1).split("&");
			for (var i=0; i < pairs.length; i++) {
				if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
					return pairs[i].substring((pairs[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function(doc) {
	var objects = (doc) ? doc.getElementsByTagName("OBJECT") : document.getElementsByTagName("OBJECT");
	for (var i = objects.length - 1; i >= 0; i--) {
		objects[i].style.display = 'none';
		for (var x in objects[i]) {
			if (typeof objects[i][x] == 'function') {
				objects[i][x] = function(){};
			}
		}
	}
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;

	/*
	 * Thickbox 2.1 - jQuery plugin for displaying content in a box above the page
	 * 
	 * Copyright (c) 2006, 2007 Cody Lindley (http://www.codylindley.com)
	 *
	 * Licensed under the MIT License:
	 *   http://www.opensource.org/licenses/mit-license.php
	 */
	
	
	// add thickbox to href elements that have a class of .thickbox
	function TB_init(){
		jQuery("a.thickbox").click(function(event){
			// stop default behaviour
			event.preventDefault();
			// remove click border
			//this.blur();
		
			// get caption: either title or name attribute
			var caption = this.title || this.name || "";
			
			// get rel attribute for image groups
			var group = this.rel || false;
			
			// display the box for the elements href
			TB_show(caption, jQuery(this).attr('href'), group);
		});
	}
	
	// on page load call TB_init
	jQuery(document).ready(TB_init);
	// called when the user clicks on a thickbox link
	function TB_show(caption, url, rel) {
	
		// create iframe, overlay and box if non-existent
		if ( !jQuery("#TB_HideSelect").length ) {
			jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
			jQuery("#TB_overlay").click(TB_remove);
		}
		// TODO replace or check if event is already assigned
		jQuery(window).scroll(TB_position);
		
		// TODO replace
		TB_overlaySize();
		
		// TODO create loader only once, hide and show on demand
		jQuery("body").append("<div id='TB_load'><img src='images/loadingAnimation.gif' /></div>");
		TB_load_position();
		
		// check if a query string is involved
		var baseURL = url.match(/(.+)?/)[1] || url;
	
		// regex to check if a href refers to an image
		var imageURL = /\.(jpe?g|png|gif|bmp)/gi;
		var flashURL = /\.(flv)/gi;
	
		// check for images
		if ( baseURL.match(imageURL) ) {
			var dummy = { caption: "", url: "", html: "" };
			
			var prev = dummy,
				next = dummy,
				imageCount = "";
				
			// if an image group is given
			if ( rel ) {
				function getInfo(image, id, label) {
					return {
						caption: image.title,
						url: image.href,
						html: "<span id='TB_" + id + "'>&nbsp;&nbsp;<a href='#'>" + label + "</a></span>"
					}
				}
			
				// find the anchors that point to the group
				var imageGroup = jQuery("a[@rel="+rel+"]").get();
				var foundSelf = false;
				
				// loop through the anchors, looking for ourself, saving information about previous and next image
				for (var i = 0; i < imageGroup.length; i++) {
					var image = imageGroup[i];
					var urlTypeTemp = image.href.match(imageURL);
					
					// look for ourself
					if ( image.href == url ) {
						foundSelf = true;
						imageCount = "Bild " + (i + 1) + " von "+ (imageGroup.length);
					} else {
						// when we found ourself, the current is the next image
						if ( foundSelf ) {
							next = getInfo(image, "next", "next &gt;");
							// stop searching
							break;
						} else {
							// didn't find ourself yet, so this may be the one before ourself
							prev = getInfo(image, "prev", "&lt; prev");
						}
					}
				}
			}
			
			imgPreloader = new Image();
			imgPreloader.onload = function() {
				imgPreloader.onload = null;
	
				// Resizing large images
				var pagesize = TB_getPageSize();
				var x = pagesize[0] - 150;
				var y = pagesize[1] - 150;
				var imageWidth = imgPreloader.width;
				var imageHeight = imgPreloader.height;
				if (imageWidth > x) {
					imageHeight = imageHeight * (x / imageWidth); 
					imageWidth = x; 
					if (imageHeight > y) { 
						imageWidth = imageWidth * (y / imageHeight); 
						imageHeight = y; 
					}
				} else if (imageHeight > y) { 
					imageWidth = imageWidth * (y / imageHeight); 
					imageHeight = y; 
					if (imageWidth > x) { 
						imageHeight = imageHeight * (x / imageWidth); 
						imageWidth = x;
					}
				}
				// End Resizing
				
				// TODO don't use globals
				TB_WIDTH = imageWidth + 30;
				TB_HEIGHT = imageHeight + 60;
				
				// TODO empty window content instead
				jQuery("#TB_window").append("<a href='' id='TB_ImageOff' title='Schliessen'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + imageCount + prev.html + next.html + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Schliessen'>Schliessen</a></div>");
				
				jQuery("#TB_closeWindowButton").click(TB_remove);
				
				function buildClickHandler(image) {
					return function() {
						jQuery("#TB_window").remove();
						jQuery("body").append("<div id='TB_window'></div>");
						TB_show(image.caption, image.url, rel);
						return false;
					};
				}
				var goPrev = buildClickHandler(prev);
				var goNext = buildClickHandler(next);
				if ( prev.html ) {
					jQuery("#TB_prev").click(goPrev);
				}
				
				if ( next.html ) {		
					jQuery("#TB_next").click(goNext);
				}
				
				// TODO use jQuery, maybe with event fix plugin, or just get the necessary parts of it
				document.onkeydown = function(e) {
					if (e == null) { // ie
						keycode = event.keyCode;
					} else { // mozilla
						keycode = e.which;
					}
					switch(keycode) {
					case 27:
						TB_remove();
						break;
					case 190:
						if( next.html ) {
							document.onkeydown = null;
							goNext();
						}
						break;
					case 188:
						if( prev.html ) {
							document.onkeydown = null;
							goPrev();
						}
						break;
					}
				}
				
				// TODO don't remove loader etc., just hide and show later
				TB_position();
				jQuery("#TB_load").remove();
				jQuery("#TB_ImageOff").click(TB_remove);
				
				// for safari using css instead of show
				// TODO is that necessary? can't test safari
				jQuery("#TB_window").css({display:"block"});
			}
			imgPreloader.src = url;
			
		} else if ( baseURL.match(flashURL) ){
			var queryString = url.match(/\?(.+)/), params;
			if(queryString && queryString[1]){
				params = TB_parseQuery( queryString[1] );
				flashURL = url.match(/(.+)\?/)[1];
				
			}
			if(!params && !params.player){
				return false;
			}
			var so = new SWFObject(params.player, "flvPlayer", "100%", "100%", "8", "#000000");
			
			
			so.addParam("menu", "true");
			so.addParam("wmode", "transparent");
			so.addVariable("HTMLInit", "true");
			so.addVariable("flvURI", flashURL);
			so.addVariable("buffertime", "5");
			so.addVariable("playerSkin", "hausgeraete");
			TB_WIDTH = 220;
			TB_HEIGHT = 190;
			
			
			TB_position();
			jQuery("#TB_window").addClass('flash').css({display:"block"}).append('<div id="TB_close"><a href="#">X</a></div>');
			//<div id="TB_close"><a href="#">X</a></div>
			so.write(jQuery("#TB_window")[0]);
			jQuery('<div id="TB_close"></div>').appendTo("#TB_window").click(closeBox);
			
		} else { //code to show html pages
			
			var queryString = url.match(/\?(.+)/)[1];
			var params = TB_parseQuery( queryString );
			
			TB_WIDTH = (params['width']*1) + 30;
			TB_HEIGHT = (params['height']*1) + 40;
	
			var ajaxContentW = TB_WIDTH - 30,
				ajaxContentH = TB_HEIGHT - 45;
			
			if(url.indexOf('TB_iframe') != -1){				
				urlNoQuery = url.split('TB_');		
				jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' onload='TB_showIframe()'> </iframe>");
			} else {
				jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
			}
					
			jQuery("#TB_closeWindowButton").click(TB_remove);
			
				if(url.indexOf('TB_inline') != -1){	
					jQuery("#TB_ajaxContent").html(jQuery('#' + params['inlineId']).html());
					TB_position();
					jQuery("#TB_load").remove();
					jQuery("#TB_window").css({display:"block"}); 
				}else if(url.indexOf('TB_iframe') != -1){
					TB_position();
					if(frames['TB_iframeContent'] == undefined){//be nice to safari
						jQuery("#TB_load").remove();
						jQuery("#TB_window").css({display:"block"});
						jQuery(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} });
					}
				}else{
					jQuery("#TB_ajaxContent").load(url, function(){
						TB_position();
						jQuery("#TB_load").remove();
						jQuery("#TB_window").css({display:"block"}); 
					});
				}
			
		}
		
		jQuery(window).resize(TB_position);
		
		document.onkeyup = function(e){ 	
			if (e == null) { // ie
				keycode = event.keyCode;
			} else { // mozilla
				keycode = e.which;
			}
			if(keycode == 27){ // close
				TB_remove();
			}	
		}
			
	}
	
	//helper functions below
	
	function TB_showIframe(){
		jQuery("#TB_load").remove();
		jQuery("#TB_window").css({display:"block"});
	}
	
	function TB_remove() {
	 	jQuery("#TB_imageOff").unbind("click");
		jQuery("#TB_overlay").unbind("click");
		jQuery("#TB_closeWindowButton").unbind("click");
		deconcept.SWFObjectUtil.cleanupSWFs($('#TB_window')[0]);
		if(jQuery.browser.msie){
			setTimeout(function(){
				jQuery('#TB_window,#TB_overlay,#TB_HideSelect').remove();
				jQuery('select').removeClass('select-hide');
			}, 100);
		}
		jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').remove();});
		jQuery("#TB_load").remove();
		
		return false;
	}
	function closeBox(){
		if($.browser.msie){
			TB_remove();
		} else {
			setTimeout(function(){
				TB_remove();
			}, 0);
		}
	}
	function updateDivSize(newWidth, newHeight){
		TB_WIDTH = newWidth;
		TB_HEIGHT = newHeight;
		TB_position();
	}
	function TB_position() {
		var pagesize = TB_getPageSize();	
		var arrayPageScroll = TB_getPageScrollTop();
		var style = {height: TB_HEIGHT, width: TB_WIDTH, left: (arrayPageScroll[0] + (pagesize[0] - TB_WIDTH)/2), top: (arrayPageScroll[1] + (pagesize[1]-TB_HEIGHT)/2)};
		jQuery("#TB_window").css(style);
	}
	
	function TB_overlaySize(){
		if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {	
			yScroll = window.innerHeight + window.scrollMaxY;
			xScroll = window.innerWidth + window.scrollMaxX;
			var deff = document.documentElement;
			var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
			var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
			xScroll -= (window.innerWidth - wff);
			yScroll -= (window.innerHeight - hff);
		} else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac
			yScroll = document.body.scrollHeight;
			xScroll = document.body.scrollWidth;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			yScroll = document.body.offsetHeight;
			xScroll = document.body.offsetWidth;
	  	}
		jQuery("#TB_overlay").css({"height": yScroll, "width": xScroll});
		if(jQuery.browser.msie){
			//jQuery("#TB_HideSelect").css({"height": yScroll,"width": xScroll});
			jQuery('select').addClass('select-hide');
		}
	}
	
	function TB_load_position() {
		var pagesize = TB_getPageSize();
		var arrayPageScroll = TB_getPageScrollTop();
		jQuery("#TB_load")
			.css({left: (arrayPageScroll[0] + (pagesize[0] - 100)/2), top: (arrayPageScroll[1] + ((pagesize[1]-100)/2)) })
			.css({display:"block"});
	}
	
	function TB_parseQuery ( query ) {
		// return empty object
		if( !query )
			return {};
		var params = {};
		
		// parse query
		var pairs = query.split(/[;&]/);
		for ( var i = 0; i < pairs.length; i++ ) {
			var pair = pairs[i].split('=');
			if ( !pair || pair.length != 2 )
				continue;
			// unescape both key and value, replace "+" with spaces in value
			params[unescape(pair[0])] = unescape(pair[1]).replace(/\+/g, ' ');
	   }
	   return params;
	}
	
	function TB_getPageScrollTop(){
		var yScrolltop;
		var xScrollleft;
		if (self.pageYOffset || self.pageXOffset) {
			yScrolltop = self.pageYOffset;
			xScrollleft = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){	 // Explorer 6 Strict
			yScrolltop = document.documentElement.scrollTop;
			xScrollleft = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			yScrolltop = document.body.scrollTop;
			xScrollleft = document.body.scrollLeft;
		}
		arrayPageScroll = new Array(xScrollleft,yScrolltop); 
		return arrayPageScroll;
	}
	
	function TB_getPageSize(){
		var de = document.documentElement;
		var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
		var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
		arrayPageSize = new Array(w,h);
		return arrayPageSize;
	}


