
var CURRENT_URL = document.location;
var MOVIE_NAME = "FLASH_SWF";

function getRandomSpaces(){
	var newSpaces = " ";
	var random = Math.floor(Math.random()*100);
	for(var i=0; i < random; i++){
		newSpaces = newSpaces+" ";
	}
	return newSpaces;
}

// init
if (!window.FBO) {
    FBO = {};
}
if (!FBO.locale) {
    FBO.locale = "en_US";
}
if (!FBO.localeIsRTL) {
    FBO.localeIsRTL = false;
}
if (!window.FBO) window.FBO = {};
if (!window.FBO.isSecure) window.FBO.isSecure = function () {
    return (window.location.href.indexOf('https') === 0) || (window.name.indexOf('_fb_https') > -1);
};

// FBO share class
if (!window.FBO.Share) {
    FBO.Share = {
        results: {},
        insert: function (a) {
            (document.getElementsByTagName('HEAD')[0] || document.body).appendChild(a);
        },
		//---------------------------
		// query
        addQS: function (d, c) {
            var a = [];
            for (var b in c) if (c[b]) a.push(b.toString() + '=' + encodeURIComponent(c[b]));
            return d + '?' + a.join('&');
        },
		//---------------------------
		// ask fb for share count
		// callback: "fb_share_ballback"
        fetchData: function () {
			var testURL = CURRENT_URL+getRandomSpaces();

			// push URLS
            var c = document.createElement('script');
			var a = [];
			a.push('"' + testURL.replace('\\', '\\\\').replace('"', '\\"') + '"');

            c.src = this.addQS((FBO.isSecure() ? 'https:' : 'http:') + '//api.facebook.com/restserver.php', {
                v: '1.0',
                method: 'links.getStats',
                urls: '[' + a.join(',') + ']',
                format: 'json',
                callback: 'fb_share_ballback'
            });
            this.insert(c);
        },
		//---------------------------
		// constructor
        _onFirst: function () {
            var b = document.createElement('link');
            b.rel = 'stylesheet';
            b.type = 'text/css';
            var a = (FBO.isSecure() ? 'https://s-static.ak.fbcdn.net/' : 'http://static.ak.fbcdn.net/');
            b.href = a + 'connect.php/css/share-button-css';

			FBO.Share.fetchData();
        }
    };
}
// window callback for FB query
if (!window.fb_share_ballback) window.fb_share_ballback = function (c) {

	for (var d = 0; c && d < c.length; d++) 
		FBO.Share.results[c[d].url] = c[d];

	// send flash the new number of shares on FBO
	//sendValueToFlash(FBO.Share.results[CURRENT_URL].total_count);
	
	// TESTING:
	// always return higher "share" count
	TEST_COUNTER++;
	sendValueToFlash(TEST_COUNTER);
};
var TEST_COUNTER = 0;
// Flash & Javascript
function queryFBShares() {  
	FBO.Share._onFirst();
}  
function getSwf(movieName) {   
	var isIE = navigator.appName.indexOf("Microsoft") != -1;   
	return (isIE) ? window[movieName] : document[movieName];  
} 
function sendValueToFlash(newValue){
	getSwf(MOVIE_NAME).sendTextToFlash(newValue); 
}

function OpenWindow(pageUrl) {
	// todo: put this in its own function, and call it when person shares the site	
	//_gaq.push(['_trackEvent', 'facebook', 'shares', 'open window on '+pageUrl]);
	
	// push this info to google analytics
	initAnalyticsEvent("facebook", "share button clicked", ""+pageUrl);
	
	var winName = Math.round(9999*Math.random()) + new Date().getTime();
	
	// open window (reasonable browsers)
	var winNew = window.open(pageUrl,winName,"toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1,width=600,height=400,left=200,top=100");

	// open window from flash (safari)
	if(!winNew) {
		getSwf(MOVIE_NAME).openWindowFromSwf(pageUrl);
	}
	else {
		winNew.focus();
	}
}

// post an event to gogle analytics
function initAnalyticsEvent(newCategory,newAction,newLabel){
	_gaq.push(['_trackEvent', ''+newCategory, ''+newAction, ''+newLabel]);
}
