if (!SI) { var SI = new Object(); };
SI.Request = 
{
	get		: function(url) // [target[,callback[,args]]]
	{
		this._request('GET',arguments);
	},
	
	post	: function(url)  //  [target[,callback[,args]]]
	{
		this._request('POST',arguments);
	},
		
	_request	: function(type,args)
	{
		if(args[0]=='vote')
		{
			document.getElementById('vote_instant_' + args[1]).innerHTML = 'загрузка..';			
		}
		
		if (args[0]=='vote')
		{	
			var envelope = 
			{
				request	: false,
				ram		: {}
			};
		
			/*@cc_on @*/
			/*@if (@_jscript_version >= 5)
			try { envelope.request = new ActiveXObject("Msxml2.XMLHTTP"); } 
			catch (e) {
				try { envelope.request = new ActiveXObject("Microsoft.XMLHTTP"); }
				catch (E) { envelope.request = false; };
				};
			@end @*/		
			if (!envelope.request && typeof XMLHttpRequest!='undefined')
			{
				envelope.request = new XMLHttpRequest();
			};
			
			if (!envelope.request)
			{
				return;
			};
			
			var url = args[0] + ((args[0].indexOf('?')!=-1)?'&':'?')+(new Date()).getTime();
			var query = null;
			
			if(args[0]=='vote')
			{
				url = '/instant/vote_instant.php';
				query = 'story_id=' + args[1] + '&token=' + args[3] + '&token=' + token;;
			}

				envelope.ram.target = url;
				envelope.request.open("GET",url+"?"+query,true);
				envelope.request.send(query);
								
		
			if (envelope.ram.target || envelope.ram.callback)
			{
				envelope.request.onreadystatechange = function()
				{
					if (envelope.request.readyState==4 && envelope.request.status==200)
					{
						if (envelope.ram.target)
						{
							var target = envelope.ram.target;
							var content = envelope.request.responseText;
							if (SI.IE && (target.nodeName == 'TBODY' || target.nodeName == 'TABLE'))
							{
								SI.IE.fixInnerHTML(target, content);
							}
							else
							{
								if(args[0]=='vote')
								{
									if(content == 'fine')
									{
										document.getElementById('vote_instant_' + args[1]).innerHTML = 'голосовать';
										
										/*digg numbers*/
										args[2]++;		
										document.getElementById('vote_num_' + args[1]).innerHTML = args[2];
										
										/*fade from FFFFFF to transparent at 30 frames per second for 500*/
										/*Fat.fade_element('vote_placeholder_' + args[1], 30, 500, "#FFFFFF", "")*/
									}
									else if(content == 'voted')  document.getElementById('vote_instant_' + args[1]).innerHTML = 'повтор';									
									else  document.getElementById('vote_instant_' + args[1]).innerHTML = 'ошибка';
								}
								
								if(args[0]=='spam' || args[0]=='old_news' || args[0]=='lame')
								{	
									if(content == 'fine')
									{
										document.getElementById('spam_instant_' + args[1]).innerHTML = 'проблема? (' + (args[2]*1+1) + ')';
										
										/*совместимость с news_mini*/
										if(document.getElementById('news_description_' + args[1]) != null)
										{
											document.getElementById('news_description_' + args[1]).className='news_description_abused';
											document.getElementById('vote_class_' + args[1]).className='vote_abused';
											document.getElementById('news_title_' + args[1]).className='news_title_abused';
											document.getElementById('news_misc_link_' + args[1]).className='news_misc_link_abused';											
//											fold_news(args[1]);																						
										}
										if(document.getElementById('this_is_index') != null)
										{
											fold_news(args[1]);
										}										
										
										if(document.getElementById('vote_instant_' + args[1]).innerHTML != 'голосовать')
										{
											document.getElementById('vote_instant_' + args[1]).innerHTML = 'голосовать'
										}										

									}
									else  document.getElementById('spam_instant_' + args[1]).innerHTML = 'ошибка';
								}
							}
						};
						if (envelope.ram.callback)
						{
							if (envelope.ram.args)
							{
								envelope.ram.callback(envelope.ram.args);
							}
							else
							{
								envelope.ram.callback();
							};
						};
					};
				};
			};
		}
	}
};
