﻿/***************************/
//@Author: Adrian "yEnS" Mato Gondelle
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!					
/***************************/

//SETTING UP OUR POPUP
//0 means disabled; 1 means enabled;
var popupStatus = 0;

//loading popup with jQuery magic!
function loadPopup(PopupDiv){
	//loads popup only if it is disabled
	if(popupStatus==0){
		$("#backgroundPopup").css({
			"opacity": "0.7"
		});
		$("#backgroundPopup").fadeIn("slow");
		$(PopupDiv).fadeIn("slow");
		popupStatus = 1;
	}
}

//disabling popup with jQuery magic!
function disablePopup(PopupDiv){
	//disables popup only if it is enabled
	if(popupStatus==1){
		$("#backgroundPopup").fadeOut("slow");
		$(PopupDiv).fadeOut("slow");
		popupStatus = 0;
	}
}

//centering popup
function centerPopup(PopupDiv){
	
	$(PopupDiv).centerInClient({ container: window, forceAbsolute: false });
	/*
	//request data for centering
	$(PopupDiv).remove().appendTo("body");

	var windowWidth = $(window).width();
	var windowHeight = $(window).height();
	
	var popupHeight = $(PopupDiv).height();
	var popupWidth = $(PopupDiv).width();
	
	var Top = windowHeight / 2 - popupHeight / 2 + $(window).scrollTop();
	var Left = windowWidth / 2 - popupWidth / 2 + $(window).scrollLeft();
	
	//centering
	$(PopupDiv).css({
		"position": "absolute",
		"top": Top,
		"left": Left
	});
	//only need force for IE6
	
	$("#backgroundPopup").css({
		"height": windowHeight
	});*/
	
}


//CONTROLLING EVENTS IN jQuery
function LoadPopup(PopupDiv, CloseButton)
{	
	//LOADING POPUP
	//Click the button event!
	//centering with css
	centerPopup(PopupDiv);
	//load popup
	loadPopup(PopupDiv);
				
	//CLOSING POPUP
	//Click the x event!
	$(CloseButton).click(function(){
		disablePopup(PopupDiv);
	});
	
	$("#SaveNote").click(function(){
		disablePopup(PopupDiv);
		//__HandleEventForAjax(event, 'childcontainer1');
	});
	
	//Press Escape event!
	$(document).keypress(function(e){
		if(e.keyCode==27 && popupStatus==1){
			disablePopup(PopupDiv);
		}
	});

}

$.fn.centerInClient = function(options) {
    /// <summary>Centers the selected items in the browser window. Takes into account scroll position.
    /// Ideally the selected set should only match a single element.
    /// </summary>    
    /// <param name="fn" type="Function">Optional function called when centering is complete. Passed DOM element as parameter</param>    
    /// <param name="forceAbsolute" type="Boolean">if true forces the element to be removed from the document flow 
    ///  and attached to the body element to ensure proper absolute positioning. 
    /// Be aware that this may cause ID hierachy for CSS styles to be affected.
    /// </param>
    /// <returns type="jQuery" />
    var opt = { forceAbsolute: false,
                container: window,    // selector of element to center in
                completeHandler: null
              };
    $.extend(opt, options);
   
    return this.each(function(i) {
        var el = $(this);
        var jWin = $(opt.container);
        var isWin = opt.container == window;

        // force to the top of document to ENSURE that 
        // document absolute positioning is available
        if (opt.forceAbsolute) {
            if (isWin)
                el.remove().appendTo("body");
            else
                el.remove().appendTo(jWin.get(0));
        }

        // have to make absolute
        el.css("position", "absolute");

        // height is off a bit so fudge it
        var heightFudge = isWin ? 2.0 : 1.8;

        var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
        var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;

        el.css("left", x + jWin.scrollLeft());
        el.css("top", y + jWin.scrollTop() - 300);

        // if specified make callback and pass element
        if (opt.completeHandler)
            opt.completeHandler(this);
    });
}
