Object.prototype.append = function(object) {
    for (key in object)
     {
          this[key]=object[key];
     }
}

var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

// Сохраняем стандартную функцию escape()
var escapeOrig = window.escape;

// Переопределяем функцию escape()
window.escape = function(str)
{
  var ret = [];
  // Составляем массив кодов символов, попутно переводим кириллицу
  for (var i = 0; i < str.length; i++)
  {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != 'undefined')
      n = trans[n];
    if (n <= 0xFF)
      ret.push(n);
  }
  return escapeOrig( String.fromCharCode.apply(null, ret) );
}

function getXmlHttp(){
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function save_settings(type,id,descr,device,usluga,connect,iface,devicenum,platform,captcha,divid){
	show_loader();
	var xmlhttp = getXmlHttp();
	
	descr=descr.replace(/<\/?pre.*?>/gi,'');
	descr=descr.replace(/<\/?font.*?>/gi,'');
	descr=descr.replace(/<\/?small.*?>/gi,'');
	descr=descr.replace(/<\/?big.*?>/gi,'');
	descr=descr.replace(/<\/?sub.*?>/gi,'');
	descr=descr.replace(/<\/?sup.*?>/gi,'');
	descr=descr.replace(/<\/?blockquote.*?>/gi,'');
	descr=descr.replace(/<\/?q.*?>/gi,'');
	descr=descr.replace(/<\/?strike.*?>/gi,'');
	descr=descr.replace(/<\/?h[1-6].*?>/gi,'');
	descr=descr.replace(/<script.*?>.*?<\/script.*?>/gi,'');
	descr=descr.replace(/<object.*?>.*?<\/object.*?>/gi,'');
	descr=descr.replace(/(<[^>]*?)color=.*?(\s|>)/gi,'$1$2');
	descr=descr.replace(/(<[^\/]*?style\s*=\s*.*?)color\s*:\s*[^"';]*(["';])/gi,'$1');
	descr=descr.replace(/(<[^>]*?)size=.*?(\s|>)/gi,'$1$2');
	descr=descr.replace(/(<[^\/]*?style\s*=\s*.*?)font-size\s*:\s*[^"';]*(["';])/gi,'$1');
	
	var params ='act=save' +  
	'&type=' + type + 
	'&id=' + id + 
	'&descr=' + escape(descr).replace(/\+/gi,"%2B") + 
	'&device=' + device + 
	'&usluga=' + usluga + 
	'&type=' + type + 
	'&connect=' + connect + 
	'&iface=' + iface + 
	'&devicenum=' + devicenum + 
	'&platform=' + platform + 
	'&captcha=' + captcha +
	'&div=' + divid;
	xmlhttp.open('POST', '/upl.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if(xmlhttp.status == 200) {
//				alert('1');
				hide_loader();
				eval(xmlhttp.responseText);
//				alert(xmlhttp.responseText);
			}
			else{
				hide_loader();
			}
		}
		else{
			hide_loader();
		}
	};
//	alert('2');
//	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.setRequestHeader("Content-Length", "0");
	xmlhttp.send(params);
//	alert(params);
}

function str_replace(search,replace,subject)
{
if(!(replace instanceof Array))
	{
	replace=new Array(replace);
	if(search instanceof Array)
		{
		while(search.length>replace.length)
			{
			replace[replace.length]=replace[0];
			}
		}
	}

if(!(search instanceof Array))search=new Array(search);
while(search.length>replace.length)
	{
	replace[replace.length]='';
	}

if(subject instanceof Array)
	{
	for(k in subject)
		{
		subject[k]=str_replace(search,replace,subject[k]);
		}
	return subject;
	}

for(var k=0; k<search.length; k++)
	{
	var i = subject.indexOf(search[k]);
	while(i>-1)
		{
		subject = subject.replace(search[k], replace[k]);
		i = subject.indexOf(search[k],i);
		}
	}
return subject;
}

function savefile(descr,num,captcha){
	var id			=	settings_values[num]['id'];
	var type		=	settings_values[num]['type'];
	var usluga		=	settings_values[num]['usluga'];
	var connect		=	settings_values[num]['connect'];
	var iface		=	settings_values[num]['iface'];
	var device		=	settings_values[num]['device'];
	var devicenum	=	settings_values[num]['devicenum'];
	var platform	=	settings_values[num]['platform'];
	var captchav	=	document.getElementById(captcha).value;
	var divid       =   settings_values[num]['div'];
	save_settings(type,id,descr,device,usluga,connect,iface,devicenum,platform,captchav,divid);
	try{document.getElementById('header'+str_replace('settings__text','',num)).className='header'+userstatus;}catch(e){}
}

function cancelFile(num)
{
	var xmlhttp = getXmlHttp();
	var params ='act=cancel' +  
	'&id=' + settings_values[num]['id'] + 
	'&device=' + settings_values[num]['device'] + 
	'&type=' + settings_values[num]['type'] + 
	'&usluga=' + settings_values[num]['usluga'] + 
	'&connect=' + settings_values[num]['connect'] + 
	'&iface=' + settings_values[num]['iface'] + 
	'&devicenum=' + settings_values[num]['devicenum'] + 
	'&platform=' + settings_values[num]['platform'] + 
	'&div=' + settings_values[num]['div'];
	xmlhttp.open('POST', '/upl.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if(xmlhttp.status == 200) {
				eval(xmlhttp.responseText);
			}
		}
	};
	xmlhttp.setRequestHeader("Content-Length", "0");
	xmlhttp.send(params);
	try{document.getElementById('header'+prevheaderi).className=prevheader;}catch(e){}
}
