var mail_filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var digit_filter = /^(\d{4})$/;
var prnt_logo = $('<img src="/images/logo-print-uz.png" id="prntLogo" width="276" height="40" alt="">');

/**
 *	@type {Object} append_i_arr
 */
var append_i_arr = {
		'#langMenu':'li:not(:first)',
		'#rssLink':'',
		'#navMenu':'li',
		'#faqList':'li',
		'#govLinks':'li',
		'#page404 #searchForm':'a',
		'#siteMap #searchForm':'a',
		'#siteMap #singleColumn ul li li li':'a',
		'#page404 #singleColumn ul':'li'
	};
var append_icrnr_arr = {
		'#govLinks':'#footer',
		'#newStuff':''
	};

/**
 *	������� ���������� �������� <code>&lt;i&gt;&lt;/i&gt;</code> ��� ������� ���� �������������
 *	@param {String} dep
 *	@param {String} elem
 */
function append_i(dep,elem) {
	if ($(dep).length) {
		if (elem == '') {
			$(dep).append('<i></i>');
		} else {
			$(elem, dep).append('<i></i>');
		}
	}
}
/**
 *	Function appends <code>&lt;i class="crnr"&gt;&lt;/i&gt;</code> tag for additional elements into a page
 *	@param {String} dep
 *	@param {String} elem
 */
function append_icrnr(dep, elem) {
	if ($(dep).length) {
		if (!$(dep+' '+elem).length) {
			$(elem).append('<i class="crnr"></i>');
		}
		if (elem == '') {
			$(dep).append('<i class="crnr"></i>');
		} else {
			$(elem, dep).append('<i class="crnr"></i>');
		}
	}
}

function setPrintStyle(p) {
	var links = document.getElementsByTagName('LINK');
	if (p == true) {
		$('#container').prepend(prnt_logo);
		$('#centerColumn').append('<p id="thisURL">'+location.href+'</p>')
	} else {
		location.hash = '';
		prnt_logo.remove();
		$('#thisURL').remove();
	}
	for(var i=0; i<links.length; i++) {
		if(links[i].title == 'printview') links[i].disabled = !p;
	}
}

$(
	function() {
		if(location.hash == '#print') { setPrintStyle(true);}
		
		if ($.browser.msie && $.browser.version <= 6) {
			if ($('#container').width() >= '1258') {
				$('#container').width('1258');
			}
			if($('#breadcrumbs').length) {
				$('#breadcrumbs li').each(
					function() {
						if(!$(this).hasClass('current') || $(this).hasClass('subMenu')) {
							$(this).hover(
								function() { $(this).addClass('over');},
								function() { $(this).removeClass('over');}
							);
						}
					}
				);
			}
			if ($('#catList').length) {
				$('#catList dl:first').addClass('first-child');
				$('#catList dd').each(
					function() {
						$('a:first', $(this)).addClass('first-child');
					}
				);
			}
		}
		
		/**
		 *	���������� �������������� �������� ������� ��� Mozilla FF 2
		 */
		if ($.browser.mozilla && $.browser.version.substr(0,3) <= 1.8) {
			$('head style').append('@import "/styles/mff2.css";');
		}
		

		if ($.browser.opera && $.browser.version <= 9.23) {
            $('head style').append('@import "/styles/opr92.css";');
			$('#mainMenu').wrap('<div class="wrapper"></div>');
		}
	
		$('#mainMenu > li span').append('<i class="lc"></i><i class="rc"></i>');
		$.each(append_i_arr,
			function(i, v) {
				 append_i(i,v);
			}
		);
		
		if ($('#header').length) {
			$('#header').append('<a href="/uz"><span id="flag" class="govattrs"><i></i></span></a><span id="emblem" class="govattrs"><i></i></span>');
		}
		
		$.each(append_icrnr_arr,
			function(i, v) {
				 append_icrnr(i,v);
			}
		);
		if ($('#siteCatSects').length) {
			$('#siteCatSects .tabsWrpr h3').append('<i class="lc"></i><i class="rc"></i>');
		}
		if ($('#addServices').length) {
			$('#addServices').append('<i class="ltc"></i><i class="rtc"></i><i class="lbc"></i><i class="rbc"></i>');
		}
		
		if ($('#searchForm').length && !($('#page404').length || $('#siteMap').length)) {
			var sform = $('#searchForm form');
			var fld = $('input:text', sform);
			var tval = $('label', sform).text();
			fld.val(tval).focus(
				function(){	
					$(this).addClass('active');
					if($(this).val() == tval) {
						$(this).val('');
					}
				}
			).blur(
				function(){	
					if($(this).val() == '') {
						$(this).val(tval).removeClass('active');
					} else {
						$(this).addClass('active');
					};				
				}
			);
		}
		
		if ($('#breadcrumbs').length) {
			$('>li>a, >li>span', $('#breadcrumbs')).each(
				function() {
					if ($(this).parent().hasClass('current')) {
						$(this).append('<img src="/images/bc-arrw-cur.gif" width="5" height="3">');
					} else {
						$(this).append('<img src="/images/bc-arrw.gif" width="3" height="5">');
					}
				}
			);
		}
		
		if ($("#printVer").length) {
			$('#printVer a').click(
				function() { setPrintStyle(true); return !1});
			$('#stntVer').click(
				function() { setPrintStyle(false); return !1});
		}
		
		if ($('#siteCatSects').length) {
			$('#catList dd a').each(
				function() {
					if ($(this).prev().is('A')) {
						$(this).before('&bull;');
					}
				}
			);
			
			$('#siteCatSects .tabsWrpr a').click(
				/** ������� ������������ ����� ��������� */
				function() {
					var idx = $('#siteCatSects .tabsWrpr a').index(this);
					/** @param {Element} prnt Parent node of current link */
					var prnt = $(this).parent();
					if (!prnt.hasClass('current')) {
						$('#siteCatSects .tabsWrpr h3').removeClass('current');
						$('#catList .servBlock').hide();
						$('#catList .servBlock:eq('+idx+')').show();
						prnt.addClass('current');
						//$('#catList dl').hide();
					}
					return !1;
				}
			);
		}
		if ($('#rightColumn .tabsWrpr').length) {
			$('#rightColumn .tabsWrpr a').click(
				function() {
					/** @param {Element} prnt Parent node of current link */					
					var prnt = $(this).parent();
					/** @param {Element} tabs_prnt Parent node of tabs */
					var tabs_prnt = prnt.parent();
					if (!prnt.hasClass('current')) {
						$('h3', tabs_prnt).removeClass('current');
						prnt.addClass('current');//.prependTo(tabs_prnt);
					}
					var tgls = tabs_prnt.next('div:first').find('>ul,>div');
					$.each(tgls, function() {
						$(this).toggle();
					});
					return !1;
				}
			);
		}
		
		// �������������� ������ ������� � ������ �������� � ������ �������
		/*if($('#newsCalendar').length) {
			$('#newsCalendar > li a').click(
				function() {
					if($(this).parent('li').hasClass('open')) {
						$(this).next('ul').slideUp(400);
						$(this).parent('li').removeClass('open');
					} else {
						$('#newsCalendar').children('li').each(
							function() {
								if($(this).hasClass('open')) {
									$(this).children('ul').slideUp(400);
									$(this).removeClass('open');
								}
							}
						);
						$(this).next('ul').slideDown(400).parent('li').addClass('open');
					}
					return !1;
				}
			);
		}*/
		
		if($('#newsCalendar').length) {
			$('#newsCalendar > li a').click(
				function() {
					if($(this).parent('li').hasClass('open')) {
						$(this).next('ul').slideUp(400);
						$(this).parent('li').removeClass('open');						
						return !1;
					} 
					else {						
						$(this).next('ul').slideDown(400);									
						$(this).parent('li').addClass('open');					
					}
					return 1;
				}
				
			);
		}
		
		if ($('#faqForm form').length) {
			var this_form = $('#faqForm form');
			this_form.submit(
				function() {
					var error = 0;
					$('input:text, textarea').each(
						function() {
							switch ($(this).attr('name')) {
								case 'f_email':
									if ($(this).value == '') {
										error++;
										$(this).addClass('error');
									} else if (!mail_filter.test(this.value)) {
										error++;
										$(this).addClass('error');
									} else {
										$(this).removeClass('error');
									}
									break;
								case 'f_captcha':
									if ($(this).val() == '') {
										error++;
										$(this).addClass('error');
									} else if (!digit_filter.test(this.value)) {
										error++;
										$(this).addClass('error');
									} else {
										$(this).removeClass('error');
									}
									break;
								default:
									if ($(this).val() == '') {
										error++;
										$(this).addClass('error');
									} else {
										$(this).removeClass('error');
									}
									break;
							}
						}
					);
					if (error != 0) {
						errorRepotring(this_form);
						return false;
					}
					return true;
				}
			);
		
		}
		
		if ($('#feedbackForm form').length) {
			var this_form = $('#feedbackForm form');
			this_form.submit(
				function() {
					var error = 0;
					$('input:text, textarea').each(
						function() {
							if ($(this).attr('name') !== 'f_phone') {
								switch ($(this).attr('name')) {
									case 'f_email':
										if ($(this).value == '') {
											error++;
											$(this).addClass('error');
										} else if (!mail_filter.test(this.value)) {
											error++;
											$(this).addClass('error');
										} else {
											$(this).removeClass('error');
										}
										break;
									case 'f_captcha':
										if ($(this).val() == '') {
											error++;
											$(this).addClass('error');
										} else if (!digit_filter.test(this.value)) {
											error++;
											$(this).addClass('error');
										} else {
											$(this).removeClass('error');
										}
										break;
									default:
										if ($(this).val() == '') {
											error++;
											$(this).addClass('error');
										} else {
											$(this).removeClass('error');
										}
										break;
								}
							}
						}
					);
					if (error != 0) {
						errorRepotring(this_form);
						return false;
					}
					return true;
				}
			);
		
		}
		
		/*if($('#txtaWrpr').length) {
			var taw = $('#txtaWrpr');
			$('textarea', taw).keyup(
				function() {
					var count = 300 - $(this).val().length;
					if(count > 0) {
						$('.scount span', taw).text(count);
					} else {
						// ������� ����������� ��������, ������� �����
					}
				}
			);
		}*/
		var limited=$('#limitedleft');
		if(limited.length)
		{
			var count;
			var msgtext=$("textarea[name='fmsg']");
			//var msgcount=$("input[name='countdown']");
			msgtext.keyup(function(event)
				{
					limited=$('#limitedleft');
					if (msgtext.val().length > 3000) {
						msgtext.val(msgtext.val().substring(0, 3000));
					}
					//limited.text(300 - msgtext.val().length);
					//msgcount.val(300 - msgtext.val().length);
					if(3000-msgtext.val().length>0)
					{
						limited.html(3000-msgtext.val().length);
					}
					else
					{
						limited.html('0');
					}
				}
			);
			limited.html(3000-msgtext.val().length);
		}
	
	}
);
