function Auth() {
	Auth.superclass.constructor.apply(this, arguments);
	
	var idUI = '#gigya_login_links';
	var _redirect = '';
	
	var initUI = function() {
		if(!$(idUI).length){
			$("body").append('<div id="' + idUI.replace('#', '') + '" class="popup-list hidden-object"><div class="bg-list-add-item"><div class="popup-info"><div id="gigya_login_container"><p>Please Login using one of the following providers:</p><a href="#twitter-login" title="Twitter" id="tlogin" class="twitter-login"></a><a href="#facebook-login" title="Facebook" id="flogin" class="facebook-login"></a></div></div></div><div class="list-add-item-bottom">&nbsp;</div></div>');
		}
		
		/*
		$('.twitter-login').click(function (){
			//window.location = "/twitter/login";
			window.open("/twitter/login", "twcWindow","width=700,height=500,left=200,top=200,scrollbar=no,resize=no");
			return false;
		});
		
		$('.facebook-login').click(function (){
			//window.location = "/facebook/login";
			window.open("/facebook/login", "twcWindow","width=700,height=500,left=200,top=200,scrollbar=no,resize=no");
			return false;
		});
		*/
		
		$('.need-login').click (function (e) {
			e.preventDefault();
			
			if ($(this).attr("href") == "/create-list") {
				_redirect = "/create-list";
			} else {
				_redirect = null;
			}
			
			auth.showAuthWindow();
			$('#user-login #username').focus();
			
			return false;
		})
	};
	
	this.showAuthWindow = function(){
		modalWindow.show(idUI);
	};
	
	this.getUser = function() {		
		return this.get('user');
	};
	
	this.setData = function(data) {
		this.set('user', data);
	};
    
    this.isLogIn = function() {
        user = this.getUser();
        if (user.id)
            return true;
        else
            return false;
    };
    	
    this.provider = function() {
		if (this.isLogIn) {
			return this.get('user').provider;
		} else {
			return null;
		}
    };
	
	this.loginCallback = function(response) {
		
		var userData = {
			UID 		: response.UID,
			provider 	: response.provider,
			user_uid 	: response.user.UID,
			name 		: response.user.nickname,
			avatar 		: response.user.photoURL,
			mid			: $("#master-list-id").size() ? $("#master-list-id").text() : '' 
		};
		
		
		this.rpc(
			"/auth/check-user",
			userData,
			function (data) {
				if (!data){
					return true;
				}
				
				$("#profile").html('Logged in as '+ data.user.name +' &sdot; <a href="/'+ data.user.custom_route +'" title="My Listikis">My Listikis</a> &sdot; <a href="/logout" id="logout" title="Logout">Logout</a>');
				
				this.setData(data.user);
				if (_redirect) {
					location.href =_redirect;
				} else if (data.redirect) {
					location.href = data.redirect;
				} else {
					location.reload();
				}
			},
			this
		);
	}; 
	
	var init = function() {
		initUI();
	};
	
	this.addListener('ready', init);
}

extend(Auth, Model);


