﻿jQuery.fn.extend({
    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;
	    }
	    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	    return arrayPageSize;
    },

    getPageScroll: function() 
    {
	    var xScroll, yScroll;
	    if (self.pageYOffset) {
		    yScroll = self.pageYOffset;
		    xScroll = self.pageXOffset;
	    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
		    yScroll = document.documentElement.scrollTop;
		    xScroll = document.documentElement.scrollLeft;
	    } else if (document.body) {// all other Explorers
		    yScroll = document.body.scrollTop;
		    xScroll = document.body.scrollLeft;	
	    }
	    arrayPageScroll = new Array(xScroll,yScroll);
	    return arrayPageScroll;
    },
    
    popCenter: function(width,height)
    {
        var arrPageSizes = $.fn.getPageSize();
        var arrPageScroll = $.fn.getPageScroll();
        
        var Top = 0,Left = 0;
        Top = parseInt(arrPageScroll[1]) + parseInt(arrPageSizes[3])/2 -  parseInt(height)/2;
        Left = parseInt(arrPageSizes[2])/2 - parseInt(width)/2;
        
        //alert(arrPageScroll[0]+"\n"+arrPageScroll[1]+"\n"+arrPageSizes[0]+"\n"+arrPageSizes[1]+"\n"+arrPageSizes[2]+"\n"+arrPageSizes[3]);
        
        var popTopLeftPostion = new Array((parseInt(Top)<0?0:parseInt(Top)),(parseInt(Left)<0?0:parseInt(Left)));
        return popTopLeftPostion;
    }
});