/*
 *  O V E R L A Y
 */
(function($){
	$.youplanet = $.youplanet || {};
	
	$.youplanet.overlay = {
		oconf: {
	        //target: '<div id="{id}" class="{tclass}"><span class="loader"></span><span class="overlayContentInner"></span></div>',
			target: '#ypoverlay',
	        oneInstance: true,
	        closeOnClick: false,
	        closeOnEsc: true,
	        fixed: false,
	        mask: {
	            loadSpeed: 'fast',
	            opacity: 0.8,
	            //color: '#4389AF',
	            color: '#ffffff',
	            zIndex: 999,
	            closeOnClick: false,
	            closeOnEsc: true /*,
	            onClose: function() {
					this.getMask().remove();
				} */
	        }
		},
		
		aconf: {
			url: null,
			data: null
		},
		
		click: function(oconf, aconf) {
			$('<div></div>').overlay(_config(oconf, aconf)).load();
			return false;
		},
		
		bind: function(selector, oconf, aconf) {
			var conf = _config(oconf, aconf);
			var o = null;
			
			$(selector).each(function(i, el) {
				o = $(el).overlay(conf);
			});
			
			return o;
		},
		
		closei: function() {
		}
	};
	
	function _config(oconf, aconf) {
		var oid = (oconf && oconf.target ? oconf.target : '#ypoverlay');
		var onBoard = (!$(oid).find('.overlayContent').is(':empty'));
		
		var _oconf = $.extend(true, {},  
			$.youplanet.overlay.oconf, {
			onBeforeLoad: function() {
				if(this.getTrigger().hasClass('o_wider')) {
					this.getOverlay().addClass('overlay_wider');
				}
				
				if(!onBoard) {
					this.getOverlay().find('.overlayContent').empty();
				}
				
				if(this.getOverlay().find('iframe').length) {
					var frame = this.getOverlay().find('iframe').get(0);
					var frameDoc = frame.contentDocument || frame.contentWindow.document;

					$('head', frameDoc).html('<link href="/css/public/overlay-iframe.css" media="screen" type="text/css" rel="stylesheet">');
					$('body', frameDoc).html('<div class="onLoadToFrameIndicator"></div>');
					
					if(!this.getOverlay().data('default_height')) {
						this.getOverlay().data('default_height', $(frame).height());
					}
					else {
						$(frame).css({ height: this.getOverlay().data('default_height') +'px' });
					}
				}
				
				if(oconf && oconf.obl && $.isFunction(oconf.obl)) {
					oconf.obl(this);
				}

				this.getOverlay().data('trigger', this.getTrigger());
			},
	        onClose: function() {
				if(!onBoard) {
					this.getOverlay().find('.overlayContent').empty();
				}
				
				this.getOverlay().removeClass('overlay_wider');
	        },
			api: true
		});
		
		$.extend(true, _oconf, {
	        onLoad: function() {
				var _url = null;
				
				if((!aconf || !aconf.url)) {
					_url = this.getTrigger().is('a') ? 
						this.getTrigger().attr('href') :
						this.getTrigger().children('.div-link').attr('href');
							
					if('#' == _url) {
						_url = null;
					}
				}
				else {
					_url = aconf.url;
				}

				if(_url) {
					if(this.getOverlay().find('iframe').length) {
							
						if (_url.indexOf("?")>-1){
						    $(this.getOverlay().find('iframe').get(0)).attr('src', _url + '&iframe=1');
						}
						else{
							$(this.getOverlay().find('iframe').get(0)).attr('src', _url + '?iframe=1');
						}
					}
					else {
						$.ajax($.extend(true, {}, { 
							type: 'POST',
							url:  _url,
							data: {},
							beforeSend: function(jqXHR, settings) {
								//$.youplanet.layout.loader(oid, true);
							},
							success: function(data, textStatus, jqXHR) { 
								$(oid + ' .overlayContent').html(data); 
							},  
							complete: function(jqXHR, textStatus) {
								//$.youplanet.layout.loader(oid, false);
								//$.youplanet.layout.complete(jqXHR, textStatus);
							},
							error: function(jqXHR, textStatus, errorThrown) {
							}
						}, aconf));
					}
				}
        	}
		});

		$.extend(true, _oconf, oconf);

		return _oconf;
	}
})
(jQuery);

