	var swfId = 'Shell';
	var winname = 'socialShare';
	var winparams = 'toolbar=1,status=1,scrollbars=yes,resizable=yes,width=900,height=600';
	var call = "";
	var u = "";
	var t = "";
	var m = "";
	var s = "";
	function share(site, url, title){
		u = url==undefined? window.location.href: url;
	    t = title==undefined? document.title: title;
		t = encodeURIComponent(t);
		s = site;
		
		if (site == "twitter"){
			BitlyClient.shorten(u, 'BitlyCallback');
		}else{
			buildCall(s);
			runCall();
		}	
	}
	BitlyCallback = function(data) {
			var result;
				for (var r in data.results) {
					result = data.results[r];
					result['longUrl'] = r;
					break;
				}
			u = result['shortUrl'];
			buildCall(s);
			runCall();
		}
	function buildCall(site){
		u = encodeURIComponent(u);	
		switch(site){
			case "facebook":
				call = 'http://www.facebook.com/sharer.php?u='+u+'&t='+t;
			break;
			case "twitter":
				call = 'http://twitter.com/home?status='+truncate(t,138-u.length)+'%20-%20'+u;
			break;
		}
	}
	function truncate(str, limit) {
		var bits, i;
		bits = str.split('');
		if (bits.length > limit) {
			for (i = bits.length - 1; i > -1; --i) {
				if (i > limit) {
					bits.length = i;
				}
				else if (' ' === bits[i]) {
					bits.length = i;
					break;
				}
			}
			bits.push('...');
		}
		return bits.join('');
	}
	function runCall(){
	 var win = window.open(call, winname, winparams);
	 if(!win) {
        getSwf(swfId).openWindowFromSwf(call);
     }else {
        win.focus();
     }
	}
    function getSwf(id) {
        if (navigator.appName.indexOf("Microsoft") != -1) {
            return window[id];
        } 
        else {
            return document[id];
        }
    }    