var spinacz = {
	hash:'',
	host:'',
	lock:false,
	text:'',
	link:window.location.href,
	init:function(hash, host){
		spinacz.hash = hash;
		spinacz.host = host;
		var jq = document.createElement('script');
		jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js';
		jq.type='text/javascript';
		document.getElementsByTagName('head')[0].appendChild(jq);
		jq.onreadystatechange=function(){
			if(this.readyState=='complete'){
				spinacz.draw();
			}
		};
		jq.onload=spinacz.draw;
	},
	draw:function(){
		if(spinacz.lock) {
			spinacz.focus();
			return;
		}
		spinacz.lock=true;
		var style='<style type="text/css">\
			#spinacz *{margin:0;padding:0;border:0;font-family:"Trebuchet MS",Verdana;font-size:14px;background:none;}\
			#spinacz {-moz-border-radius-bottomleft:10px;-webkit-border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-webkit-border-bottom-right-radius:10px;}\
			#spinacz .spinacz_r {-moz-border-radius:6px;-webkit-border-radius:6px;padding:3px 12px;}\
			#spinacz .spinacz_a {border:2px solid #2F548F;background:#fff;}\
			#spinacz .spinacz_b {color:#fff;border:0;background:#2F548F;font-weight:bold;cursor:pointer;padding:4px 12px;}\
			#spinacz input:focus{outline:0;}\
			</style>';
		var html = '<table border="0" style="width:100%;" celpadding="0" colspacing="0"><tr>\
			<td style="background:url(http://s.spinacz.pl/images/spinacz_small.gif) center left no-repeat;width:110px;cursor:pointer;" onclick="javascript:window.open(\'http://\'+spinacz.host,\'\');" valign="center"></td>\
			<td valign="center"><div class="spinacz_a spinacz_r"><input type="text" style="width:100%;border:0;color:#2f548f;text-align:left;" maxlength="150" value=""/></div></td>\
			<td style="color:#fff;width:150px;text-align:right;" valign="center"><nobr><input type="button" class="spinacz_r spinacz_b" value="Napisz" onclick="javascript:spinacz.send();"/>&nbsp;lub <a href="javascript:spinacz.close();" style="color:#fff;text-decoration:undreline;">anuluj</a></nobr></td>\
			</tr></table>';
		jQuery('<div>').attr('id','spinacz').css({
			position : (jQuery.browser.msie?'absolute':'fixed'),
			top : 0,
			left : '5%',
			right : '5%',
			padding : '10px',
			border : 0,
			borderTop : 0,
			background : '#5295fc',
			zIndex : 99999,
			display : 'none'
		}).html(html+style).keyup(function(e){
			if(e.which==27){spinacz.close()}
			if(e.which==13){jQuery('input[type=button]','#spinacz').click()}
		}).appendTo(document.body);
		if(!spinacz.text) {
			spinacz.text = (document.title?document.title:'');
		}
		jQuery('input[type=text]','#spinacz').val(spinacz.text.replace(/^[ \t\n\r]+/g, "").replace(/[ \t\n\r]+$/g, "").replace(/ [ ]+/g, " "));
		jQuery('#spinacz').slideDown('fast',spinacz.focus);
		if(jQuery.browser.msie){window.onscroll=function(){jQuery('#spinacz').css({top:document.body.scrollTop});}}
	},
	close:function(){
		try{
			jQuery('#spinacz').slideUp('fast',function(){
				if(jQuery.browser.msie){window.onscroll=null}
				jQuery('#spinacz').remove();
				spinacz.lock=false;
			});
		}catch(e){}
	},
	send:function(){
		if(!spinacz.host) {
			spinacz.host = "spinacz.pl";
		}
		var url = 'http://'+spinacz.host+'/feeds/add.redirect?';
		if(spinacz.hash) {
			url += 'HASH='+spinacz.hash+'&from=3&';
		} else {
			url += 'from=4&';
		}
		content = spinacz.encode(jQuery('input[type=text]','#spinacz').val() + " " + spinacz.link);
		url += 'content='+content;
		window.open(url,'');
		spinacz.close();
	},
	focus:function(){
		s=jQuery('input[type=text]','#spinacz').focus();
		s.val(s.val());
	},
	encode:function(data){
		var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
		var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];
		if(!data) return data;
		data = spinacz.utf8_encode(data+'');
		do {
			o1 = data.charCodeAt(i++);
			o2 = data.charCodeAt(i++);
			o3 = data.charCodeAt(i++);
			bits = o1<<16 | o2<<8 | o3;
			h1 = bits>>18 & 0x3f;
			h2 = bits>>12 & 0x3f;
			h3 = bits>>6 & 0x3f;
			h4 = bits & 0x3f;
			tmp_arr[ac++] = b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);
		} while(i < data.length);
		enc = tmp_arr.join('');
		switch(data.length % 3) {
			case 1:
				enc=enc.slice(0, -2)+'==';
			break;
			case 2:
				enc=enc.slice(0, -1)+'=';
			break;
		}
		return enc;
	},
	utf8_encode:function(argString){
		var string=(argString+'').replace(/\r\n/g,"\n").replace(/\r/g,"\n");
		var utftext="";
		var start,end;
		var stringl=0;
		start=end=0;
		stringl=string.length;
		for(var n=0;n<stringl;n++) {
			var c1=string.charCodeAt(n);
			var enc=null;
			if(c1<128) {
				end++;
			}else if(c1>127&&c1<2048) {
				enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);
			} else {
				enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);
			}
			if (enc!==null) {
				if(end>start) utftext+=string.substring(start,end);
				utftext+=enc;
				start=end=n+1;
			}
		}
		if(end>start) utftext+=string.substring(start,string.length);
		return utftext;
	}
}
