/*  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.popupAnimate = {
	
	animate_myw_default : 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';
		myLayer.style.display = 'block';
						
		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.popupAnimate.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.popupAnimate.insertCloseBtn(_vars);
						myw.popupAnimate.execute(_vars);
					}
				);
			}
		);
	},
	
	animate_myw_noEffect : 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';
		myLayer.style.display = 'block';
		
		myw.popupAnimate.insertMask(_vars);
		myw.popupAnimate.insertCloseBtn(_vars);
		myw.popupAnimate.execute(_vars);
	},

	show : function() {
		document.getElementById('myLayer_close').style.display = 'block';
		document.getElementById('myLayer').className = 'myLayer_end';
		if (document.getElementById('myLayer_loadingIcon'))
			document.getElementById('myLayer_content').removeChild(document.getElementById('myLayer_loadingIcon'));
	},
	
	execute : function(_vars) {
	
		if (_vars.string && _vars.string != '')
			document.getElementById('myLayer_content').innerHTML = _vars.string;
		
		/* content in one iframe */
		if (myw.ajax.popup_iframe.src) {
		
			var div_icon = document.createElement("div");
			div_icon.id='myLayer_loadingIcon';
			div_icon.className = 'myLayer_loadingIcon';

			var div_iframe = document.createElement("iframe");
			div_iframe.id = 'myLayer_content_iframe';
			div_iframe.name = 'myLayer_content_iframe';
			div_iframe.className = 'myLayer_content_iframe';
			div_iframe.frameBorder = 0;
			div_iframe.style.width = myw.ajax.popup_iframe.width;
			div_iframe.style.height = myw.ajax.popup_iframe.height;
			div_iframe.src = myw.ajax.popup_iframe.src;
			myw.ajax.popup_iframe = [];	

			document.getElementById('myLayer_content').appendChild(div_iframe);
			document.getElementById('myLayer_content').appendChild(div_icon);
			
			myw.addEvent(div_iframe,'load',myw.popupAnimate.show);

		} else {
			myw.popupAnimate.show();
		}

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

	insertCloseBtn : function(_vars) {
		var f = myw.popupAnimate.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;
		
	}

};
