window.addEvent('domready', function(){
	scrollWindow = new Fx.Scroll(window);
	
    // Ссылки
    $$('.url').addEvent('blur', function(e){
        if (this.value == '') {
            this.value = lng['l_url'];
            this.className += ' m';
        }
    });
    $$('.url').addEvent('focus', function(e){
        if (this.value == lng['l_url']) {
            this.value = "";
            this.className = "url";
        }
    });
    
    // Описание
    $$('.title').addEvent('blur', function(e){
        if (this.value == '') {
            this.className += ' m';
            this.value = lng['l_title'];
        }
    });
    $$('.title').addEvent('focus', function(e){
        if (this.value == lng['l_title']) {
            this.className = "title";
            this.value = "";
        }
    });
    
    // Генерирование URI "на лету"
    $$('.gen_title').addEvent('keyup', function(e){
    	var uri = getURI(this.value);
        var names = $$('.gen_name');
		names.each(function(name){
			name.value = uri;
		});
    });
    
    // Переключение типа ввода
	$$('.upload_change').addEvent('click', function(e){
    	var word	= this.id.replace(/(\w+)_change_\d+/, '$1');
    	var id		= this.id.replace(/(\w+)_(\d+)/, '$2');
		if (this.checked == true) {
        	$(word + '_' + id).style.display      = 'none';
            $(word + '_web_' + id).style.display  = 'block';
		}
        else {
        	$(word + '_' + id).style.display      = 'block';
			$(word + '_web_' + id).style.display  = 'none';
		}
	});
});

// Сообщения
function msg(msgText, msgClass, toTop, timed)
{
	var box = 'info';
	if (toTop == undefined) {
		toTop = false;
	}
	if (timed == undefined) {
		timed = true;
	}
	
	// Вертим наверх
	if (toTop) {
		scrollWindow.toTop();
	}
	
	$(box).setStyle('display', 'block');
	$(box + '-box').set('html', msgText);
	if (msgClass != undefined) {
		$(box + '-box').set('class', msgClass);
	}
	
	if (timed) {
		setTimeout(
			function(){
				//msg.destroy();
				$(box).setStyle('display', 'none');
			},
			10000
		);
	}
}

// Индикатор
function loader()
{
	var box = 'loader';
	if ($(box).getStyle('display') == 'none') {
		$(box).setStyle('display', 'block');
	}
	else {
		$(box).setStyle('display', 'none');
	}
}

///////////////////
// Запрос данных //
function getData(action, params)
{
	var url = '/inc/ajax.php?json&action=' + action;
	var request = new Request.JSON({url: url, onComplete: function(jsonObj){
		resultData(action, jsonObj);
	}}).get(params);
}
function getExternalData(url, userFunc)
{
	new JsonP(url, {
		onComplete: userFunc
	}).request();
}
// Запрос данных //
///////////////////

// Готовим URI
function getURI(txt)
{
	txt = txt.toLowerCase();
	var rus = new Array(
		/ /g,	/ж/g,	/ю/g,	/я/g,	/ц/g,	/ч/g,	/ш/g,	/щ/g,	/эй/g,		/а/g,
		/б/g,	/в/g,	/г/g,	/д/g,	/е/g,	/ё/g,	/з/g,	/и/g,	/й/g,		/ы/g,
		/к/g,	/л/g,	/м/g,	/н/g,	/о/g,	/п/g,	/р/g,	/с/g,	/т/g,		/у/g,
		/ф/g,	/х/g,	/ъ/g,	/ю/g,	/ь/g,	/э/g,	/\!/g,	/\?/g,	/\+/g,		/—/g,
		/-/g,	/\./g,	/,/g,	/\(/g,	/\)/g,	/\[/g,	/\]/g,	/%/g,	/&prime;/g,	/&quot;/g,
		/«/g,	/»/g,	/:/g,	/'/g,	/__/g,	/"/g,	"/",	"…",	"#",		/---|--/g
	);
	var eng = new Array(
		'-',	'zh',	'ju',	'ja',	'ts',	'ch',	'sh',	'csh',	'a',		'a'	,
		'b',	'v',	'g',	'd',	'e',	'e',	'z',	'i',	'i',		'y',
		'k',	'l',	'm',	'n',	'o',	'p',	'r',	's',	't',		'u',
		'f',	'h',	'',		'y',	'',		'e',	'',		'',		'',			'-',
		'-',	'',		'',		'',		'',		'',		'',		'',		'',			'',
		'',		'',		'',		'_',	'_',	'',		'',		'',		'',			'-'
	);
	for (i=0; i<eng.length; i++) {
		txt = txt.replace(rus[i], eng[i])
	}
	return txt;
}

// Фиксим PNG
function fixPNG(element)
{
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
		var src;
		if (element.tagName == 'IMG') {
			if (/\.png$/.test(element.src)) {
				src = element.src;
				element.src = "/tpl/img/blank.gif";
			}
		}
		else {
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
			if (src) {
				src = src[1];
				element.runtimeStyle.backgroundImage = "none";
			}
		}
		
		var re_scale_mode = /iesizing\-(\w+)/;
		var m = re_scale_mode.exec(element.className);
		
		var scale_mode = (m) ? m[1] : 'crop';
		
		if (src)
			element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='" + scale_mode + "')";
	}
}

// Валидация формы
function checkFormFields(fields, errorType)
{
	//
	// errorType = 1 (текст ошибки показывается напротив каждого поля)
	// 			 = 2 (текст ошибки показывается в одном месте)
	//
	if (errorType == undefined) {
		errorType = 1;
	}
	var errorText = '';
	var classError = 'error_field';
	var result = true;
	var error = false;
	
	$each(fields, function(field, index){
		$each(field, function(check){
			// Условие
			switch (check.code) {
				case 'zero':
					// Не ноль
					cond = "$(index).get('value') == 0";
					break;
				case 'empty':
					// Не пусто
					cond = "$(index).get('value') == ''";
					break;
				case 'empty_editor':
					// Не пусто (для редактора)
					cond = "tinyMCE.activeEditor.getContent() == ''";
					break;
				case 'uri':
					// URI
					cond = "/[а-яА-Я#\'\" ]/.test($(index).get('value'))";
					break;
				case 'photo':
					// Расширение фотки (без "Из сети")
					cond = "$(index).value != '' && !/jpg|jpeg|gif|png$/.test($(index).value)";
					break;
				case 'photo_web':
					// Расширение фотки
					cond = "($(index).value != '' && !/jpg|jpeg|gif|png$/.test($(index).value)) || ($(index + '_web').value != lng['l_url'] && !/jpg|jpeg|gif|png$/.test($(index + '_web').value))";
					break;
				case 'email':
					// Валидность e-mail
					cond = "$(index).get('value') != '' && !/^[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?\.[A-Za-z0-9]{2,6}$/.test($(index).get('value'))";
					break;
				case 'checked':
					// Переключатель (вкл.)
					cond = "!$(index).checked";
					break;
				case 'sex':
					// Пол
					cond = "!$(index + '_1').get('checked') && !$(index + '_2').get('checked')";
					break;
				case 'pwd_confirm':
					// Подтверждение пароля
					cond = "$(index).get('value') != '' && $(index).get('value') != $(index + '_confirm').get('value')";
					break;
				default:
					cond = check.code;
			}
			
		    if (eval(cond)) {
		        error = true;
		        if (errorType == 1) {
		        	$('error_' + index).set('text', check.text);
		        }
		        else if (errorType == 2) {
		        	errorText += check.text + '<br />';
		        }
		    }
	    });
		if (error) {
			if (errorType == 1) {
				$('error_' + index).setStyle('display', 'block');
				if ($(index)) {
					$(index).className += ' ' + classError;
				}
			}
			result = false;
		}
		else {
			if (errorType == 1) {
				if ($(index)) {
					$(index).className = $(index).className.replace(' ' + classError, '');
				}
				$('error_' + index).setStyle('display', 'none');
			}
		}
		error = false;
	});
	
	if (errorType == 2 && errorText != '') {
		msg(errorText, 'error', false, false);
	}
	
	return result;
}

function showProperties(obj, objName)
{
	var result = "The properties for the " + objName + " object:" + "\n";
	for (var i in obj) {result += i + " = " + obj[i] + "\n";}
	return result;
}