function Overlay( ObjectID, URL ) {
	
	this.ObjectID = ObjectID;
	this.LoadURL = URL;
	
	this.OverlayHolder = null;
	this.Loader = null;
	this.Darklayer = null;
	this.Overlay = null;
	
	this.createLayers();
}

Overlay.prototype.createLayers = function() {
	this.createHolder();
	this.createDarklayer();
	this.createOverlay();
}

Overlay.prototype.createOverlay = function() {
	
	var Overlay = document.createElement( 'DIV' );
	Overlay.id = this.ObjectID + 'Overlay';
	Overlay.className = 'Overlay';
	
	var Blok = document.createElement( 'DIV' );
	Blok.className = 'Blok Blok610';
	
	var OverlayTop = document.createElement( 'DIV' );
	OverlayTop.className = 'Top';
	Blok.appendChild( OverlayTop );
	
	var OverlayMiddle = document.createElement( 'DIV' );
	OverlayMiddle.className = 'Middle';
	OverlayMiddle.id = this.ObjectID + 'Inner';
	Blok.appendChild( OverlayMiddle );
	
	var OverlayBottom = document.createElement( 'DIV' );
	OverlayBottom.className = 'Bottom';
	Blok.appendChild( OverlayBottom );
	
	Overlay.appendChild( Blok );
	
	this.Holder.appendChild( Overlay );
	
	this.Overlay = document.getElementById( this.ObjectID + 'Overlay' );
	if ( this.Overlay === null )
		throw 'Overlay not made';
}

Overlay.prototype.createDarklayer = function() {
	
	var Darklayer = document.createElement( 'DIV' );
	Darklayer.id = this.ObjectID  + 'Darklayer';
	Darklayer.className = 'Darklayer Hide';
	
	var Name = this.ObjectID;
	
	Darklayer.onclick = function() {
		$( '#' + Name ).removeClass().addClass( 'Hide' );
	}

	this.Holder.appendChild( Darklayer );
	
	this.Darklayer = document.getElementById( this.ObjectID  + 'Darklayer' );
	
	if ( this.Darklayer === null )
		throw 'Darklayer not made';
	
	var Body = document.getElementsByTagName( 'body' ).item( 0 );
	var HTML = document.getElementsByTagName( 'html' ).item( 0 );

	//var Height = Math.max( Body.offsetHeight, HTML.offsetHeight );
	//var Width = Math.max( Body.offsetWidth, HTML.offsetWidth );
	//var Width = Math.max( $(document).width(), $(window).width() );
	var Height = Math.max( $(document).height(), $(window).height() );
	var Width = $(window).width();
	
	this.Darklayer.style.height = Height + 'px';
	this.Darklayer.style.width = Width + 'px';
}

Overlay.prototype.createHolder = function() {
	
	var Holder = document.createElement( 'DIV' );
	Holder.id = this.ObjectID;
	Holder.className = 'Holder Hide';
	
	var Body = document.getElementsByTagName( 'body' ).item( 0 );
	var HTML = document.getElementsByTagName( 'html' ).item( 0 );
	
	Body.appendChild( Holder );
	
	this.Holder = document.getElementById( this.ObjectID );
	
	if ( this.Holder === null )
		throw 'Holder not made';
	
	//var Height = Math.max( Body.offsetHeight, HTML.offsetHeight );
	//var Width = Math.max( Body.offsetWidth, HTML.offsetWidth );
	//var Width = Math.max( $(document).width(), $(window).width() );
	var Height = Math.max( $(document).height(), $(window).height() );
	var Width = $(window).width();
	
	this.Holder.style.height = Height + 'px';
	this.Holder.style.width = Width + 'px';
}

Overlay.prototype.createLoader = function() {
	
	var Loader = document.createElement( 'DIV' );
	Loader.id = this.ObjectID  + 'Loader';
	//Loader.className = 'Loader';
	
	//var Image = document.createElement( 'IMG' );
	//Image.src = AbsPath + 'images/spinner.gif';
	//Loader.appendChild( Image );
	
	var Body = document.getElementsByTagName( 'body' ).item( 0 );
	Body.appendChild( Loader );
	
	this.Loader = document.getElementById( this.ObjectID  + 'Loader' );
	
	if ( this.Loader === null )
		throw 'Loader not made';
}

Overlay.prototype.open = function( VoucherID, Amount ) {
	this.load( VoucherID, Amount );
}

Overlay.prototype.load = function( VoucherID, Amount ) {
	
	this.Holder.className = 'OverlayHolder Show';
	this.Darklayer.className = 'Darklayer Show';
	this.createLoader();
	
	var Overlay = this.Overlay;
	var Loader = this.Loader;

	$( '#' + this.ObjectID + 'Inner' ).load( this.LoadURL, 'VoucherID=' + VoucherID + '&Amount=' + Amount, function(){		
		var Top = $().scrollTop() + 220;
		Overlay.style.top = Top + 'px';
		Overlay.className = 'Overlay Show';
		$( Loader ).remove();
		Loader = null;
	});
	
	this.Loader = Loader;
}

Overlay.prototype.openSocial = function( PageID, ProductID ) {
   this.loadSocial( PageID, ProductID );
}

Overlay.prototype.loadSocial = function( PageID, ProductID ) {
   
   this.Holder.className = 'OverlayHolder Show';
   this.Darklayer.className = 'Darklayer Show';
   this.createLoader();
   
   var Overlay = this.Overlay;
   var Loader = this.Loader;

   $( '#' + this.ObjectID + 'Inner' ).load( this.LoadURL, 'PageID=' + PageID + '&ProductID=' + ProductID, function(){      
       var Top = $().scrollTop() + 220;
       Overlay.style.top = Top + 'px';
       Overlay.className = 'Overlay Show';
       $( Loader ).remove();
       Loader = null;
   });
   
   this.Loader = Loader;
}

