/* 
Jquery Functions v1.1.0 (WEBDELO)

Описание: Библиотека многоцелевых функций компании WebDelo.
Разработчик: Попов Андрей Юрьевич
Дата: 28.06.2010
Сайт: www.webdelo.org
Требования: 
 - jquery v1.4.2
 - jquery.webdelo.modal.js v1.1.0
*/ 

// функция обновления капчи
function webdeloGetCaptcha(imageId) {
	generateCaptchaAjax();
	// картинки статуса
	$('#'+imageId).attr('src', '/captcha/captcha.php?'+webdeloGetRandomInt(1, 999999));
}
// AJAX-функция удаления категории
generateCaptchaAjax = function(){
	// Вывод изображения лодинга
	$('#captcha_status').fadeIn(300).delay(300);
	var all_data = new Object();
	all_data = { 'action': 'gen_captcha'};
	$.ajax({
		async: true, 
		type: 'POST', 
		url: '/cp/ds/ds_includes/ajax.ds.bloka.php',
		data: all_data,
		dataType: "json",
		success: function(responce){
				if (responce) {	
					// Скрытие изображения лодинга
					$('#captcha_status').fadeOut(300).delay(300);
				}
			}
	});
}

// функция генерации случайного числа в указанной границе
function webdeloGetRandomInt(min, max) {
	return Math.floor(Math.random() * (max - min + 1)) + min;
}

// функция задержки скрипта
$.fn.delay = function( time, name ) {
	return this.queue( ( name || "fx" ), function() {
	var self = this;
	setTimeout(function() { $.dequeue(self); } , time );
	} );
};

// функция вывода сообщения
webdeloMessage = function(message, okButton){
	// выводим сообщение в модальном окне
	var cnfg = new webdeloModal.Settings(); 
	cnfg.currentType=''; 
	// проверяем, требуется ли вывод кнопки OK
	if (okButton) {
		cnfg.isShowBtnOk = true;
	}
	// вызываем класс вызова модального окна
	webdeloModal.open(message, cnfg);
	return true;
}

// функция вывода сообщения
webdeloError = function(message){
	// выводим сообщение в модальном окне
	var cnfg = new webdeloModal.Settings(); 
	cnfg.currentType = 'Error';
	cnfg.isShowBtnOk = true;
	// вызываем класс вызова модального окна
	webdeloModal.open(message, cnfg);
	return true;
}

// функция вывода сообщения
webdeloSuccess = function(message, okButton){
	// выводим сообщение в модальном окне
	var cnfg = new webdeloModal.Settings(); 
	cnfg.currentType = 'Green';
	cnfg.isShowBtnOk = true;
	// вызываем класс вызова модального окна
	webdeloModal.open(message, cnfg);
	return true;
}

// функция вывода лудинга
webdeloLoading = function(message, color){
	// значение текста по умолчанию
	message = message || 'Подождите, данные обрабатываются на сервере...';
	// выводим сообщение в модальном окне
	var cnfg = new webdeloModal.Settings();
	if (color) { cnfg.overlayColor=color; }
	cnfg.currentType='Loading'; 
	cnfg.isShowBtnOk = false;
	// вызываем класс вызова модального окна
	webdeloModal.open(message, cnfg);
	return true;
}

// функция скрывает сообщение
webdeloResetMessage = function(){
	resetRegistrationForm();
	// закрываем модальное окно
	webdeloModal.close();
	return true;
}
// дублирование функции webdeloResetMessage с более удобным названием
webdeloClose = function(){
	// закрываем модальное окно
	webdeloResetMessage();
	return true;
}

// функция запрашивает подтверждение действия
webdeloConfirm = function(message, callback){
	// значение текста по умолчанию
	message = message || 'Вы уверены что хотите переместить запись в корзину?';
	webdeloModal.confirm(message, callback);
}

// функция открывает указанный слой в модальном окне
webdeloWindow = function(divId){
	var cnfg = new webdeloModal.Settings();
	cnfg.overlayColor='#000';
	cnfg.overlayOpacity='80';
	webdeloModal.setConfig(cnfg);
	webdeloModal.openHTML(divId);
	return true;
}

// функция проверки валидности майла по шаблону
webdeloCheckMail = function(email) {
	// рекурсивное выражение для проверки
	var reg_mail = /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
	if (reg_mail.exec(email) == null) {
		return false;
	} else {
		return true;
	}
}

// функция копирования значений элементов в другие элементы
webdeloCopyElementsValue = function(elements, subname){
	// проверяем в цикле все указанные в массиве формы
	$.each(elements, function (form, type) {
		// действия для компонента input-text
		if (type=='text' || type=='textarea') {
			$("#"+subname+form).html($("#"+form).val());
		}
		// для селектов
		if (type=='select') {
			$("#"+subname+form).html($("#"+form+"  option:selected").html());
		}
		// для чекбоксов
		if (type=='checkbox') {
			var val = $("#"+form).attr('checked');
			if (val) {
				val = "Да";
			} else {
				val = "Нет";
			}
			$("#"+subname+form).html(val);
		}
		// для HTML элементы
		if (type=='html') {
			$("#"+subname+form).html($("#"+form).html());
		}
	});
}


