var PopContents = {
	AjaxResponder			: 'http://www.aegondirekt.hu/tools/popcontents.php' ,
	OverlayIdBase			: 'PopOverlayContents' ,
	OverlayClassBase		: 'PopOverlayContents' ,
	SkinPath				: 'http://www.aegondirekt.hu/theme/ad2009/image/' ,
	SelectBug_HiddenFields	: { } ,
	GetPageSize				: function() {
		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;
		}
		return { 'width' : pageWidth , 'height' : pageHeight };
	} ,
	SelectBugHandler		: function(mode) {
		if (mode=='hide') {
			PopContents.SelectBug_HiddenFields = { };
			var fields = document.getElementsByTagName('select');
			for (i=0; i<fields.length; i++) {
				var tmpObj = fields.item(i);
				var tmpObjID = $(tmpObj).identify();
				if ($(tmpObj).visible) {
					PopContents.SelectBug_HiddenFields[ tmpObjID ] = $(tmpObj).getStyle('display');
					$(tmpObj).setStyle( { display : 'none' } );
				}
			}
		}
		if (mode=='show') {
			var originalValue = null;
			var objId = null;
			if (typeof(PopContents.SelectBug_HiddenFields)=="undefined") {
				PopContents.SelectBug_HiddenFields = { };
			}
			for (objId in PopContents.SelectBug_HiddenFields) {
				if ($(objId)!=null) {
					originalValue = PopContents.SelectBug_HiddenFields[ objId ] ;
					$(objId).setStyle( { display : ( PopContents.SelectBug_HiddenFields[ objId ] != null ? PopContents.SelectBug_HiddenFields[ objId ] : '' ) } );
				}
			}
			PopContents.SelectBug_HiddenFields = { };
		}
	} ,
	Static				: function(content) {
		PopContents.Pop( { 'type' : 'Static' , 'content' : content } );
		if (typeof(content)=='undefined') var content = '';
	} ,
	Ajax				: function(realm, id) {
		if (typeof(realm)=='undefined') var realm = '';
		if (typeof(id)=='undefined') var id = '';
		PopContents.Pop( { 'type' : 'Ajax' , 'realm' : realm , 'id' : id } );
	} ,
	Pop						: function(PopParams) {
		var OverlayID=PopContents.OverlayIdBase;
		var objBody = document.getElementsByTagName("body").item(0);
		PopContents.CloseStatic();
		PopContents.SelectBugHandler('hide');
		
		var OverlayContainerID = OverlayID+'_Container';
		if ($(OverlayContainerID)==null) {
			var objOverlayContainer = new Element('div', { 'id': OverlayContainerID , 'class': PopContents.OverlayClassBase+'_RelativeNull'}).update("");
			$(objBody).insert( { top: objOverlayContainer } );
		}

		var scrollPos = document.viewport.getScrollOffsets();
		var olPos = { 'top' : scrollPos['top']+30 , 'left' : (scrollPos['left']+30) } ;
		if (typeof(PopParams.mousePos)!="undefined") {
			olPos.top = PopParams.mousePos.posY;
			olPos.left = PopParams.mousePos.posX;
		}
		
		var objOverlay = new Element('div', { 'id': OverlayID , 'class': PopContents.OverlayClassBase}).update("adatok letöltése...");
		objOverlay.setStyle( {
			'top' : olPos.top + 'px' ,
			'left' : olPos.left + 'px'
			} );
//		objOverlay.setOpacity(0);
		$(OverlayContainerID).insert( { bottom: objOverlay } );

		var objShadow = new Element('div', { 'id': OverlayID+'_Shadow' , 'class': PopContents.OverlayClassBase+'_Shadow'}).update("&nbsp;");
		objShadow.setOpacity(0.8);
		$(OverlayContainerID).insert( objShadow );
		var objShadowSpacer = new Element('img', { 'src' : PopContents.SkinPath + 'popcontents_pixel.gif' , 'alt' : '' , 'title' : '' } );
		var PageSize = PopContents.GetPageSize()
		objShadowSpacer.setStyle( {
			'margin' : '0px' ,
			'width' : PageSize.width + 'px' ,
			'height' : PageSize.height + 'px'
			} );
		$(objShadow).insert( { bottom: objShadowSpacer } );
		
		if (PopParams.type=="Static") {
			PopContents.PopUpdate(PopParams, PopParams.content);
		} else if (PopParams.type=="Ajax") {
			new Ajax.Request(PopContents.AjaxResponder, {
				parameters: {
					realm: PopParams.realm ,
					id: PopParams.id
				} ,
				onSuccess: function(transport) {
					PopContents.PopUpdate(PopParams, transport.responseText);
				}
			} );
		}
		return false;
	} ,
	PopUpdate				: function(PopParams, content) {
		var OverlayID=PopContents.OverlayIdBase;
		var objBody = document.getElementsByTagName("body").item(0);
		var scrollPos = document.viewport.getScrollOffsets();
		var olPos = { 'top' : scrollPos['top']+30 , 'left' : (scrollPos['left']+30) } ;
		if (typeof(PopParams.mousePos)!="undefined") {
			olPos.top = PopParams.mousePos.posY;
			olPos.left = PopParams.mousePos.posX;
		}

		var availableSpace = (Math.max(document.viewport.getHeight() , objBody.getHeight()) - 3) - olPos.top - 30; // -30 => leave space around the box
		$(OverlayID).update(content);

		var objCloseImg = new Element('img', {'src' : PopContents.SkinPath + 'popcontents_close.gif' , 'alt' : 'bezárás' , 'title' : 'bezárás' } );
		objCloseImg.setStyle( {
			'position' : 'absolute' ,
			'top' : '0px' ,
			'right' : '0px' ,
			'z-index' : '102' ,
			'cursor' : 'pointer' ,
			'margin' : '0px'
			} );
		objCloseImg.onclick = function() { PopContents.CloseStatic(); };
		$(OverlayID).insert( { top: objCloseImg } );
		$(OverlayID).setOpacity(1);

		if ($(OverlayID).getDimensions().height>300) {
			$(OverlayID).setStyle( { 'height' : '300px' , 'overflow' : 'scroll' } );
		}
		if ($(OverlayID).getDimensions().height<60) {
			$(OverlayID).setStyle( { 'height' : '60px' } );
		}
		if ($(OverlayID).getDimensions().height > availableSpace) {
			newOlPos = olPos;
			newOlPos.top = newOlPos.top - ($(OverlayID).getDimensions().height - availableSpace);
			$(OverlayID).setStyle( {
				'top' : newOlPos.top + 'px' ,
				'left' : newOlPos.left + 'px'
			} );
		}
	} ,
	CloseStatic				: function() {
		var OverlayID=PopContents.OverlayIdBase;
		if ($(OverlayID)!=null) $(OverlayID).remove();
		if ($(OverlayID+'_Shadow')!=null) $(OverlayID+'_Shadow').remove();
		PopContents.SelectBugHandler('show');
		return false;
	}
} ;

