jQuery.fn.windowModal = function(options){
	
	options = jQuery.extend({
			ajax:true,
			opacity: 0.5,
			classModal: '.sdkModal',
			width: 200,
			height: 300,
			msgLoad: 'Carregando...',
			url: '',
			data: '',
			tipo: 'POST',
		    closeClass: 'sdkClose',
		    closeText: 'close',
                    close: false,
                    onLoad: false
		}, options);
	
	
		var obj = this;
		$(this).windowModalDestroy(options);
		var rel = $(options.classModal).length - 1;
	
		
		
		var w = $(document).width();
		var h = $(document).height();
		var classModal = options.classModal.replace('.','');
		
		$(this).attr('rel', classModal+rel);
		
		
		$(document).keyup(function(event){
			var e = event.keyCode;
			if(e == 27)
			{
				$(obj).windowModalClose(options);
			}
			
		});
		
		var divModal = '<div class="'+classModal+' '+classModal+rel+'"></div>'
		
		$('body').append(divModal);
		var modal = $(options.classModal);
	
		var bodyW = $('body').width();
		var bodyH = $('body').height();
		
		var top = bodyH-($(this).height()/2);
		var left = bodyW-($(this).width()/2);
		
		$(options.classModal).css({
		    background:'#000',
		    opacity: options.opacity,
		    height: h+'px',
		    width: w+'px',
		    position: 'absolute',
		    top: '0px',
		    left:'0px',
		    'z-index':'1000',
		    display: 'block'
		});
		
                
                
                
                var tp = parseInt($(window).scrollTop()) + top ;
		$(this).css({
			position: 'absolute',
			top: tp,
			left: left,
			background: '#FFFFFF',
		    'z-index':'1003',
		    display: 'block'
		});
		
		
		
		$(this).html(options.msgLoad);
		//alert($(this).attr('class'));
		
		
		modal.live('click',function(){
			$(obj).windowModalClose(options);
		});
		var spanClose = '<a href="javascript: void(0);" id="wMClose" class="'+options.closeClass+'">'+options.closeText+'</a>';
		if(options.ajax == true){
			$.ajax({
				url: options.url,
				data: options.data,
				type: options.tipo,
				complete: function()
				{
					$(obj).html();
				},
				success: function(content)
				{
					//$('body').html(content)
					$(obj).html(content);
	
					var bodyW = $('body').width();
					var bodyH = $('body').height();
					var top = '50px';
					var left = (bodyW/2)-($(obj).width()/2);
                                        top = parseInt($(window).scrollTop())+50 ;
					
					
					$(obj).css({
						position: 'absolute',
						top: top,
						left: left,
						background: '#FFFFFF',
					    'z-index':'1003'
					});
					if(!$.browser.msie)
                                        {
                                            $(obj).append(spanClose);
                                        }else
                                        {
                                            var id = $(obj).attr('id');
                                            document.getElementById(id).innerHTML = content+spanClose;
                                        }
					
					$('#wMClose', obj).live('click', function(){
						$(obj).windowModalClose(options);
					});
                                        
                                        if(options.onLoad)
                                        {
                                            options.onLoad(content);
                                        }
                                        
                                        if(options.close)
                                        {
                                            $(options.close).live('click', function(){
						$(obj).windowModalClose(options);
                                            });
                                        }
				}
			});
		}else
		{
			var iframe = "<iframe src="+options.url+"></iframe>";
			
			$(this).html(iframe);
			
			var bodyW = $('body').width();
			var bodyH = $('body').height();
			var top = '50px';
			var left = (bodyW/2)-($(obj).width()/2);
			
					

			$('iframe',this).css({
				width: options.width,
				height: options.heigth
			});
			
			$(this).css({
				position: 'absolute',
				top: top,
				background: '#FFFFFF',
			    'z-index':'1003'
			});
			
			
			$(this).append(spanClose);
			
			$('#wMClose', this).live('click', function(){
				$(obj).windowModalClose(options);
			});
			
			
			
		}
		
		
	
		
}

jQuery.fn.windowModalClose = function(options)
{
	options = jQuery.extend({
		ajax:true,
		opacity: 0.5,
		classModal: '.sdkModal',
		width: 'auto',
		height: 'auto',
		msgLoad: 'Carregando...',
		url: '',
		data: '',
	    closeClass: 'sdkClose'
	}, options);
	
	$(this).hide().css('display','none');
	$('.'+$(this).attr('rel')).hide();
	$(this).windowModalDestroy(options);
	
		
}

jQuery.fn.windowModalDestroy = function(options)
{
	$(this).attr('style', '');
	$('#wMClose', this).die('click');
	$(this).html('');
	$('.'+$(this).attr('rel')).remove();
	$(document).die('keydown');
	$(this).hide().css('display','none');
	
		
}


var scrollInt
var scrTime, scrSt, scrDist, scrDur, scrInt, scrSl, scrDistX

function easeInOut(t,b,c,d)
{
	return (c/2 * (1 - Math.cos(Math.PI*t/d)) + b);
}

scrollPage = function()
{
	scrTime += scrInt

	if (scrTime < scrDur) {
		window.scrollTo(easeInOut(scrTime,scrSl,scrDistX,scrDur), easeInOut(scrTime,scrSt,scrDist,scrDur))
	} else {
		window.scrollTo(scrSl+scrDistX, scrSt+scrDist)
		clearInterval(scrollInt)
	}
}

jQuery.fn.extend({
	smoothScroll : function(duration, velocity, marginLeft, marginTop)
	{
		if(typeof(duration) == 'undefined') duration = 500
		if(typeof(velocity) == 'undefined') velocity = 10
		if(typeof(marginLeft) == 'undefined') marginLeft = 0
		if(typeof(marginTop) == 'undefined') marginTop = 0

		this.click(function(){
			var element_id = $(this).attr("href")
			var source_positions = {
				top : $(this).get(0).offsetTop,
				left : $(this).get(0).offsetLeft
			}
			var dest_positions = {
				top : $(element_id).get(0).offsetTop-marginTop,
				left : $(element_id).get(0).offsetLeft-marginLeft
			}

			if (window.scrollY)
				scrSt = window.scrollY
			else if (document.documentElement.scrollTop)
				scrSt = document.documentElement.scrollTop
			else
				scrSt = document.body.scrollTop
				
			if (window.scrollX)
				scrSl = window.scrollX
			else if (document.documentElement.scrollLeft)
				scrSl = document.documentElement.scrollLeft
			else
				scrSl = document.body.scrollLeft

			scrDist = dest_positions.top - scrSt
			scrDistX = dest_positions.left - scrSl
			scrDur = 500
			scrTime = 0
			scrInt = 5

			// set interval
			clearInterval(scrollInt)
			scrollInt = setInterval(scrollPage, scrInt)

			return false
		})
	}
})
