var pageurl='https://okru.ru/sys.js';
var siteurl='https://okru.ru/';
var udt='0';
// информационный запрос
function ajaxRequest(key,value,mod){
if (key=='' || key==null) return false;
if (value=='' || value==null) return false;
if (!mod) mod = 'ajax';
var url = siteurl+mod+'.php?'+key+'='+value;
var xhr = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); // ajax object
xhr.open('GET',url,true);
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.onreadystatechange=function (){
if(xhr.readyState == 4){
var responseText = xhr.responseText;
var response = responseText.split('|');
if ((xhr.status!=200) || (response == null) || (response == undefined) || (response == "") || (response == "|")){
return false; // если ошибки
}else{
showInfo(response[1],response[0]);
}
}
}
xhr.send(null);
return false;
}
// var params={'mod':'main','vars':'key1=val1&key2=val2','elem':'body'}; // Пример параметров
// onclick="return loadAjaxPage({'mod':'ajax','vars':'test=1','elem':'body','func':function(){}})" // пример вызова
function loadAjaxPage(params,func){
var module = params['mod'] ? params['mod'] : mod;
var vars = params['vars'] ? '?'+params['vars'] : '';
var url = siteurl+module+'.php'+vars;
var xhr = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); // ajax object
xhr.open('GET',url,true);
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.onreadystatechange=function(){
if (xhr.readyState == 4 && xhr.status==200){
//console.log(xhr.responseText); return false;
var response = xhr.responseText;
if ((response != null) && (response != undefined) && (response != "")){
if (params['elem']) document.getElementById(params['elem']).innerHTML=String(response);
if (params['input']) document.getElementById(params['input']).value=String(response);
if (typeof func == 'function') func();
return false;
}
}
}
xhr.send(null);
return false;
}
// ограничитель символов в текстовых полях
function oldtextCounter(field,maxlimit){
if (field.value.length > maxlimit){
field.value = field.value.substring(0,maxlimit);
}
if (field.form.remLen!=undefined) field.form.remLen.value = maxlimit - field.value.length; // отписываемся о количестве оставшихся букв, если такое поле есть
}
// infoblock autoclose
function hideInfo(time){
var transTime='500'; // ms
//var hiddenid = false; // сбрасывем предыдущие комманды на открытие
if (typeof hiddenid != 'undefined') clearTimeout(hiddenid);
if (typeof hiddenidtrans != 'undefined') clearTimeout(hiddenidtrans);
if (document.getElementById('infoblock') != null){
var infoblock=document.getElementById('infoblock');
hiddenid = setTimeout(function(){
infoblock.style.transition='opacity '+transTime+'ms'; infoblock.style.opacity='0'; // задаём transitional и прозрачность
hiddenidtrans = setTimeout(function(){ infoblock.style.display='none'; infoblock.style.opacity='1';},transTime); // закрыть блок после CSS3 изчесновения
//$("#infoblock").animate({opacity: '0'}, 2000, function(){ infoblock.style.display='none'; infoblock.style.opacity='1';}); // аналог на JQuery
},time);
}
}
// показать инфо 10 сек
function lightShowInfo(){
showInfo('','',10000);
}
// показать инфо
function showInfo(text,type,time,clear){
if (typeof time == 'undefined') time = '10000';
if (time == '' || time == '1') time = '10000';
if (clear != false) clear = true;
if (document.getElementById('infoblock') != null){
if (text != ''){
if (type != 'notice') type = 'error';
if (type == 'error'){ var infotitle = 'Ошибка'; }else var infotitle = 'Информация';
document.getElementById('infotitle').innerHTML=infotitle;
if (clear == false ) if (document.getElementById('infomsg').innerHTML!='') text=document.getElementById('infomsg').innerHTML.text+' '+text;
document.getElementById('infomsg').innerHTML=text;
}else{ // пустой text, значит уже заполнен через PHP
if (document.getElementById('infotitle').innerHTML=='Ошибка') type='error';
}
var elem=document.getElementById('infoblock');
if (type=='error') { remClasses(elem,'infonotice'); addClasses(elem,'errornotice'); time=time*2; }
else { remClasses(elem,'errornotice'); addClasses(elem,'infonotice'); }
elem.style.display='block';
}
if (time>'0'){ hideInfo(time);}
}
// считате длинну текста в поле и обрезает при привышении
function textCounter(field, countfield, maxlimit){
var textval=field.value;
if (textval.length > maxlimit){
field.value = textval.substring(0, maxlimit);
}else{
var ost=maxlimit-textval.length
var simv='символов';
if(ost%10==1) simv='символ';
if(ost%10==2 || ost%10==3 || ost%10==4) simv='символа';
countfield.innerHTML = ost+' '+simv;
}
}
// уведомление о регистре символов
function capsTest(elem){
if (elem=='') document.getElementById(elem.name+'-comment').innerHTML='Внимение! Регистр символов имеет значение!'
return false;
}
// тестировщик форм перед отправкой
// formElemsText - список имён обязательных элементов, errorMsg - сообщение в случае нахождения незаполненного элемента
function testform(formElemsText,errorMsg,formName,noloading){
if (formName != ''){
formThis=document.getElementsByName(formName)[0];
}
var sendForm = true;
//formElems.reverse(); // ставим элементы в обратном порядке
var formElems=formElemsText.split(','); // делаем массив из списка
for (var i=0;i0) if(formElem.value.length < lengthCount) valid=false; // сверяем количество
}
if (valid){
// тестирование на тип заполненного
if(formElems[i]=='newuserlogin'){ // логин в форме регистрации
if(formElem.value.match(/^[a-zA-ZабвгдёежзийклмнопрстуфхцчшщъыьэюяАБВГДЁЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0-9\_\-\.]+$/)==null){ valid=false; errorComment='Логин может состоять только из букв, цифр, точки и тире.';}
}
if(formElems[i]=='newuserpass'){ // пароль в форме регистрации
// проверка на левые символы
if(formElem.value.match(/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/\||\x5c|\x5E|\x2B|\x3D|\s|\,|\&\~\*\{\+]/)!=null){valid=false; errorComment='Пароль может состоять только из букв, цифр, точки и тире.';}
// проверка на одинаковые символы
var char = []; char[formElem.value[0]] = 0;
for (var ch=0; ch= 0; i--){
var passelem=passelems[i];
var eyeBtn = document.createElement('div');
eyeBtn.classList.add(passEye.ClassBox);
eyeBtn.classList.add(passEye.closeEye);
if (passEye.TitleBtn!=null) eyeBtn.setAttribute('title',passEye.TitleBtn);
eyeBtn.onclick = (function(passelem) { return function(e) {
openPass(passelem,this);
}; })(passelem);
passelem.parentNode.insertBefore(eyeBtn,passelem);
}
}
function openPass(passElem,eyeIco){
if (passElem == null) return false;
var newType = (passElem.getAttribute('type')=='text') ? 'password' : 'text';
passElem.setAttribute('type',newType);
if (eyeIco == null) return false;
if (newType=='password'){
eyeIco.classList.add(passEye.closeEye); eyeIco.classList.remove(passEye.openEye);
}else{
eyeIco.classList.add(passEye.openEye); eyeIco.classList.remove(passEye.closeEye);
}
}
openedTooltip='0';
// открывает меню
function editmenu(publId){
return viewTooltip(publId);
}
// управление открытием выпадающего меню
function viewTooltip(elemId){
if (elemId === null) var elemId=0;
// закрываем старый тултип
if (openedTooltip){
if (openedTooltip != elemId){
openElem=document.getElementById(openedTooltip);
openedTooltip='';
if (openElem && openElem.style){
if (typeof openElem.style.display !== 'undefined'){ openElem.style.display = 'none';}
}
}
}
if (elemId == 0) return true;
// открываем/закрываем текущий
elem=document.getElementById(elemId);
if (typeof elem === 'undefined' || elem === null || elem.style === null){ return true; }
if (typeof elem.style.display === 'undefined'){ elem.style.display = 'none'; return false;}
if (elem.style.display == 'block'){ elem.style.display='none'; openedTooltip=''; }else{ elem.style.display = 'block'; openedTooltip = elemId;}
return false;
}
document.onclick = function(e){
// проверяет наличие параметра data-openelem только непосредственно на том элементе, на который нажали (не учитывая родителя)
if (!e.target.hasAttribute('data-openelem')) viewTooltip(0);
else return viewTooltip(e.target.getAttribute('data-openelem'));
}
var isDataChanged = false;
window.onbeforeunload = function(){
//return (isDataChanged ? 'Измененные данные не сохранены. Вы уверены что хотите уйти со страницы?' : null);
if (isDataChanged) return 'Измененные данные не сохранены. Вы уверены что хотите уйти со страницы?';
loadingstart(0);
}
function include(iurl){
if (!iurl) return false;
var iscript = document.createElement('script');
iscript.src = iurl;
document.getElementsByTagName('head')[0].appendChild(iscript);
}
function copylink(){
var body_element = document.getElementsByTagName('body')[0];
var selection = window.getSelection();
//var pagelink = ' Источник: '+document.location.href+' '+document.title;
var pagelink = ' '+document.location.href+' ';
var copytext = selection + pagelink;
var seldiv = document.createElement('div');
seldiv.style.position = 'absolute';
seldiv.style.left = '-99999px';
body_element.appendChild(seldiv);
seldiv.innerHTML = copytext;
selection.selectAllChildren(seldiv);
window.setTimeout( function() { body_element.removeChild(seldiv); }, 0);
}
// вывести список категорий
function rtrncat(catName,catId,transactionName,transactionId,ajax){
if(ajax==true) opndoc=document; else opndoc=self.opener.document;
catSelectBtn.innerHTML=' '+transactionName+' '+catName+' ';
if(ajax==true) document.getElementById('catSelectArea').style.display='none'; else self.close();
return false;
}
// добавить защиту от вставки одной и тойже категории два раза!!!
function delCat(elem,catId){
elem.parentNode.parentNode.removeChild(elem.parentNode);
/*
var toidcat=opndoc.getElementById('categoryes').value;
if (toidcat!="") var idCatList=toidcat.split(','); else return false;
var icl=idCatList.length;
var rtrnCatlist="";
for(var i=0; i=imgFileMax || (i+1)>imgFileMax){
showInfo('Достигнуто максимальное колличество изображений - '+imgFileMax+'.','error',true);
console.log('Max '+imgFileMax+'.');
return false;
}
}
if (/image.*/.test(imgfile.type)){ // проверка формата
if (imgfile.size<1){ console.log('empty missing'); continue;} // размер файла не может быть нулевым
// рисуем превьюшку
if (window.File && window.FileReader && window.FileList && window.Blob){
var reader = new FileReader();
reader.onload = (function(imgF) { return function(e) {
dropFileI++;
//console.log('Загружается - '+dropFileI+' из '+dropFileCount);
// проверка на повтор
var thisHash=hashGen(e.target.result);
if (arraySearch(fileHashes,thisHash) !== false){
showInfo('Пропускаю повтор','error',true);
console.log('repeated missing');
return false;
}else fileHashes[loadI]=thisHash; // сохраняем хэш загруженной картинки
imgFileLoaded++; // количество уже загруженных файлов
ajaxUpLoad(imgF,dropFileCount);
loadI++;
}; })(imgfile);
reader.readAsDataURL(imgfile);
}
}else{ console.log(imgfile.name+': '+imgfile.type+' - not image'); showInfo('Недопустимый формат изображения','error',true);}
}
}
var thisFileI=0;
function ajaxUpLoad(fileObj,allFiles){ // obj,url,file,defMessage // ,replBlock
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
var url='';
var loadflag = 2;
name = fileObj.fileName || fileObj.name;
var url = siteurl+'imgload.php?filename='+name+'&mod='+mod+'&modind='+modind; //console.log(url);
xhr.open('POST',url,true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.onreadystatechange=function (){
if(xhr.readyState == 4){
thisFileI++;
var responseText = xhr.responseText;
var response = responseText.split('|');
if ((xhr.status!=200) || (response == null) || (response == undefined) || (response == "") || (response == "|")){ // если при загрузке произошла ошибка
showInfo('Изображение '+name+' не было загружено ','error',true);
imgFileLoaded--; if (imgFileLoaded<0) imgFileLoaded=0; // уменьшаем количество уже загруженных
}else{
if (response[0]=='0'){
showInfo(response[1],'error',true);
}else{
var imgDivElem = document.createElement('div');
imgDivElem.innerHTML = response[0];
if (typeof imgreplace != 'undefined'){ images.innerHTML=''; imgFileLoaded--; if (imgFileLoaded<0) imgFileLoaded=0;} // замена
if (typeof replBlock == 'undefined') images.appendChild(imgDivElem);
else replBlock.parentNode.replaceChild(imgDivElem,replBlock);
if (allFiles==1) showInfo('Изображение '+name+' загружено','notice');
else showInfo('Загружено '+thisFileI+' из '+allFiles+'. ','notice');
console.log('Загружено '+thisFileI+' из '+allFiles+'. ');
if (thisFileI==allFiles){ showInfo('Загрузка завершена.','notice'); thisFileI=0;}
}
}
}
}
xhr.send(fileObj);
}
function delpict(imgid,elem,fulldel){
if(fulldel){
if(imgid==''){
showInfo('Изображение не было удалено.','error');
return false;
}
if (confirm('Вы уверены что хотите удалить это изображение?') == true){
showInfo('Удаление картинки.','notice');
}else{ /*Изображение не было удалено.*/ return false;}
imgFileLoaded--; if (imgFileLoaded<0) imgFileLoaded=0; // уменьшаем колличество уже загруженных
url=siteurl+'imgload.php?delimg='+imgid+'&mod='+mod+'&modind='+modind;
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open('POST',url,true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.onreadystatechange=function (){
if(xhr.readyState == 4){
var responseText = xhr.responseText;
var response = responseText.split('|');
if ((xhr.status!=200) || (response == null) || (response == undefined) || (response == "") || (response == "|")){ // если при загрузке произошла ошибка
showInfo('Изображение не удалено.','error',true);
}else{
if(response[0]=='0'){
response[1] ? showInfo(response[1],'error') : showInfo('Неизвестная ошибка','error',true);
}else{
response[1] ? showInfo(response[1],'notice',true) : true;
}
}
}
}
xhr.send(null);
}
elem.parentNode.style.transition='opacity 500ms'; elem.parentNode.style.opacity='0';
setTimeout(function(){ elem.parentNode.style.opacity='1'; elem.parentNode.parentNode.removeChild(elem.parentNode); },500);
}
var regurl = /^((ftp|http|https):\/\/)?(www\.)?([A-Za-zА-Яа-я0-9]{1}[A-Za-zА-Яа-я0-9\-]*\.?)*\.{1}[A-Za-zА-Яа-я0-9-]{2,8}(\/([\w#!:.?+=&%@!\-\/])*)?/;
function sendImgUrl(fileUrl){
if (typeof imgurl != 'undefined'){
if (fileUrl == ""){
imgurl.focus();
imgurl.style.border='1px solid red';
return false;
}else imgurl.style.border='auto';
}
if (!regurl.test(fileUrl)){ showInfo('Неверная ссылка на изображение','error'); return false;}
if (typeof imgreplace != 'undefined' && imgFileMax!=0 ){
if (imgFileLoaded>=imgFileMax){
showInfo('Достигнуто максимальное колличество изображений - '+imgFileMax+'.','error',true);
console.log('Max '+imgFileMax+'.');
return false;
}
}
showInfo('Загрузка изображения из интернета','notice',true);
var url = siteurl+'imgload.php?fileurl='+fileUrl+'&mod='+mod+'&modind='+modind;
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open('POST',url,true);
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.onreadystatechange=function (){
if (xhr.readyState == 4){
var responseText = xhr.responseText;
var response = responseText.split('|');
if (responseText==response[0]){
showInfo('Это изображение не может быть загружено','error',true);
return false;
}
if ((xhr.status!=200) || (response == null) || (response == undefined) || (response == "") || (response == "|")){ // если при загрузке произошла ошибка
showInfo('Изображение не было загружено','error',true);
}else{
if (response[0]=='0'){
response[1] ? showInfo(response[1],'error') : showInfo('Неизвестная ошибка','error',true);
}
else {
imgFileLoaded++;
var imgDivElem = document.createElement('div');
imgDivElem.innerHTML = response[0];
if (typeof imgreplace != 'undefined'){ images.innerHTML=''; imgFileLoaded--; if (imgFileLoaded<0) imgFileLoaded=0;} // замена
if (typeof replBlock == 'undefined') images.appendChild(imgDivElem);
else replBlock.parentNode.replaceChild(imgDivElem,replBlock);
//images.insertBefore(imgDivElem,images.firstChild); //images.appendChild(imgDivElem);
showInfo('Изображение загружено','notice');
if(typeof imgurl != 'undefined') imgurl.value='';
}
}
}
}
xhr.send(null);
return false;
}
function openb(bid){
if (!bid) return false;
var xhr = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); // ajax object
xhr.open('GET',pageurl+'?openb='+bid,true);
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.onreadystatechange=function(){
if (xhr.readyState == 4){
if (xhr.status==200){
console.log('openb ok');
}
}
}
xhr.send(null);
return false;
}