
$(document).ready(function(){
	$('body').gboxsetCenter();
});
$(window).scroll(function(){
	//$('body').gboxsetCenter();
}).resize(function(){
	$('body').gboxsetCenter();
});
$(document).keyup(function(e) {
  if (e.keyCode == 27) { 
	$("#gcpctrl-closes").click();
  }
});

var gcpBoxObject = false;
var gcpBoxIsset = false;
var gcpBoxIsOpen = false;
var gcpBoxOpened = false;
var gcpCanClose = false;
var gcpContentX = 0;
var isFirstStart = true;
function gcpBoxEvent(event){
	$("#log").append('<br>'+event);
}
function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}


   

    function WaitForIFrame(obj,o) {
     	iframe = document.getElementById("iframespec");
        if (iframe.readyState != "complete") {
            setTimeout("WaitForIFrame();", 200);
        } else {
            done(obj);
        }
    }

    function done(obj,o) {
       obj.shadowOn(o,obj); 
    }

							function callIframe(url,o, callback) {
								    $("#gcpbox-content").html("<iframe scrolling='no' frameBorder='0' MARGINHEIGHT='0' id='iframespec'></iframe>");
								    
								    $('iframe#iframespec').attr('src', url).css({border:0,width:'100%',height:o.height,border:'none'});
								
								    $('iframe#iframespec').load(function() 
								    {
								        callback(this);
								    });
							}

(function($){
    $.fn.extend({

        gcpExpandHTML: function(options) {
 			gcpBoxEvent('start');
            var defaults = {
            	type : "html",  // "html" z nast. o klasie 
            	contentClass : 'gcp',
            	width:'auto', // szerokosc kontenera
            	height:'auto', // wys. kontenera 
            	opacity:0.5, // przesroczystosc tla
            	containerClose:true, // 
            	containerFadeTimeIn:700,
            	containerFadeTimeOut:500,
            	wrapTime:500,
            	controlsPlace : "top" ,  // "top" lub "bottom"
            	ctrlClose:true,
            	clearOnClose:true,
            	
            };
            
            var options = $.extend(defaults, options);
            options.width = options.width+30;
			if(gcpBoxIsOpen==false){
				gcpBoxEvent('openS');				
            	$(this).prepare(options);
            	gcpCanClose = false;
            	
	            return this.each(function() {
	            	var o =options;
	            	var obj = $(this); 
	            	var oPos = obj.position();
	            	obj.gboxLoader(obj,true);
	            	
	            	
	            	$("#gcpbox-content").html('<br /><br /><p style="text-align:center;"><img src="http://gniezno.com.pl/grafika/ajaxComments.gif"></p>');            	
	            	$("#gcpbox-content").prepareBoxContent(obj,o);
	            	////// TREEEEEEEEEEEEEEEEEEEEEEEEEEESC
					        	if(o.type=='html'){
					        		$("#gcpbox-content").html($(obj).next('.'+o.contentClass).html());
					        							if(o.height == 'auto'){
									                  	o.height = $("#gcpbox-wrap").height();	                  	
									                  }
									                    	                  
									                  
									                  if(gcpBoxIsOpen==false){
									                      obj.shadowOn(o,obj);   
									                       	
									                      gcpBoxEvent('shadowOnStart');                	
									                  }else{
									                  	gcpBoxEvent('shadowOnStopped');
									                  }
					        	}
					        	if(o.type=='ajax'){
					        		//$('#gcpbox-iframe').attr('src',$(obj).attr('rel'))
					        		
					        		callIframe($(obj).attr('rel'),o,function(ifr){
					        			 obj.shadowOn(o,obj);  
					        			 
					        		});
					        		
					        		   



					        		
					        		
					        			
					        	}
					        	
					        	gcpBoxEvent('prepare content - '+gcpContentX);	                  
	            	/// ===============================

	                 
	            });
			}else{
				gcpBoxEvent('startStop');
			}
            return false;
        },
        fullScreen: function(o){
        	
        },
        gboxsetCenter: function(o,obj){
				var scr = $(window).height();
				var scrX = $(window).width();
				
				var cOff = jQuery(window).scrollTop();
				//var cTop = cOff+($(window).height()/2)-($('#gcpbox-wrap').height()/2);
				var cTop = cOff+30;
				var cLeft = ((scrX-$('#gcpbox-wrap').width())/2);
				
				$('#gcpbox-wrap').stop(true,false).animate({top:cTop,left:cLeft},500);
        	},
        gboxLoader: function(obj,on){
			if(on==true){
				var oPos = obj.offset();
				var oCenX = oPos.left+(obj.width()/2)-50;
				var oCenY = oPos.top+(obj.height()/2)-10;
				$('<div id="gcpboxLoader" style="">ŁADOWANIE</div>').hide().appendTo('body').css({left:oCenX,top:oCenY}).show();
			}else{
				$("#gcpboxLoader").remove();
			}
        },
        shadowOn: function(o,obj) {
        	gcpBoxObject = o;
        	if(typeof hs=='undefined'){
        		
        	}else{
        		hs.close();
        	}
			if(gcpBoxIsOpen==false){
				gcpBoxIsOpen = true;
				gcpBoxOpened = true;
				$("#gcpbox-wrap").css({width:o.width,height:o.height});
	        	
					$(obj).gboxsetCenter(o,obj);					
					obj.gboxLoader(obj,false);
					$("#gcpbox-container").css({opacity:o.opacity}).fadeIn(o.containerFadeTimeIn, function() {
						//oOff = obj.offset().top;
						
						
						$("#gcpbox-wrap").css({width:o.width});
						
						$("#gcpbox-wrap").fadeIn(300);
						gcpBoxOpened = false;
						gcpCanClose = true;
						gcpContentX = $("#gcpbox-content").height();
						
						gcpBoxEvent('shadowOn - END');
						
					});	
			}else{
				gcpCanClose = false;
				gcpBoxEvent('shadowOn-END ERROR');
			}
			
        },
        shadowOff: function(o) {
        		gcpBoxEvent('shadowOffStart - x '+gcpContentX+" "+$("#gcpbox-content").height());
        		var dim = 0;
        		if(gcpContentX!=$("#gcpbox-content").height()){
        			dim = $("#gcpbox-content").height()-gcpContentX;
        		}
	        	if(gcpBoxIsOpen == true && gcpBoxOpened==false && gcpCanClose==true){
	        		gcpCanClose = false;
	        		cOff = jQuery(window).scrollTop()-50;

  					$('#gcpbox-wrap').fadeOut(o.wrapTime, function() {
						$("#gcpbox-container").css({opacity:o.opacity}).fadeOut(o.containerFadeTimeOut, function() {
							gcpBoxOpened = false;
							if(typeof window.gcpOnClose == 'function') {
								gcpOnClose();
							}
						});
						
						gcpBoxIsOpen = false;
						gcpCanClose = false;
						
						gcpBoxEvent('shadowOffFinish');
						$('#gcpbox-wrap').hide();
						$("#gcpbox-content").clearBoxContent(o);
				  });	        		
	        	}else{
				gcpBoxEvent('shadowOff-END ERROR');
				}
        },
        prepareBoxContent: function(obj,o) {
        	if(o.type=='html'){
        		$("#gcpbox-content").html($(obj).next('.'+o.contentClass).html());
        	}
        	if(o.type=='ajax'){
        		//$.get($(obj).attr('rel'), function(data) {
        		var data = $("<iframe scrolling='no' src='"+$(obj).attr('rel')+"' frameBorder='0' ></iframe>");
        		data.css({border:0,width:'100%',height:o.height,border:'none',marginBottom:'-4px'});
					  $("#gcpbox-content").html(data);       		
        	}
        	
        	gcpBoxEvent('prepare content - '+gcpContentX);
        },
        clearBoxContent: function(o) {
        	if(o.clearOnClose==true){
        		$("#gcpbox-content").html('');
        	}
        	
        	gcpBoxEvent('clear content');
        },
        prepare: function(o){
        	// Wstawienie kontrolek
        	if(gcpBoxIsset==false){
	        	if(o.controlsPlace == "top"){
	        		jQuery('<div/>', {}).attr("id","gcpbox-header").show().appendTo($("#gcpbox-wrap"));
	        		jQuery('<div/>', {}).attr("id","gcpbox-controls").show().appendTo($("#gcpbox-wrap"));
	        		jQuery('<div/>', {}).attr("id","gcpbox-content").show().appendTo($("#gcpbox-wrap"));
	        		if(o.ctrlClose==true){ 
	        			jQuery('<a href="javascript:;" class="gcpctrl-closex okienko_zamknij_przycisk"></a>').attr("id","gcpctrl-closes").appendTo($("#gcpbox-controls"));
	        			$("#gcpctrl-closes").click(function(){
	        				if(gcpBoxIsOpen==true){
	        					$("#gcpbox-container").shadowOff(o);
	        				}
	        			});
	        		}
	        	}else{
	        		jQuery('<div/>', {}).attr("id","gcpbox-content").show().appendTo($("#gcpbox-wrap"));
	        		jQuery('<div/>', {}).html("Kontrolki").attr("id","gcpbox-controls").show().appendTo($("#gcpbox-wrap"));
	        	}
	        	
	        	gcpBoxIsset = true;
        	}
        	// Klikniecie na tlo
        	
        	$("#gcpbox-container").click(function() {
        		gcpBoxEvent('dimClick');
				if(gcpBoxIsOpen==true && gcpCanClose == true){
					gcpBoxEvent('dimClickStart');
					if(o.containerClose==true){
						$(this).shadowOff(o);
						gcpCanClose = false;
					}else{
						
					}
				}
			});
			$("#gcpbox-wrap").css({width:o.width,height:o.height,top:-$('#gcpbox-wrap').height()});
        }
    });
})(jQuery);
