$().ready(function(){
	$('input.text2, div.canvas2, div.wtf, span.viewimg').hide();
	
	var alllinks = $('span.viewurl, span.viewit, span.closepreview, span.viewimg');
		alllinks.css('border-bottom', '1px dashed #662D91');
		alllinks.hover(
			function(){
				$(this).css('border-bottom', '1px dashed #fff').css('cursor', 'pointer');
			},
			function(){
				$(this).css('border-bottom', '1px dashed #662D91');
			}
		);	
	
	var GlobalBodyH = 0;
		GlobalBodyH = $('body').height();
	var errors = 1;
	var previewTitle = "";
	var previewAnons = "";
	var previewText = "";
	/*var dataTitle = $('#post_title');
	var dataAnons = $('#post_anons');
	var dataText = $('#comment_textarea');*/
	var wi = $(window);
	var w = $("body").width();
	if ($.browser.opera) {
		var h = window.outerHeight;
	}
	else {
		var h = wi.height();
	};
	var left = (w - 676) / 2;
	var top = 185;
	var dataAuth = $('.old p.text a');
	var dataDate = $('.old .date').text();
	var added = "";
	var oldArticle = $('.old .article').html();
		oldArticle == null ? oldArticle="" : null;
	
	
	$('span.viewit').click(function(){
		errors = 0;
		
		/*===============  Проверка на заполненость поля  ===============*/
		
		/*dataTitle.val() == "" ? error(dataTitle) : good(dataTitle);
		dataAnons.val() == "" ? error(dataAnons) : good(dataAnons);
		dataText.val() == "" ? error(dataText) : good(dataText);*/
		
		/*===============  Проверка на заполненость поля ===============*/

		errors == 0 ? checkFields() : null;
	});
	
	function error(obj){
		obj.addClass('error_field');
		errors = 1;
	}
	function good(obj){
		obj.removeClass('error_field');
	}	
	
	
	/*=================  проверка на правильные теги   =============*/
	function checkFields(){
		
		var dataTitle = $('#post_title');
		var dataAnons = $('#post_anons');
		var dataText = $('#comment_textarea');
		
		var regPreFix = /((<span>)|(<\/span>)|(<a href)|(<img )|(<youtube)|(<\/youtube)|(<.?.?>)|(<.?.?\/>)|(<\/.?.?>))/gi;
		previewText = dataText.val();
		var tempPreFix = previewText.match(regPreFix);
		if (tempPreFix != null) {
			for (i = 0; i < tempPreFix.length; i++) {
				temp = tempPreFix[i];
				previewText = previewText.replace(temp, "[%" + temp.substring(1, temp.length));
			}
		};
		
		
		
		
		var regFlashObjectFix = /<object.*?\/object>/gi;
		var tempFlashObjectFix = previewText.match(regFlashObjectFix);
		if (tempFlashObjectFix != null) {
			for (i = 0; i < tempFlashObjectFix.length; i++) {
				temp = tempFlashObjectFix[i];
				previewText = previewText.replace(temp, "[$"+i);
			}
		};
		
		
		
		var regFixScript = /(<)/gi;
			previewTitle = dataTitle.val();
			previewTitle == null ? previewTitle = $('.head_info h1').text() : null;
			previewTitle = previewTitle.replace(regFixScript, "&lt;");
			previewAnons = dataAnons.val();
			previewAnons != null ? previewAnons = previewAnons.replace(regFixScript, "&lt;") : null;
			previewText = previewText.replace(regFixScript, "&lt;");
		
		var regFixBR = /\n/g;
			previewAnons != null ? previewAnons = previewAnons.replace(regFixBR, "<br/>") : null;	
			previewText = previewText.replace(regFixBR, "<br/>");
		
		var regAfterFix = /(\[%)/gi;
			previewText = previewText.replace(regAfterFix, "<");
		
		
		
		var regAfterFlashObjectFix = /(\[\$\d+)/gi;
		var tempAfterFlashFix = previewText.match(regAfterFlashObjectFix);
		
		if (tempAfterFlashFix != null) {
			for (i = 0; i < tempAfterFlashFix.length; i++) {
				temp = tempFlashObjectFix[i];
				temp2 = tempAfterFlashFix[i];
				previewText = previewText.replace(temp2, temp);
			}
		};	
			
		
		var str = previewText;
		var regOpen = /<b>|<i>|<p>|<div|<u>|<img|<a\s|<br\/>|<span|<h\d/gi;
		var regClosed = /<\/b>|<\/i>|<\/p>|<\/div|<\/u>|\/>|<\/a>|<\/span>|<\/h\d/gi;
		var totalOpen = 0;
		var totalClosed = 0;
		var resultOpen;
		while ((resultOpen = regOpen.exec(str)) != null) {
			totalOpen++;
		}
		while ((resultClosed = regClosed.exec(str)) != null) {
			totalClosed++;
		}
		if (totalOpen != totalClosed) {
			alert("На всякий случай проверьте введенный текст. Некоторые теги не закрыты. Текст может отображаться не совсем так, как Вы хотели.");
		}
		
		previewPost();
	}
	
	
	
	/*=================  Вывод поста    ===================*/
	function previewPost(){
		
		
		
		$('select').css('visibility', 'hidden');	
				
		/*=============== Вывод информации о посте (автор, дата...) ================*/
		//dataAuth == null ? dataAuth = $("div.header div.login a.user") : null;
		dataAuth.text() == "" ? dataAuth = $("div.header div.login div.user a") : null;
		
		function getCurDate(){
			var today = new Date();
			var newYear = ((today.getFullYear()).toString()).substring(2, 4);
			var minutes = today.getMinutes();
			minutes < 10 ? minutes = "0" + minutes.toString() : null;
			var month = today.getMonth() + 1;
			month < 10 ? month = "0" + month : null;
			resultDate = today.getDate() + "/" + month + "/" + newYear + " " + today.getHours() + ":" + minutes;
			return resultDate;
		}
		
		dataDate == "" ? dataDate = getCurDate() : null;
		oldArticle!="" ? added = "<div class='date'>Дополнено " + getCurDate()+"</div>" : null;
		
		$(".wtf p").replaceWith('<span id="temp"><div class="date">' + dataDate + '</div>' +
			'<h1>' +
			previewTitle +
			'</h1>' +
			'<p class="text">Автор поста: ' +
			dataAuth.text() +
			'</p>' 
			+ '<img src="'+$("#topImage").val()+'" />'
			+ oldArticle + 
			'<div class="article clear" style="overflow:hidden; width:523px;"><p>' +
			added +
			previewText +
			'</p></div></span>');
			
			
		/*============== Сборка подложки превью блока ===============*/
		function building(){
			var totalH = $('.wtf').height();
			var totalW = $('.wtf').width();
			
			$('.np_l').css('top', top + 4).css('left', '50%').css('margin-left', '-350px');
			$('.np_r').css('top', top + 4).css('left', '50%').css('margin-left', '226px');
			$('.np_t').css('left', '50%').css('top', top - 8).css('margin-left', '-346px');
			$('.np_b').css('left', '50%').css('top', top + totalH + 26).css('margin-left', '-346px');
			
			/*$(".canvas2").width('100%').height($("body").height());*/
			$(".canvas2").width($("body").width()).height($("body").height());
			$('.wtf').css('left', '50%').css('top', top).css('margin-left', '-338px');
			
			$('.np_l, .np_r,').height(totalH + 22).width(12);
			$('div.canvas2, div.wtf, .np_t, .np_b, .np_r, .np_l').css('visibility', 'visible').show();
			if ($.browser.msie && $.browser.version == 7.0 && GlobalBodyH < (totalH + 225)) {
				$('body').height(totalH + 225);
			};
		}
		building();
		checkShadows = setInterval(building, 1000);
		
		
		/*============== Проверка на загружаемость размещенных фотографий ===============*/
		/*function replaceBadImages(){
			$('div.wtf div.article img').each(function(i, obj){
				$(this).attr("src") == (templatePath + "/i/loading.gif") ? $(this).attr("src", templatePath + "/i/notimg.gif") : null;
			});
		}
		
		imgReal = new Object;
		
		$('div.wtf div.article img').each(function(i, obj){
			$(this).attr("id", i);
			imgReal[i] = new Object();
			imgReal[i] = new Image();
			imgReal[i].src = $(this).attr("src");
			imgReal[i].i = i;
			
			$(this).attr("src", templatePath + "/i/loading.gif");
			
			imgReal[i].onload = function(){
				$('div.wtf div.article').find("img#"+i).attr("src",this.src);
				building();
			}
			imgReal[i].onerror = function(){
				$('div.wtf div.article').find("img#"+i).attr("src", templatePath + "/i/notimg.gif");
				building();
			}
			setTimeout(replaceBadImages, 12000);
			setTimeout(building, 100);
		});*/
	}
	
	
	/*================ Закрытие превью статьи ==================*/
	$('span.closepreview').click(function(){
		clearInterval(checkShadows);
		$('#temp').replaceWith('<p></p>');
		$('select').css('visibility','visible');
		$('div.canvas2, div.wtf, .np_t, .np_b, .np_r, .np_l').hide().css('top','0');
		$('div.canvas2').width(0);
		$('.np_l, .np_r,').height(10);
		if ($.browser.msie && $.browser.version == 7.0) {
		    $('body').height(GlobalBodyH);
		} 
	});	
	

});


