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; }