var NgrCommon = (function() {
	
	var nc;
	
	var constants = {
		AJAX_SCRIPT: '/ajax/ngr_common.php?ajax',
		AJAX_OBVL: '/ajax/ajax_obvl.php?ajax',
		HTML_MAKETS: '/ajax/html_makets.php?ajax'
	};
	
	function constructor() {
		// Private members.
		var userAgent = navigator.userAgent.toLowerCase();
		
		/** Тип и версия браузера пользователя. Взято с jQuery */
		var browser = {
			version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
			safari: /webkit/.test( userAgent ),
			opera: /opera/.test( userAgent ),
			msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
			mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
		}
		
		return { 
			// Public members.
			cache: [],
			bottom_block: {"closed": false, "state": "unopened"},
			flash_img_selected: false,
			currentLinkObj: null,
			ngrEnterIsInProgress: null,
			quick_bottom_block_start_place_offset: null,
			quick_bottom_block_html: null,
			selectionText: null,
			htmlmakets: [],
			currentSocialChoice: null,
			isLoadingString: '<span id="isLoading"><img src="http://pics.nashgorod.ru/i/is_load.gif" width="16" height="16" align="absmiddle" />&nbsp;Идет загрузка...</span>',
			
			// Public methods
			getConstant: function(name) {
				return constants[name];
			},	
			
			getBrowser: function() {
				return browser;
			},	
			
			getLoadingInProgressText: function(txt) {
				var txt = txt || 'Отправка...';
				return '<span id="isLoading"><img src="http://pics.nashgorod.ru/i/is_load.gif" width="16" height="16" align="absmiddle" />&nbsp;'+txt+'</span>';
			},
			
			hideLoadingInProgressText: function() {
				ngrjQ("#isLoading").remove();
			},
			
			hideAlertWindow: function() {
				ngrjQ("#debug_info").remove();
			},
			
			showAlertWindow: function(html, closelink, isloading, autoclose, cssobj) {
				if (nc.isset(closelink) === false) {
					closelink = true;
				}
				
				if (nc.isset(cssobj) === false) {
					cssobj = {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9B9B9B", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"};
				}

				isloading = isloading || false;
				autoclose = autoclose || false;
				ngrjQ("body").append('<div id="debug_info"></div>');
				
				if (isloading) {
					ngrjQ("#debug_info")
					.css(cssobj)
					.html('<img src="http://pics.nashgorod.ru/i/is_load.gif" width="16" height="16" align="absmiddle" />&nbsp;&nbsp;&nbsp;Идет загрузка&hellip;');
				} else {
					ngrjQ("#debug_info")
					.css(cssobj)
					.html(html);
					
					if (autoclose == false && closelink) {
						ngrjQ("#debug_info").append('<div style="margin-top:25px;"><a href="#" id="hidealert">закрыть</a></div>');
						ngrjQ("#hidealert").bind("click", function(e){
							nc.hideForm();
							return false;
						});
					}
				}
				
				ngrjQ("#debug_info").centerInClient();
				
				if (autoclose) {
					setTimeout(nc.hideForm,1500);
				}
			},
			
			getElementValue: function(id, strip_tags) {
				var strip_tags = strip_tags || true;
				var val = nc.gi(id).value;
				if (strip_tags === true) {
					val = nc.strip_tags(val);
				}
				
				return nc.trim(val);
			},
			
			checkRegexp: function(strCheck, checkType, regExp) {
				var strCheck = strCheck || false;
				if (strCheck === false) {
					alert('Укажите строчку для проверки.');
					return false;
				}
				
				var regExp = regExp || false;
				var checkType = checkType || false;
				
				if (regExp === false) {
					
					if (checkType === false) {
						alert('Укажите тип проверки.');
						return false;
					}
					
					switch(checkType) {
						case 'ifUrl':
							regExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
						break;
						
						case 'ifEmail':
							regExp = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
						break;
					}
				}
				
				return regExp.test(strCheck);
			},
			
			explode: function(delimiter, string, limit) {
				// http://kevin.vanzonneveld.net
			 
				var emptyArray = { 0: '' };
				
				// third argument is not required
				if ( arguments.length < 2 ||
					typeof arguments[0] == 'undefined' ||
					typeof arguments[1] == 'undefined' ) {
					return null;
				}
			 
				if ( delimiter === '' ||
					delimiter === false ||
					delimiter === null ) {
					return false;
				}
			 
				if ( typeof delimiter == 'function' ||
					typeof delimiter == 'object' ||
					typeof string == 'function' ||
					typeof string == 'object' ) {
					return emptyArray;
				}
			 
				if ( delimiter === true ) {
					delimiter = '1';
				}
				
				if (!limit) {
					return string.toString().split(delimiter.toString());
				} else {
					// support for limit argument
					var splitted = string.toString().split(delimiter.toString());
					var partA = splitted.splice(0, limit - 1);
					var partB = splitted.join(delimiter.toString());
					partA.push(partB);
					return partA;
				}
			},						
			
			strrchr: function(haystack, needle) {
				if (typeof needle !== 'string') {
					needle = String.fromCharCode(parseInt(needle, 10));
				}    needle = needle.charAt(0);
				pos = haystack.lastIndexOf(needle);
				if (pos === -1) {
					return false;
				} 
				return haystack.substr(pos);
			},		
			
			in_array: function(needle, haystack, argStrict) {
				// http://kevin.vanzonneveld.net
				var key = '', strict = !!argStrict;
			
				if (strict) {
					for (key in haystack) {
						if (haystack[key] === needle) {
							return true;
						}
					}
				} else {
					for (key in haystack) {
						if (haystack[key] == needle) {
							return true;
						}
					}
				}
			
				return false;
			},			
						
			strip_tags: function(str, allowed_tags) {
				// http://kevin.vanzonneveld.net
			
				var key = '', allowed = false;
				var matches = [];
				var allowed_array = [];
				var allowed_tag = '';
				var i = 0;
				var k = '';
				var html = '';
			
				var replacer = function (search, replace, str) {
					return str.split(search).join(replace);
				};
			
				// Build allowes tags associative array
				if (allowed_tags) {
					allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi);
				}
			
				str += '';
			
				// Match tags
				matches = str.match(/(<\/?[\S][^>]*>)/gi);
			
				// Go through all HTML tags
				for (key in matches) {
					if (isNaN(key)) {
						// IE7 Hack
						continue;
					}
			
					// Save HTML tag
					html = matches[key].toString();
			
					// Is tag not in allowed list? Remove from str!
					allowed = false;
			
					// Go through all allowed tags
					for (k in allowed_array) {
						// Init
						allowed_tag = allowed_array[k];
						i = -1;
			
						if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
						if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
						if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}
			
						// Determine
						if (i == 0) {
							allowed = true;
							break;
						}
					}
			
					if (!allowed) {
						str = replacer(html, "", str); // Custom replace. No regexing
					}
				}
			
				return str;
			},			
			
			setCookie: function(sName, sValue, oExpires, sPath, sDomain, bSecure) {
				var sCookie = sName + "=" + encodeURIComponent(sValue);
				if (oExpires) {
					sCookie += "; expires=" + oExpires.toGMTString();
				}
				
				if (sPath) {
					sCookie += "; path=" + sPath;
				}
				
				if (sDomain) {
					sCookie += "; domain=" + sDomain;
				}
				
				if (bSecure) {
					sCookie += "; secure";
				}
				
				document.cookie = sCookie;
			},
			
			getCookie: function(sName) {
				var sRE = "(?:; )?" + sName + "=([^;]*);?";
				var oRE = new RegExp(sRE);
				if (oRE.test(document.cookie)) {
					return decodeURIComponent(RegExp["$1"]);
				} else {
					return null;
				}
			},
			
			deleteCookie: function(sName, sPath, sDomain) {
				nc.setCookie(sName, "", new Date(Date.parse("Jan 1, 1980")), sPath, sDomain);
			},
			
			str_replace: function (search, replace, subject, count) 
			{
				// http://kevin.vanzonneveld.net
				var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
						f = [].concat(search),
						r = [].concat(replace),
						s = subject,
						ra = r instanceof Array, sa = s instanceof Array;
				s = [].concat(s);
				if (count) {
					this.window[count] = 0;
				}
			
				for (i=0, sl=s.length; i < sl; i++) {
					if (s[i] === '') {
						continue;
					}
					for (j=0, fl=f.length; j < fl; j++) {
						temp = s[i]+'';
						repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
						s[i] = (temp).split(f[j]).join(repl);
						if (count && s[i] !== temp) {
							this.window[count] += (temp.length-s[i].length)/f[j].length;}
					}
				}
				return sa ? s : s[0];
			},			
			
			isset: function()
			{
				// discuss at: http://phpjs.org/functions/isset
				// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
				
				var a=arguments, l=a.length, i=0;
				
				if (l===0) {
					throw new Error('Empty isset'); 
				}
				
				while (i!==l) {
					if (typeof(a[i])=='undefined' || a[i]===null) { 
						return false; 
					} else { 
						i++; 
					}
				}
				return true;
			},	
			
			trim: function(str, charlist) {
				// http://kevin.vanzonneveld.net
			
				var whitespace, l = 0, i = 0;
				str += '';
				
				if (!charlist) {
					// default list
					whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
				} else {
					// preg_quote custom list
					charlist += '';
					whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
				}
				
				l = str.length;
				for (i = 0; i < l; i++) {
					if (whitespace.indexOf(str.charAt(i)) === -1) {
						str = str.substring(i);
						break;
					}
				}
				
				l = str.length;
				for (i = l - 1; i >= 0; i--) {
					if (whitespace.indexOf(str.charAt(i)) === -1) {
						str = str.substring(0, i + 1);
						break;
					}
				}
				
				return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
			},
			
			/* динамически вставим и выполним js код для vbn баннера */
			getVbn: function(vbn_container_id) {
				if (document.getElementById( vbn_container_id )) {
					domWrite(vbn_container_id, 'http://vbn.tyumen.ru/cgi-bin/hints.cgi?vbn&ngr');
				}
			}, 
			
			blockBeingUpdated: function(id, type) {
				if (type == 'start') {
					if (!nc.cache[id + '_offset']) {
						nc.cache[id + '_offset'] = ngrjQ("#" + id).offset();

						
						if (browser.opera === true) {
							var tmp = ngrjQ("#" + id);
							nc.cache[id + '_width'] = tmp.innerWidth() - (parseInt(tmp.css('padding-right')) || 0) - ( parseInt(tmp.css('padding-left')) || 0);	
							nc.cache[id + '_height'] = tmp.innerHeight() - (parseInt(tmp.css('padding-top')) || 0) - ( parseInt(tmp.css('padding-bottom')) || 0);
						} else {
							nc.cache[id + '_width'] = ngrjQ("#" + id).width();
							nc.cache[id + '_height'] = ngrjQ("#" + id).height();
						}
					}
					
					ngrjQ("body").append('<div id="' + id + '_being_loaded"></div>');
					
					ngrjQ("#" + id + "_being_loaded")
					.css({	backgroundColor:"#CCC", 
							opacity: "0.6",
							opacity:0.6,
							"-moz-opacity": 0.6,
							"-khtml-opacity": 0.6,
							filter: "progid:DXImageTransform.Microsoft.alpha(opacity=60)",					
							backgroundImage:"url(http://pics.nashgorod.ru/i/is_load.gif)",
							backgroundRepeat:"no-repeat",
							backgroundPosition:"50% 50%",
							zIndex:"1000", 
							verticalAlign:"middle", 
							textAlign:"center", 
							left:parseInt(nc.cache[id + '_offset']['left']),
							top:parseInt(nc.cache[id + '_offset']['top']),
							width:parseInt(nc.cache[id + '_width']),
							height:parseInt(nc.cache[id + '_height']),
							position:"absolute"
						});
				} else {
					ngrjQ("#" + id + "_being_loaded").remove();	
				}
			},
			
			/* вакансии и резюме на главной */
			bindClickVacResOnMain: function() {
				
				function updateVacResData(lis, total, type) {
					ngrjQ("#vacres_ul").replaceWith('<ul id="vacres_ul">' + lis + "</ul>");
					ngrjQ("#vacres_total").html(total);
					ngrjQ("#vacres_link").attr( "href", (type == 'vac' ? '/job/vac/' : '/job/res/') );

				}
				
				if (document.getElementById("vac_tab")) {
					ngrjQ("#vac_tab").bind("click", function(){
							ngrjQ("#rec_tab").removeClass("active rc5").addClass("rc0").css("borderBottom","1px dashed");
							ngrjQ("#vac_tab").removeClass("rc0").addClass("active rc5").css("borderBottom","0");
							
							if (browser.msie === true && parseInt(browser.version) < 9) {
								rocon.update([nc.gi('rec_tab'),nc.gi('vac_tab')]);
							}

							if (!nc.cache['vacs_main']){
								nc.blockBeingUpdated('vacres_ul', 'start');
								ngrjQ.ajax({
									url:    	nc.getConstant('AJAX_SCRIPT') + '&vacs_main',
									success: 	function(responseText) {
													nc.hideAlertWindow();
													if (nc.isset(responseText.error)) {
														alert(responseText.error);
													} else {
														nc.blockBeingUpdated('vacres_ul', 'stop');
														nc.cache['vacs_main'] = responseText.lis;
														nc.cache['vac_total'] = responseText.total;
														updateVacResData(nc.cache['vacs_main'], nc.cache['vac_total'], 'vac');
													}
												},
									type: 		"GET",
									dataType: 	"json",
									data:		{}
								}); 
							} else {
								updateVacResData(nc.cache['vacs_main'], nc.cache['vac_total'], 'vac');
							}
						});
					
					ngrjQ("#rec_tab").bind("click", function(){
							ngrjQ("#vac_tab").removeClass("active rc5").addClass("rc0").css("borderBottom","1px dashed");
							ngrjQ("#rec_tab").removeClass("rc0").addClass("active rc5").css("borderBottom","0");
							
							if (browser.msie === true && parseInt(browser.version) < 9) {
								rocon.update([nc.gi('rec_tab'),nc.gi('vac_tab')]);
							}
							
							if (!nc.cache['rec_main']){
								nc.blockBeingUpdated('vacres_ul', 'start');
								ngrjQ.ajax({
									url:    	nc.getConstant('AJAX_SCRIPT') + '&rec_main',
									success: 	function(responseText) {
													nc.hideAlertWindow();
													if (nc.isset(responseText.error)) {
														alert(responseText.error);
													} else {
														nc.blockBeingUpdated('vacres_ul', 'stop');
														nc.cache['rec_main'] = responseText.lis;
														nc.cache['rec_total'] = responseText.total;
														updateVacResData(nc.cache['rec_main'], nc.cache['rec_total']);
													}
												},
									type: 		"GET",
									dataType: 	"json",
									data:		{}
								}); 
							} else {
								updateVacResData(nc.cache['rec_main'], nc.cache['rec_total']);
							}
						});
				}
			},
			
			gi: function(id) {
				return document.getElementById(id);
			},			
			
			rndUpdate: function() {
				if (nc.gi('rnd_img')) {
					nc.gi('rnd_img').src = '/includes/rnd_image.php?' + nc.getRandomValue();
				}
			},
			
			getRandomValue: function() {
				return Math.round(Math.random()*1000);
			},		
			
			hideForm: function() {
				if (nc.gi("greyback")) {
					ngrjQ("#greyback").remove();
				}
				
				if (nc.gi("companyNewsText")) {
					tinyMCE.triggerSave();
					tinyMCE.execCommand('mceRemoveControl',true,'companyNewsText');			
				}
				
				nc.hideAlertWindow();
			},
			
			addInterviewQuestion: function() {
			
				var interview_who = nc.trim(nc.gi('interview_who').value);
				if (interview_who == '') {
					alert('Укажите от кого вопрос.');	
					nc.gi('interview_who').focus();
					return false;
				}
			
				var interview_quest = nc.trim(nc.gi('interview_quest').value);
				if (interview_quest == '') {
					alert('Укажите вопрос.');	
					nc.gi('interview_quest').focus();
					return false;
				}
				
				var rnd = nc.gi('rnd').value;
				if (nc.trim(rnd) == '') {
					alert('Укажите цифры с картинки.');	
					nc.gi('rnd').focus();
					return false;
				}								
			
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&add_interview_quest',
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										alert(responseText.error);
									} else {
										alert('Вопрос отправлен.');
										ngrjQ("#interview_count_num").html(parseInt(ngrjQ("#interview_count_num").html()) + 1);
										nc.hideForm();
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{'interview_who': interview_who, 'interview_quest': interview_quest, 'rnd': rnd, 'news_id':nc.gi('interview_id').value}
				}); 							
			
			},
			
			/* инициализируем форму с интервью */
			interviewFormInit: function() {
				if (document.getElementById("askquest_interview")) {
					ngrjQ("#askquest_interview").bind("click", function(){
																		
					var ht = '\
					<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Задать вопрос</div>\
						<div id="aep_w">\
						<table id="addObvlTable">\
						  <tr>\
							<td class="tdname">От кого:</td>\
							<td class="tdinput" id="turfirmabox"><input type="text" id="interview_who"></td>\
						  </tr>\
						  <tr>\
							<td class="tdname" colspan=2>Вопрос:<br>\
							<textarea style="width:580px;height:110px;" id="interview_quest"></textarea>\
							</td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Введите цифры с картинки:</td>\
							<td class="tdinput"><input type="text" id="rnd" style="width:40px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngr_common.addInterviewQuestion(); if (event.keyCode==27) ngr_common.hideForm();">&nbsp;<img src="/includes/rnd_image.php?' + nc.getRandomValue() + '" id="rnd_img">&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ngr_common.rndUpdate();" title="Обновить цифры" style="padding:3px;border:1px solid #000000;"><img src="http://pics.nashgorod.ru/img_2010/arrow_refresh.png" width="16" height="16" border="0" /></a></td>\
						  </tr>\
						  </table>\
						<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.addInterviewQuestion();"><img src="http://pics.nashgorod.ru/i/map/ok_btn.gif" width="37" height="26" border="0" align="absmiddle"  alt="OK" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
							</div>\
						</div>';
						
						nc.showGreyBack(ht, true);
					});
				}
			},
			
			setAfishaData: function(data) {
				ngrjQ('#afisha_img').html(data.afisha_img),
				ngrjQ('#afisha_date').html(data.afisha_date),
				ngrjQ('#afisha_title').html(data.afisha_title),
				ngrjQ('#afisha_descr').html(data.afisha_descr)
			},
			
			getAfishaData: function(type) {
				if (!nc.cache[type]) {
					ngrjQ.ajax({
						url:    	nc.getConstant('AJAX_SCRIPT') + '&getafishadata',
						success: 	function(responseText) {
										if (nc.isset(responseText.error)) {
											alert(responseText.error);
										} else {
											nc.cache[type] = {	
												"afisha_img": responseText.afisha_img,
												"afisha_date": responseText.afisha_date,
												"afisha_title": responseText.afisha_title,
												"afisha_descr": responseText.afisha_descr
											};
											
											nc.setAfishaData(nc.cache[type]);
										}
									},
						type: 		"POST",
						dataType: 	"json",
						data:		{'type': type}
					}); 
				} else {
					nc.setAfishaData(nc.cache[type]);
				}
			},
			
			afishaChange: function(type) {
				var inactive_elems, active_elem;
				switch(type) {
					case 'kino':
						active_elem 	= '#kino_link';
						inactive_elems 	= '#teatr_link, #fest_link, #club_link';
					break;
					
					case 'teatr':
						active_elem 	= '#teatr_link';

						inactive_elems 	= '#kino_link, #fest_link, #club_link';
					break;
					
					case 'fest':
						active_elem 	= '#fest_link';
						inactive_elems 	= '#kino_link, #teatr_link, #club_link';
											 
					break;
					
					case 'club':
						active_elem 	= '#club_link';
						inactive_elems 	= '#kino_link, #teatr_link, #fest_link';
					break;
					
					default:
					break;
				}
				
				nc.getAfishaData(type);
				
				ngrjQ(inactive_elems).removeClass("active rc5").addClass("rc0").css("borderBottom","1px dashed");
				ngrjQ(active_elem).removeClass("rc0").addClass("active rc5").css("borderBottom","0");
				
				if (browser.msie === true && parseInt(browser.version) < 9) {
					rocon.update([nc.gi('kino_link'), nc.gi('teatr_link'), nc.gi('fest_link'), nc.gi('club_link')]);
				}
				
			},
			
			initAfishaRotator: function() {
				ngrjQ("#kino_link").bind("click", function(e){
							nc.afishaChange('kino');
						});
				
				ngrjQ("#teatr_link").bind("click", function(e){
							nc.afishaChange('teatr');
						});
				
				ngrjQ("#fest_link").bind("click", function(e){
							nc.afishaChange('fest');
						});
				
				ngrjQ("#club_link").bind("click", function(e){
							nc.afishaChange('club');
						});
				
				nc.cache['kino'] = {	
										"afisha_img": ngrjQ('#afisha_img').html(),
										"afisha_date": ngrjQ('#afisha_date').html(),
										"afisha_title": ngrjQ('#afisha_title').html(),
										"afisha_descr": ngrjQ('#afisha_descr').html()
									};
			},
			
			getFotosForMain: function() {
				var main_fotos = nc.cache['main_fotos'];
				var counter = parseInt(main_fotos['counter']);
				
				function getBigFotoId() {
					if (parseInt(nc.cache['main_fotos']['big_foto_id']) == 0) {
						var href;
						ngrjQ(".fotos-big a").each(function(){
							href = ngrjQ(this).attr("href");
						  });
	
						nc.cache['main_fotos']['big_foto_id'] = nc.str_replace(['/foto/foto', '.html'], '', href);
					}
				}
								
				
				if (!main_fotos['fotos'][counter]) {
					getBigFotoId();
					ngrjQ.ajax({
						url:    	nc.getConstant('AJAX_SCRIPT') + '&getmain_fotos',
						success: 	function(responseText) {
										if (nc.isset(responseText.error)) {
											alert(responseText.error);
										} else {
											main_fotos['fotos'][counter] = responseText.small_fotos;
											ngrjQ('#foto_prev_on_main').html(main_fotos['fotos'][counter]);
										}
									},
						type: 		"POST",
						dataType: 	"json",
						data:		{'big_foto_id': nc.cache['main_fotos']['big_foto_id']}
					}); 
				} else {
					ngrjQ('#foto_prev_on_main').html(main_fotos['fotos'][main_fotos['counter']]);
				}
			},
			
			initFotoRotator: function() {
				nc.cache['main_fotos'] = {"counter": 0, "fotos": [], "big_foto_id": 0};
				nc.cache['main_fotos']['fotos'][nc.cache['main_fotos']['counter']] = ngrjQ('#foto_prev_on_main').html();
				
				ngrjQ("#fotos_prev").bind("click", function(e){
					if (parseInt(nc.cache['main_fotos']['counter']) > 0) {
						nc.cache['main_fotos']['counter'] = parseInt(nc.cache['main_fotos']['counter']) - 1;
						nc.getFotosForMain();
					}
				});
				
				ngrjQ("#fotos_next").bind("click", function(e){
					nc.cache['main_fotos']['counter'] = parseInt(nc.cache['main_fotos']['counter']) + 1;
					nc.getFotosForMain();
				});
			},
			
			initQuickLinksRotator: function() {
				function rotate(direction) {
					var qlArr = [];
					ngrjQ("#headerNews")
					.find("dl")
					.each(function(index){
							qlArr[index] = this.innerHTML;
						  })
					.each(function(index){
							if (direction == 'next') {
								this.innerHTML = qlArr[(nc.isset(qlArr[index + 1]) ? index + 1 : 0)];
							} else if (direction == 'prev') {
								this.innerHTML = qlArr[(nc.isset(qlArr[index - 1]) ? index - 1 : qlArr.length - 1)];	
							}
						  });
				}
				
				ngrjQ("#ql_prev").bind("click", function(e){
					rotate('prev');
				});
				
				ngrjQ("#ql_next").bind("click", function(e){
					rotate('next');
				});
			},
			
			catalogObjCommentPaging: function(page, fragmIdn) {
				var fragmIdn = fragmIdn || 'comments';
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&catalogObjCommentPage',
					success: 	function(responseText) {
									nc.hideAlertWindow();
									if (nc.isset(responseText.error)) {
										nc.showAlertWindow(responseText.error);
									} else {
										ngrjQ('#ngrCommentsList').html(responseText.comments);
										ngrjQ('#commentsPages').html(responseText.nav);
										location.href = nc.getUrlWithoutFragmentIdentifier() + '#' + fragmIdn;
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{ 'page': page, 'objId': objId },
					async:   	false
				}); 
			},
			
			getUrlWithoutFragmentIdentifier: function() {
				return location.href.replace( /(.*)#.*/, "$1");
			},
			
			prepareCatalogObjComment: function() {
				if (nc.gi("ngrCommentSubmit")) {
					ngrjQ("#ngrCommentSubmit").bind("click", function(e){
																	  
						var ngrPosterName = '';
						if (nc.gi("ngrPosterName")) {
							ngrPosterName = ngrjQ('#ngrPosterName').val();
							if (nc.trim(ngrPosterName) == '') {
								alert('Укажите имя');
								return false;
							}
						}
						
						var commentText = tinyMCE.activeEditor.getContent();
						if (nc.trim(commentText) == '') {
							alert('Укажите комментарий');
							return false;
						}
						
						var rndNum = 0;
						if (nc.gi("rndNum")) {
							rndNum = ngrjQ('#rndNum').val();
							if (nc.trim(rndNum) == '') {
								alert('Укажите числа с картинки');
								return false;
							}							
						}						
						
						//nc.showAlertWindow('Идет добавление вашего комментария...');
						ngrjQ("#ngrCommentSubmit").after( '&nbsp;&nbsp;&nbsp;&nbsp;' + nc.getLoadingInProgressText() );
						
						if (nc.currentSocialChoice !== null) {
							nc.hideLoadingInProgressText();
							nc.setCookie("catalog_comment_text", commentText);
							nc.setCookie("objId", objId);
							nc.setCookie("link", window.location.href);
							nc.doSocialLogin();
							return false;	
						}
						
						ngrjQ.ajax({
							url:    	nc.getConstant('AJAX_SCRIPT') + '&catalogObjCommentAdd',
							success: 	function(responseText) {
											//nc.hideAlertWindow();
											nc.hideLoadingInProgressText();
											if (nc.isset(responseText.error)) {
												nc.showAlertWindow(responseText.error);
												nc.rndUpdate();
											} else {
												//ngrjQ('#ngrCommentsList').append(responseText.comment);
												//ngrjQ('#comments_num').html(parseInt(ngrjQ('#comments_num').html()) + 1);
												ngrjQ('#comments_num').html(parseInt(ngrjQ('#comments_num').html()) + 1);
												nc.catalogObjCommentPaging('last', 'comment' + responseText.last_post_id);
												tinyMCE.activeEditor.setContent('');
												nc.rndUpdate();
											}
										},
							type: 		"POST",
							dataType: 	"json",
							data:		{'commentText': commentText, 'objId': objId, 'rndNum': rndNum, 'ngrPosterName': ngrPosterName, 'link': window.location.href}
						}); 
					});
				}
			},
			
			prepareSocialVoteComment: function() {
				if (document.getElementById("socialVoteCommentSubmit")) {
					ngrjQ("#socialVoteCommentSubmit").bind("click", function(e){
						ngrjQ("#socialVoteCommentSubmit").after( '&nbsp;&nbsp;&nbsp;&nbsp;' + nc.getLoadingInProgressText() );
						
						if (nc.currentSocialChoice !== null) {
							nc.setCookie("social_comment_text", tinyMCE.activeEditor.getContent());
							nc.setCookie("opros_id", oprosId);
							nc.setCookie("link", window.location.href);
							nc.doSocialLogin();
							return false;	
						}
						
						ngrjQ.ajax({
							url:    	nc.getConstant('AJAX_SCRIPT') + '&postSocialComment',
							success: 	function(responseText) {
											nc.hideLoadingInProgressText();
											if (nc.isset(responseText.error)) { alert(responseText.error); } else {
												if (!nc.gi("ngrCommentsList")) {
													ngrjQ("#ngrCommentsTitle").after('<div class="b-comments-list" id="ngrCommentsList" style="margin-bottom:40px;"></div>');	
												}
												ngrjQ('#ngrCommentsList').append(responseText.comment);
												ngrjQ('#comments_num').html(parseInt(ngrjQ('#comments_num').html()) + 1);
												tinyMCE.activeEditor.setContent('');
											}
										},
							type: 		"POST",
							dataType: 	"json",
							data:		{'comment_text': tinyMCE.activeEditor.getContent(), 'opros_id': oprosId, 'link': window.location.href}
						}); 
					});
				}
			},
			
			prepareNewsComments: function() {
				if (document.getElementById("newsCommentSubmit")) {
					ngrjQ("#newsCommentSubmit").bind("click", function(e){
																	   
						//nc.showAlertWindow('Идет добавление вашего комментария...');
						ngrjQ("#newsCommentSubmit").after( '&nbsp;&nbsp;&nbsp;&nbsp;' + nc.getLoadingInProgressText() );
						
						if (nc.currentSocialChoice !== null) {
							nc.setCookie("news_text", tinyMCE.activeEditor.getContent());
							nc.setCookie("news_id", newsid_comments);
							nc.setCookie("link", window.location.href);
							nc.doSocialLogin();
							return false;	
						}
						
						ngrjQ.ajax({
							url:    	'http://www.nashgorod.ru/ajax/ajax_news_comments.php?ajax&postcomment_2010',
							success: 	function(responseText) {
											//nc.hideAlertWindow();
											nc.hideLoadingInProgressText();
											if (nc.isset(responseText.error)) {
												//nc.showAlertWindow(responseText.error);
											} else {
												ngrjQ('#movieCommentsList').append(responseText.comment);
												ngrjQ('#comments_num').html(parseInt(ngrjQ('#comments_num').html()) + 1);
												tinyMCE.activeEditor.setContent('');
											}
										},
							type: 		"POST",
							dataType: 	"json",
							data:		{'comment_text': tinyMCE.activeEditor.getContent(), 'tid': tid_comments, 'newsid': newsid_comments, 'link': window.location.href}
						}); 
					});
				}
			},
			
			addFavorTvProg: function(id) {
				var tmp = nc.getCookie("prog");
				nc.setCookie("prog", tmp+","+id);
				
				var htmlOutput = "<table width=\"200\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#4A4949\" class=white_txt style=\"border:4px solid #4A4949\">" +
				  "<tr> " +
				   " <td align=center>Передача добавлена в избранное." +
				   " </td>" +
				  "</tr>" +
				"</table>";   
				
				nc.showAlertWindow(htmlOutput, false, false, true);
			},
			
			initAddCompanyLogo: function() {
				if (nc.gi('add_company_logo')) {
					
					ngrjQ("#add_company_logo").bind("click", function(){
																		
					var ht = '\
					<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Разместите логотип компании</div>\
						<div id="aep_w">\
						<table id="addObvlTable">\
						  <tr>\
							<td class="common_txt"><strong>Будьте узнаваемы!</strong> Разместите логотип компании. Логотип показывается в описании компании и рядом с названием при выдаче результатов поиска.<br><a href="/addpredpr/">Узнать подробнее</a>.</td>\
						  </tr>\
						  </table>\
						<div style="margin-top:10px;"><a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
							</div>\
						</div>';
						
						nc.showGreyBack(ht, true);
					});
				}
			},			
			
			initMakeCompanyFirst: function() {
				if (nc.gi('make_company_first')) {
					
					ngrjQ("#make_company_first").bind("click", function(){
																		
					var ht = '\
					<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Сделать компанию первой в рубрике</div>\
						<div id="aep_w">\
						<table id="addObvlTable">\
						  <tr>\
							<td class="common_txt">Компания может находиться в разделах Справочника, соответствующих виду деятельности, на 1, 2 или 3 месте, что привлекает большее количество потенциальных клиентов и способствует увеличению продаж.<br><a href="/addpredpr/">Узнать подробнее</a>.</td>\
						  </tr>\
						  </table>\
						<div style="margin-top:10px;"><a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
						</div>\
						</div>';
						
						nc.showGreyBack(ht, true);
					});
				}
			},
			
			sendCatalogError: function() {
				var message = nc.trim(nc.gi('message').value);
				if (message == '') {
					alert('Укажите сообщение.');	
					nc.gi('message').focus();
					return false;
				}
				
				var rnd = nc.gi('rnd').value;
				if (nc.trim(rnd) == '') {
					alert('Укажите цифры с картинки.');	
					nc.gi('rnd').focus();
					return false;
				}								
			
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&catalog_error',
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										alert(responseText.error);
									} else {
										alert('Сообщение отправлено.');
										nc.hideForm();
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{'message': message, 'rnd': rnd, 'link': window.location.href }
				}); 							
			},
			
			initTellErrorInCatalog: function() {
				if (nc.gi('tell_error')) {
					
					ngrjQ("#tell_error").bind("click", function(){
																
					var ht = '\
					<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Сообщить об ошибке в справочнике</div>\
						<div id="aep_w">\
						<table id="addObvlTable">\
						  <tr>\
							<td class="tdname" colspan=2>Текст сообщения:<br>\
							<textarea style="width:580px;height:110px;" id="message"></textarea>\
							</td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Введите цифры с картинки:</td><td class="tdinput"><input type="text" id="rnd" style="width:40px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngr_common.sendCatalogError(); if (event.keyCode==27) ngr_common.hideForm();">&nbsp;<img src="/includes/rnd_image.php?' + nc.getRandomValue() + '" id="rnd_img">&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ngr_common.rndUpdate();" title="Обновить цифры" style="padding:3px;border:1px solid #000000;"><img src="http://pics.nashgorod.ru/img_2010/arrow_refresh.png" width="16" height="16" border="0" /></a></td>\
						  </tr>\
						  </table>\
						<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.sendCatalogError();"><img src="http://pics.nashgorod.ru/i/map/ok_btn.gif" width="37" height="26" border="0" align="absmiddle"  alt="OK" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
							</div>\
						</div>';
						
						nc.showGreyBack(ht, true);
					});
				}
			},
			
			initShowLeftAdrs: function() {
				ngrjQ("#show_left_adrs").bind("click", function(e){
					ngrjQ("#left_adrs").toggle();
					if (ngrjQ("#left_adrs").css("display") == 'none') {
						ngrjQ("#show_left_adrs").html('Развернуть');
					} else {
						ngrjQ("#show_left_adrs").html('Свернуть');		
					}
				});
			},
			
			initObvlMy: function(doload) {
				var doload = doload || false;
				if (nc.gi('records') && (window.location.href.test('/obvl/') || doload === true)) {
					paging_change(1); 
					nc.initObvlUploadify();
				}
			},
			
			loadByOneObvlRequest: function(formData, jqForm, options) {
				ngrjQ(".photosInProgressAdd").html(nc.isLoadingString);
				return true; 
			},
			
			loadByOneObvlResponse: function(responseText, statusText, xhr, $form) {
				if (obvlUpdate === true) {
					update_form();
				} else {
					load_form();
				}
				ngrjQ(".photosInProgress").html('');
			},
			
			initLoadByOneObvl: function() {
				ngrjQ("#obvlPhoto").uploadifyClearQueue();
				ngrjQ("#loadByOneForm").show();
				
				ngrjQ("#Filedata")
				.unbind()
				.bind("change", function(){
					nc.initAddObvlBtnAction('iframe');
				});
			},
			
			initAddObvlBtnAction: function(type) {
				var type = type || 'none';
				
				ngrjQ('#addObvlBtn')
					.unbind("click")
					.bind("click", function(e){
						if (type == 'none') {
							ngrjQ(".photosInProgressAdd").html(nc.isLoadingString);

							if (obvlUpdate === true) {
								update_form();
							} else {
								load_form();
							}
							
						} else if (type == 'iframe') {
							
							var options = { 
								beforeSubmit:  nc.loadByOneObvlRequest,
								success:       nc.loadByOneObvlResponse,
								url:       '/uploadify/uploadify.php',         
								type:      'post',
								clearForm: true,
								data: {'mode': 'obvlPhoto', 'sn': ngrjQ("#sn").val(), 'si': ngrjQ("#si").val(), 'swiff_chksum': ngrjQ("#swiff_chksum").val() }
							}; 
							
							ngrjQ("#loadByOneForm").ajaxSubmit(options); 						
							
						} else if (type == 'uploadify') {
							ngrjQ(".photosInProgressAdd").html(nc.isLoadingString);
							ngrjQ("#obvlPhoto").uploadifyUpload();	
						}
					});
			},
			
			initObvlUploadify: function() {
				nc.initAddObvlBtnAction();
				
				ngrjQ("#obvlPhoto").uploadify({
					'uploader'       : '/uploadify/uploadify.swf',
					'script'         : '/uploadify/uploadify.php',
					'cancelImg'      : '/uploadify/cancel.png',
					'queueID'        : 'obvlPhotoQueue',
					'height'	 	 : 30,
					'width'	 	 	 : 188,
					'wmode'      	 : 'transparent',
					'buttonImg'	 	 : 'http://pics.nashgorod.ru/v4/img/add_fotos.png',
					'fileDesc'		 : 'Только .jpg, png или .gif',
					'fileExt'		 : '*.jpg;*.png;*.gif;*.jpeg;',
					'method'		 : 'post',
					'multi'          : true,
					'queueSizeLimit' : 20,
					'onCancel'		 : function(event,ID,fileObj,data) {
						if (data['fileCount'] == 0) {
							nc.initAddObvlBtnAction();
						}
					},
					'onSelectOnce'   : function(event,data) {
						ngrjQ("#loadByOneForm").hide();
						ngrjQ('#obvlPhoto').uploadifySettings('scriptData', {'mode': 'obvlPhoto', 'sn': ngrjQ("#sn").val(), 'si': ngrjQ("#si").val(), 'swiff_chksum': ngrjQ("#swiff_chksum").val() });
						nc.initAddObvlBtnAction('uploadify');
					},
					'onAllComplete' : function(event, ID, fileObj, response, data) {
						if (obvlUpdate === true) {
							update_form();
						} else {
							load_form();
						}
					}
				});
			},
			
			initObvlAdd: function() {
				if (nc.gi('step_1')) {
					
					if (ngr_get_url_param('auto') == "") {
						choose_cat('1::1');
					} else {
						ngrjQ('#form_html').css({ padding: "10px 23px 23px 23px", display: "block" });
						ngrjQ('#add_ads_button').css("display", "block");
						
						setTimeout(function(){ 
							tinyMCE.execCommand('mceFocus', false, 'contacts');                    
							tinyMCE.execCommand('mceRemoveControl', false, 'contacts');						
						}, 3000);
					}
					
					nc.initObvlUploadify();						
				}
			},
			
			toggleObvlList: function(id) {
				ngrjQ("#" + id).toggle();
			},
			
			changePseudoSelectOption: function(id, name, id_cont, name_cont, list_id) {
				ngrjQ("#" + name_cont).html(name);
				ngrjQ("#" + id_cont).val(id);
				nc.toggleObvlList(list_id);
			},
			
			changeObvlCurrency: function(cat_id, cat_name) {
				ngrjQ("#obvl_currency").html(cat_name);
				ngrjQ("#currency").val(cat_id);
				nc.toggleObvlList('obvl_currency_list');
			},
			
			changeObvlMarka: function(cat_id, cat_name) {
				ngrjQ("#obvl_marka").html(cat_name);
				ngrjQ("#marka").val(cat_id);
				nc.toggleObvlList('obvl_marka_list');
			},
			
			changeObvlYear: function(year) {
				ngrjQ("#obvl_year").html(year);
				ngrjQ("#ads_year").val(year);
				nc.toggleObvlList('obvl_year_list');
			},
			
			changeObvlRubr: function(cat_id, cat_name) {
				ngrjQ("#obvl_select_text").html(cat_name);
				ngrjQ("#default_rubr_id").val(cat_id);
				nc.toggleObvlList('obvl_select_list');
			},
			
			getUralWebAndLiveInternet: function() {
				var uralweb_a='';
				uralweb_a+='&r='+escape(document.referrer);
				uralweb_a+='&j='+navigator.javaEnabled();
				var uralweb_s=screen;
				uralweb_a+='&s='+uralweb_s.width+'*'+uralweb_s.height;
				uralweb_a+='&d='+(uralweb_s.colorDepth?uralweb_s.colorDepth:uralweb_s.pixelDepth);
				var uralweb_js=13;
				ngrjQ("#ural_web").html('<a href="http://www.uralweb.ru/rating/go/nashgorod"><img border="0" src="http://hc.uralweb.ru/hc/nashgorod?js='+uralweb_js+'&rand='+Math.random()+uralweb_a+'" width="88" height="31" alt="УралWeb"></a>');
				
				//ngrjQ("#live_internet").html('<a href="http://www.liveinternet.ru/click" target=_blank><img src="http://counter.yadro.ru/hit?t14.11;r'+escape(document.referrer)+((typeof(screen)=='undefined')?'':';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+';'+Math.random()+'" alt="" title="LiveInternet: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня" border=0 width=88 height=31></a>')
			},
			
			closeBottomBlock: function() {
				nc.bottom_block.closed = true;
				ngrjQ("#quick_bottom_block").remove();
			},
			
			toggleBottomBlock: function() {
				if (nc.gi('quick_bottom_block')) {
					function showBottomBlock() {
						//ngrjQ("body").append('<div id="quick_bottom_block"></div>');
						nc.quick_bottom_block_html = ngrjQ("#quick_bottom_block").html();
						ngrjQ("#quick_bottom_block")
						.css({zIndex:"10000", fontSize:"12px", fontFamily:"Arial", right: "0", bottom: "0", position: "fixed", display: "block"})
						.html('<table class="shadow_box"><tr><td style="background-color:#FFFFFF;"><div class="shadow_title"><table><tr><td><h3>Популярное</h3></td><td align="center"><a onClick="ngr_common.closeBottomBlock();" href="javascript:void(0);"><img width="12" height="12" border="0" title="закрыть" alt="закрыть" src="http://pics.nashgorod.ru/img_2010/close_cross.png"></a></td></tr></table></div><div class="shadow_content">' + nc.quick_bottom_block_html  + '</div></div></td></tr></table>')
						.css("right", "-" + ngrjQ("#quick_bottom_block").width() + "px")
						.animate({ right: "+=" + ngrjQ("#quick_bottom_block").width() + "px" }, 200 );
						
						nc.bottom_block.state = 'opened';
					}
					
					ngrjQ(window).scroll(function () {
						if (nc.quick_bottom_block_start_place_offset == null) {
							nc.quick_bottom_block_start_place_offset = ngrjQ("#quick_bottom_block_start_place").offset();
						}
						
						if (nc.bottom_block.closed === false && nc.bottom_block.state == 'unopened') {
							if (parseInt(nc.quick_bottom_block_start_place_offset.top) < (parseInt(ngrjQ(document).scrollTop()) + parseInt(ngrjQ(window).height())) ) {
								showBottomBlock();	
							}
						} else if (nc.bottom_block.state == 'opened') {
							if (parseInt(nc.quick_bottom_block_start_place_offset.top) > (parseInt(ngrjQ(document).scrollTop()) + parseInt(ngrjQ(window).height())) ) {
								ngrjQ("#quick_bottom_block").css("display", "none");
								ngrjQ("#quick_bottom_block").html(nc.quick_bottom_block_html);
								nc.bottom_block.closed = false;
								nc.bottom_block.state = 'unopened';
							}
						}
					});
				}
			},
			
			showGreyBack: function(html, show_alert_window, onClickFunc) {
				var show_alert_window = show_alert_window || false;
				var onClickFunc = onClickFunc || 'default';
				
				if (html != '') {
					if (html == 'loading') {
						nc.showAlertWindow('', false, true, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"0", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
					}
						
					if (show_alert_window != false) {
						nc.showAlertWindow(html, false, false, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
					}
				}
				ngrjQ("body").append('<div id="greyback"></div>');
				
				ngrjQ("#greyback")
				.css({	backgroundColor:"#b3b3b3", 
						zIndex:"900", 
						width:"100%", 
						height:ngrjQ(document).height(), 
						cursor:"pointer", 
						top:"0", 
						left:"0", 
						position:"absolute", 
						opacity:0.6,
						"-moz-opacity": 0.6,
						"-khtml-opacity": 0.6,

						filter: "progid:DXImageTransform.Microsoft.alpha(opacity=30)"					
						});
				
				switch(onClickFunc) {
					case 'default':
						ngrjQ("#greyback")
						.bind("click", function(e){
								nc.hideForm();
							});
					break;
					
					case 'reload':
						ngrjQ("#greyback")
						.bind("click", function(e){
								location.reload(true);
							});
					break;
				}
			},
			
			addCompanyNews: function(event_id) {
				
				var event_id = event_id || 0;
				
				var companyNewsDate = nc.gi('companyNewsDate').value;
				if (nc.trim(companyNewsDate) == '') {
					alert('Укажите дату события.');	
					nc.gi('companyNewsDate').focus();
					return false;
				}	
				
				var companyNewsType = nc.gi('companyNewsType').value;
				if (companyNewsType == '---') {
					alert('Укажите что за событие');	
					return false;
				}
				
				
				var companyNewsName = nc.trim(nc.gi('companyNewsName').value);
				if (companyNewsName == '') {
					alert('Укажите название события.');	
					nc.gi('companyNewsName').focus();
					return false;
				}
				
				var companyMestoProvedName = nc.trim(nc.gi('companyMestoProvedName').value);
				if (companyMestoProvedName == '') {
					alert('Укажите место проведения события.');	
					nc.gi('companyMestoProvedName').focus();
					return false;
				}
				
				var companyNewsText = tinyMCE.get('companyNewsText').getContent();
				if (nc.trim(nc.strip_tags(companyNewsText)) == '') {
					alert('Укажите событие.');	
					return false;
				}				
				
				var rnd = nc.gi('companyNewsrnd').value;
				if (nc.trim(rnd) == '') {
					alert('Укажите цифры с картинки.');	
					nc.gi('companyNewsrnd').focus();
					return false;
				}		
				
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&add_in_event_calendar',
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										alert(responseText.error);
									} else {
										if (nc.flash_img_selected === false) {
											tinyMCE.triggerSave();
											tinyMCE.execCommand('mceRemoveControl',true,'companyNewsText');			
											
											nc.hideForm();
											
											if (event_id == 0) {
												nc.showAlertWindow('Событие отправлено модератору. После проверки оно будет или не будет размещено на сайте.', true, false, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
												nc.showGreyBack('', false);
											}
											
										} else {
											ngrjQ('#companyNewsFoto').uploadifySettings('scriptData', {'mode' : 'event_calendar', 'event_id' : responseText.event_id});
											ngrjQ('#companyNewsFoto').uploadifyUpload();	
										}
										
										if (event_id > 0) {
											/* обновим данные на стрнаице */	
											var dl = nc.currentLinkObj;
											while (dl.tagName != 'DL') dl = dl.parentNode;
											ngrjQ(dl).find("dd.title a:first").html(responseText.name);
											ngrjQ(dl).find("dd.date").html(responseText.datetime + '&nbsp;&nbsp;<a href="/calendar-nashego-goroda/rubr'+responseText.event_type+'.html" style="color:#B0B0B0; text-decoration:none;">'+responseText.event_type_name+'</a>');
											ngrjQ(dl).find("dd:last").html(responseText.txt);
											ngrjQ(dl).css('background','url("http://pics.nashgorod.ru/img_2010/event_calendar/' + responseText.event_type + '.png") no-repeat scroll left 6px transparent');
										}
										
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{'companyNewsDate': companyNewsDate, 'companyNewsType': companyNewsType, 'companyNewsName': companyNewsName, 'companyNewsText': companyNewsText, 'rnd': rnd, 'event_id': event_id, 'companyMestoProvedName': companyMestoProvedName}
				}); 				
			},
			
			initEventCalendarEdit: function() {
				if (nc.gi('eventCalendarBlock')) {
					ngrjQ(".notactive_link").each(function (i) {
						ngrjQ(this).bind("click", function(e){
								nc.toggleEventCalendar(ngrjQ(this).attr("event_id"), 'activate', this);
							});
					  });
					
					ngrjQ(".active_link").each(function (i) {
						ngrjQ(this).bind("click", function(e){
								nc.toggleEventCalendar(ngrjQ(this).attr("event_id"), 'deactivate', this);
							});
					  });
				}
			},
			
			toggleEventCalendar: function(event_id, action, linkObj) {
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&toggle_event',
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										alert(responseText.error);
									} else {
										
										switch(action) {
											case 'activate':
												ngrjQ(linkObj).removeClass("notactive_link").addClass("active_link");
												
												linkObj.innerHTML = 'активно';
												
												ngrjQ(linkObj)
												.unbind('click')
												.bind("click", function(e){
														nc.toggleEventCalendar(event_id, 'deactivate', linkObj);
													})
												.attr({ 
														  title: "Деактивировать"
														});
											break;
											
											case 'deactivate':
												ngrjQ(linkObj).removeClass("active_link").addClass("notactive_link");
												
												linkObj.innerHTML = 'не активно';
												
												ngrjQ(linkObj)
												.unbind('click')
												.bind("click", function(e){
														nc.toggleEventCalendar(event_id, 'activate', linkObj);
													})
												.attr({ 
														  title: "Активировать"
														});
											break;
										}				
										
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{'event_id': event_id, 'action': action}
				}); 				
			},
			
			initEditForm: function(event_id, aObj) {
				
				nc.currentLinkObj = aObj;
				var date, event_type, name, txt, foto;
				
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&get_event',
					success: 	function(responseText) {
						if (nc.isset(responseText.error)) {
							alert(responseText.error);
						} else {
							date = responseText.date;
							event_type = responseText.event_type;
							name = responseText.name;
							txt = responseText.txt;
							mestoproved = responseText.mestoproved;
							foto = '';
							
							if (responseText.foto_width > 0) {
								foto = '<td width="55"><img src="' + responseText.foto + '" width="' + responseText.foto_width + '" height="' + responseText.foto_height + '" /></td>';
							}
							
							var ht = '\
							<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Редактирование события нашего города</div>\
								<div id="aep_w">\
								<table id="addObvlTable">\
								  <tr>\
									<td class="tdname">Дата события: <span class="required_field">*</span></td>\
									<td class="tdinput" id="turfirmabox"><input type="text" id="companyNewsDate" style="width:70px;" value="' + date + '"></td>\
								  </tr>\
								  <tr>\
									<td class="tdname">Что за событие: <span class="required_field">*</span></td>\
									<td class="tdinput" id="turfirmabox"><select id="companyNewsType"><option value="---">---</option><option value="1" ' + (event_type == 1 ? ' selected ' : '') + '>Автоспорт</option><option value="2" ' + (event_type == 2 ? ' selected ' : '') + '>Скидки/распродажи</option><option value="3" ' + (event_type == 3 ? ' selected ' : '') + '>Конференции</option><option value="4" ' + (event_type == 4 ? ' selected ' : '') + '>Презентация/открытие</option><option value="5" ' + (event_type == 5 ? ' selected ' : '') + '>Выставки</option><option value="6" ' + (event_type == 6 ? ' selected ' : '') + '>Спорт</option></select></td>\
								  </tr>\
								  <tr>\
									<td class="tdname">Название события: <span class="required_field">*</span></td>\
									<td class="tdinput" id="turfirmabox"><input type="text" id="companyNewsName" value="' + name + '" style="width:450px"></td>\
								  </tr>\
								  <tr>\
									<td class="tdname">Место проведения события: <span class="required_field">*</span></td><td class="tdinput" id="turfirmabox"><input type="text" id="companyMestoProvedName" value="' + mestoproved + '" style="width:450px"></td>\
								  </tr>\
								  <tr>\
									<td class="tdname" colspan=2>О событии: <span class="required_field">*</span><br>\
									<textarea style="width:580px;height:110px;" id="companyNewsText">' + txt + '</textarea>\
									</td></tr><tr><td class="tdname">Фото:<br><small style="font-weight:normal;">Вы можете загрузить одну фотографию к событию</small></td>\
									<td class="tdinput" id="turfirmabox"><table><tr>' + foto + '<td><input id="companyNewsFoto" name="companyNewsFoto" type="file" style="width:50px;" /></td><td><div id="fileQueue"></div></td></tr></table></td>\
								  </tr>\
								  <tr>\
									<td class="tdname">Введите цифры с картинки: <span class="required_field">*</span></td>\
									<td class="tdinput"><input type="text" id="companyNewsrnd" style="width:40px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngr_common.addCompanyNews(\'' + event_id + '\'); if (event.keyCode==27) ngr_common.hideForm();">&nbsp;<img src="/includes/rnd_image.php?' + nc.getRandomValue() + '" id="rnd_img">&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ngr_common.rndUpdate();" title="Обновить цифры" style="padding:3px;border:1px solid #000000;"><img src="http://pics.nashgorod.ru/img_2010/arrow_refresh.png" width="16" height="16" border="0" /></a></td>\
								  </tr>\
								  <tr>\
									<td class="tdname"> </td>\
									<td class="tdinput" id="turfirmabox"> </td>\
								  </tr>\
								  <tr>\
									<td class="tdname" colspan="2"><span class="required_field">*</span> &mdash; поля, обязательные для заполнения</td>\
								  </tr>\
								  </table>\
								<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.addCompanyNews(\'' + event_id + '\');"><img src="http://pics.nashgorod.ru/i/map/ok_btn.gif" width="37" height="26" border="0" align="absmiddle"  alt="OK" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
									</div>\
								</div>';
																		
								nc.showGreyBack(ht, true);
								
								tinyMCE.execCommand('mceAddControl',true,'companyNewsText');
								ngrjQ("#companyNewsDate").datepicker(ngrjQ.datepicker.regional['ru']);
								
								nc.flash_img_selected = false;
								
								ngrjQ("#companyNewsFoto").uploadify({
									'uploader'       : '/uploadify/uploadify.swf',
									'script'         : '/uploadify/uploadify.php',
									'cancelImg'      : '/uploadify/cancel.png',
									'queueID'        : 'fileQueue',
									'buttonImg'	 	 : '/uploadify/browse.png',
									'fileDesc'		 : 'Только .jpg',
									'fileExt'		 : '*.jpg',
									'method'		 : 'post',
									'queueSizeLimit' : 1,
									'multi'          : false,
									'onSelect'		 : function() {
										nc.flash_img_selected = true;
									},
									'onCancel'		 : function() {
										nc.flash_img_selected = false;
									},
									'onAllComplete'	 : function() {
										tinyMCE.triggerSave();
										tinyMCE.execCommand('mceRemoveControl',true,'companyNewsText');			
										nc.hideForm();
										if (event_id == 0) {
											nc.showAlertWindow('Событие отправлено модератору. После проверки оно будет или не будет размещено на сайте.', true, false, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
											nc.showGreyBack('', false);
										}
									}
								});
								
							}
						},
					type: 		"POST",
					dataType: 	"json",
					data:		{'event_id': event_id}
				}); 				
			},
			
			initCompanyNews: function() {
				if (nc.gi('addCompanyNews')) {
					ngrjQ("#addCompanyNews").bind("click", function(e){
																	
						var ht = '\
						<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Добавление события нашего города</div>\
							<div id="aep_w">\
							<table id="addObvlTable">\
							  <tr>\
								<td class="tdname">Дата события: <span class="required_field">*</span></td>\
								<td class="tdinput" id="turfirmabox"><input type="text" id="companyNewsDate" style="width:70px;"></td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Что за событие: <span class="required_field">*</span></td>\
								<td class="tdinput" id="turfirmabox"><select id="companyNewsType"><option value="---">---</option><option value="1">Автоспорт</option><option value="2">Скидки/распродажи</option><option value="3">Конференции</option><option value="4">Презентация/открытие</option><option value="5">Выставки</option><option value="6">Спорт</option></select></td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Название события: <span class="required_field">*</span></td>\
								<td class="tdinput" id="turfirmabox"><input type="text" id="companyNewsName" style="width:450px"></td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Место проведения события: <span class="required_field">*</span></td>\
								<td class="tdinput" id="turfirmabox"><input type="text" id="companyMestoProvedName" style="width:450px"></td>\
							  </tr>\
							  <tr>\
								<td class="tdname" colspan=2>О событии: <span class="required_field">*</span><br>\
								<textarea style="width:580px;height:110px;" id="companyNewsText"></textarea>\
								</td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Фото:<br><small style="font-weight:normal;">Вы можете загрузить одну фотографию к событию</small></td>\
								<td class="tdinput" id="turfirmabox"><table><tr><td><input id="companyNewsFoto" name="companyNewsFoto" type="file" style="width:50px;" /></td><td><div id="fileQueue"></div></td></tr></table></td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Введите цифры с картинки: <span class="required_field">*</span></td>\
								<td class="tdinput"><input type="text" id="companyNewsrnd" style="width:40px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngr_common.addCompanyNews(); if (event.keyCode==27) ngr_common.hideForm();">&nbsp;<img src="/includes/rnd_image.php?' + nc.getRandomValue() + '" id="rnd_img">&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ngr_common.rndUpdate();" title="Обновить цифры" style="padding:3px;border:1px solid #000000;"><img src="http://pics.nashgorod.ru/img_2010/arrow_refresh.png" width="16" height="16" border="0" /></a></td>\
							  </tr>\
							  <tr>\
								<td class="tdname"> </td>\
								<td class="tdinput" id="turfirmabox"> </td>\
							  </tr>\
							  <tr>\
								<td class="tdname" colspan="2"><span class="required_field">*</span> &mdash; поля, обязательные для заполнения</td>\
							  </tr>\
							  </table>\
							<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.addCompanyNews();"><img src="http://pics.nashgorod.ru/i/map/ok_btn.gif" width="37" height="26" border="0" align="absmiddle"  alt="OK" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
								</div>\
							</div>';
																	
							nc.showGreyBack(ht, true);
							
							tinyMCE.execCommand('mceAddControl',true,'companyNewsText');
							ngrjQ("#companyNewsDate").datepicker(ngrjQ.datepicker.regional['ru']);
							
							ngrjQ("#companyNewsFoto").uploadify({
								'uploader'       : '/uploadify/uploadify.swf',
								'script'         : '/uploadify/uploadify.php',
								'cancelImg'      : '/uploadify/cancel.png',
								'queueID'        : 'fileQueue',
								'buttonImg'	 	 : '/uploadify/browse.png',
								'fileDesc'		 : 'Только .jpg',
								'fileExt'		 : '*.jpg',
								'method'		 : 'post',
								'queueSizeLimit' : 1,
								'multi'          : false,
								'onSelect'		 : function() {
									nc.flash_img_selected = true;
								},
								'onCancel'		 : function() {
									nc.flash_img_selected = false;
								},
								/*'onComplete'     : function(event, ID, fileObj, response, data) {
									alert(response);
								},*/
								'onAllComplete'	 : function() {
									tinyMCE.triggerSave();
									tinyMCE.execCommand('mceRemoveControl',true,'companyNewsText');			
									
									nc.hideForm();
									nc.showAlertWindow('Событие отправлено модератору. После проверки оно будет или не будет размещено на сайте.', true, false, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
									nc.showGreyBack('', false);
								}
							});
					});
				}
			},
			
			addZayavka: function(type) {
				var companyName = nc.trim(nc.gi('companyName').value);
				if (nc.trim(nc.strip_tags(companyName)) == '') {
					alert('Укажите название компании.');	
					return false;
				}				
				
				var companyAdr = nc.trim(nc.gi('companyAdr').value);
				if (nc.trim(nc.strip_tags(companyAdr)) == '') {
					alert('Укажите Адрес компании.');	
					return false;
				}				
				
				var companyContPerson = nc.trim(nc.gi('companyContPerson').value);
				if (nc.trim(nc.strip_tags(companyContPerson)) == '') {
					alert('Укажите Контактное лицо.');	
					return false;
				}				
				
				var companyVidDeyat = nc.trim(nc.gi('companyVidDeyat').value);
				
				var companyContTel = nc.trim(nc.gi('companyContTel').value);
				if (nc.trim(nc.strip_tags(companyContTel)) == '') {
					alert('Укажите Контактный телефон.');	
					return false;
				}	
				
				var companyContEmail = nc.trim(nc.gi('companyContEmail').value);
				var companyGorTel = nc.trim(nc.gi('companyGorTel').value);
				
				var companyRnd = nc.gi('companyRnd').value;
				if (nc.trim(companyRnd) == '') {
					alert('Укажите цифры с картинки.');	
					nc.gi('companyRnd').focus();
					return false;
				}		

				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&addZayavka&type=' + type,
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										alert(responseText.error);
									} else {
										nc.showAlertWindow('Заявка отправлена. Наш специалист свяжется с вами в ближайшее время.', true, false, false, {backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"});
										nc.showGreyBack('', false);
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{'companyGorTel': companyGorTel, 'companyContPerson': companyContPerson, 'companyContTel': companyContTel, 'companyVidDeyat': companyVidDeyat, 'companyAdr': companyAdr, 'companyName': companyName, 'companyRnd': companyRnd, 'companyContEmail': companyContEmail}
				}); 				
			},
			
			initRazmestitVCatalog: function() {
				if (nc.gi('addToCatalogFree')) {
					var ht = '\
						<div id="aep_w">\
						<table id="addObvlTable">\
						  <tr>\
							<td class="tdname">Название компании: <span class="required_field">*</span></td>\
							<td class="tdinput"><input type="text" id="companyName" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname"><nobr>Адрес компании: <span class="required_field">*</span></nobr></td>\
							<td class="tdinput"><input type="text" id="companyAdr" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Городской телефон компании:</td>\
							<td class="tdinput"><input type="text" id="companyGorTel" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Контактное лицо: <span class="required_field">*</span></td>\
							<td class="tdinput"><input type="text" id="companyContPerson" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Контактный телефон: <span class="required_field">*</span></td>\
							<td class="tdinput"><input type="text" id="companyContTel" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Контактная эл.почта: </td>\
							<td class="tdinput"><input type="text" id="companyContEmail" /></td>\
						  </tr>\
						  <tr>\
							<td class="tdname" colspan=2>Виды деятельности:<br>\
							<textarea style="width:580px;height:60px;" id="companyVidDeyat"></textarea>\
							</td>\
						  </tr>\
						  <tr>\
							<td class="tdname">Введите цифры с картинки: <span class="required_field">*</span></td>\
							<td class="tdinput"><input type="text" id="companyRnd" style="width:40px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngr_common.addZayavka(\'free\'); if (event.keyCode==27) ngr_common.hideForm();">&nbsp;<img src="/includes/rnd_image.php?' + nc.getRandomValue() + '" id="rnd_img">&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="ngr_common.rndUpdate();" title="Обновить цифры" style="padding:3px;border:1px solid #000000;"><img src="http://pics.nashgorod.ru/img_2010/arrow_refresh.png" width="16" height="16" border="0" /></a></td>\
						  </tr>\
						  </table>';
					
					ngrjQ("#addToCatalogFree").bind("click", function(e){
							var freeht = '<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Размещение в Справочнике компаний Тюмени бесплатно</div>' + ht + '<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.addZayavka(\'free\');"><img src="http://pics.nashgorod.ru/img_2010/send_btn.png" width="90" height="26" border="0" align="absmiddle"  alt="Отправить" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
								</div>\
								<div id="must_fill_star"><span class="required_field">*</span> &mdash; поля, обязательные для заполнения</div>\
							</div>';
																	
							nc.showGreyBack(freeht, true);
					});
					
					ngrjQ("#addToCatalogPay").bind("click", function(e){
						var payht = '<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;">Размещение в Справочнике компаний Тюмени платно (8000 руб. в год)</div>' + ht + '<div style="margin-top:10px;"><a href="javascript:void(0);" onclick="ngr_common.addZayavka(\'pay\');"><img src="http://pics.nashgorod.ru/img_2010/send_btn.png" width="90" height="26" border="0" align="absmiddle"  alt="Отправить" /></a> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
								</div><div id="must_fill_star"><span class="required_field">*</span> &mdash; поля, обязательные для заполнения</div>\
							</div>';
																	
							nc.showGreyBack(payht, true);
					});					
				}
			},
			
			getAjaxLoader: function(txt) {
				return '<div style="padding:20px 20px 20px 0;" id="ajaxLoader"><img src="http://pics.nashgorod.ru/i/is_load.gif" width="16" height="16" border="0" />&nbsp;' + txt + '</div>';	
			},
			
			ngrEnter: function() {
				
				if (nc.ngrEnterIsInProgress === true) {
					return false;
				}
				
				var username = nc.trim(nc.gi('username').value);
				if (username == '') {
					alert('Укажите Имя.');	
					return false;
				}				
				
				var password = nc.trim(nc.gi('password').value);
				if (password == '') {
					alert('Укажите Пароль.');	
					return false;
				}				
				
				var autologin = ngrjQ('#autologin').is(':checked');
				var viewonline = ngrjQ('#viewonline').is(':checked');
				
				var confirm_code = '';
				if (nc.gi('confirm_code')) {
					var confirm_code = nc.trim(nc.gi('confirm_code').value);
					if (confirm_code == '') {
						alert('Укажите код подтверждения.');	
						return false;
					}				
				}
				
				var confirm_id = '';
				if (nc.gi('confirm_id')) {
					var confirm_id = nc.trim(nc.gi('confirm_id').value);
				}
				
				nc.ngrEnterIsInProgress = true;
				
				function gettingIn() {
					ngrjQ("#ngrLoginForm").hide();
					ngrjQ("#popdivContent").append(nc.getAjaxLoader('Осуществляется вход на сайт Нашгород.ру'));
				}
				
				function enterError(error) {
					alert(error);
					ngrjQ("#ajaxLoader").remove();
					ngrjQ("#ngrLoginForm").show();
					nc.ngrEnterIsInProgress = false;
				}
				
				gettingIn();
				
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&ngrEnter',
					success: 	function(responseText) {
									if (nc.isset(responseText.error)) {
										enterError(responseText.error);
									} else {
										if (nc.isset(responseText.error_txt)) {
											
											enterError(responseText.error_txt);
											
											if (nc.isset(responseText.confirm_img)) {
												
												if (nc.gi('confirm_code_tr')) {
													ngrjQ("#confirm_code_tr").remove();
												}
												
												var tr = nc.gi('password');
												while (tr.tagName != 'TR') tr = tr.parentNode;
												
												ngrjQ(tr).after('<tr id="confirm_code_tr"><td colspan="2" style="color:#727272; font-family:Tahoma;"><div style="margin:10px 0;"><strong>Код подтверждения:</strong><br>Введите код в точности так, как вы его видите. Код не зависит от регистра, символа нуля в нём нет.</div>' + responseText.confirm_img + '<br><br><strong>введите сюда код:</strong> <input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngrjQ(\'#ngrLoginForm\').submit(); if (event.keyCode==27) ngr_common.hideForm();" title="Код подтверждения" /></td></tr>');
											}
										} else {
											//location.reload(true);
											
											ngrjQ.ajax({
												url:    	nc.getConstant('AJAX_SCRIPT') + '&crossSiteAuth',
												success: 	function(responseText) {
																if (nc.isset(responseText.error)) {
																	alert(responseText.error);
																} else {
																	if (nc.isset(responseText.frames)) {
																		ngrjQ("#ajaxLoader").remove();
																		ngrjQ("#popdivTitle").html('Вы успешно вошли на сайт Nashgorod.ru');
																		ngrjQ("#popdivContent").html(responseText.frames + '<br><br><a href="javascript:void(0);" onclick="location.reload(true);" title="Закрыть"><img src="http://pics.nashgorod.ru/img_2010/close.png" width="69" height="26" /></a>');
																		
																		ngrjQ("#greyback")
																		.unbind("click")
																		.bind("click", function(e){
																				location.reload(true);
																			});
																		
																		setTimeout(function() {
																				location.reload(true);
																			},3000);
																	}
																}
															},
												type: 		"POST",
												dataType: 	"json",
												data:		{'username': username},
												async:   	false
											}); 				
											
										}
									}
								},
					type: 		"POST",
					dataType: 	"json",
					data:		{ 'username': username, 'password': password, 'autologin': autologin, 'viewonline': viewonline, 'confirm_code': confirm_code, 'confirm_id': confirm_id },
					async:   	false
				}); 				
				
			},
			
			initEnterForm: function() {
				if (nc.gi('ngrEnter')) {
					ngrjQ("#ngrEnter").bind("click", function(e){
						/*var ht = '<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;" id="popdivTitle">Вход на nashgorod.ru</div>\
						<div id="popdivContent">\
							<form action="" enctype="multipart/form-data" method="post" id="ngrLoginForm" name="ngrLoginForm">\
							<table id="addObvlTable" style="width:365px;">\
							  <tr>\
								<td class="tdname">Имя:</td>\
								<td class="tdinput"><input type="text" id="username" name="username" style="width:150px;" /></td>\
							  </tr>\
							  <tr>\
								<td class="tdname">Пароль:</td>\
								<td class="tdinput"><input type="password" id="password" name="password" style="width:150px;" onKeyPress="if((event.keyCode==10)||(event.keyCode==13)) ngrjQ(\'#ngrLoginForm\').submit(); if (event.keyCode==27) ngr_common.hideForm();" /></td>\
							  </tr>\
							  <tr>\
								<td colspan="2" class="text"><br><input type="checkbox" id="autologin" name="autologin"> автоматически входить при каждом посещении</td>\
							  </tr>\
							  <tr>\
								<td colspan="2" class="text"><input type="checkbox" id="viewonline" id="viewonline"> скрыть моё пребывание на сайте</td>\
							  </tr>\
							  <tr>\
								<td colspan="2" class="text"><a href="/help/">Проблемы с входом на сайт?</a><br><a href="/forum/ucp.php?mode=sendpassword">Забыли пароль?</a><br><a href="/forum/ucp.php?mode=resend_act">Повторно выслать письмо для активации учётной записи</a></td>\
							  </tr>\
							  </table>\
							  <div style="margin-top:10px;" id="addAjaxButtons"><input type="image" src="http://pics.nashgorod.ru/img_2010/enter.png" width="58" height="26" title="Войти на сайт"> &nbsp; <a href="#" onclick="ngr_common.hideForm();return false;"><img src="http://pics.nashgorod.ru/i/map/cancel_btn.gif" width="74" height="26" border="0" align="absmiddle" alt="Отмена" /></a>\
								</div>\
								 </form>\
							</div>';*/
																	
						nc.showGreyBack('', true);
						ngrjQ('#enterWrap').css({backgroundColor:"#FFFFFF", padding:"10px", border:"1px solid #9b9b9b", zIndex:"1000", fontSize:"12px", fontFamily:"Arial"}).show();
						ngrjQ('#ngrLoginForm').submit(function() {
						  ngr_common.ngrEnter();
						  
						  return false;
						});						
					});
				}
			},
			
			initExit: function() {
				if (nc.gi('ngrExit')) {
					ngrjQ("#ngrExit").bind("click", function(e){
															  
						var ht = '<div style="font-size:16px; color:#eb3d00;font-family:Tahoma;margin-bottom:10px;" id="popdivTitle">Выход</div>\
						<div id="popdivContent">\
							  <div style="margin-top:10px;" id="addAjaxButtons"></a>\
								</div>\
							</div>';
						nc.showGreyBack(ht, true);
						ngrjQ("#addAjaxButtons").hide();
						ngrjQ("#popdivContent").append(nc.getAjaxLoader('Осуществляется выход с сайта Нашгород.ру'));
															  
						ngrjQ.ajax({
							url:    	nc.getConstant('AJAX_SCRIPT') + '&ngrExit',
							success: 	function(responseText) {
											if (nc.isset(responseText.error)) {
												alert(responseText.error);
											} else {
												ngrjQ.ajax({
													url:    	nc.getConstant('AJAX_SCRIPT') + '&crossSiteUndoAuth',
													success: 	function(responseText) {
																	if (nc.isset(responseText.error)) {
																		alert(responseText.error);
																	} else {
																		if (nc.isset(responseText.frames)) {
																			ngrjQ("#ajaxLoader").remove();
																			ngrjQ("#popdivTitle").html('Выход успешно осуществлен');
																			ngrjQ("#popdivContent").html(responseText.frames + '<br><br><a href="javascript:void(0);" onclick="location.reload(true);" title="Закрыть"><img src="http://pics.nashgorod.ru/img_2010/close.png" width="69" height="26" /></a>');
																			
																			ngrjQ("#greyback")
																			.unbind("click")
																			.bind("click", function(e){
																					location.reload(true);
																				});
																			
																			setTimeout(function() {
																					location.reload(true);
																				},3000);
																		}
																	}
																},
													type: 		"POST",
													dataType: 	"json",
													async:   	false
												}); 				
											}
										},
							type: 		"POST",
							dataType: 	"json",
							async:   	false
						}); 				
															  
															  
															  
															  
					});
				}
			},
			
			deleteActiveLi: function(aObj) {
				var parent = parent || true;
				var li = nc.getFirstParentLi(aObj);
				li.parentNode.removeChild(li);
			},				
			
			getFirstParentLi: function(aObj, getParentLi) {
				var getParentLi = getParentLi || false;
				var li = aObj;
				while (li.tagName != 'LI') li = li.parentNode;
				if (getParentLi === false) {
					return li;
				} else if (getParentLi === true) {
					return li.parentNode;
				}
			},
			
			selectAll: function(element) {
				element.focus();
				element.select();
			},
			
			checkIfFileExists: function(fileUrl) {
				/*var res = 1;
				ngrjQ.ajax({
					url: fileUrl,
					type: 'HEAD',
					error: function() {
						res = false;
					},
					success: function() {
						res = true;
					},
					async: false
				});
				
				return res;*/
				/* проверка только с pics.nashgorod.ru */
				var ret = false;
				ngrjQ.ajax({
					url:    	'/if_file_exists.php',
					success: 	function(responseText) {
						if (nc.isset(responseText.error)) {
							alert(responseText.error);
						} else {
							if (responseText.exists == 1) {
								ret = true;	
							}
						}
					},
					type: "POST", dataType: "json", async: false, 
					data: { 'filepath': fileUrl }
				});
				
				return ret;
				
			},
			
			initRadioVote: function() {
				if (nc.gi('activateRadioVote')) {
					checkresults();
				}
			},
			
			initScreenResCookie: function() {
				nc.setCookie('ngrscreenres', (typeof(screen) == 'undefined' ? 0 : screen.width + '*' + screen.height), new Date(Date.parse("Jan 1, 2020")), '/');	
			},
			
			obvlAutoMarks: function(selectObj) {
				//if (nc.gi('uId')) { //&& (ngrjQ('#uId').html() == 11595 || ngrjQ('#uId').html() == 4)
					var sObj = selectObj;
					ngrjQ.ajax({
						url:    	nc.getConstant('AJAX_SCRIPT') + '&getauto',
						success: 	function(responseText) {
							if (nc.isset(responseText.error)) {
								alert(responseText.error);
							} else {
								ngrjQ('#field_41').replaceWith(responseText.ret);
							}
						},
						type: "POST", dataType: "json", async: false, 
						data: { 'sid': ngrjQ(sObj).val() }
					});
				//}
			},
			
			getWindowSelection: function() {
				var w = window;
				var d = w.document;
				var selectObj = null;
				var _6 = 60;
				
				if (w.getSelection){ 
					selectObj = w.getSelection();
				} else {
					if (d.getSelection){
						selectObj = d.getSelection();
					} else {
						selectObj = d.selection;
					}
				}
				
				if (selectObj != null){
					var pre = "", _51 = null, suf = "", pos = -1;
					if (selectObj.getRangeAt) { 
						var r = selectObj.getRangeAt(0);
						_51 = r.toString();
						var _58 = d.createRange();
						_58.setStartBefore(r.startContainer.ownerDocument.body);
						_58.setEnd(r.startContainer,r.startOffset);
						pre = _58.toString();
						var _59 = r.cloneRange();
						_59.setStart(r.endContainer,r.endOffset);
						_59.setEndAfter(r.endContainer.ownerDocument.body);
						suf = _59.toString();
					} else {
						if (selectObj.createRange) {
							var r = selectObj.createRange();
							_51 = r.text;
							var _58 = selectObj.createRange();
							_58.moveStart("character",-_6);
							_58.moveEnd("character",-_51.length);
							pre = _58.text;
							var _59 = selectObj.createRange();
							_59.moveEnd("character",_6);
							_59.moveStart("character",_51.length);
							suf = _59.text;
						} else {
							_51 = "" + selectObj;
						}
					}
					
					var p;
					var s = (p = _51.match(/^(\s*)/)) && p[0].length;
					var e = (p = _51.match(/(\s*)$/)) && p[0].length;
					pre = pre + _51.substring(0, s);
					suf = _51.substring(_51.length-e, _51.length) + suf;
					_51 = _51.substring(s, _51.length-e);
					
					if (_51 == "") {
						return null;
					}
					
					return { pre:pre, text:_51, suf:suf, pos:pos };
					
				} else {
					return;
				}
			},
			
			trimStrEnds: function(str) {
				return ("" + str).replace(/[\r\n]+/g," ").replace(/^\s+|\s+$/g,"");
			},
			
			getHtmlMaket: function(type, dataObj, cache) {
				var dataObj = dataObj || {};
				
				if (typeof(cache) == 'undefined') {
					var cache = true;
				}
				
				if (!nc.isset(nc.htmlmakets[type])) {
					ngrjQ.ajax({
						url:    	nc.getConstant('HTML_MAKETS') + '&mode=' + type,
						success: 	function(responseText) {
										if (nc.isset(responseText.error)) {
											alert(responseText.error);
										} else {
											nc.htmlmakets[type] = responseText.maket;
										}
									},
						type: 		"POST",
						dataType: 	"json",
						data:		dataObj,
						async: 		false
					}); 
				}
				
				var maket = nc.htmlmakets[type];
				
				if (cache === false) {
					nc.htmlmakets[type] = null;
				}				
				
				/* заменим метки в шаблоне */
				for (var name in dataObj) {
					maket = nc.str_replace('++' + name + '++', dataObj[name], maket);
				}
				
				return maket;
			},			
			
			initSendNewsError: function() {
				//if (nc.getCookie('PHPSESSID') == '240e95c15d71b2d2d86990f0803e0bfc') {
					if (document.location.href.indexOf('www.nashgorod.ru/news') > 0) {
						ngrjQ(window.document).keypress(function(e){
																 
							var ctrlEnter = 0;
							var we = window.event;
							if (we) {
								ctrlEnter = we.keyCode==10 || (we.keyCode==13 && we.ctrlKey);
							} else { 
								if (e) {
									ctrlEnter = (e.which==10 && e.modifiers==2) || (e.keyCode==0 && e.charCode==106 && e.ctrlKey) || (e.keyCode==13 && e.ctrlKey);
								}
							}
																 
							if (ctrlEnter) {
								var sel = nc.getWindowSelection();
								if (sel) {
									sel.pre = sel.pre.substring(sel.pre.length-60, sel.pre.length).replace(/^\S{1,10}\s+/,"");
									sel.suf = sel.suf.substring(0,60).replace(/\s+\S{1,10}$/,"");
									
									var selection = nc.trimStrEnds(sel.pre+'<u style="color:red">'+sel.text+'</u>'+sel.suf);
									if (selection.length > 256) {
										alert('Вы выбрали слишком большой объем текста!');
										return;
									}
									
									nc.selectionText = selection;
									
									var maket = nc.getHtmlMaket('sendNewsError', {'selection': nc.selectionText});
									nc.showGreyBack(maket, true);
								}
							}																 
						});
					}
				//} 
			},
			
			sendNewsError: function() {
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_SCRIPT') + '&newsError',
					success: 	function(responseText){if(nc.isset(responseText.error)){alert(responseText.error);}else{
							alert('Благодарим вас за сообщение об ошибке. Скоро мы ее исправим.');
							nc.hideForm();
						}
					},
					type: "POST", dataType: "json", async: false, 
					data: { 'selection': nc.selectionText, 'link': window.location.href, 'comment': ngrjQ("#comment").val() }
				});
			},
			
			initCatalogAutocomplete: function() {
				if (nc.gi('search-query-q')) {
					ngrjQ( "#search-query-q" ).autocomplete({
						source: nc.getConstant('AJAX_SCRIPT') + '&catalogAutocomplete',
						minLength: 2,
						select: function( event, ui ) {
							location.href = ui.item.url;
						}
					});
				}
			},
			
			initIsPhotoNews: function() {
				ngrjQ(".isPhotoNews").bind("click", function(e){
					var aId = ngrjQ(this).val();
					var aIdChecked = ngrjQ(this).is(':checked');
					ngrjQ.ajax({
						url:    	nc.getConstant('AJAX_SCRIPT') + '&isPhotoNews',
						success: 	function(responseText){if(nc.isset(responseText.error)){alert(responseText.error);}
						},
						type: "POST", dataType: "json", async: false, 
						data: { 'aId': aId, 'check': aIdChecked }
					});
				});
			}, 
			
			makePhotoMain: function(ad_id, photo_id, prior) {
				var aid = ngrjQ(".is_main").attr("aid");
				var pr = ngrjQ(".is_main").attr("pr");
				ngrjQ(".is_main")
					.removeClass('is_main')
					.html('<a href="javascript:void(0);" onclick="ngr_common.makePhotoMain('+ad_id+', '+aid+', '+pr+');"><img src="http://pics.nashgorod.ru/img_2010/make_main_photo.png" width="95" height="26"></a>');
				
				ngrjQ("#main_photo_" + photo_id)
					.html('<strong>главное фото</strong>')
					.addClass("is_main");
				
				ngrjQ.ajax({
					url:    	nc.getConstant('AJAX_OBVL') + '&makePhotoMain&ad_id='+ad_id+'&photo_id='+photo_id+'&prior='+prior,
					success: 	function(responseText){if(nc.isset(responseText.error)){alert(responseText.error);}
					},
					type: "POST", dataType: "json", async: false
				});
			},
			
			changeSocial: function(classType) {
				ngrjQ("#socialCurrent").attr("class", 'social-icons-16x16 ' + classType + '-16x16');
				nc.currentSocialChoice = classType;
				switch(classType) {
					case 'ngr':
						var msg = '<input type="text" placeholder="Имя пользователя" value="Имя пользователя" onclick="{if(this.value==\'Имя пользователя\'){this.value=\'\'}}" id="username" maxlength="30" size="17"> <input type="text" value="Пароль" onclick"{this.style.display=\'none\';document.getElementById(\'password\').style.display=\'inline\';document.getElementById(\'password\').focus();}" onfocus="{this.style.display=\'none\';document.getElementById(\'password\').style.display=\'inline\';document.getElementById(\'password\').focus();}" placeholder="Пароль" size="13"> <input type="password" id="password" size="13" maxlength="30" style="display:none;"> У вас нет аккаунта? <a href="http://www.nashgorod.ru/register/">Создайте его сейчас</a>.';
					break;
					
					case 'vkontakte':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим аккаунтом Вконтакте';
					break;
					
					case 'facebook':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим Facebook-аккаунтом';
					break;
					
					case 'twitter':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим Twitter-аккаунтом';
					break;
					
					case 'google':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим Google-аккаунтом';
					break;
					
					case 'odnoklassniki':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим аккаунтом на одноклассниках';
					break;
					
					case 'mailru':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим Mail.ru-аккаунтом';
					break;
					
					case 'yandex':
						var msg = 'Вы легко можете комментировать на nashgorod.ru под своим Yandex-аккаунтом';
					break;
				}
				
				ngrjQ(".social-describe").html(msg);
				
				if (classType != 'ngr') {
					ngrjQ("#socialLogin").attr("href", 'https://loginza.ru/api/widget?token_url=' + document.location.href + '&provider=' + classType);
				} 
			},
			
			initShowSocial: function() {
				if (nc.gi('showSocial')) {
					LOGINZA.init();
					ngrjQ("#showSocial").bind("click", function(event){
						var dispaly = ngrjQ(".social-items").css("display");
						if (dispaly == 'none') {
							ngrjQ(".social-choose").css({borderRadius: '3px 3px 0 0', borderBottom: '1px solid #CCCCCC'});
							dispaly = 'block';
						} else {
							ngrjQ(".social-choose").css({borderRadius: '3px', borderBottom: ''});
							dispaly = 'none';
						}
						
						ngrjQ(".social-items").css("display", dispaly);
						
						ngrjQ('body').one('click',function() {
							ngrjQ(".social-choose").css({borderRadius: '3px', borderBottom: ''});
							ngrjQ(".social-items").css("display", "none");
						  });
						
						  event.stopPropagation();
					});
					
					nc.changeSocial('ngr');
				}
			},
			
			doSocialLogin: function() {
				if (ngr_common.currentSocialChoice == 'ngr') {
					if (ngrjQ("#username").val() == 'Имя пользователя' && ngrjQ("#password").val() == 'Пароль') {
						ngr_common.hideLoadingInProgressText();
						alert('Укажите имя пользователя и пароль');
						return false;
					}
					
					ngrjQ.ajax({
						url:    	ngr_common.getConstant('AJAX_SCRIPT') + '&ngrEnter', type: "POST", dataType: "json",
						success: 	function(responseText) {
							ngr_common.hideLoadingInProgressText();
							if (ngr_common.isset(responseText.error)) { alert(responseText.error); } else {
								location.reload(true);
							}
						},
						data: {'username': ngrjQ("#username").val(), 'password': ngrjQ("#password").val(), 'autologin': 'true'}
					}); 
				} else if (ngr_common.currentSocialChoice !== null) {
					ngrjQ("#socialLogin").trigger('click');
				}
			},
			
			changeAlbumCat: function(oSel) {
				var oSel = oSel;
				ngrjQ(oSel).after("&nbsp;&nbsp;" + nc.getLoadingInProgressText());
				ngrjQ.ajax({
					url:    	ngr_common.getConstant('AJAX_SCRIPT') + '&changeAlbumCat', type: "POST", dataType: "json",
					success: 	function(responseText) {
						ngr_common.hideLoadingInProgressText();
						ngrjQ(oSel).after('&nbsp;&nbsp;<span id="doneMsg">Готово</span>');
						ngrjQ("#doneMsg").fadeOut("slow");
					},
					data: {'val': ngrjQ(oSel).val()}
				}); 
			},
			
			openNgTimesBar: function() {
				var htmlStyle = {"height": ngrjQ("html").css("height"), "overflow": ngrjQ("html").css("overflow")};
				var bodyStyle = {"height": ngrjQ("body").css("height"), "overflow": ngrjQ("body").css("overflow")};
				var scrollTop = ngrjQ(document).scrollTop();
				
				if (ngrjQ.browser.msie && ngrjQ.browser.version == '7.0') {
					scroll(0,0);
				}
				
				ngrjQ("html, body").css({"height": ngrjQ(window).height() + "px", "overflow": "hidden"});
				
				ngrjQ("body").append('<div style="position:absolute; top:0; left:0; background-color:#FFFFFF; width:100%; z-index:1000; height:' + ngrjQ(window).height() + 'px" id="whiteCloud"></div>');
				
				var top = 0;
				/*if (location.href.indexOf('forum') && !ngrjQ.browser.mozilla) {
					if ( (ngrjQ.browser.msie && ngrjQ.browser.version !== '7.0') || !ngrjQ.browser.msie) {
						top = 25;	
					}
				}*/
				
				ngrjQ("#ngTimesFr")
					.css({height: ngrjQ(window).height() + "px", "width": "100%", "top": (ngrjQ(window).height() + 2) + "px", "left": 0})
					.show()
					.animate({top: top}, 300, function() {
						var center = (parseInt(ngrjQ(document).width()) / 2) - 22;
						ngrjQ("body").append('<div id="ngtimesClose" style="position:fixed; top: 0; left: ' + center + 'px; z-index: 10010; cursor: pointer; cursor:hand;"><img src="http://pics.nashgorod.ru/v4/img/ngtimes-close.png" width="44" height="24" title="Закрыть" /></div>');
						ngrjQ("#ngtimesClose").bind("click", function(event){
							ngrjQ("#ngtimesClose").remove();
							ngrjQ("#ngTimesFr").animate({top: (ngrjQ(window).height() + 2) + "px"}, 150, function() {								
								ngrjQ("#whiteCloud").remove();
								ngrjQ("#ngTimesFr").hide();
								ngrjQ("html").css({"height": htmlStyle.height, "overflow": htmlStyle.overflow});
								ngrjQ("body").css({"height": bodyStyle.height, "overflow": bodyStyle.overflow});
								ngrjQ(document).scrollTop(scrollTop);
							});
						});
					});
					
				ngrjQ("#ngTimesFrame").css({"width": "100%", height: ngrjQ(window).height() + "px"});
			},
			
			initNgTimesBar: function() {
				if (nc.gi('ngtimesUp')) {
					
					function randomNgTimes() {
						var firstLi = ngrjQ("#ngtimesLine .ngrtimes-news").find("li:first");
						var rnd = Math.floor(Math.random()*(ngTimesLinks.length));
						var li = ngTimesLinks[rnd];
						if (ngrjQ(firstLi).attr("id") == ngrjQ(li).attr("id")) {
							li = ngTimesLinks[(rnd == 0 ? rnd + 1 : rnd - 1)];
						}
						ngrjQ("#ngtimesLine .ngrtimes-news").append(li);
						ngrjQ(li)
							.css({"-moz-opacity": 0, "opacity": 0, "filter": "alpha(opacity=0)"})
							.fadeIn(300);
						ngrjQ(firstLi)
							.fadeOut(300, function() {
								ngrjQ(this).remove();
								ngrjQ("#ngtimesLine .ngrtimes-news > li").not(':last').remove();
							});
					}
					
					setInterval(randomNgTimes, 7000);
					randomNgTimes();
					
					ngrjQ("#ngtimesUp").bind("click", function(event){
						nc.openNgTimesBar();
					});
				}
			},
			
			stopPropagation: function(event) {
				if(ngrjQ.browser.msie) {
					event.cancelBubble = true;
				} else {
					event.stopPropagation();
				}							
			},
			
			prepQuickUserMenu: function() {
				if (nc.gi('quick_user_menu_link')) {
					ngrjQ("#quick_user_menu")
						.css({top: "17px", left: "-" + (ngrjQ("#quick_user_menu").width() - 45) + "px"})
						.bind('click',function() {
							nc.stopPropagation(event);
						});
					
					ngrjQ("#quick_user_menu_link").bind("click", function(event){
						ngrjQ("#quick_user_menu").toggle();
						ngrjQ("#quick_user_status").hide();
						ngrjQ('body').one('click',function() {
							ngrjQ("#quick_user_menu").hide();
						});
						 nc.stopPropagation(event);
						return false;
					});
					
					ngrjQ("#quick_user_status")
						.css({top: "24px", left: "-" + (ngrjQ("#quick_user_status").width() - 65) + "px"})
						.bind('click',function() {
							nc.stopPropagation(event);
						});
						
					ngrjQ("#changeStatusBtn").bind("click", function(event){
						ngrjQ("#changeStatusBtn").before(nc.getLoadingInProgressText() + "&nbsp;&nbsp;");
						ngrjQ.ajax({
							url:    	ngr_common.getConstant('AJAX_SCRIPT') + '&changeStatus', type: "POST", dataType: "json",
							success: 	function(responseText) {
								nc.hideLoadingInProgressText();
								ngrjQ("#changeStatusBtn").before('<span id="doneMsg">Готово&nbsp;&nbsp;</span>');
								ngrjQ("#doneMsg").fadeOut('slow', function() {
									 ngrjQ("#doneMsg").remove();
									 ngrjQ("#quick_user_status_link").html(ngrjQ("#user_status_inp").val() != '' ? ngrjQ("#user_status_inp").val() : 'изменить статус');
									 ngrjQ("#quick_user_status").hide();
								});
							},
							data: {'val': ngrjQ("#user_status_inp").val()}
						}); 
					});
						
					ngrjQ("#quick_user_status_link").bind("click", function(event){
						ngrjQ("#quick_user_status").toggle();
						var status = ngrjQ("#quick_user_status_link").html();
						ngrjQ("#user_status_inp").val((status != '' && status != 'изменить статус' ? status : ''));
						ngrjQ("#quick_user_menu").hide();
						ngrjQ('body').one('click',function() {
							ngrjQ("#quick_user_status").hide();
						});
						 nc.stopPropagation(event);
						 
						return false;
					});					
				}
			}
		}
	}	
	
	return {
		initialize: function (map) {
			if (!nc) {
				nc = constructor();

				nc.initNgTimesBar();
				nc.initShowSocial();
				nc.initIsPhotoNews();
				nc.initCatalogAutocomplete();
				nc.initSendNewsError();
				nc.initScreenResCookie();
				nc.initRadioVote();
				nc.initExit();
				nc.initEnterForm();
				nc.initRazmestitVCatalog();
				nc.initEventCalendarEdit();
				nc.initCompanyNews();
				nc.initObvlAdd();
				nc.initObvlMy();
				nc.initTellErrorInCatalog();
				nc.initAddCompanyLogo();
				nc.prepareCatalogObjComment();
				nc.prepareNewsComments();
				nc.prepareSocialVoteComment();
				nc.getUralWebAndLiveInternet();
				nc.initQuickLinksRotator();
				nc.initFotoRotator();
				nc.initAfishaRotator();
				nc.interviewFormInit();
				nc.bindClickVacResOnMain();
				nc.initMakeCompanyFirst();
				nc.initShowLeftAdrs();
				nc.toggleBottomBlock();
				nc.prepQuickUserMenu();
				
				if (nc.gi('aviaISLoading')) {
					setTimeout(function(){
						ngrjQ("#aviaISLoading").remove();					
					},100);
				}
			}
			
			return nc;			
		}
	}
	
})();


/* globally accessed vars */
var ngr_common,
	ngrjQ = jQuery.noConflict();
	
/* after page loads */
ngrjQ(function() {
    ngr_common = NgrCommon.initialize();
});


function ngr_get_url_param(name)
{
  //http://www.netlobo.com/url_query_string_javascript.html
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
