// ###################################################
// ####   LUM CORNERS                             ####
// ####   (C) 2010, Lum.ru                        ####
// ###################################################
// скрипт позволяет делать блоки с закругленными краями
// Работает на базе jquery (http://jquery.com/)
// email: gpnda@lum.ru
//
// Программирование: http://Lum.ru/
// 
//
// TODO: 
// 1. Не поддерживаются прозрачные углы, так как угловые картинки накладываются поверх боковых левой и правой.
// 2. Еще ряд сомнительных моментов описаны в комментариях в теле скрипта.
// + 3. вынести наверх настройки пути к картинкам
// +- 4. наследование свойств родительского дива: +ширина, -высота, +отступы
//
// Установка
// Скрипт работает с дивами класс которых начинается с префикса: "lum_corners_{ИМЯ БЛОКА}"
// картинки для этого блока должны иметь соответствующее название.
// Например: класс дива: "lum_corners_raz"
// имена картинок: "raz_tl.gif", "raz_tr.gif", "raz_ml.gif" ...
// для верхнего-левого, верхнего-правого, среднего-левого и т.д. углов.
//
// Никакой дополнительной настройки в стилях не требуется.
// Скрипт "непрозначный", т.е. он сам обворачивает див в требуемые тэги, сам назначает 
// им подклассы и стили, и вебмастер не видит всего этого процесса.
// Его задача сводится к тому, чтобы нарисовать 6 картинок.
//
// Проверена работа скрипта в FF3.6, IE8, Opera10.00
//
// Скрипт распространяется бесплатно под лицензией GPL, пользуйтесь, изменяйте, 
// дополняйте на свое усмотрение.
// Авторы будут очень благодарны вам, если вы разместите на любой странице 
// вашего сайта ссылку на сайт разработчика: http://lum.ru/



$(document).ready( function(){
	// Обернуть в шесть дивов с требуемыми именами классов
	$.each($("div[class^='"+lc_prefix+"']"), function() {
		var block_name = $(this).attr('class').replace(lc_prefix+"_",""); // может заменить на substr ? - быстрее работать будет
		
		// Обмениваемся с родителем паддингами
		var inner_padding_l = $(this).css('padding-left');
		var inner_padding_r = $(this).css('padding-right');
		var inner_padding_t = $(this).css('padding-top');
		var inner_padding_b = $(this).css('padding-bottom');
		$(this).css('padding-left','0px');
		$(this).css('padding-right','0px');
		$(this).css('padding-top','0px');
		$(this).css('padding-bottom','0px');
		// Обмениваемся с родителем бэкграундом
		var bg = $(this).css('background-image');
		var bg_pos = $(this).css('background-position');
		if(typeof(bg_pos) == 'undefined') { bg_pos = $(this).css('background-position-x') + ' ' + $(this).css('background-position-y') }; // этот IF для IE
		var bg_rep = $(this).css('background-repeat');
		
		var wrapper = '<div class=BLOCK_ml style=\'height:100%;\'>'+
'<div class=BLOCK_mr style=\'height:100%;\'>'+
'<div class=BLOCK_tl style=\'height:100%;\'>'+
'<div class=BLOCK_tr style=\'height:100%;\'>'+
'<div class=BLOCK_bl style=\'height:100%;\'>'+
'<div class=BLOCK_br style=\'height:100%;\'>'+
'<div class=' + block_name + '_bg style=\'background-image: ' + bg + '; background-position: ' + bg_pos + '; background-repeat: ' + bg_rep + ';    \'>'+
'<div style="padding:' + inner_padding_t + ' ' + inner_padding_r + ' ' + inner_padding_b + ' '  + inner_padding_l + ' '  +';">'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
		wrapper = wrapper.replace(/BLOCK_/g,"lumrc_"+block_name+"_");
		$(this).wrapInner(wrapper);
		
		}); 
		
	
	// Найти все "наши" стили и назначить им соответствующие стили (бэкгроунды)
	// может быть здесть искать не each div а each class ? тогда меньше элементов потребуется менять. - быстрее работать будет
	$.each($("div[class^='lumrc']"), function() {
		var block_name = $(this).attr('class').replace("lumrc_",""); // может заменить на substr ?
		block_corner = block_name.substr(block_name.length-2);
		block_name = block_name.substr(0,block_name.length-3);
		
		var bg_prp = "";
		switch (block_corner) {
				case "tl": bg_prp = "top left no-repeat";break;
				case "tr": bg_prp = "top right no-repeat";break;
				case "ml": bg_prp = "left repeat-y";break;
				case "mr": bg_prp = "right repeat-y";break;
				case "bl": bg_prp = "bottom left no-repeat";break;
				case "br": bg_prp = "bottom right no-repeat";break;
			}
		
		$(this).css("background", "url('" + lc_pics_path + block_name + "_" + block_corner + lc_pics_ext + "') " + bg_prp);
		
		
	}); 





});
