/*  Copyright 2010 by Marco Stocco <http://www.my-w.org>
 * -----------------------------------------------------------
 *
 * Effects for popups
 *
 * This script is distributed under the GNU General Public License.
 *
 * Read the entire license text here: http://www.gnu.org/licenses/gpl.html
 */

myw.effects_popup = {
	
	effect_1 : function(_vars) {
		var o = myw.getWindowInfos();
		var l = 0;
		_vars.left && _vars.left>=0 ?
			l = Number(_vars.left) + o.scrollLeft :
			l = Math.round(((o.width/2)-(_vars.width/2))+o.scrollLeft);;
			
		var t = 0;
		_vars.top && _vars.top >=0 ?
			t = Number(_vars.top) + o.scrollTop :
			t = Math.round(((o.height/2)-(_vars.height/2))+o.scrollTop) - 20;
		
		var myLayer = document.getElementById('myLayer');
		myLayer.className = 'myLayer_loading';
		myLayer.style.left = l + 'px';
		myLayer.style.top = t + 'px';
		myLayer.style.width = _vars.width+'px';
		myLayer.style.height = _vars.height+'px';
		
		myw.effects_popup.insertMask(_vars);
		myw.effects_popup.insertCloseBtn(_vars);
		myw.effects_popup.execute(_vars);
	},

	effect_2 : function(_vars) {
		var myLayer = document.getElementById('myLayer');	
		myLayer.className = 'myLayer_start';	
		myLayer.style.left = myw.mouse_x+'px';
		myLayer.style.top = myw.mouse_y+'px';
		
		var o = myw.getWindowInfos();
		
		var l = 0;
		_vars.left && _vars.left>=0 ?
			l = Number(_vars.left) + o.scrollLeft :
			l = Math.round(((o.width/2)-(_vars.width/2))+o.scrollLeft);
		if (l<5)
			l=5;
			
		var t = 0;
		_vars.top && _vars.top >=0 ?
			t = Number(_vars.top) + o.scrollTop :
			t = Math.round(((o.height/2)-(_vars.height/2))+o.scrollTop) - 20;	
		if (t<5)
			t=5;
				
		myw.effects_popup.insertMask(_vars);
		
		jQuery(myLayer).animate(
			{ 	width: _vars.width,
				left: l
			},200, function() {
				jQuery(myLayer).animate(
					{ 	height: _vars.height,
						top: t
					},200, function() {
						myLayer.className = 'myLayer_loading';
						myw.effects_popup.insertCloseBtn(_vars);
						myw.effects_popup.execute(_vars);
					}
				);
			}
		);
	},
	
	show : function() {
		document.getElementById('myLayer_content').style.visibility = 'visible';
		document.getElementById('myLayer_close').style.display = 'block';
		if (document.getElementById('myLayer_img'))
			document.getElementById('myLayer_img').style.display = 'block';
		document.getElementById('myLayer').className = 'myLayer_end';
	},
	
	execute : function(_vars) {
		
		/* content is one iframe */
		var dif = document.getElementById('myLayer_content_iframe');
		if (dif && myw.ajax.iframe_link != '') {
			dif.src = myw.ajax.iframe_link;
			myw.addEvent(dif,'load',myw.effects_popup.show);
			myw.ajax.iframe_link = '';		
		} else {
			myw.effects_popup.show();
		}

		if (_vars.onstart) {
			typeof(_vars.onstart)=='string'?
				eval(_vars.onstart) : 
				_vars.onstart();
		}
	},
	
	insertMask : function(_vars) {
		var f = myw.effects_popup.getCloseFunction(_vars);
		if (!_vars.noMask)
			myw.mask_show(function(){eval(f)});
	},

	insertCloseBtn : function(_vars) {
		var f = myw.effects_popup.getCloseFunction(_vars);
		document.getElementById('myLayer').innerHTML += '<div id="myLayer_close" class="myLayer_close" onclick="'+f+'" title="'+myw.lang.frontend.texts.closeLayer+'" alt="'+myw.lang.frontend.texts.closeLayer+'"></div>';
	}, 
	
	getCloseFunction : function(_vars) {
		/* onclose function can be only string */
		/* default onclose function */
		var f = 'myw.mask_hide();';
		if (_vars.onclose)
			f = _vars.onclose;
		
		return f;
		
	}

};
