var MousePos={};

$(document).ready(function(){
    $('body').bind('mousemove',function(e)
    {
	MousePos={X:e.pageX, Y:e.pageY};
    });

    // cache glownych elementow DOM
    var $header = $('#header'),
    $headerMainText = $header.find('#header-main-text');

    // dymek po najechaniu na 'czym jest podajdalej?'
    $headerMainText.find('#helper-popup').bind('mouseenter mouseleave', function(e) {
        var $startPopup = $headerMainText.find('#start-popup');
        switch (e.type) {
            case 'mouseenter': $startPopup.show(); break;
            case 'mouseleave': $startPopup.hide(); break;
        }
    });

    //MENU
    $("#nav>li").bind('mouseenter mouseleave',function()
    {
	$(this).find('ul').stop(true,true).slideToggle(100);
    });

    $("#przejrzyj-poradniki").hover(function(){
        $(this).css("background-position", "left bottom")

    }, function(){
        $(this).css("background-position", "left top")
    });

    $('div.avatar>a[rel]').baloon();

    var tooltips=
    {
	'req-baloon':
	[
	    '#randomRequest>div.help_sb', // strona glowna
	    '#user_helps_r div.question-box', // temat - zalogowany
	    '#wait_room_right div.question-box', // temat - niezalogowany && poczekalnia
	    '#user_get_helps_r div.question-box', // mi pomagaja
	    '#pomoce-lista>div.question-box'
	],
	'req-baloon2':
	[
	    '#ReqForUser div.question-box', // poczekalnia && start
	    '#pomoceSearchContent>div.question-box' // wyniki wyszukiwania - pomoce
	]
    },
    i='',
    j=0,
    $tooltipify=false;

    $.each(tooltips,function(i)
    {
	$.each(tooltips[i],function(j)
	{
	    $tooltipify=$(tooltips[i][j]);
	    if($tooltipify.length){
		$tooltipify.ToolTip({baloonClass: i});
	    }
	});
    });

    $('#poradniki-lista>div.solution_box_small').ToolTip({type:'poradnik'});
    // IE fix do pagera

    var $pager=$('div.pager'),
    $pagerLink=$pager.find('>a');
    if($.browser.msie && $pagerLink.length) {
	$pager.find('button').each(function()
	{
	    var $this=$(this),
	    $link=$this.parents('a');

	    $this.click(function()
	    {
		window.location=$link.attr('href');
	    });
	});
    }

     $('#SendRemind').click(function()
	{
	    var canSendRem = true,
	    emailData = {'email': $('#emailRem').val()},
	    $emailAlertRem=$('#emailAlertRem');
	    $.get("/User/checkEmail", emailData, function(data)
	    {
		if (data != "emailExist") {
		    $emailAlertRem.html("Podany adres Email nie istnieje w Portalu").css('display', 'block');
		}
		else {
		    $emailAlertRem.html("").css('display', 'none');
		    if (canSendRem) {
			 canSendRem = false;
			 $('#SendRemind').attr("disabled", "disabled");
			 showLoad();

			 $.get("/Login/PasswdRem", emailData, function() {
			     closeLoad();
			     $('#PswdRem').html('<div style="margin:15px">Na Twój adres e-mail wys\u0142ali\u015bmy wiadomo\u015b\u0107. Kliknij zawarty w niej link, by ustawi\u0107 nowe has\u0142o do Twojego konta w Podajdalej.pl</div> <input type="image" onclick="apiPswd.close();" class="zamknij" src="http://podajdalej.pl/Graphics/transparent11.png" />');
			 });
		    }
		}
	    });
	});



    $('#request-nav').click(function(e)
    {
	var $this=$(e.target);

	if($this.is('button')){
	    var dir=$this.hasClass('prev')?'prev':'next';

	    showLoad();
	    getReq(dir);

	    clearInterval(nextRequest);
	    return false;
	}
    });

    function getReq(type)
    {
	var $actualId=$('#actualID'),
	$requestContent=$('#request-content');

        if ($actualId.length) {
            $requestContent.fadeOut("fast",function()
	    {
		var data = {'type': type, 'id': $actualId.html()};
		$.get("/Home/getReq?" + (new Date()).getMilliseconds(), data, function(data) {
		    closeLoad();
		    if (data.indexOf("e6a-;+%$#828d56") < 1 ) {
			$requestContent.html(data).fadeIn('fast');

			$('#pomoge-button').attr('href', "../../"+$('#request-content>h2>a').attr('href'));
		    }
		});
	    });
        }
    }

    var nextRequest=setInterval(function(){getReq('next')}, 25000);

});

$.fn.extend(
{
    baloon: function()
    {
	var $this=$(this),
	$baloons=$('div.baloon'),
	t;

	$this.live('mouseenter', function()
	{
	    var $link=$(this),
	    $baloon=$link.next('div.baloon');

	    $baloons.css('display','none');

	    var rel=$link.attr('rel');
	    if(rel.length>0){
		t=setTimeout(function()
		{
		    $.ajax(
		    {
			url:'/User/baloon',
			method:'get',
			data: {'id':$link.attr('rel')},
			success:function(res)
			{
			    $baloon.html(res).fadeIn('fast');
			}
		    });
		},500);
	    }
	});
	$this.live('mouseleave', function()
	{
	    var $link=$(this),
	    $baloon=$link.next('div.baloon');

	    clearTimeout(t);
	    $baloon.fadeOut().css('display','none');
	});
    },

    ToolTip: function(options)
    {
	var $This=$(this),
	defaults=
	{
	    type: 'prosba',
	    baloonClass: 'req-baloon'
	},
	settings = $.extend({}, defaults, options),
	t;

	$This.live('mouseenter', function(e)
	{
	    var $this=$(this),
	    $tooltip=$('#tooltip'),
	    rel=$this.find('a[rel]:last-child').attr('rel'),
	    request=
	    {
		"id": rel,
		"type": settings.type
	    },
	    offset=$this.offset();

	    $tooltip.css('display','none');
	    if(rel.length>0){
		t=setTimeout(function()
		{
		    $.ajax(
		    {
			url:'/Home/getDetails',
			method:'get',
			data:request,
			dataType:'json',
			success:function(res)
			{
			    var HTML='',
			    className='';
			    switch(settings.type){
				case 'prosba':
				    className=res[4]==2?'open-help':'priv-help';
				    HTML='\n\
				    <div class="utt '+settings.baloonClass+'">\n\
					<div class="utt-body">\n\
					    <div class="utt-cone-left">\n\
					    </div>\n\
					    <div class="utt-content-left">\n\
						<div class="utt-content-top">\n\
						</div>\n\
						<div class="utt-content-middle">\n\
						    <div class="utt-content-middle-body">\n\
							<span class="icon '+className+'"></span>\n\
							<div class="baloon-date">\n\
							    termin wa\u017cności: '+res[2]+'\n\
							</div>\n\
							<div class="content">\n\
							<h3>'+res[0]+'</h3>\n\
							<p>'+res[1]+'</p>\n\
							</div>\n\
						    </div>\n\
						</div>\n\
					    <div class="utt-content-bottom">\n\
					    </div>\n\
					    </div>\n\
					</div>\n\
				    </div>';
				    break;
				case 'poradnik':
				    HTML='\n\
				    <div class="utt '+settings.baloonClass+'">\n\
					<div class="utt-body">\n\
					    <div class="utt-cone-left">\n\
					    </div>\n\
					    <div class="utt-content-left">\n\
						<div class="utt-content-top">\n\
						</div>\n\
						<div class="utt-content-middle">\n\
						    <div class="utt-content-middle-body">\n\
							<div class="infodata">\n\
							    '+res[2]+'\n\
							</div>\n\
							<div class="content">\n\
							<h3>'+res[0]+'</h3>\n\
							<p>'+res[1]+'</p>\n\
							</div>\n\
						    </div>\n\
						</div>\n\
					    <div class="utt-content-bottom">\n\
					    </div>\n\
					    </div>\n\
					</div>\n\
				    </div>';
				    break;
			    }

			    switch(settings.baloonClass){
				case 'req-baloon':
				    offset.left-=420;
				    offset.top-=80;
				    break;

				case 'req-baloon2':
				    offset.left+=390;
				    offset.top+=58;
				    break;
			    }

			    $tooltip.css(
			    {
				'left':offset.left,
				'top':offset.top
			    });

			    $tooltip.html(HTML).css({'display':'block'});//,'opacity':'0.1'});
			    var minus=$tooltip.find('p').height();
			    if(settings.baloonClass=='req-baloon' && minus>60){
				$tooltip.css(
				{
				    'top': offset.top-/*(65+*/minus//)
				});
			    }
			    $tooltip.fadeIn(500);
			}
		    });
		},1500);
	    }
	});
	$This.live('mouseleave', function()
	{
	    var $tooltip=$('#tooltip');

	    clearTimeout(t);
	    $tooltip.css('display','none');
	});
    },

    clear: function()
    {
	var $this=$(this),
	val=$this.val();

	$this.bind('focus blur',function(e)
	{
	    if(e.type=='focus'){
		$this.val('');
	    }
	    if(e.type=='blur' && $this.val()==''){
		$this.val(val);
	    }
	});
    }
});

function showLoad()
{
    $('#loading')
	.css(
	{
	    'top': [MousePos.Y,'px'].join(''),
	    'left': [MousePos.X,'px'].join('')
	})
	.fadeIn('fast');

}

function closeLoad()
{
    $('#loading').fadeOut('fast');
}

/**
 * Pokazuje aktywności
 *
 * @example pageIt($('#active_helps'),'/User/GetActivityHelps',{'page':2,'user_id':92})
 *
 * @param $activity obiekt jQuery wskazujacy na element, w którym ma sie pojawic zwrocona zawartosc
 * @param url adres do wysłania zapytania
 * @param sendData obiekt JS do wysłania
 *
 */

function pageIt($activity,url,sendData)
{
    showLoad();
    $.get(url, sendData, function(returnData)
    {
	closeLoad();
	$activity.html(returnData);
    });
}