var _dialogPromptID=null;
var _blackoutPromptID=null;

function IEprompt(innertxt,def) {
   that=this;
   var _isIE7=(navigator.userAgent.indexOf('MSIE 7')>0);
   this.wrapupPrompt = function (cancled) {
      // wrapupPrompt is called when the user enters or cancels the box.
      // It's called only by the IE7 dialog box, not the non IE prompt box
      if (_isIE7) {
         // Make sure we're in IE7 mode and get the text box value
         val=document.getElementById('iepromptfield').value;
         // clear out the dialog box
         _dialogPromptID.style.display='none';
         // clear out the screen
         _blackoutPromptID.style.display='none';
         // clear out the text field
         document.getElementById('iepromptfield').value = '';
         // if the cancel button was pushed, force value to null.
         if (cancled) { val = '' }
         // call the user's function
         promptcallback(val);
      }
      return false;
   }

   if (def==undefined) { def=''; }

   if (_isIE7) {
      if (_dialogPromptID==null) {
         var tbody = document.getElementsByTagName("body")[0];
         tnode = document.createElement('div');
         tnode.id='IEPromptBox';
         tbody.appendChild(tnode);
         _dialogPromptID=document.getElementById('IEPromptBox');
         tnode = document.createElement('div');
         tnode.id='promptBlackout';
         tbody.appendChild(tnode);
         _blackoutPromptID=document.getElementById('promptBlackout');
         _blackoutPromptID.style.opacity='.9';
         _blackoutPromptID.style.position='absolute';
         _blackoutPromptID.style.top='0px';
         _blackoutPromptID.style.left='0px';
         _blackoutPromptID.style.backgroundColor='#555555';
         _blackoutPromptID.style.filter='alpha(opacity=90)';
         _blackoutPromptID.style.height=(document.getElementById('All').offsetHeight<screen.height) ? screen.height+'px' : document.getElementById('All').offsetHeight+'px'; 
         _blackoutPromptID.style.display='block';
         _blackoutPromptID.style.zIndex='50';
         // assign the styles to the dialog box
         _dialogPromptID.style.border='2px solid blue';
         _dialogPromptID.style.backgroundColor='#DDDDDD';
         _dialogPromptID.style.position='absolute';
         _dialogPromptID.style.width='360px';
         _dialogPromptID.style.zIndex='100';
      }
      // This is the HTML which makes up the dialog box, it will be inserted into
      // innerHTML later. We insert into a temporary variable because
      // it's very, very slow doing multiple innerHTML injections, it's much
      // more efficient to use a variable and then do one LARGE injection.
      var tmp = '<div style="width: 100%; background-color: blue; color: white; font-family: verdana; font-size: 10pt; font-weight: bold; height: 20px">Ввод адреса ссылки</div>';
      tmp += '<div style="padding: 10px">'+innertxt + '<BR><BR>';
      tmp += '<form action="" onsubmit="return that.wrapupPrompt()">';
      tmp += '<input id="iepromptfield" name="iepromptdata" type=text size=46 value="'+def+'">';
      tmp += '<br><br><center>';
      tmp += '<input type="submit" value="&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;">';
      tmp += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
      tmp += '<input type="button" onclick="that.wrapupPrompt(true)" value="&nbsp;Отмена&nbsp;">';
      tmp += '</form></div>';
      // Stretch the blackout division to fill the entire document
      // and make it visible.  Because it has a high z-index it should
      // make all other elements on the page unclickable.
      _blackoutPromptID.style.height=(document.getElementById('All').offsetHeight<screen.height) ? screen.height+'px' : document.getElementById('All').offsetHeight+'px'; 
      _blackoutPromptID.style.width='100%';
      _blackoutPromptID.style.display='block';
      // Insert the tmp HTML string into the dialog box.
      // Then position the dialog box on the screen and make it visible.
      _dialogPromptID.innerHTML=tmp;
      _dialogPromptID.style.top=parseInt(document.documentElement.scrollTop+(screen.height/3.3))+'px';
      _dialogPromptID.style.left=parseInt((document.body.offsetWidth-360)/2)+'px';
      _dialogPromptID.style.display='block';
      // Give the dialog box's input field the focus.
	if (document.getElementById('iepromptfield').createTextRange) {
		var r = document.getElementById('iepromptfield').createTextRange();
		r.collapse(false);
		r.select();
	}
//	document.getElementById('iepromptfield').focus();
   }
   else promptcallback(prompt(innertxt,def));
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function chkemp(f,n) {
	if (f.value=='') {
		alert('Поле "'+n+'" должно быть заполнено!');
		f.focus();
		return false;
	}
	return true;
}
function chkurl(f,n) {
	r=/[^a-zA-Z0-9\._\-]/;
	if (r.test(f.value) || f.value.substr(0,1)=='.' || f.value.substr(0,1)=='_' || f.value.substr(0,1)=='-') {
		alert('Поле "'+n+'" содержит недопустимые символы!\nРазрешено использование только букв английского алфавита, цифр, точки, дефиса и символа подчёркивания.\nПри этом первым символом должна быть буква или цифра.');
		f.focus();
		return false;
	}
	return true;
}
function chksremail(t) {
	if (t.value.indexOf('@')<1 || t.value.indexOf('.')<1 || t.value.length<4 || t.value.indexOf(' ')!=-1) {
		if (t.value.indexOf('@')<1) alert('Вы ввели неправильный e-mail! E-mail должен обязательно содержать символ "@".');
		else if (t.value.indexOf('.')<1) alert('Вы ввели неправильный e-mail! E-mail должен обязательно содержать точку (".").');
		else if (t.value.length<4) alert('Вы ввели неправильный e-mail! E-mail должен обязательно содержать минимум 4 символа.');
		else if (t.value.indexOf(' ')!=-1) alert('Вы ввели неправильный e-mail! E-mail не может содержать пробелы.');
		t.focus();
		return false;
	}
	return true;
}
function chkbiglet(f,n) {
	len_nam=f.value.length;
	if (len_nam>5) {
		r=/[A-ZА-Я]/;
		len_big=0;
		for(i=0; i<len_nam; i++) {
			if (r.test(f.value.substr(i,1))) len_big++;
		}
		if (len_big>(len_nam/3)) {
			alert('Поле "'+n+'" содержит слишком много заглавных букв!\nНе используйте Caps Lock.\nСтатьи, содержащие большое количество заглавных букв, будут удаляться без предупреждения.');
			f.focus();
			return false;
		}
	}
	return true;
}
function chkimgs() {
	var descr=document.getElementById('descr').value;
	var img1_val=document.getElementById('img1').value;
	if (img1_val!='')
		if (/(gif|jpg|png)$/.test(img1_val)) {
			if (!(/\[image1(\s+alt="[^\"]*")?\]/i.test(descr))) {
				alert('Вы добавили файл с изображением, но не указали в тексте статьи специальный тэг [image1 alt=""], сообщающий, в каком месте статьи выводить первое изображение.');
				document.getElementById('descr').focus();
				return false;
			}
		}
		else {
			alert('В статью можно добавить только изображение в формате JPG, GIF, PNG. Файл с первым изображением должен обязательно иметь расширение *.jpg, *.gif или *.png (расширение строго в нижнем регистре).');
			document.getElementById('img1').focus();
			return false;
		}
	var img2_val=document.getElementById('img2').value;
	if (img2_val!='') 
		if (/(gif|jpg|png)$/.test(img2_val)) {
			if (!(/\[image2(\s+alt="[^\"]*")?\]/i.test(descr))) {
				alert('Вы добавили файл с изображением, но не указали в тексте статьи специальный тэг [image2 alt=""], сообщающий, в каком месте статьи выводить первое изображение.');
				document.getElementById('descr').focus();
				return false;
			}
		}
		else {
			alert('В статью можно добавить только изображение в формате JPG, GIF, PNG. Файл со вторым изображением должен обязательно иметь расширение *.jpg, *.gif или *.png (расширение строго в нижнем регистре).');
			document.getElementById('img2').focus();
			return false;
		}
	var img3_val=document.getElementById('img3').value;
	if (img3_val!='')
		if (/(gif|jpg|png)$/.test(img3_val)) {
			if (!(/\[image3(\s+alt="[^\"]*")?\]/i.test(descr))) {
				alert('Вы добавили файл с изображением, но не указали в тексте статьи специальный тэг [image3 alt=""], сообщающий, в каком месте статьи выводить первое изображение.');
				document.getElementById('descr').focus();
				return false;
			}
		}
		else {
			alert('В статью можно добавить только изображение в формате JPG, GIF, PNG. Файл с третьим изображением должен обязательно иметь расширение *.jpg, *.gif или *.png (расширение строго в нижнем регистре).');
			document.getElementById('img3').focus();
			return false;
		}
	return true;
}
function preview_article() {
	var nam=document.getElementById('nam').value;
	var descr=document.getElementById('descr').value;
	var img1=document.getElementById('img1').value;
	var img2=document.getElementById('img2').value;
	var img3=document.getElementById('img3').value;
	var descr_tmp=' '+descr+' ';
	var error_descr='';
	if (descr_tmp.split('[http://').length!=descr_tmp.split('[/]').length)
		error_descr='В поле &laquo;Текст статьи&raquo; количество открывающих тэгов [http://...] не совпадает с количеством закрывающих [/]! <a href="/links_articles_help2_1.html" target="_blank" onclick="window.open(\'/links_articles_help2_1.html\',\'links_articles_help2_1\',\'width=500,height=260,status=yes,location=no,menubar=no,scrollbars=yes,resizable=yes,left=234,top=150,screenX=234,screenY=150\'); return false;">Ознакомьтесь с краткой помощью по добавлению ссылок в статью</a> (откроется новое окно).';
	else {
		if (nam!='') document.getElementById('preview_article_div').innerHTML='<h2>'+nam+'</h2>';
		if (descr!='') {
			if (descr.length>750) document.getElementById('dimg2').style.display='block';
			else document.getElementById('dimg2').style.display='none';
			if (descr.length>1600) document.getElementById('dimg3').style.display='block';
			else document.getElementById('dimg3').style.display='none';
			descr=descr.replace(/&/g, '&amp;');
			descr=descr.replace(/</g, '&#60;');
			descr=descr.replace(/>/g, '&#62;');
			descr=descr.replace(/\[image([0-9])\s+alt="([^"]*)"\]/ig, '[image$1 alt=†$2†]');
			descr=descr.replace(/"/g, '&quot;');
			descr=descr.replace(/\[(http:\/\/[^\]]+)\]/ig, "<a href=\"$1\">");
			descr=descr.replace(/\[\/\]/g, '</a>');
			var img1_val=document.getElementById('img1').value;
			if (img1_val!='')
				if (/\.(gif|jpg|png)\"?$/.test(img1_val))
					if (/\[image1(\s+alt=†[^†]*†)?\]/i.test(descr))
						descr=descr.replace(/\[image1(\s+alt=†([^†]*)†)?\]/i, '<img src="/iii/links_articles_img.gif" align="right" border="0" vspace="4" hspace="4" alt="$2">');
					else error_descr='Вы добавили файл с&nbsp;изображением. Теперь необходимо указать, где&nbsp;должно выводиться изображение. Это делается с&nbsp;помощью специального тэга <b>[image1&nbsp;alt=&quot;&quot;]</b>. Поставьте этот тэг в&nbsp;том месте текста статьи, где&nbsp;хотите, чтобы&nbsp;выводилось изображение. <a href="/links_articles_help2_2.html" target="_blank" onclick="window.open(\'/links_articles_help2_2.html\',\'links_articles_help2_2\',\'width=660,height=420,status=yes,location=no,menubar=no,scrollbars=yes,resizable=yes,left=234,top=150,screenX=234,screenY=150\'); return false;">Подробнее о&nbsp;добавлении изображений</a> (откроется в новом окне).';
				else error_descr='В статью можно добавить только изображение в&nbsp;формате JPG, GIF, PNG. Файл с&nbsp;изображением должен обязательно иметь расширение *.jpg, *.gif или&nbsp;*.png (расширение строго в&nbsp;нижнем регистре).';
			var img2_val=document.getElementById('img2').value;
			if (img2_val!='')
				if (/\.(gif|jpg|png)\"?$/.test(img2_val))
					if (/\[image2(\s+alt=†[^†]*†)?\]/i.test(descr))
						descr=descr.replace(/\[image2(\s+alt=†([^†]*)†)?\]/i, '<img src="/iii/links_articles_img.gif" align="left" border="0" vspace="4" hspace="4" alt="$2">');
					else error_descr='Вы добавили файл с&nbsp;изображением. Теперь необходимо указать, где&nbsp;должно выводиться изображение. Это делается с&nbsp;помощью специального тэга <b>[image2&nbsp;alt=&quot;&quot;]</b>. Поставьте этот тэг в&nbsp;том месте текста статьи, где&nbsp;хотите, чтобы&nbsp;выводилось изображение. <a href="/links_articles_help2_2.html" target="_blank" onclick="window.open(\'/links_articles_help2_2.html\',\'links_articles_help2_2\',\'width=660,height=420,status=yes,location=no,menubar=no,scrollbars=yes,resizable=yes,left=234,top=150,screenX=234,screenY=150\'); return false;">Подробнее о&nbsp;добавлении изображений</a> (откроется в новом окне).';
				else error_descr='В статью можно добавить только изображение в&nbsp;формате JPG, GIF, PNG. Файл с&nbsp;изображением должен обязательно иметь расширение *.jpg, *.gif или&nbsp;*.png (расширение строго в&nbsp;нижнем регистре).';
			var img3_val=document.getElementById('img3').value;
			if (img3_val!='')
				if (/\.(gif|jpg|png)\"?$/.test(img3_val))
					if (/\[image3(\s+alt=†[^†]*†)?\]/i.test(descr))
						descr=descr.replace(/\[image3(\s+alt=†([^†]*)†)?\]/i, '<img src="/iii/links_articles_img.gif" align="right" border="0" vspace="4" hspace="4" alt="$2">');
					else error_descr='Вы добавили файл с&nbsp;изображением. Теперь необходимо указать, где&nbsp;должно выводиться изображение. Это делается с&nbsp;помощью специального тэга <b>[image3&nbsp;alt=&quot;&quot;]</b>. Поставьте этот тэг в&nbsp;том месте текста статьи, где&nbsp;хотите, чтобы&nbsp;выводилось изображение. <a href="/links_articles_help2_2.html" target="_blank" onclick="window.open(\'/links_articles_help2_2.html\',\'links_articles_help2_2\',\'width=660,height=420,status=yes,location=no,menubar=no,scrollbars=yes,resizable=yes,left=234,top=150,screenX=234,screenY=150\'); return false;">Подробнее о&nbsp;добавлении изображений</a> (откроется в новом окне).';
				else error_descr='В статью можно добавить только изображение в&nbsp;формате JPG, GIF, PNG. Файл с&nbsp;изображением должен обязательно иметь расширение *.jpg, *.gif или&nbsp;*.png (расширение строго в&nbsp;нижнем регистре).';
			descr=descr.replace(/†/g, '&quot;');
			descr=descr.replace(/\n/g, '<br>');
			if (error_descr!='') document.getElementById('preview_article_div').innerHTML=error_descr;
			else
				if (nam!='') document.getElementById('preview_article_div').innerHTML+='<p>'+descr+'</p>';
				else document.getElementById('preview_article_div').innerHTML='<p>'+descr+'</p>';
		}
	}
}
function create_url() {
	var adres=document.getElementById('nam').value;
	adres=adres.toLowerCase();
	adres=adres.replace(/ /g,'_');
	adres=adres.replace(/а/g,'a');
	adres=adres.replace(/б/g,'b');
	adres=adres.replace(/в/g,'v');
	adres=adres.replace(/г/g,'g');
	adres=adres.replace(/д/g,'d');
	adres=adres.replace(/е/g,'e');
	adres=adres.replace(/ё/g,'yo');
	adres=adres.replace(/ж/g,'j');
	adres=adres.replace(/з/g,'z');
	adres=adres.replace(/и/g,'i');
	adres=adres.replace(/й/g,'y');
	adres=adres.replace(/к/g,'k');
	adres=adres.replace(/л/g,'l');
	adres=adres.replace(/м/g,'m');
	adres=adres.replace(/н/g,'n');
	adres=adres.replace(/о/g,'o');
	adres=adres.replace(/п/g,'p');
	adres=adres.replace(/р/g,'r');
	adres=adres.replace(/с/g,'s');
	adres=adres.replace(/т/g,'t');
	adres=adres.replace(/у/g,'u');
	adres=adres.replace(/ф/g,'f');
	adres=adres.replace(/х/g,'h');
	adres=adres.replace(/ц/g,'ts');
	adres=adres.replace(/ч/g,'ch');
	adres=adres.replace(/ш/g,'sh');
	adres=adres.replace(/щ/g,'sh');
	adres=adres.replace(/ъ/g,'');
	adres=adres.replace(/ы/g,'y');
	adres=adres.replace(/ь/g,'');
	adres=adres.replace(/э/g,'e');
	adres=adres.replace(/ю/g,'yu');
	adres=adres.replace(/я/g,'ya');
	adres+='.html';
	document.getElementById('url').value=adres;
}
var seltxt;
var selcr;
var selstart;
var selend;
var is_ff=0;
function promptcallback(val) {
	if (val && val!='') {
		if (is_ff==0) selcr.text='['+val+']'+seltxt+'[/]';
		else {
			var obj=document.getElementById('descr');
			obj.value = obj.value.substr(0,selstart)+'['+val+']'+seltxt+'[/]'+obj.value.substr(selend);
			obj.setSelectionRange(selend,selend);
		}
		preview_article();
	}
}
function insert_link() {
	var obj=document.getElementById('descr');
	if (document.selection) {
		selcr=document.selection.createRange();
		seltxt=selcr.text;
	}
	else if (typeof(obj.selectionStart)=='number')
		if (obj.selectionStart!=obj.selectionEnd) {
			is_ff=1;
			selstart = obj.selectionStart;
			selend = obj.selectionEnd;
			seltxt=obj.value.substr(selstart,selend-selstart);
		}
	if (seltxt=='') alert('Пожалуйста, выделите текст в поле "Текст статьи", который вы хотите сделать ссылкой.');
	else {
		IEprompt('Введите адрес ссылки, начинающийся с http://', 'http://');
	}
}

