

// jsap.net

// Simple composit popup biulder, jQuery plugin. Draws a popup in the horisontal center of a page; popup has:
// tag <span class="close">x</span>, click it to close popup
// tag <div class="content">[content]</div>

// Usage:
// element.popup_simple( properties );
// properties is an object; possible object vars:
// class_name - name of css-class for popup; default "popup_simple_class_name_jsap_net"
// levels - number of levels of tag structure deepness; default 8
// top - popup top offset; default 200px
// width - popup width; default 450px
// height - popup height; default "auto"
// appear_time - time of popup fading in, in ms; default 1000
// content - html/text content of a popup; default empty
// content_file - link to file with popup content; default null
// vual_class_name - name of css-class for overall vual; default "vual_simple_class_name_jsap_net"
// vual_color - color of an overall vual; default black
// vual_opacity - opacity of an overall vual; default 0.5

// Usage example:
//  $("body").popup_simple({
//      class_name: "my-popup", width: "300px", content_file: "./popup-content.html"
//  });

// Example: http://jsap.net/examples/popup_simple.html



$.fn.popup_simple = function( prop ){

	var default_popup_class_name = 'popup_simple_class_name_jsap_net';
	var default_vual_class_name = 'vual_simple_class_name_jsap_net';

	var popup_id = 'popup_'+(new Date().getTime());
	var vual_id = 'vual_'+(new Date().getTime());

	var class_name = prop && prop['class_name'] ? prop['class_name'] : default_popup_class_name;
	var levels = prop && prop['levels'] && parseInt(prop['levels']) > 0 ? parseInt(prop['levels']) : 8;
	var left = '50%';
	var top = prop && prop['top'] ? prop['top'] : '200px';
	var width = prop && prop['width'] ? prop['width'] : '450px';
	var height = prop && prop['height'] ? prop['height'] : 'auto';
	var appear_time = prop && prop['appear_time'] ? prop['appear_time'] : 1000;
	var disappear_time = appear_time/2;
	var content = prop && prop['content'] ? prop['content'] : '';
	var content_file = prop && prop['content_file'] ? prop['content_file'] : null;

	var vual_class_name = prop && prop['vual_class_name'] ? prop['vual_class_name'] : default_vual_class_name;
	var vual_color = prop && prop['vual_color'] ? prop['vual_color'] : 'black';
	var vual_opacity = prop && prop['vual_opacity'] ? prop['vual_opacity'] : '0.7';


	deletePopup();
	
	//$("body").append('<div id="'+vual_id+'" class="'+vual_class_name+'">&nbsp;</div>').find("#"+vual_id).css('position', 'absolute').css('left', '0').css('top', '0').css('z-index', '9999').css('width', '100%').css('height', $(document).height()+'px').css('opacity', vual_opacity).css('background-color', vual_color);

	var popup_style = 'display:none;position:absolute;left:'+left+';top:'+top+';z-index:100000;width:'+width+';height:'+height+';margin-left:-'+(parseInt(width)/2)+'px;';
	var app = '<div id="'+popup_id+'" class="'+class_name+'" style="'+popup_style+'">';
	for( var i = 1; i <= levels; i++ ) app += '<div class="level_'+i+'">';
	app += '<span class="close">x</span>';
	app += '<div class="content">';
	    if( content_file == null && content != '' )
	    app += content;
	app += '</div>';
	for( var i = 0; i <= levels; i++ ) app += '</div>';
	
	$(this).append(app)
		.find("#"+popup_id).fadeIn(appear_time);
		if( content_file != null )
		$("#"+popup_id+" .content").load(content_file);

	$("#"+popup_id+" .close").click(closePopup).css('cursor', 'pointer');
	


	function closePopup(){
		$('.'+class_name).fadeOut(disappear_time);
		$('.'+vual_class_name).fadeOut(disappear_time);
	}

	function deletePopup(){
	    if( $('.'+class_name).length != 0 )
		$('.'+class_name).remove();
	    if( $('.'+vual_class_name).length != 0 )
		$('.'+vual_class_name).remove();
	}
	
}
