﻿var InstagramClient = function (client_id)
{
    var client_id = client_id;
    var access_token = "";
	var user_id = "";

    authenticate = function (redirect_url_path, callback)
    {
		setAccessToken();
		if(access_token == "") {
        	var redirect_url = getDomain() + redirect_url_path;
        	window.location = "https://instagram.com/oauth/authorize/?client_id=" + client_id + "&redirect_uri=" + redirect_url + "&response_type=token";
		}
		else {
			/*
			request('/users/self', 1, function(response){
				if(response.meta.code == 200) {
					user_id = response.data.id;
					callback(user_id);
				}
			});
			*/
			callback();
		}
    },
    setAccessToken = function ()
    {
        if (access_token == "") {
            var qs = [];
            try {
                qs = location.href.split('#')[1].split('=');
                if (qs[0] == "access_token") {
                    access_token = qs[1];
                }
            }
            catch (e) {
            }
        }
    },
    generateRequestUrl = function (endpoint, count)
    {
        var api_url = "https://api.instagram.com/v1";
        return api_url + endpoint + '?access_token=' + access_token + '&count=' + count + '&callback=cb';
    },
    request = function (endpoint, count, response_callback)
    {
        setAccessToken(); // set access token
        $.ajax( {
            url: generateRequestUrl(endpoint, count),
            data: {},
            dataType: 'jsonp',
            success: function (r) {
            	response_callback(r);
            }
        });
    }
    return { authenticate: authenticate, request: request };
};
