$(document).ready(function() {
	
	if ($.browser.msie && $.browser.version == 6) {
		$("img.png").ifixpng();
	}
	
	$("#menu").corner("10px");
	
	$("input[type=file]").filestyle({ 
		image: "templates/images/buttons/obzor.gif",
		imageheight : 29,
		imagewidth : 83,
		width : 205
	});
	
	
	
	
	
	$(".addClipart_left ul li a").corner("5px");
	$(".tab ol > li").click(menu.clickMainMenu);
	$(".tab ol > li:first").click();
	
	
	
	
	
	$('form.formForAjax').submit(function() {
		
		var t = $(this);
		$('.submit-mast-hide-when-ajax').css({display:'none'});
		$('.ajax-loader', t).css({display:'inline'});
		
		// return confirm('ДА?');
		
	})
	
	
	$('div.shag_1 input#file1').bind('change', function() {
		$('#box_right .shag_1 button').css('visibility', 'visible');
	})
	
	
	dinImg.init();
	
});
	
	
		
function addBookmark(url, title)
{
	
	
	url		= url || location.href;
	title	= title || document.title;
	
	
	
	//Gecko
	if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))	{
		window.sidebar.addPanel(title, url, "");
		
	} else if (typeof window.external == "object") { //IE4+
		window.external.AddFavorite(url, title);
		
	} else if (window.opera && document.createElement) { //Opera7+
		var a = document.createElement('A');
		
		if (!a) {	//IF Opera 6
			return false;
		}
		
		a.setAttribute('rel','sidebar');
		a.setAttribute('href',url);
		a.setAttribute('title',title);
		a.click();
		
		
	} else {
		return false;
	}
	
	return true;
}


lastClickedImg = null;
lastClickedObj = null;
lastClickedEff = null;

var menu = {
		
	selectedTopMenu		: null,
	selectedLeftMenu	: null,
	type				: null,
	num					: null,
	
	
	clickMainMenu : function() {
		
		var t		= $(this);
		var type	= t.attr('rel');
		menu.type	= type;
		
		if (menu.selectedTopMenu != null) {// Убираем выделение с предыдущего пункта
			menu.selectedTopMenu.removeClass("active").prev().removeClass("prevClass");
		}
		
		// Выставляем выделение кликнутому пункту
		t.addClass("active").prev().addClass("prevClass");
		menu.selectedTopMenu = t;
		
		
		
		// Создаём новые пункты в левом меню.
		var text = '';
		
		
		if (type == 2) {	// Если эффекты, то первым пунктом ставим спец-группу.
			text += '<li rel="special"><a href="javascript:void(0);">Основные</a></li>';
		}
		
		for (var i in leftMenuItems[type]) {
			var v = leftMenuItems[type][i];
			text += '<li rel="'+ v['id'] +'"><a href="javascript:void(0);">'+ v['n'] +'</a></li>';
		}
		
		
		text = $(text);
		menu.selectedLeftMenu = null;
		
		$('#leftMenu').html(text);
		$(".addClipart_left ul li a").corner("5px");
		$(".addClipart_left ul li").click(menu.clickLeftItem);
		$(".addClipart_left ul li:first").click();
		
		
		
		var forTabText		= $('#forTabText');
		var arForTabTexts	= [
			' &nbsp; 1. Для того, чтобы добавить картинку на аватар нажми на нее левой кнопкой мыши',
			' &nbsp; 1. Для того, чтобы добавить картинку на аватар нажми на нее левой кнопкой мыши<br /> &nbsp; 2. После того как картинка появится на аватаре, нажми на нее и перемещай в любое место аватара<br /> &nbsp; 3. Подведи мышку к любой стороне или углу пунктира и, удерживая левую кнопку мыши, изменяй размер.',
			' &nbsp; 1. Для того, чтобы добавить эффект на аватар нажми на него левой кнопкой мыши',
		];
		forTabText.html(arForTabTexts[type]);
		
		
	},
	
	
	clickLeftItem : function() {
		
		var t		= $(this);
		var id		= t.attr('rel');
		menu.num	= id;
		
		if (menu.selectedLeftMenu != null) {// Убираем выделение с предыдущего пункта
			menu.selectedLeftMenu.removeClass("active");
		}
		
		
		t.addClass('active');
		menu.selectedLeftMenu = t;
		
		menu.setContent();
		
	},
	
	setContent : function() {
		
		var html = '';
		
		if (menu.type == 0) { 			// Если картинка
			html += menu.getContentImage(menu.num);
		} else if (menu.type == 1) {	// Объекты
			html += menu.getContentObjects(menu.num);
		} else {						// Эффекты
			if (menu.num != 'special') {
				html += menu.getContentEffects(menu.num);
			} else {
				html += menu.getContentMainEffectsOfTheGod();
			}
		}
		
		
		// alert(html);
		$('#picsContent').html('');
		setTimeout(function() {
			$('#picsContent').html(html);
			$('#picsContent img.png').ifixpng();
		}, 1);
		
	}, 
	
	
	
	
	
	
	
	
	getContentImage : function(cat) {
		
		var html	= '';
		
		for (var i in imgs[cat]) {
			
			var rel = 'imgId' + imgs[cat][i]['id'];
			
			if (imgs[cat][i]['p'] == 'free') {
				html += '<img src="upload/small/'+ imgs[cat][i]['f'] +'" width="105" height="275" alt="" rel="'+ rel +'" onclick="dinImg.addImg('+ cat +', '+ i +');" class="applyPodlozhku2 png" /> ';
			} else {
				html += '<div class="plyha">';
				html += '	<img src="templates/images/buttons/money2.png" alt="" width="33" height="33" class="png plyha2" />';
				html += '	<img src="upload/small/'+ imgs[cat][i]['f'] +'" width="105" height="275" rel="'+ rel +'" onclick="dinImg.addImg('+ cat +', '+ i +');" class="applyPodlozhku2 png" />';
				html += '</div> ';
			}
			
		}

		
		return html;
		
	},
	
	getContentObjects : function(cat) {
		
		var html	= '';
		var t		= '';
		var t1		= '';
		var t2		= '';
		var t3		= '';
		var t4		= '';
		
		
		var getOneObject = function(item, cat, i) {
			if (typeof(item) == 'undefined') {
				return '';
			} else {
				return '<img src="upload/small/'+ item['f'] +'" alt="" onclick="dinImg.addObject('+ cat +', '+ i +');" rel="imgId'+ item['id'] +'" class="objectInList png" /> ';
			}
		}
		
		
		for (var i=0; i < imgs[cat].length; i+=4) {
			t += '<tr>';
			t += '	<td>' + getOneObject(imgs[cat][i], cat, i) + '</td>';
			t += '	<td>' + getOneObject(imgs[cat][i+1], cat, i+1) + '</td>';
			t += '	<td>' + getOneObject(imgs[cat][i+2], cat, i+2) + '</td>';
			t += '	<td>' + getOneObject(imgs[cat][i+3], cat, i+3) + '</td>';
			t += '</tr>';
		}
		
		html	=  '<table class="opsetrefbn">';
		html	+= 			t;
		html	+= '</table>';
		
		
		return html;
		
	},
	
	
	getContentEffects : function(cat) {
		
		var html = '';
		
		for (var i in imgs[cat]) {
			if (imgs[cat][i]['p'] == 'free') {
				html += '<img src="upload/small/'+ imgs[cat][i]['f'] +'" width="105" height="275" alt="" onclick="dinImg.addEffect('+ cat +', '+ i +');" class="applyPodlozhku png" /> ';
			} else {
				html += '<div class="plyha">';
				html += '	<img src="templates/images/buttons/money2.png" alt="" width="33" height="33" class="png plyha2" />';
				html += '	<img src="upload/small/'+ imgs[cat][i]['f'] +'" width="105" height="275" onclick="dinImg.addEffect('+ cat +', '+ i +');" class="applyPodlozhku png" />';
				html += '</div> ';
			}
		}
		
		return html;
		
	},
	
	getContentMainEffectsOfTheGod : function()
	{
		
		var html = '';
		for (var k in mainEffectsOfTheGod) {
			var v = mainEffectsOfTheGod[k];
			html += '<img src="upload/mainEffectsOfTheGod/'+ v['f'] +'" width="105" height="275" alt="" onclick="dinImg.addEffectOfTheGod('+ v['id'] +');" /> ';
		}
		
		return html;
	}
	
	
	
	
	
}






















var dinImg = {
	
	img			: null,
	arImg		: null,
	effect		: null,
	objs		: [],
	
	
	avaHeigh	: null,
	resultHeight: null,
	lastClicked	: null,
	
	
	
	
	/**
	 * Инициализируем стартовые переменные
	 * 
	 */
	init : function() {
		
		if ($('#slider').size()) {	// Если находимся на странице с ДИН-Изображением
		
			var h				= $('#slider .SLIDER_BG').height();
			dinImg.avaHeigh		= $("#outer_avatar").height();
			dinImg.resultHeight	= dinImg.avaHeigh;
			
			
			dinImg._addSignature();
			
			
			$(".SLIDER_BG").slider({
				orientation: 'vertical',
				min: 0,
				max: h,
				slide: dinImg.doSlide
			});
			
		}
		
		
	},
	
	
	
	/**
	 * 
	 * 
	 */
	doSlide : function(event, ui){
		dinImg.setHeight(dinImg.avaHeigh - ui.value);
	},
	
	
	/**
	 * 
	 * 
	 */
	setHeight : function(height, needSetArrow) {
		dinImg.resultHeight = height;
		$("#outer_avatar").height(height);
		
		
		if (needSetArrow == true) {
			var delta = dinImg.avaHeigh - height;
			var inProcents = delta / $('#slider .SLIDER_BG').height() * 100 + '%';
			$('.SLIDER_BG a').css('bottom', inProcents);
		}
	},
	
	
	/**
	 * Добавляет картинку на аватар
	 */
	addImg : function(cat, id, needGetById) {
		
		// Ищем массив описывающий картинку
		if (needGetById == true) { // Ищем по ID
			var img = dinImg._getById(imgs[cat], id);
		} else { // Ищем по порядковому номеру в массиве
			var img = imgs[cat][id];
		}
		
		 
		if (lastClickedImg != null) {
			lastClickedImg.removeClass('active');
		}
		
		var clickedImg = $('img[rel="imgId'+ img['id'] +'"]');
		clickedImg.addClass('active');
		lastClickedImg = clickedImg;
		
		
		$('#avatar_bottom').css('background-image', 'url(upload/small/'+ img['f'] +')').ifixpng();
		
		dinImg.img		= img['id'];	// Запоминаем выбранное
		dinImg.arImg	= img;			// Запоминаем выбранное
		
		dinImg._addSignature();
		
		
	},
	
	
	addEffect : function (cat, id, needGetById) {
		
		// Ищем массив описывающий картинку
		if (needGetById == true) { // Ищем по ID
			var img = dinImg._getById(imgs[cat], id);
		} else { // Ищем по порядковому номеру в массиве
			var img = imgs[cat][id];
		}
		
		$('#outer_avatar').css('background-image', 'url('+ mainUserPic +')');
		$('#effekt').css('background-image', 'url(upload/small/'+ img['f'] +')').ifixpng();
		
		dinImg.effect = img['id'];	// Запоминаем выбранное
		
		dinImg._addSignature();
		
	},
	
	addEffectOfTheGod : function (id)
	{
		
		
		
		$('#effekt').css('background-image', 'none');
		dinImg.effect = id + 'special';	// Запоминаем выбранное
		$('#outer_avatar').css('background-image', 'url(combine?applyGodEffect='+ id +'&t='+ genDate +')');
		
		dinImg._addSignature();
		
	},
	
	
	addObject : function (cat, id) {
		
		
		
		// Ищем массив описывающий картинку
		var img				= imgs[cat][id];
		var num				= dinImg.objs.length;
		
		var clickedObj = $('img[rel="imgId'+ img['id'] +'"]');
		clickedObj.addClass('active');
		
		
		
		var t= '';
		t += '<a class="dinobj" id="dinObj'+ num +'" style="z-index:'+ (5000 + num) +'">';
		t += '	<img src="upload/'+ img['f'] +'" alt="" width="100%" height="100%" />';
		t += '	<i class="delete" onclick="dinImg.deleteObject('+ num +');"/>';
		t += '</a>';
		
		
		t = $(t);
		
		
		t.mousedown(function () {
			var lastClicked = dinImg.lastClicked;
			if (lastClicked != null && dinImg.objs[lastClicked] != null) {
				dinImg.objs[lastClicked]['obj'].css('z-index', 5000 + lastClicked);
			}
			
			dinImg.lastClicked = num;
			$(this).css('z-index', 6000);
		})
		
		/*
		t.find('i.delete').click(function() {
			dinImg.deleteObject(num);
		});
		*/
		
		
		$('#outer_avatar').append(t);
		
		
		
		var tmpAr		= { id:img['id'], f:img['f'], w:img['w'], h:img['h'] };
		tmpAr['obj']	= t;
		tmpAr['x']		= 0;
		tmpAr['y']		= 0;
		
		
		
		dinImg.objs[num] = tmpAr;	// Запоминаем выбранное
		
		
		
		
		dinImg.objs[num]['obj'].draggable({ handle: 'img' });
		dinImg.objs[num]['obj'].resizable({ handles : 'n, e, s, w, se' });
		dinImg.objs[num]['obj'].find('div.ui-resizable-se').css('display', 'none');
		
		

		
		
		$('#outer_avatar a.dinobj').hover(function() {
			$(this).addClass('hover');
			$(this).find('div.ui-resizable-se').css('display', 'block');
		}, function() {
			$(this).removeClass('hover');
			$(this).find('div.ui-resizable-se').css('display', 'none');
		});
		
		
		
		
		// Выставляем позицию и размеры для только что созданного объекта.
		dinImg._setObjPos(num, 5, 5);
		
		dinImg._setObjSize(num, img['w'], img['h']);
		
		
		// Это оставь в самом конце метода.
		dinImg._addSignature();
		
		return num;
		
	},
	
	
	
	deleteObject : function(num) {
		
		var clickedObj = $('img[rel="imgId'+ dinImg.objs[num]['id'] +'"]');
		clickedObj.removeClass('active');
		
		dinImg.objs[num]['obj'].remove();
		dinImg.objs[num] = null;
		
	},
	
	
	
	
	addSavedObject : function(cat, id, x, y, w, h) {
		
		var i = dinImg._getIdById(imgs[cat], id);
		var num = dinImg.addObject(cat, i);
		
		// Выставляем позицию и размеры
		dinImg._setObjPos(num, x, y);
		dinImg._setObjSize(num, w, h);
		
	},
	
	
	
	
	
	/**
	 * Добавляет подпись.
	 */
	_addSignature : function() {
		
		$('#watermarkSign').ifixpng();
		
		if (dinImg.arImg == null) {	// Водяной знак с подписью
			$('#watermarkSign').css('background-image', 'url('+ waterMarkSignDefault +')').ifixpng();
		} else {	// Если есть рамка, то на ней уже существует подпись.
			$('#watermarkSign').css('background-image', 'none');
		}
		
	},
	
	
	
	/**
	 * Убирает ффект
	 */
	cleanUpEffects : function() {
		
		
		dinImg.effect	= null;
		
		$('#outer_avatar').css('background-image', 'url('+ mainUserPic +')');
		$('#effekt').iunfixpng().css( {'background-image':'none'} );
		
		dinImg._addSignature();
		
		
	},
	
	
	/**
	 * Очищает область
	 */
	cleanUp : function() {
		
		for(var i in dinImg.objs) {
			
			if (dinImg.objs[i] != null) {
				dinImg.deleteObject(i);
			}
		}
		
		dinImg.img		= null;
		dinImg.arImg	= null;
		dinImg.effect	= null;
		dinImg.objs		= [];
		
		
		
		
		if (lastClickedImg != null) {
			lastClickedImg.removeClass('active');
		}
		
		lastClickedImg = null;
		
		
		
		$('#outer_avatar').css('background-image', 'url('+ mainUserPic +')');
		$('#effekt').iunfixpng().css('background-image', 'none');
		$('#avatar_bottom').css('background-image', 'none').iunfixpng();
		
		dinImg._addSignature();
		
	},
	
	
	
	/**
	 * Метод ищет в массиве элемент с заданным ID
	 */
	_getById :function(ar, id) {
		
		for (var i in ar) {
			if (ar[i]['id'] == id) {
				return ar[i];
			}
		}
		
		return null;
		
	},
	
	/**
	 * Метод получает порядковый номер.
	 */
	_getIdById : function(ar, id) {
		for (var i in ar) {
			if (ar[i]['id'] == id) {
				return i;
			}
		}
	},
	
	
	
	/**
	 * Метод выставляет объект в заданную позицию
	 */
	_setObjPos : function(num, x, y)
	{
		
		dinImg.objs[num]['obj'].css({left:x, top:y});
		
	},
	
	/**
	 * Метод выставляет объекту размеры
	 */
	_setObjSize : function(num, w, h)
	{
		
		dinImg.objs[num]['obj'].css({width:w, height:h});
		
	},
	
	
	
	
	
	/**
	 * Отправляем форму.
	 * 
	 */
	submit : function ()
	{
		
		var t = '<input type="hidden" name="combineSubmit" value="1" />';
		var form = $('#formCombine');
		
		
		
		
		// Высота картинки
		t += '<input type="hidden" name="avaHeight" value="'+ dinImg.resultHeight +'" />';
		
		
		
		// Подцепляем выбранную рамку
		if (dinImg.img != null) {
			t += '<input type="hidden" name="img" value="'+ dinImg.img +'" />';
		}
		
		// Подцепляем выбранный эффект
		if (dinImg.effect != null) {
			t += '<input type="hidden" name="effect" value="'+ dinImg.effect +'" />';
		}
		
		
		// Подцепляем объекты
		t += "\n";
		for (var i in dinImg.objs) {
			var v = dinImg.objs[i];
			if (v != null) { // Если объект не был удалён.
				t += '<input type="hidden" name="objs['+ i +'][id]" value="'+ v['id'] +'" />' + "\n";
				t += '<input type="hidden" name="objs['+ i +'][x]" value="'+ parseInt(v['obj'].css('left')) +'" />' + "\n";
				t += '<input type="hidden" name="objs['+ i +'][y]" value="'+ parseInt(v['obj'].css('top')) +'" />' + "\n";
				t += '<input type="hidden" name="objs['+ i +'][w]" value="'+ parseInt(v['obj'].css('width')) +'" />' + "\n";
				t += '<input type="hidden" name="objs['+ i +'][h]" value="'+ parseInt(v['obj'].css('height')) +'" />' + "\n";
			}
		}
		
		// pr2(t);
		// return false;
		
		
		
		form.html(t);
		// form.get(0).submit();
		
		
	}
	
	
}










function addAjaxPing()
{
	/*
	$(document).ready(function() {
		setInterval(function(){
			$.get('ajaxPing', { t:Math.random() });
		}, 30 * 1000);
	});
	*/
	
}















/**
 * Аналог для print_r()
 * 
 * @param	mixed	variable	Переменная любого типа
 */
function pr(variable) {
	if ($.dump) {
		if (typeof(myAlert) != 'undefined') {
			myAlert('<pre>' + $.dump(variable) + '</pre>');
		} else {
			alert($.dump(variable));
		}
	} else {
		myAlert('Не подключено расширение jQuery.dump');
	}
}



function pr2(variable, x, y) {
	
	
	
	if ( ! $.dump) {
		alert('Не подключено расширение jQuery.dump');
	}
	
	
	if ($('#dump').size() <= 0) {
		x = x || 200;
		y = y || 200;
		$('body').append('<pre style="min-width: 150px; position:absolute; top:'+ y +'px; left:'+ x +'px; border:1px solid #000000; background-color: #FFFFFF; padding:5px;" id="dump"></pre>');
	}
	
	
	
	var t = $.dump(variable);
	t = t.replace(/	/g, '    ');
	
	
	$('#dump').text(t);
}

function pr3(val)
{
	
	var t = '';
	for (var i in val) {
		t += i + ' => ' + val[i]['obj'].attr('id') + "\n";
	}
	
	alert(t);
	
	
}