/**
 * Part of JMF Library
 * This file contains page cover singleton object used to lock user interaction possibility for eg. modal dialogs
 * SVN: $Id: pagecover.js 6163 2008-08-14 14:36:31Z mjezierski $
 */
 
/**
 * Pafecover object definition
 * @member JMF.Widgets.Pagecover
 */ 
JMF.Widgets.Pagecover = {
   level:0,
   zIndex:100,
   cObj:null,
   /**
    * Returns current pagecover z-index
    * @member JMF.Widgets.Pagecover
    * @return {Number} z-index
    */
   getZIndex:function() {
   	return JMF.Widgets.Pagecover.zIndex; 
   },
   /**
    * Sets pagecover z-index
    * @member JMF.Widgets.Pagecover
    * @param {Number} zIndex z-index
    */
   setZIndex:function(zIndex) {
      JMF.Widgets.Pagecover.zIndex = zIndex;
      if(JMF.Widgets.Pagecover.cObj) {
         JMF.Widgets.Pagecover.cObj.cssStyle({zIndex:JMF.Widgets.Pagecover.zIndex});	
      }  	
   },
   /**
    * Turns on pagecover (or increases show count)
    * @member JMF.Widgets.Pagecover
    */
   show:function() {
     JMF.Widgets.Pagecover.level++;
     JMF.Widgets.Pagecover.prepare();
     if(JMF.Widgets.Pagecover.level > 0) {
     	 JMF.Events.addListener(window,'resize',JMF.Widgets.Pagecover.resize);
     	 JMF.Widgets.Pagecover.cObj.cssStyle({display:'block'});
     }    	
   },
   /**
    * Turns off pagecover (or decreases showcount)
    * @member JMF.Widgets.Pagecover
    */
   hide:function() {
   	JMF.Widgets.Pagecover.level--;
   	if(JMF.Widgets.Pagecover.level < 0) {
   		JMF.Widgets.Pagecover.level = 0;
   	}
   	if(!JMF.Widgets.Pagecover.level && JMF.Widgets.Pagecover.cObj) {
   	  JMF.Events.removeListener(window,'resize',JMF.Widgets.Pagecover.resize);
   	  JMF.Widgets.Pagecover.cObj.cssStyle({display:'none'});	
   	}
   },
   /**
    * Prepares pagecover to show
    * Internal method
    * @member JMF.Widgets.Pagecover
    */
   prepare:function() {
   	if(!JMF.Widgets.Pagecover.cObj) {
   	  JMF.Widgets.Pagecover.cObj = new JMF.Layout({style:{display:'none',position:'absolute',backgroundColor:'#000000',opacity:'0.5',overflow:'hidden',top:'0',left:'0',zIndex:JMF.Widgets.Pagecover.zIndex}});
   	  
			//IE6 solution for select over popover
			if(JMF.browser.IE && JMF.browser.version < 7) {
				JMF.Widgets.Pagecover.cObj.DOMRef.appendChild(JMF.$H.create().
					iHTML('<iframe style="display:none;display:block;height:3000px;left:0pt;position:absolute;top:0pt;width:3000px;z-index:-1;filter:mask();"></iframe>'));
			}
   	  
   	  JMF.Widgets.Pagecover.cObj.appendDOM(document.body);	
   	}
   	JMF.Widgets.Pagecover.resize();
   },
   resize:function() {
      var vbnds = JMF.Domutil.getFullViewport();
      JMF.Widgets.Pagecover.cObj.cssStyle({width:vbnds.width+'px',height:vbnds.height+'px'});
   }
};
   
