
// lib ------------------------------------------------------------------------------------------------------------------
	function $(id)
	{
	        return document.getElementById(id);
	}

        function $$(id)
	{
	        return window.top.document.getElementById(id);
	}

	function _(str)
	{
		alert(str);
	}

	function getChild(tag, id)
	{
	        if (tag)
		{
        		return !id ? document.getElementsByTagName(tag) : $(id).getElementsByTagName(tag);
		}else{
		        return false;
		}
	}

	function getChildFromObj(tag, obj)
	{
        	return tag && obj ? obj.getElementsByTagName(tag) : false;
	}

	function remove(id)
	{
		var e = $(id);

		if (e)
		{
			e.parentNode.removeChild(e);
		}
	}

	function dump(obj, obj_name)
	{
		var result = '';
		for (var i in obj)
		{
			result += obj_name + '.' + i + ' = ' + obj[i] + '\n';
		}

		return result;
	}

//	up == 1		- увеличить размер
//	up == -1	- уменьшать размер
//	f		- function_name выполняемая по окончании expand
	expand = function(id, arr, up, f)
	{
		var a = eval(arr);

		if($(id) && a)
		{
			var o = $(id);

			if(a[0] && a[1] && a[2] && a[3])
			{
				if(up == 1)
				{
					a[0]		= a[0] < a[2] ? a[0]+(a[3]*up) : a[2];
				}
				else if (up == -1)
				{
					a[0]		= a[0] > a[1] ? a[0]+(a[3]*up) : a[1];
				}

				o.style.height		= a[0]+'px';
			}

			if(a[4] && a[5] && a[6] && a[7])
			{
				if(up == 1)
				{
					a[4] 		= a[4] < a[6] ? a[4]+(a[7]*up) : a[6];
				}
				else if (up == -1)
				{
					a[4] 		= a[4] > a[5] ? a[4]+(a[7]*up) : a[5];
				}
				o.style.width		= a[4]+'px';
			}

			if (a[0] == a[2] && a[4] == a[6] && up == 1 || a[0] == a[1] && a[4] == a[5] && up == -1)
			{
				clearInterval(a[9]);
				a[9]			= null;

				if(f)
				{
					eval(f);
				}
			}
		}
	}



// class ------------------------------------------------------------------------------------------------------------------

	function Class()
	{
		var obj	= this;

		this.alphabet = function()
		{
			if ($('alphabet') && $('list'))
			{
				var items_symbol	= getChild('a', 'alphabet');
				var items_rss		= getChild('li', 'list');

				if(items_symbol && items_rss)
				{
					for(var i=0; i<items_symbol.length; i++)
					{
						items_symbol[i].onclick = function()
						{
							for(var ii=0; ii<items_rss.length; ii++)
							{
								if ('c'+this.innerHTML != items_rss[ii].className)
								{
									items_rss[ii].style.display	= 'none';
								}else{
									items_rss[ii].style.display	= 'block';
								}
							}
						}
					}
				}
			}
		}

//		настройки оформления пользователя
		this.chgFontFamily = function()
		{
			
			if($('chg_font') && $('usr_name'))
			{
				$('chg_font').onchange = function()
				{
					$('usr_name').style.fontFamily = this.options[this.selectedIndex].style.fontFamily;
				}
			}
		}

		this.chgFontColor = function()
		{
			if($('chg_color') && $('usr_name'))
			{
				$('chg_color').onchange = function()
				{
					$('usr_name').style.color = this.options[this.selectedIndex].style.color;
				}
			}
		}

		this.delBackGround = function()
		{
			if($('del_userpic') && $('frm_del'))
			{
				$('del_userpic').onclick = function()
				{
					$('frm_del').submit();
				}
			}
		}

		this.updatePassword = function()
		{
			if($('p1') && $('p2') && $('update_pass') && $('frm'))
			{
				$('update_pass').onclick = function()
				{
					if($('p1').value != $('p2').value)
					{
						$('p1').value = '';
						$('p2').value = '';
						_('ошибка подтверждения нового пароля. попробуйте еще раз.')
						return false;
					}else{
						$('frm').submit();
					}
				}
			}
		}

//		подгрузка контента
		this.getAjaxListClips = function(element, arr, style)
		{
			url				= element.href;
			s				= '&';
			$('p1').innerHTML		= '';
			getContentAjax(url, 'GET', 'page=1&simple=2', 'p1', s);
			page				= 2;
			$('result_out').innerHTML	= '<div id="p2"></div>';

			for(var i=0;  i<arr.length; i++)
			{
				arr[i].className	= arr[i].className == 'sel' ? style : arr[i].className;
			}
			element.className			= 'sel';
		}

//		подгрузка каналов из меню
		this.getChannelsFromMenu = function()
		{
			if($('l2_chnnls') && ($('l_pr') || $('l4')))
			{
				$('l2_chnnls').onclick = function()
				{
					var replace	= $('l_pr') ? $('l_pr').id : $('l4').id;
					var elems = getChild('a', 'l2');

					tmp_pr		= tmp_pr ? tmp_pr : $(replace).innerHTML;
					getContentAjax('/channels.php?sort=view', 'GET', '', replace, '');

					for(var i=0; i<elems.length; i++)
					{
						if (elems[i].className != 'u')
						{
							elems[i].className	= '';
						}
					}
					this.className			= 'sel';

					return false;
				}
			}
		}

//		подгрузка категорий из меню
		this.getCategoryFromMenu = function()
		{
			if($('l2_tags') && ($('l_pr') || $('l4')))
			{
				$('l2_tags').onclick = function()
				{
					var replace	= $('l_pr') ? $('l_pr').id : $('l4').id;
					var elems	= getChild('a', 'l2');

					tmp_pr		= tmp_pr ? tmp_pr : $(replace).innerHTML;
					getContentAjax('/category.php?simple=1', 'GET', '', replace, '');

					for(var i=0; i<elems.length; i++)
					{
						if (elems[i].className != 'u')
						{
							elems[i].className	= '';
						}
					}
					this.className			= 'sel';

					return false;
				}
			}
		}


		this.getCategory = function()
		{
			var elems = getChild('a', 'category');
			for(var i=0; i<elems.length; i++)
			{
				elems[i].onclick = function()
				{
//					getContentAjax(this.href, 'GET', '', 'p1', '');
					obj.getAjaxListClips(this, elems, '')
					$('result_out').innerHTML	= '<div id="p2"></div>';

					for(var ii=0; ii<elems.length; ii++)
					{
						elems[ii].className		= '';
					}
					this.className				= 'sel';

					return false;
				}
			}
		}


//		алфавит для каналов
		this.getChannels = function()
		{
			if($('alphabet'))
			{
				var elems = getChild('a', 'alphabet');

				if(elems)
				{
					for(var i=0; i<elems.length; i++)
					{
						elems[i].onclick = function()
						{
							$('result_out').innerHTML	= '<div id="p2"></div>';
							getContentAjax(this.href, 'GET', '', 'p1', '');
							if($('more_result'))
							{
								$('more_result').className	= 'u';
							}

							for(var ii=0; ii<elems.length; ii++)
							{
								elems[ii].className		= '';
							}
							this.className				= 'sel';
							return false;
						}
					}
				}
			}
		}

//		навигация по верхнему меню
		this.menu = function()
		{
			if($('l2') && $('p1') && $('result_out'))
			{
				var elems = getChild('a', 'l2');

				if(elems)
				{

					for(var i=0; i<elems.length; i++)
					{

						if (elems[i].id && elems[i].href.search('#') < 0)
						{
							elems[i].onclick = function()
							{
								if(tmp_pr && $('l_pr'))
								{
									$('l_pr').innerHTML	= tmp_pr;
								}
								obj.getAjaxListClips(this, elems, '');
								return false;
							}
						}
					}
				}
			}
		}


//		навигация по меню рейтингов
		this.menuDate = function()
		{
			if($('l_share'))
			{
				var elems = getChild('a', 'l_share');
				if (elems)
				{
					for(var i=0; i<elems.length; i++)
					{
						elems[i].onclick = function()
						{
							obj.getAjaxListClips(this, elems, 'blue');
							return false;
						}
					}
				}
			}
		}

//		еще ролики
//		u		- url запрашиваемого файла
//		m		- метод которым передать v - GET || POST
//		v		- переменные передаваемые в вызываемый файл (тип: x=1&y=2&z=3)
//		id		- в какой объект выводить данные
//		separator	- разделитель ? || &
		this.moreClips = function(u, m, v, id, separator)
		{
			if($('more_result') && $('result_out') && $(id+page))
			{
				$('more_result').onclick = function()
				{
					if(url && s)
					{
						u 				= u != url ? url : u;
						separator			= separator != s ? s : separator;
					}
					getContentAjax(u, m, 'page='+page+'&'+v, id+page, separator);
					page				= page+1;

					$('result_out').innerHTML	+= '<div id="p'+page+'"></div>';
					return false;
				}
			}
		}

//		после добавления комментария раскрываем пользователя
		this.userExpandAfterAddComment = function()
		{
			if(users[9])
			{
				clearInterval(users[9]);
				users[9]	= null;
			}

			$('l5').className	= 'sel';
			users[9]		= setInterval('expand(\'l5\', \'users\', 1)', users[8]);
		}



//		добавление комментариев
		this.commentAdd = function(b, arr, up)
		{
			if($('l5') && $(b) && commentsAddOpen)
			{
				$(b).onclick = function()
				{
					$('l5').style.height	= comments_cnt < 6 && up ? '540px' : users[2];

					for(var i=0; i<arr.length; i++)
					{
						if($(arr[i][0]))
						{
							$(arr[i][0]).className = arr[i][1];
						}
					}
					return false;

				}
			}
		}


		this.commentsPopUp = function(tag, id, triggerClass)
		{
			if (tag && id && $(id))
			{
				var elems	= getChild(tag, id);
				var img		= null;

				if (elems)
				{
					for (var i=0; i<elems.length; i++)
					{
						elems[i].onclick = function()
						{
							for(var ii=0; ii<elems.length; ii++)
							{

								var img = getChildFromObj('img', this);

								if(this.className != triggerClass && this == elems[ii])
								{
									if (img[0])
									{
										img[0].src	= '/img/new/minus.gif';
									}
									elems[ii].className	= triggerClass;
									t			= 0;

									if($('l5'))
									{
										$('l5').style.height = users[2]+100+'px';
									}

								}else{
									if (img[0] && this == elems[ii])
									{
										img[0].src	= '/img/new/plus1.gif';
									}
									elems[ii].className	= '';

									if($('l5'))
									{
										$('l5').style.height = users[2]+'px';
									}
								}
							}
							return false;
						}
					}
				}
			}
		}

//		развернуть/свернуть  пользователя
		this.userExpand = function()
		{
			if($('user_open') && $('l5'))
			{
				$('user_open').onclick = function()
				{
					if(users[9])
					{
						clearInterval(users[9]);
						users[9]	= null;
					}

					if($('l5').className != 'sel')
					{
						$('l5').className = 'sel';
						users[9]		= setInterval('expand(\'l5\', \'users\', 1)', users[8]);
					}else{
						users[9]		= setInterval('expand(\'l5\', \'users\', -1, "if($(\'l5\'))$(\'l5\').className=\'\';")', users[8]);

						for(var i=0; i<commentsAddClose.length; i++)
						{
							if($(commentsAddClose[i][0]))
							{
								$(commentsAddClose[i][0]).className = commentsAddClose[i][1];
							}
						}
					}
				}
			}
		}


//		функции для ролика
//		открыть дополнительную информацию по видео
//		&&
//		расширить ролик/стандартный размер
		// e	- событие
		// b	- button
		// arr	- массив элементов которым надо изменить className

		this.popUp = function(e, b, arr)
		{

			if(e && b && arr && $(b))
			{
				switch(e)
				{
					case 'onclick':
						$(b).onclick = function()
						{
							for(var i=0; i<arr.length; i++)
							{
								if($(arr[i][0]))
								{
									$(arr[i][0]).className = arr[i][1];
								}
							}
							return false;
						}
						break;

					case 'onover':
						$(b).onmouseover = function()
						{
							for(var i=0; i<arr.length; i++)
							{
								if($(arr[i][0]))
								{
									$(arr[i][0]).className = arr[i][1];
								}
							}
							return false;
						}
						break;

					case 'onout':
						$(b).onmouseout = function()
						{
							for(var i=0; i<arr.length; i++)
							{
								if($(arr[i][0]))
								{
									$(arr[i][0]).className = arr[i][1];
								}
							}
							return false;
						}
						break;

					default:
						break;
				}
			}
		}


//		работа с плейлистом
//		добавление и удаление видео из плейлиста
		this.playlist = function()
		{
			if($('i1'))
			{
				$('i1').onclick = function()
				{
					if ($('frm_pl') && $('frm_pl').innerHTML)
					{
						$('frm_pl').submit();
						_('Видео добавлено в плейлист');
						$('frm_pl').innerHTML	= '';
					}else{
						_('Видео уже добавлено в плейлист');
					}

					return false;
				}
			}
		}

	}


// Переменные -------------------------------------------------------------------------------------------------

//	раздвижение пользователя
	var users = new Array(
		50,		// 0 user_h		должно соответствовать значению высоты свернутого user
		50,		// 1 user_h_tmp		должно соответствовать значению высоты свернутого user
		230,		// 2 user_h_max		должно соответствовать значению с выбранным div#l5.sel |было 320
		20,		// 3 user_h_step	шаг изменения высоты элемента
		0,		// 4 user_w
		0,		// 5 user_w_tmp
		0,		// 6 user_w_max
		0,		// 7 user_w_step
		20,		// 8 user_time		скорость анимации
		null		// 9 start
	);

//	разместить комментарий
	var commentsAddOpen = [
		['comments', 'u'],
		['add_comment', 'u'],
		['close_comment', ''],
		['form_comment', '']
	];

	var commentsAddClose = [
		['comments', ''],
		['add_comment', ''],
		['close_comment', 'u'],
		['form_comment', 'u']
	];


//	функции к ролику
	var sendEmail = [
		['clip_line', 'u'],
		['function_line', ''],
		['f1', ''],
		['f2', 'u'],
		['f3', 'u'],
	];

	var sharedClip = [
		['clip_line', 'u'],
		['function_line', ''],
		['f1', 'u'],
		['f2', ''],
		['f3', 'u'],
	];

	var codeBlog = [
		['clip_line', 'u'],
		['function_line', ''],
		['f1', 'u'],
		['f2', 'u'],
		['f3', ''],
	];

	var openClip = [
		['clip_line', ''],
		['function_line', 'u'],
		['f1', 'u'],
		['f2', 'u'],
		['f3', 'u'],
	];
