var dbg = {};
(function($) {

    $.fn.doToolTipLogin = function(_LookUpSrc) {
        $('.LoginTooltipMain').css('display', 'block');
        $('.LoginTooltipSuccess').css('display', 'none');
        $('.LoginTooltipError').css('display', 'none');
        $('.LoginTooltipForgotenPsw').css('display', 'none');
        $('.LoginTooltipForgotenPswConfirm').css('display', 'none');
		
		$('.FPError').css('display', 'none');
		$('.UPError').css('display', 'none');
		$('.LDError').css('display', 'none');

        var theThis = this;
        var theForm = $(this).parents('div.LoginTooltipMain').eq(0).get(0);
        var txt_UserName = $(theForm).find('input[name = "uname"]').val();
        var txt_Password = $(theForm).find('input[name = "pwd"]').val();
        var bool_RememberMe = $(theForm).find('input[name = "rememberLogin"]').eq(0).get(0).checked;

        var ErrorUserNameFld = $('.LoginTooltipError input[name = "uname"]');
        var ErrorpwFld = $('.LoginTooltipError input[name = "pwd"]');

        var greetingStr = '';

        if (txt_UserName != '' && txt_Password != '') {

            $.ajax({
                type: "POST",
                url: "/UserAccountService.svc/Login",
                data: '{"username":"' + txt_UserName + '","password":"' + txt_Password + '","rememberMe":' + bool_RememberMe + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    $(theForm).find('input[name = "uname"]').val('');
                    $(theForm).find('input[name = "pwd"]').val('');

                    if (result.d.IsAuthenticated) {
                        $(theThis).UpdateLblForUserAuthentication({ status: "Login", displayname: result.d.UserName });

                        greetingStr = "HEY ";
                        greetingStr += result.d.UserName;
                        greetingStr += "<br/>";
                        greetingStr += "THANKS FOR LOGGING IN!";

                        Success(greetingStr);
                    } else {
                        Error();
                    }

                }
            });

        } else {
			$('.MError').css('display', 'block');
			$('.LDError').css('display', 'block');
           // alert('please enter your login details');
        }

        function Success(_greetingStr) {
            $('.LoginTooltipSuccess').css('display', 'block');
            $('.LoginTooltipMain').css('display', 'none');
            $('.LoginTooltipError').css('display', 'none');
            $('.LoginTooltipForgotenPsw').css('display', 'none');
            $('.LoginTooltipForgotenPswConfirm').css('display', 'none');
            $('.LoginTooltipSuccess p.thankCopy').html(_greetingStr);
        }
        function Error() {

            $('.LoginTooltipSuccess').css('display', 'none');
            $('.LoginTooltipMain').css('display', 'none');
            $('.LoginTooltipError').css('display', 'block');
            $('.LoginTooltipForgotenPsw').css('display', 'none');
            $('.LoginTooltipForgotenPswConfirm').css('display', 'none');

            $('.LoginTooltipError input[name = "uname"]').bind('keyup', function() {
                $('div.LoginTooltipMain input[name = "uname"]').val(
                    $(ErrorUserNameFld).val()
                )
            });
            $('.LoginTooltipError input[name = "pwd"]').bind('keyup', function() {
                $('div.LoginTooltipMain input[name = "pwd"]').val(
                    $(ErrorpwFld).val()
                )
            });
            $('.LoginTooltipError input[name = "rememberLogin"]').bind('change', function() {
                $('div.LoginTooltipMain input[name = "rememberLogin"]').eq(0).get(0).checked = this.checked;
            });

        }

    };

    $.fn.doToolTipForgotPassword = function() {
        $('div.LoginTooltipSuccess').css('display', 'none');
        $('div.LoginTooltipMain').css('display', 'none');
        $('div.LoginTooltipError').css('display', 'none');
        $('div.LoginTooltipForgotenPsw').css('display', 'block');
        $('div.LoginTooltipForgotenPswConfirm').css('display', 'none');

        $('div.LoginTooltipForgotenPsw a.submitBtn').bind('click', function() {
            var _emailValue = $(this).parents('div.LoginTooltipForgotenPsw').find('input#emailForgotPwd').val();
            //TODO EMAIL field validations

            $.ajax({
                type: "POST",
                url: "/UserAccountService.svc/ResendPassword",
                data: '{"emailAddress":"' + _emailValue + '"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    if (!result.d.WasSent) {
						
						$('.FPError').css('display', 'block');
                        //alert("We could not find your email address in our system. Please type it again");
                        return;
                    } else {
                        $('div.LoginTooltipSuccess').css('display', 'none');
                        $('div.LoginTooltipMain').css('display', 'none');
                        $('div.LoginTooltipError').css('display', 'none');
                        $('div.LoginTooltipForgotenPsw').css('display', 'none');
                        $('div.LoginTooltipForgotenPswConfirm').css('display', 'block');
						$('.FPError').css('display', 'none');
                        $('div.LoginTooltipForgotenPswConfirm a.closeBtn').bind('click', function() {
                            document.body.onclick();
                        });
                    }



                }
            });

        });



    };

    $.fn.doLogin = function(_func) {
        var theThis = this;
        var theForm = $(this).parents('div.keystoneLogin').eq(0);
        var txt_UserName = $(theForm).find('input#Username').val();
        var txt_Password = $(theForm).find('input#Password').val();
        var bool_RememberMe = $(theForm).find('input#RememberMe').eq(0).get(0).checked;
		$('.Err1').css('display', 'none');
		$('.Err2').css('display', 'none');
		
        if (txt_UserName != '' && txt_Password != '') {
            // if validation is OK
            $.ajax({
                type: "POST",
                url: "/UserAccountService.svc/Login",
                data: '{"username":"' + txt_UserName + '","password":"' + txt_Password + '","rememberMe":' + bool_RememberMe + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
					$('.Err1').css('display', 'none');
					$('.Err2').css('display', 'none');
                    if (result.d.IsAuthenticated) {
                        if ($.isFunction(_func)) {
							$(theThis).UpdateLblForUserAuthentication({ status: "Login" , displayname: result.d.UserName});
                            _func();
                        } else {
                            // Do default procedures
							console.log('fail, no follow through', _func);
                        }
                    } else {
						$('.Err1').css('display', 'block');
						//alert('Sorry your username or password was incorrect');
					}
                 
                }
            });

        } else {
			$('.Err2').css('display', 'block');
            //alert('please enter your login details');
        }
    };

    $.fn.doLogout = function() {
        $.getJSON('http://' + window.location.hostname + '/UserAccountService.svc/Logout', function(theAuthentication) {

        });

        $(this).UpdateLblForUserAuthentication({ status: "Logout" })
        /*
        $('.LoginTooltipSuccess').css('display', 'none');
        $('.LoginTooltipMain').css('display', 'block');
        $('.LoginTooltipMain input[name = "uname"]').val('');
        $('.LoginTooltipMain input[name = "pwd"]').val('');
        $('.LoginTooltipError').css('display', 'none');
        $('.LoginTooltipError input[name = "uname"]').val('');
        $('.LoginTooltipError input[name = "pwd"]').val('');

        $('.RegTooltipMain').css('display', 'block');
        $('.RegTooltipError,.RegTooltipSuccess').css('display', 'none');
        $('.RegTooltipMain input[name = "runame"]').val('');
        $('.RegTooltipMain input[name = "rpwd"]').val('');
        $('.RegTooltipMain input[name = "rpwd2"]').val('');
        $('.RegTooltipMain input[name = "remail"]').val('');
        $('.RegTooltipMain input[name = "rmobile"]').val('');

        try {
        $('.RegTooltipMain input[name = "rTAC"]').get(0).checked = false;
        }
        catch (e) {
        }
        */

    };

    $.fn.UpdateLblForUserAuthentication = function(theOption) {

        var lbl_userName = $(".pageHeader .memberships .username");
        var hlink_login = $(".pageHeader .memberships .login");
        var hlink_registration = $('.pageHeader .memberships .signup');
        var hlink_logout = $(".pageHeader .memberships .logout");
		var hlink_profile = $(".pageHeader .memberships .uprofile");


        var greetingStr = "HEY ";
        greetingStr += theOption.displayname;
        greetingStr += "<br/>";
        greetingStr += "THANKS FOR LOGGING IN!";
		
		Amnesia.DisplayUserName = theOption.displayname;

        if (theOption.status == "Login") {
            $(hlink_login).css('display', 'none');
			$(hlink_profile).css('display', 'block');
            $(hlink_registration).css('display', 'none');
            $(hlink_logout).css('display', 'block');
            $(lbl_userName).text("Hello " + theOption.displayname);
            $.page.IsUserAuthenticated = true;
			
			
			//alert('! '+theOption.displayname);
			setTimeout(function(){
						addFullUserPlaylist ();
						$('#lh_playlistUser').text(theOption.displayname +"`s Playlist");
						openUserPlst()
					},600);
			
        }
        else if (theOption.status == "Logout") {
			channelv.Page.VideoPlayListController.updateUserPlaylist();
            $(lbl_userName).text("Hello Stranger");
            $(hlink_login).css('display', 'block');
			$(hlink_profile).css('display', 'none');
            $(hlink_registration).css('display', 'block');
            $(hlink_logout).css('display', 'none');
            $.page.IsUserAuthenticated = false;
			$('#lh_UserPlaylist').text("User Playlist");
        };

    };

})(jQuery);



//div.requestsWrapper

