﻿var key;
function parseJSON(json) {
    try {
        if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(json)) {
            var j = eval('(' + json + ')');
            return j;
        }
    } catch (e) {
    }
    throw new SyntaxError("parseJSON");
}

// Function accessible by flash to open the twitter auth window via our api
function DoAuth() {
    $('#loadingIndicator').removeClass('hidden');
    var childWin = window.open('http://www.10downingtweets.co.uk/api.ashx/authoriseuser', 'child', "width=750, height=400, location=no, menubar=no, scrollbars=no, status=no, toolbar=no");
    //alert("DOAUTH") 
}

// Optionally receive a message from the child window, which is currently set to the authorisation token received from twitter
$.windowMsg("sendAuthToken", function(keyStr) {
    key = parseJSON(keyStr);
    //$('#token').html(key.Token + "<br />" + key.Secret);
    FlashCallbackProxy();
});

function thisMovie(movieName) {
    if (document[movieName]) {
        return document[movieName];
    } else {
        return window[movieName];
    }
}

function FlashCallbackProxy() {
    // Code to call the flash function if exists, if not try bind the html version
    if (thisMovie("mainContainer"))
        thisMovie("mainContainer").TwitterInTheHouse(key.Token, key.Secret);
    else {
        $('#loadingIndicator').removeClass('hidden');
        $.getJSON("http://www.10downingtweets.co.uk/api.ashx/getuserinfo?token="+key.Token+"&secret="+key.Secret,
                    function(data) {
                        $('#loadingIndicator').addClass('hidden');
                        $('#pnlTwitterLogin').css('display', 'none');
                        $('#pnlTwitterUser').css('display', 'block');
                        $('.tweetName').append(data.TwitterUsername);
                    });
    }
}

$(function() {
    // Initialize the jquery window messenger
    $.initWindowMsg();

    // Action the authorisation
    $('#auth').click(function() {
        DoAuth();
    });

    // Example of fetching the current authorised user
    $('#getUsr').click(function() {
        $('#loadingIndicator').removeClass('hidden');
        $.getJSON("http://www.10downingtweets.co.uk/api.ashx/getuserinfo",
                    function(data) {
                        $('#loadingIndicator').addClass('hidden');
                        $('#output').addClass('output');
                        $('#output').append(data.UserID + "<br />");
                        $('#output').append(data.TwitterUsername + "<br />");
                        $('#output').append(data.Location + "<br />");
                        $('#output').append("<img src=\"" + data.ProfileImage + "\" /><br />");
                        $('#output').append("<a href=\"" + data.Url + "\">" + data.Url + "</a><br />");
                        $('#output').append(data.TwitterID + "<br />");
                    });
    });
});
