var onlineaction = 0;
//------------------------------------------------------------------------
function createXMLHttpRequest() {
	var xmlReq = false;
	
	if(window.XMLHttpRequest) {
		try {
			xmlReq = new XMLHttpRequest();
		} catch(e) {
			xmlReq = false;
		}
	} else if(window.ActiveXObject) {
		try {
			xmlReq = new  ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlReq = new  ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlReq = false;
			}
		}
	}
	if (!xmlReq) {alert("Error in create reguest object!"); return ;}
	return xmlReq;
}
//------------------------------------------------------------------------
function SendRequest(method,query,wid,wait,back,fileofajax,errorfile,execafter) {
	if (wid != "") {
	 document.getElementById(wid).innerHTML = wait;
	}	

	if ((!fileofajax) || (fileofajax == "")) {	
	 var url = '/ajax/action.php';
	 if (method == "GET") {
	  url = url + '?' + query;
	 }	
	 var errorfile1 = "action.php";
	}
	else
	{		
	 var url = fileofajax;
	 if (method == "GET") {
	  url = url + '?' + query;
	 }
	 var errorfile1 = errorfile;	
	 //alert(url);
	}
	var xmlReq = createXMLHttpRequest();
	if(xmlReq) {
		xmlReq.onreadystatechange = function() {
			if (xmlReq.readyState == 4) {
				if (xmlReq.status == 200 || xmlReq.status == 201) {
					if (xmlReq.responseText != '') {
						if (xmlReq.responseText.indexOf(errorfile) > 0) {
						  alert("Во время выполнение произошла ошибка! - возможно было превышено время выполнение...");	
						  alert(xmlReq.responseText);
						}
						else
						{
						 //alert(xmlReq.responseText);	
						 eval(xmlReq.responseText);	
						 if (execafter) {
						  if (execafter != "") {
						   eval(execafter);	
						  }	
						 }						 
						}
						if (back != "") {
						 if (document.getElementById(wid)) {
						  document.getElementById(wid).innerHTML = back;
						 }
						}
					   onlineaction = 0; 	
					}
				}
			}
		};
		if (method == "GET") {
		 xmlReq.open(method, url, true);
		 xmlReq.send(null);		 	
		}
		else
		{	
         xmlReq.open(method, url, true); 
         xmlReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
         xmlReq.setRequestHeader("Content-length", query.length); 
         xmlReq.setRequestHeader("Connection", "close"); 
         xmlReq.send(query);
		}
		return false;
	}
	return true;
}

//------------------------------------------------------------------------
function CheckOnlineAction() {
 if (onlineaction > 0) {
  alert('Пожалуйста, подождите....\r\nИдет выполнение операции... \r\n \r\nЕсли вы считаете, что прошло уже слишком много времени - обновите страницу, при повторной ошибке - обратитесь в службу технической поддержки! ');
  return false;	
 }	
 onlineaction = 1;
 return true;
}

//------------------------------------------------------------------------
// JavaScript Document
function gotpage(npage){
 window.location = npage;
}
//------------------------------------------------------------------------
<!-- проверка e-mail фдреса -->
function emailCheck(emailStr) {
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (I=0; I<user.length; I++) {
if (user.charCodeAt(I)>127) {
return false;
   }
}
for (I=0; I<domain.length; I++) {
if (domain.charCodeAt(I)>127) {
return false;
   }
}
if (user.match(userPat)==null) {
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var I=1;I<=4;I++) {
if (IPArray[I]>255) {
return false;
   }
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (I=0;I<len;I++) {
if (domArr[I].search(atomPat)==-1) {
return false;
   }
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
return false;
}
if (len<2) {
return false;
}
return true;
}
//------------------------------------------------------------------------
function IisInteger(num,maxi) {
 if (!maxi) {	
 if (isNaN(num) || (num == "") || (num.indexOf(',') > 0) || (num.indexOf('.') > 0) || (num < 0) || (num > 1500)) {	
  return false;	} else {	return true; } } else {
  if (isNaN(num) || (num == "") || (num.indexOf(',') > 0) || (num.indexOf('.') > 0) || (num < 0)) {	
  return false; } else { return true; } }  	
}
//------------------------------------------------------------------------
function IsFloat(num) {
  if (isNaN(num) || (num == "") || (num.indexOf(',') > 0) || (num < 0)) {	
   return false; } else { return true; } 	
}
//------------------------------------------------------------------------
//позиция курсора в textarea
function getCaretPos(obj) {
  obj.focus(); 
  if(obj.selectionStart) return obj.selectionStart;//Gecko
  else if (document.selection)//IE
  {
    var sel = document.selection.createRange();
    var clone = sel.duplicate();
    sel.collapse(true);
    clone.moveToElementText(obj);
    clone.setEndPoint('EndToEnd', sel);
    return clone.text.length;
  }
  return 0;
}
//------------------------------------------------------------------------
function ReplTextBlock(startdata,enddata,iddata) {
 var obj = document.getElementById(iddata);
 if (!obj) {return false;}
 //var pos = getCaretPos(obj);
 obj.focus();
 if (document.selection) {
 var s = document.selection.createRange(); 
 
 if (s.text != "") {
 
  var len = s.text.length;
  var newText= startdata + s.text + enddata;
  s.text = newText;
  obj.focus();
  s.select(); //выделяем
 }
 else
 {
  var newText= startdata + s.text + enddata;
  s.text = newText;
  s.moveEnd("character",-enddata.length);	
  obj.focus();
  s.select(); //выделяем  	
 } 
  return true;
 }
 else if (typeof(obj.selectionStart)=="number") {
  var start = obj.selectionStart;
  var end   = obj.selectionEnd;
  var selt  = obj.value.substr(start,end-start);
  var rs    = startdata + selt + enddata;
  obj.value = obj.value.substr(0,start)+rs+obj.value.substr(end);
  
  if (selt == "") {
  	if (enddata != "") {
	 start = start + startdata.length;	
	 end   = start;
	}
   	else
   	{	 	
   	 end   = start + startdata.length;
   	} 
  }
  else
  {
   	start = start + startdata.length;
   	end   = start + rs.length - enddata.length - startdata.length;
  }
  obj.setSelectionRange(start,end);
  return true;
 }
 return false; 	
}
//------------------------------------------------------------------------

// add tags data
	 function InsertObhvatData(startdata,enddata,iddata) {	  
	  return ReplTextBlock(startdata,enddata,iddata);	
	 }  
//------------------------------------------------------------------------	 
	 function InsertLink(iddata) {	  
	  var hrefdata =  prompt ("Введите адрес ссылки!", "http://" );
	  if ((!hrefdata) || (hrefdata == "") || (hrefdata.toLowerCase() == "http://")) { return ; }
	  var textdata =  prompt ("Введите текст ссылки!", "ссылка" );
	  if (!textdata) {return ;}
	  if (textdata == "") {textdata = hrefdata;}
	  
	  hrefdata = '[LINK="'+hrefdata+'"]'+textdata+'[/LINK]';
	  InsertObhvatData(hrefdata,"",iddata);	   	
	 }
//------------------------------------------------------------------------	 
	 function QuestForNum(message) {
	  var e = '';	
	  while (true) {
		e =  prompt (message, "0" );
		if (!e) { return ''; }	  	
	  	if (IisInteger(e)) { break; }
		alert('Необходимо указать числовое значение!\r\nЗначение должно быть не больше 1500 и не меньше 0 и должно быть целого типа!');	
	  }	
	  return e;
	 }
//------------------------------------------------------------------------	 
	 function InsertPic(iddata) {
	  var hrefdata =  prompt ("Введите адрес рисунка!", "http://" );	
	  if ((!hrefdata) || (hrefdata == "") || (hrefdata.toLowerCase() == "http://")) { return ; }
	  if (confirm("Хотите указать размеры рисунка?")) {
		var h =  QuestForNum("Укажите высоту рисунка (чтобы не указавыть высоту - поставьте 0)!");
		if (!h) { h = ''; }
		if (h != '') { h = 'h'+h; }
		var w =  QuestForNum("Укажите ширину рисунка (чтобы не указавыть ширину - поставьте 0)!");
		if (!w) { w = ''; }
		if (w != '') { w = 'w'+w; }		
		if ((h != '') || (w != '')) {
		 hrefdata = '[IMG="'+h+':'+w+'"]'+hrefdata+'[/IMG]';	
		}
		else { hrefdata = '[IMG]'+hrefdata+'[/IMG]'; }		
	  }
	  else { hrefdata = '[IMG]'+hrefdata+'[/IMG]'; }	
	  InsertObhvatData(hrefdata,"",iddata);
	 }
//------------------------------------------------------------------------	 
	 function InsertHide(iddata) {
	  var textdata =  prompt ("Укажите название скрытого блока:", "скрытый блок" );	
	  if (!textdata) { return ; }
	  textdata = '[HIDE="'+textdata+'"]';
	  InsertObhvatData(textdata,"[/HIDE]",iddata);
	 }
//------------------------------------------------------------------------
	 function InsertColor(color,iddata) {	
	  var textdata = '[COLOR="'+color+'"]';
	  InsertObhvatData(textdata,"[/COLOR]",iddata);
	 }
//------------------------------------------------------------------------
  function RollHide(th,idrol) {	
   var roll = document.getElementById("hidetext"+idrol);
   if (!roll) {return ;}
   if (!th) {return ;}
   if (th.id == 'roll_down') {
     th.id = "roll_up";
     //roll.style.visibility = 'visible';
	 roll.style.display = 'block';	
   }
   else
   {
     th.id = "roll_down";
     //roll.style.visibility = 'hidden';
	 roll.style.display = 'none';	
   }   	
  }
//------------------------------------------------------------------------  
 //предварительный просмотр описания
 function prevlook(linkprev,sourceid,placeid) {
 var sourceid_b = document.getElementById(sourceid);	
 if (!sourceid_b) {
  alert("На странице не найден указанный элемент текста! Возможно нарушена целостность страницы...");
  return ;	
 }	
 var sourceid_p = document.getElementById(placeid);	
 if (!sourceid_p) {
  alert("На странице не найден указанный элемент хранения текста просмотра! Возможно нарушена целостность страницы...");
  return ;	
 } 
 sourceid_b = encodeURIComponent(sourceid_b.value);
 if (!CheckOnlineAction()) {return ;}
 sourceid_p.innerHTML = "";
 SendRequest('POST','action=prev&sourceid='+sourceid_b+'&placeid='+placeid,linkprev,'<font color="#CA6500">Обработка текста, подготовка к просмотру...</font>','<a class="nouad" title="Предварительный просмотр" href="javascript:" onclick="prevlook(\''+linkprev+'\',\''+sourceid+'\',\''+placeid+'\')">Предварительный просмотр</a>','/ajax/prev_action.php','prev_action.php');    	
 } 
//------------------------------------------------------------------------ 
 //очистка спана
 function ClearElem(el,timeou) {
  var sourceid_b = document.getElementById(el);	
  if (!sourceid_b) {return false;}
  if (!timeou) {
  var sourceid_c = document.getElementById("clear"+el);
  if (sourceid_c) {
   sourceid_c.innerHTML = '<font color="#0000FF">Очистка текста...</font>';	
   setTimeout('ClearElem(\''+el+'\',1)', 500);
   return ;
  }
  }
  sourceid_b.innerHTML = "";
  return true;
 }
//------------------------------------------------------------------------ 
 //окно ожидания
 function ShowWaitWindow() { 	
   	var strurldata = document.getElementById("shadow");
	if (strurldata) {
     strurldata.style.display = "block";	
	} 	
   	strurldata = document.getElementById("show_data");
	if (strurldata) {
     strurldata.style.display = "block";	
	} 	
}
 //------------------------------------------------------------------------
 function CloseWaitWindow() {
   	var strurldata = document.getElementById("show_data");
	if (strurldata) {
     strurldata.style.display = "none";	
	}
   	strurldata = document.getElementById("shadow");
	if (strurldata) {
     strurldata.style.display = "none";	
	} 	
 }
 //------------------------------------------------------------------------
 //написание нового сообщения
 function SendNewMessage(idmess,asrepl) {	
  document.location = '/account/mail/newmessage&ansto='+idmess+'&repl='+asrepl;	
 }
 //------------------------------------------------------------------------
 //сохранение настроек пользователя (информация о себе)
 function SaveOptions1() {	
  var userinfo = document.getElementById('userinfo');
  if (!userinfo) { alert("Ошибка целостности страницы.."); return ; }
  var logmail = document.getElementById('usmail');
  if (!logmail) { alert("Ошибка целостности страницы.."); return ; }  
  var logsite = document.getElementById('ussite');
  if (!logsite) { alert("Ошибка целостности страницы.."); return ; }
  var lostpassw = document.getElementById('uspass');
  if (!lostpassw) { alert("Ошибка целостности страницы.."); return ; }    
  var newpassw = document.getElementById('uspassnew');
  if (!newpassw) { alert("Ошибка целостности страницы.."); return ; } 
  var newpassw2 = document.getElementById('uspassnew1');
  if (!newpassw2) { alert("Ошибка целостности страницы.."); return ; }   
  if (!emailCheck(logmail.value)) { 
   alert("Укажите корректный e-mail!");
   logmail.focus();
   return ;
  }
  logmail  = encodeURIComponent(logmail.value);     //mail
  logsite  = encodeURIComponent(logsite.value);     //site
  
  if (lostpassw.value == "") {
   alert("Укажите ваш текущий пароль...");
   lostpassw.focus();
   return ;	
  }  
  lostpassw = encodeURIComponent(lostpassw.value); //pass lost 
  if (newpassw.value != "") {
   if (newpassw.value != newpassw2.value) {
    alert("Пароли не совпадают..");
	newpassw2.focus();
	return ;	
   }	
  }
  newpassw = encodeURIComponent(newpassw.value); //pass new
  newpassw2 = encodeURIComponent(newpassw2.value); //pass new 2
  if (!CheckOnlineAction()) {return ;}
  userinfo.innerHTML = "";
  SendRequest('POST','action=save1&usmail='+logmail+'&ussite='+logsite+'&uspass='+lostpassw+'&uspassnew='+newpassw+'&uspassnew1='+newpassw2,'options1','<font color="#CA6500">Сохранение настроек, подождите...</font>','<input type="button" class="buttonm" style="margin-top: 3px; text-align: left" value="&nbsp;Сохранить&nbsp;" onclick="SaveOptions1()">','/ajax/optuser.php','optuser.php');  	
 }
 //------------------------------------------------------------------------
  //функция выделения элемента заказов
 function CheckZakazItem(ch,idelem,oldbg) {
  if (!ch) { return ; }
  var m_id = document.getElementById("dataelement"+idelem);
  if (!m_id) { return ; }
  if (ch.checked) { m_id.className = 'selected_file_item'; }
  else { m_id.className = oldbg; }	
 }
//------------------------------------------------------------------------
 //выбор\снятие всех флажков
 function CheckUncheckAllZakazElements(ch) {
  if ((!global_mass_zakaz) || (global_mass_zakaz.length <= 0)) { return ; }
  for (var i=0; i < global_mass_zakaz.length; i++) {
   m_id = document.getElementById("ch_"+global_mass_zakaz[i]);
   if (m_id) { 
   	m_id.checked = ch;
   	CheckZakazItem(m_id,global_mass_zakaz[i],global_mass_zakaz_style[i]);  
   }  	
  }  	
 }
//------------------------------------------------------------------------  
 //управление черным списком
 function ActionSelectedBlackListUsersMR(actname,textdata) {
  if ((!global_mass_zakaz) || (global_mass_zakaz.length <= 0)) { alert("Выделите хотябы одного пользователя.."); return ; }
  var is_ok = 0;
  
  var f = document.getElementById("formfilescontrol");
  if (!f) { alert("Нарушена целостность страницы!"); return ; }
  
  for (var i=0; i < global_mass_zakaz.length; i++) {
   m_id = document.getElementById("ch_"+global_mass_zakaz[i]);
   if (m_id) { if (m_id.checked) { is_ok++; }  }  	
  }  
  
  if (is_ok <= 0) { alert("Выделите хотябы одного пользователя!"); return ; }
  var str = "Вы действительно хотите "+textdata+" "+is_ok+" пользователей?";
  
  if (!confirm(str)) { return ; }
  
  if (!f.mkdata) { alert("Нарушена целостность страницы!"); return ; }
  
  f.mkdata.value = actname; 
  f.action = "";
  document.forms['formfilescontrol'].submit();	
 }
 //------------------------------------------------------------------------
 //выбор пользователя
 function SelectUserBname(side) {
  ShowWaitWindow();
  if (!CheckOnlineAction()) {CloseWaitWindow(); return ;}
  SendRequest('POST','action=getuserslistonmoderfiles&side='+side,side,'<font color="#CA6500">Построение списка пользователей.. Пожалуйста, подождите..</font><br /><img src="/css/pic/load.gif">','','/ajax/optuser.php','optuser.php'); 	
 }
 //------------------------------------------------------------------------
 //выбор пользователя
 function SelectUserBnameU(side,rldata) {
  ShowWaitWindow();
  if (!CheckOnlineAction()) {CloseWaitWindow(); return ;}
  SendRequest('POST','action=getuserslistonmoderfiles&side='+side+'&rldata='+rldata,side,'<font color="#CA6500">Построение списка пользователей.. Пожалуйста, подождите..</font><br /><img src="/css/pic/load.gif">','','/ajax/optuser.php','optuser.php'); 	
 } 
 //------------------------------------------------------------------------
 //добавление
 function AddToBlackListData(usname,descript1,idento) {
  var fname = document.getElementById(usname);	
  if (!fname) { alert("Ошибка передачи параметров..."); return ; }
  var fdescript = document.getElementById(descript1);
  if (!fdescript) { fdescript = ''; } else { fdescript = fdescript.value; }
  if (fname.value == "") { alert("Укажите имя пользователя..."); fname.focus(); return ; }
  if (!CheckOnlineAction()) { return ; }
  SendRequest('POST','action=addtoblacklist&fname='+fname.value+'&fdescript='+encodeURIComponent(fdescript),idento,'<font color="#CA6500">Добавление пользователя.. Пожалуйста, подождите..</font>','<a href="javascript:" class="shoert_text_u" onclick="AddToBlackListData(\'shbywqwer\',\'descript1\',\'addtoblacklist\')">Добавить в черный список</a>','/ajax/optuser.php','optuser.php');  	
 }
 //------------------------------------------------------------------------
 //приминеие выбора
 function ActionSelectNameUserMDS(snnm,aseditors) {
  var strp = 'shbywqwer';
  if (aseditors) { strp = aseditors; }	
  var strurldata = document.getElementById(strp);
  CloseWaitWindow();
  if (strurldata) { strurldata.value = snnm; } 	
 }
 //------------------------------------------------------------------------ 
 //скрытие отображение элементов
 function HideShowSubData(sinit,ssource) {	  
  var idsource = document.getElementById(ssource);	
  var idname   = document.getElementById(sinit);	 	
  if (idsource.style.visibility == "hidden") {
   idsource.style.visibility = "visible";
   idsource.style.display = "block";	  	
   idname.innerHTML = "<a class=\"shoert_text_u\" href=\"javascript:\" onclick=\"HideShowSubData(\'" + sinit + "\',\'" + ssource + "\');\">Скрыть</a>";
  }
  else
  {
   idsource.style.visibility = "hidden";
   idsource.style.display = "none";	  	
   idname.innerHTML = "<a class=\"shoert_text_u\" href=\"javascript:\" onclick=\"HideShowSubData(\'" + sinit + "\',\'" + ssource + "\');\">Показать</a>";		 	
  }
 }      
 //------------------------------------------------------------------------   
 //изминение термине форма
 function ModifySelectedItemDict(idcomm,formid) {  
  var f = document.getElementById(formid);
  if (!f) { alert("Нарушена целостность страницы!"); return ; }  
  if (!CheckOnlineAction()) {return ;}
  SendRequest('POST','action=getdictchform&idcomm='+idcomm+'&formid='+formid,formid,'<font color="#CA6500">Создание формы изминения термина.. Пожалуйста, подождите..</font>','<a href="javascript:" onclick="ModifySelectedItemDict(\''+idcomm+'\',\''+formid+'\')"><span style="font-size: 11px">Изменить</span></a>','/ajax/optuser.php','optuser.php');  	
 } 
//------------------------------------------------------------------------ 
 //сохранение изминения о термине
 function ModifySelectedItemDictAction(idcomm) {  
  var f1 = document.getElementById('dictname'+idcomm);
  if (!f1) { alert("Нарушена целостность страницы!"); return ; }
  var f2 = document.getElementById('descript1'+idcomm);
  if (!f2) { alert("Нарушена целостность страницы!"); return ; }
  f1 = encodeURIComponent(f1.value);  
  f2 = encodeURIComponent(f2.value);
  if (!CheckOnlineAction()) {return ;}
  SendRequest('POST','action=savedictchform&idcomm='+idcomm+'&dictname='+f1+'&descript1='+f2,'savewordid'+idcomm,'<font color="#0000FF">Сохранение..</font>','<a href="javascript:" class="nouad" onclick="ModifySelectedItemDictAction(\''+idcomm+'\')">Сохранить</a>','/ajax/optuser.php','optuser.php');	
 } 
//------------------------------------------------------------------------
 //управление списком терминов
 function ActionSelectedDictList(actname,textdata) {
  if ((!global_mass_zakaz) || (global_mass_zakaz.length <= 0)) { alert("Выделите хотябы один термин.."); return ; }
  var is_ok = 0;
  
  var f = document.getElementById("formfilescontrol");
  if (!f) { alert("Нарушена целостность страницы!"); return ; }
  
  for (var i=0; i < global_mass_zakaz.length; i++) {
   m_id = document.getElementById("ch_"+global_mass_zakaz[i]);
   if (m_id) { if (m_id.checked) { is_ok++; }  }  	
  }  
  
  if (is_ok <= 0) { alert("Выделите хотябы один термин!"); return ; }
  var str = "Вы действительно хотите "+textdata+" "+is_ok+" терминов?";
  
  if (!confirm(str)) { return ; }
  
  if (!f.mkdata) { alert("Нарушена целостность страницы!"); return ; }
  
  f.mkdata.value = actname; 
  f.action = "";
  document.forms['formfilescontrol'].submit();	
 }

