// функция для вывода мыла на странице
function a_email(login,domain,a_content,a_text)
{
if(a_email.arguments.length < 3) a_content = "";
eml = login + "@" + domain;
if(a_email.arguments.length == 4) a_str = ''+ a_text + '';
else a_str = ''+ eml + '';
document.write (a_str);
}; // end function a_email(login,domain,a_content)
if(typeof(clc)!= "function"){
function clc(){return true;}
};
//----------------------------------------------------------
// функция поиска родительского элемента, соответствующего условию
// напр. 'className == "btn_order"'
// возвращает или ссылку на элемент или false
// поиск "наверх", начиная с in_el
function find_parent_el(in_el,condition){
var top_el = document;
var local_testing_el = in_el.parentNode;
var local_condition = 'local_testing_el.' + condition;
//alert(local_condition);
while(local_testing_el != top_el){
if(eval(local_condition)){
// alert(local_testing_el.tagName);
return local_testing_el;
}
local_testing_el = local_testing_el.parentNode;
} // end while(local_testing_el != top_el)
return false;
}; // end function find_parent_el(in_el,condition)
//============================================================
// Создаем функцию (метод) поиска в массиве indexOf
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
};
// Создаем для объекта String метод trim
if(typeof(String.prototype.trim) != "function"){
String.prototype.trim = function () {
var str = this;
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
};
// Создаем для объекта String метод drop_spaces - очистка всех пробелов и т.п. внутри строки
if(typeof(String.prototype.drop_spaces) != "function"){
String.prototype.drop_spaces= function (){
var str = this;
return str.replace(/(\s)+/g, "");
}
};
// Создаем для объекта String метод strip_tags - очистка строки от тегов
if(typeof(String.prototype.strip_tags) != "function"){
String.prototype.strip_tags = function () {
var str = this;
return str.replace(/\<.+?\>/g, '');
}
};
// Создаем для объекта String метод nl2br - Inserts HTML line breaks before all newlines in a string
if(typeof(String.prototype.nl2br) != "function"){
String.prototype.nl2br= function (){ // Inserts HTML line breaks before all newlines in a string
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
var str = this;
var expr = new RegExp('([^>])\\n', 'g');
/*return str.replace(/([^>])\n/g, '$1 ');*/
return str.replace(expr, '$1 ');
}
};
// функция проверки строки с e-mail
// все преддействия (trim() или иные) проводятся до функции
// codeismy.name/bez-rubriki/proverka-emaila-na-php-i-javascript/
if(typeof(isEmailGood) != "function"){
function isEmailGood(email) {
var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
if (template.test(email)) {
return true;
};
return false;
}; // end function isEmailGood
};
// тестирование правильности даты. Дата вводится в формате dd.mm.yyyy (разделитель - любой не числовой символ)
function test_valid_date(in_date_str){
var regexp = /\d{2}\D\d{2}\D\d{4}$/;
if(!regexp.test(in_date_str)) return false;
var date_arr = in_date_str.split(/\D/);
var day = parseInt(date_arr[0]);
var month = parseInt(date_arr[1]);
var year = parseInt(date_arr[2]);
var d = new Date(year, month-1, day);
var rez = ((d.getFullYear() == year) && (d.getMonth() == (month-1)) && (d.getDate() == day));
return rez;
}; // end function test_valid_date
//----------------------
// поиск и возврат свободного верхнего z-index
// Отслеживаются z-индексы прописанные в style у потомков BODY
// возвращает или на in_plus больше или на 1 (по умолчанию)
get_free_zIndex = function(in_plus){
var in_plus = in_plus || 1;
var zmax = 0;
var elementCount = $("*").filter(function (index) {
var curr_z = parseInt($(this).css('zIndex'));
if(curr_z > 0){
zmax = Math.max(zmax, curr_z );
return true;
}
return false;
});
zmax = zmax + in_plus;
return (zmax);
}; // end get_free_zIndex = function
// функция постановки/удаления всеэкранной полупрозрачки
// command - что делать (п.у. убрать), z_idx - на какой z-index ставить слой (п.у. наивысший)
// т.к. в реале возможен только один такой слой, то ссылку на него храним в place_div_full.jq_div_full
function place_div_full(command, z_idx){
var command = command || false;
var z_idx = (z_idx)? z_idx : get_free_zIndex();
// ставим настройки полупрозрачки
var funcObj = arguments.callee;
if(command){
// ставим полупрозрачку
var jq_div = $("
").appendTo($('body').eq(0));
jq_div.css({
'z-index': z_idx
});
jq_div.css(funcObj.css_rules);
//alert(z_idx);
//funcObj.jq_div_full = jq_div;
return jq_div;
}else if(funcObj.jq_div_full){
// убираем полупрозрачку
var jq_div = funcObj.jq_div_full;
funcObj.jq_div_full.remove();
funcObj.jq_div_full = null;
return jq_div;
}else {
return false;
};
}; // end this.place_div_full = function
// настройки полупрозрачки
place_div_full.css_rules = {position: "absolute",left: "0px",top: "0px",
width : $('body').css('width'), height: $('body').css('height'),
'background-color': "black", 'opacity': 0.75
};
//place_div_full.jq_div_full = null;
class_div_full = function(){
var self = this;
var jq_div_full;
var z_idx;
this.css_rules = {position: "absolute",left: "0px",top: "0px",
width : $('body').css('width'), height: $('body').css('height'),
'background-color': "black", 'opacity': 0.25
};
// поиск и возврат свободного верхнего z-index
// Отслеживаются z-индексы прописанные в style у потомков BODY
// возвращает или на in_plus больше или на 1 (по умолчанию)
this.get_free_zIndex = function(in_plus){
var in_plus = in_plus || 1;
var zmax = 0;
var elementCount = $("*").filter(function (index) {
var curr_z = parseInt($(this).css('zIndex'));
if(curr_z > 0){
zmax = Math.max(zmax, curr_z );
return true;
}
return false;
});
zmax = zmax + in_plus;
return (zmax);
}; // end this.get_free_zIndex = function
// функция постановки/удаления всеэкранной полупрозрачки
// command - что делать (п.у. убрать), z_idx - на какой z-index ставить слой (п.у. наивысший)
this.place_div_full = function(command){
var command = command || false;
var z_idx = (self.z_idx)? self.z_idx : self.get_free_zIndex();
if(command){
// ставим полупрозрачку
var jq_div = $("").appendTo($('body').eq(0));
jq_div.css({
'z-index': z_idx
});
jq_div.css(self.css_rules);
//alert(z_idx);
self.jq_div_full = jq_div;
return jq_div;
}else if(self.jq_div_full){
// убираем полупрозрачку
var jq_div = self.jq_div_full;
self.jq_div_full.remove();
self.jq_div_full = null;
return jq_div;
}else {
return false;
};
}; // end this.place_div_full = function
}; // end class_div_full = function
// постановка слоя по центру экрана
jQuery.fn.center = function()
{
var w = $(window);
//alert(w.scrollTop());
this.css("position","absolute");
this.css("top",(w.height()-this.height())/2+w.scrollTop() + "px");
this.css("left",(w.width()-this.width())/2+w.scrollLeft() + "px");
return this;
}; // end jQuery.fn.center = function
// класс для показа слоя, что данные обрабатываются
class_layer_working = function(){
var self = this;
this.jq_div_full = null;
this.rand = function( min, max ) { // Generate a random integer
if( max ) {
return Math.floor(Math.random() * (max - min + 1)) + min;
} else {
return Math.floor(Math.random() * (min + 1));
}
}; // end this.rand = function
// поиск и возврат свободного верхнего z-index
// Отслеживаются z-индексы прописанные в style у потомков BODY
// возвращает или на in_plus больше или на 1 (по умолчанию)
this.get_free_zIndex = function(in_plus){
var in_plus = in_plus || 1;
var zmax = 0;
var elementCount = $("*").filter(function (index) {
var curr_z = parseInt($(this).css('zIndex'));
if(curr_z > 0){
zmax = Math.max(zmax, curr_z );
return true;
}
return false;
});
zmax = zmax + in_plus;
return (zmax);
}; // end this.get_free_zIndex = function
// Генерация свободного ID
this.getFreeId = function(in_prefix){
var test_id = in_prefix || "vkid_";
// генерим свободный id
do{
var tmp_id = test_id + self.rand(100,10000);
} while (document.getElementById(tmp_id));
return tmp_id;
}; // end this.getFreeId = function
// функция постановки/удаления всеэкранной полупрозрачки
this.place_div_full = function(command){
var command = command || false;
if(command){
// ставим полупрозрачку
var jq_div = $("",{
id: self.getFreeId()
}).appendTo($('body').eq(0));
jq_div.css({
'z-index': self.get_free_zIndex()
});
// ставим настройки полупрозрачки
var funcObj = arguments.callee;
jq_div.css(funcObj.css_rules);
// для случая, когда $('body').css('height') < высоты окна
var w = $(window);
var w_height = w.height();
var max_height = Math.max($(window).height(), $('body').height() );
jq_div.css({height: (max_height+"px")});
self.jq_div_full = jq_div;
return jq_div;
}else if(self.jq_div_full){
// убираем полупрозрачку
var jq_div = self.jq_div_full;
self.jq_div_full.remove();
self.jq_div_full = null;
return jq_div;
}else {
return false;
};
}; // end this.place_div_full = function
// настройки полупрозрачки
this.place_div_full.css_rules = {position: "absolute",left: "0px",top: "0px",
width : $('body').css('width'), height: $('body').css('height'),
'background-color': "black", 'opacity': 0.25
};
this.jq_div_info = null; // объект информационного контейнера
// размещение информационного контейнера
this.place_div_info_container = function(command){
var command = command || false;
if(command){
// ставим полупрозрачку
var jq_div = $("",{
id: self.getFreeId()
}).appendTo($('body').eq(0));
jq_div.css({
'position': "absolute",
'z-index': self.get_free_zIndex()
});
// ставим настройки полупрозрачки
var funcObj = arguments.callee;
jq_div.css(funcObj.css_rules);
self.jq_div_info = jq_div;
// располагаем по центру (используем сконтруированную ф-ю jQuery.fn.center)
jq_div.center();
self.place_info_content();
return jq_div;
}else if(self.jq_div_info){
// убираем полупрозрачку
var jq_div = self.jq_div_info;
self.jq_div_info.remove();
self.jq_div_info = null;
return jq_div;
}else {
return false;
};
}; // end this.place_div_info_container = function
// настройки css информационного контейнера
this.place_div_info_container.css_rules = {position: "absolute",left: "50%",top: "50%",
width : "350px", height: "200px", border:"1px solid #b4b4b4",
'background-color': "whitesmoke", padding: "5px"
};
this.o_info_data = null;
// начинка информационного контейнера
// возвращает объект o_info_data - ключи ссылки на созданные внутри контейнеры объекты
this.place_info_content = function(){
var o_info_data = {};
var jq_div_info = self.jq_div_info;
if(!jq_div_info) return false;
var funcObj = arguments.callee;
// swf-"иллюстрация" процесса обработки данных
var jq_div_swf = $("",{
id: 'div_swf'
}).appendTo(jq_div_info);
jq_div_swf.css({'text-align':'center'});
jq_div_swf.flash(funcObj['swf']);
o_info_data['swf'] = jq_div_swf;
// контейнер для инфы о текущем статусе процесса
var jq_div_info_status = $("",{
id: 'div_info_status'
}).appendTo(jq_div_info);
jq_div_info_status.css({
'text-align':'center',
'margin': '15px',
'font-size':'14px'
});
jq_div_info_status.attr({innerHTML:funcObj['status_text']});
o_info_data['status'] = jq_div_info_status;
// контейнер и кнопка Закрыть
var jq_div_info_btn = $("",{
id: 'div_info_ok'
}).appendTo(jq_div_info);
jq_div_info_btn.css({
'text-align':'center',
'margin': '10px',
'display':'none'
});
o_info_data['div_btn'] = jq_div_info_btn;
var jq_btn_close = $("",{
id: 'btn_info_close',
type: 'button',
value: 'Ок'
}).appendTo(jq_div_info_btn);
jq_btn_close.click(function(){
self.manage_layer_working("close");
});
o_info_data['btn'] = jq_btn_close;
self.o_info_data = o_info_data;
return o_info_data;
}; // end this.place_info_content = function
this.place_info_content.swf = { // swf-"иллюстрация" процесса обработки данных
src: '/img_css/spider_web.swf',
width: 120,
height: 120,
wmode: "transparent"
};
this.place_info_content.status_text = "Идет обработка информации.....";
// управление информационным слоем
this.manage_layer_working = function(in_cmd){
var jq_div_info = self.jq_div_info;
var o_info_data = self.o_info_data;
var funcObj = arguments.callee;
switch(in_cmd){
case "init":
self.place_div_full(true);
self.place_div_info_container(true);
break;
case "ok":
case "alarm":
if(!jq_div_info) {return false;}
if(!o_info_data) {return false;}
jq_div_info.css({'background-color': funcObj[in_cmd]['bgr']});
o_info_data['status'].attr({innerHTML:funcObj[in_cmd]['txt']});
o_info_data['div_btn'].slideDown('fast');
break;
case "close":
self.place_div_full(false);
self.place_div_info_container(false);
break;
}; // end switch(in_cmd)
};
this.manage_layer_working.ok = {'txt':"Обработка завершена!",'bgr':"turquoise"};
this.manage_layer_working.alarm = {'txt':"Ошибка обработки данных!",'bgr':"tomato"};
}; // end class_layer_working
var js_include = {};
// включение в документ js-файлов путем document.write();
js_include.incl_write = function(in_fname){
var re_js = /\.js/;
for(var i=0;i";
//alert(curr_fname);
document.write(write_str);
};
};
}; // end js_include.incl_write = function
//======================================================================