//--------------------------
function check_submit(){
	var args=check_submit.arguments;
        var error = false;
        for (i=1; i<(args.length); i+=1) {
		if (!document.forms[args[0]].elements[ args[i] ].value){
	       	        alert("Не все поля заполнены");
			return false;
		}

		if (args[i]=='email' && document.forms[args[0]].elements['email'].value && !checkmail(document.forms[args[0]].elements['email'].value)) {
               		alert("Вы ввели неверный E-mail");
	                return false;
	        }

	}

	return true;
}

//--------------------------
function checkmail(email) 
{ 
  if (email=="") return(false) 
  if (email.indexOf(".")==-1) return(false) 
  if (email.indexOf(".")==email.length-1) return(false) 
  dog=email.indexOf("@"); 
  if (dog==-1) return(false) 
  if ((dog<1)||(dog>email.length-5)) return(false) 
  if ((email.charAt(dog-1)=='.')||(email.charAt(dog+1)=='.')) return(false)
  return(true) 
} 

/*********************** BBC ********************************/

// bbCode control by
// subBlue design
// www.subBlue.com

// Startup variables
var imageTag = false;
var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav  = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));

var is_win   = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac    = (clientPC.indexOf("mac")!=-1);


// Helpline messages
b_help = "Жирный текст: [b]текст[/b]  (alt+b)";
i_help = "Наклонный текст: [i]текст[/i]  (alt+i)";
u_help = "Подчёркнутый текст: [u]текст[/u]  (alt+u)";
e_help = "Электронная почта: [email]текст[/email]  (alt+e)";
c_help = "Код (программа): [code]код[/code]  (alt+c)";
l_help = "Список: [list]текст[/list] (alt+l)";
o_help = "Нумерованный список: [list=]текст[/list]  (alt+o)";
p_help = "Вставить картинку: [img]http://image_url[/img]  (alt+p)";
w_help = "Вставить ссылку: [url]http://url[/url] или [url=http://url]текст ссылки[/url]  (alt+w)";
a_help = "Закрыть все открытые теги bbCode";
s_help = "Цвет шрифта: [color=red]текст[/color]  Подсказка: можно использовать color=#FF0000";
f_help = "Размер шрифта: [size=x-small]маленький текст[/size]";

// Define the bbCode tags
bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[email]','[/email]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
imageTag = false;

// Shows the help messages in the helpline window
function helpline(help,frmBB) {
	frmBB.helpbox.value = eval(help + "_help");
}


// Replacement for arrayname.length property
function getarraysize(thearray) {
	for (i = 0; i < thearray.length; i++) {
		if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
			return i;
		}
	return thearray.length;
}

// Replacement for arrayname.push(value) not implemented in IE until version 5.5
// Appends element to the array
function arraypush(thearray,value) {
	thearray[ getarraysize(thearray) ] = value;
}

// Replacement for arrayname.pop() not implemented in IE until version 5.5
// Removes and returns the last element of an array
function arraypop(thearray) {
	thearraysize = getarraysize(thearray);
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}


function checkBBForm(edtBB) {

	formErrors = false;    

	if (edtBB.value.length < 2) {
		formErrors = "Ошибка";
	}

	if (formErrors) {
		alert(formErrors);
		return false;
	} else {
		bbstyle(-1);
		//formObj.preview.disabled = true;
		//formObj.submit.disabled = true;
		return true;
	}
}

function bbfontstyle(bbopen, bbclose,edtBB) {
	if ((clientVer >= 4) && is_ie && is_win) {
		theSelection = document.selection.createRange().text;
		if (!theSelection) {
			edtBB.value += bbopen + bbclose;
			edtBB.focus();
			return;
		}
		document.selection.createRange().text = bbopen + theSelection + bbclose;
		edtBB.focus();
		return;
	} else {
		edtBB.value += bbopen + bbclose;
		edtBB.focus();
		return;
	}
	storeCaret(document.post.message);
}


function bbstyle(bbnumber,edtBB,frmBB) {

	donotinsert = false;
	theSelection = false;
	bblast = 0;

	if (bbnumber == -1) { // Close all open tags & default button names
		while (bbcode[0]) {
			butnumber = arraypop(bbcode) - 1;
			edtBB.value += bbtags[butnumber + 1];
			buttext = eval('frmBB.addbbcode' + butnumber + '.value');
			eval('frmBB.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
		}
		imageTag = false; // All tags are closed including image tags :D
		edtBB.focus();
		return;
	}

	if ((clientVer >= 4) && is_ie && is_win)
		theSelection = document.selection.createRange().text; // Get text selection
		
	if (theSelection) {
		// Add tags around selection
		document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
		edtBB.focus();
		theSelection = '';
		return;
	}
	
	// Find last occurance of an open tag the same as the one just clicked
	for (i = 0; i < bbcode.length; i++) {
		if (bbcode[i] == bbnumber+1) {
			bblast = i;
			donotinsert = true;
		}
	}

	if (donotinsert) {		// Close all open tags up to the one just clicked & default button names
		while (bbcode[bblast]) {
				butnumber = arraypop(bbcode) - 1;
				edtBB.value += bbtags[butnumber + 1];
				buttext = eval('frmBB.addbbcode' + butnumber + '.value');
				eval('frmBB.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
				imageTag = false;
			}
			edtBB.focus();
			return;
	} else { // Open tags
	
		if (imageTag && (bbnumber != 14)) {		// Close image tag before adding another
			edtBB.value += bbtags[15];
			lastValue = arraypop(bbcode) - 1;	// Remove the close image tag from the list
			frmBB.addbbcode14.value = "Img";	// Return button back to normal state
			imageTag = false;
		}
		
		// Open tag
		edtBB.value += bbtags[bbnumber];
		if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
		arraypush(bbcode,bbnumber+1);
		eval('frmBB.addbbcode'+bbnumber+'.value += "*"');
		edtBB.focus();
		return;
	}
	storeCaret(edtBB);
}



//****************************************************************************//

function leapYear(year) {
        if (year % 4 == 0) // basic rule
                return true // is leap year
        return false // is not leap year
}

function getDays(month, year) {
        // create array to hold number of days in each month
        var ar = new Array(13)
        ar[1] = 31 // January
        ar[2] = (leapYear(year)) ? 29 : 28 // February
        ar[3] = 31 // March
        ar[4] = 30 // April
        ar[5] = 31 // May
        ar[6] = 30 // June
        ar[7] = 31 // July
        ar[8] = 31 // August
        ar[9] = 30 // September
        ar[10] = 31 // October
        ar[11] = 30 // November
        ar[12] = 31 // December

        // return number of days in the specified month (parameter)
        return ar[month]
}


function getMonthName(month) {
        // create array to hold name of each month
        var ar = new Array(13)
        ar[0]  = "-"
        ar[1]  = "января"
        ar[2]  = "февраля"
        ar[3]  = "марта"
        ar[4]  = "апреля"
        ar[5]  = "мая"
        ar[6]  = "июня"
        ar[7]  = "июля"
        ar[8]  = "августа"
        ar[9]  = "сентября"
        ar[10] = "октября"
        ar[11] = "ноября"
        ar[12] = "декабря"

        // return name of specified month (parameter)
        return ar[month]
}

function PublicDate(form_name, pref,dd,mm,yy,empty){

	var today = new Date();
	if (!empty){	
		dd=dd?dd:today.getDate();
		mm=mm?mm:today.getMonth()+1;
		yy=yy?yy:today.getYear();
	}

	if (form_name){

		var str_sel_mnth="<select name='"+pref+"_mnth' onChange=javascript:PublicDate('"+form_name+"','"+pref+"',document.forms."+form_name+"."+pref+"_day[document.forms."+form_name+"."+pref+"_day.selectedIndex].value,document.forms."+form_name+"."+pref+"_mnth[document.forms."+form_name+"."+pref+"_mnth.selectedIndex].value,document.forms."+form_name+"."+pref+"_year[document.forms."+form_name+"."+pref+"_year.selectedIndex].value,"+empty+")>";
		if (empty) str_sel_mnth+="<option value=''>&#150;</option>";
		for (i=1; i<=12; i+=1) {
			str_sel_mnth+="<option value="+i;
			if (i==mm){str_sel_mnth+=" selected " }
        		str_sel_mnth+=">"+getMonthName(i)+"</option>"
		}
		str_sel_mnth+="</select>";

		var days;
		if (mm){
			if (!yy)days=getDays(mm, 2000);
			else days=getDays(mm, yy);
		}
		else days=31;
		var str_sel_day="<select name='"+pref+"_day'>";
		if (empty) str_sel_day+="<option value=''>&#150;</option>";

		for (i=1; i<=days; i+=1) {
			str_sel_day+="<option value='"+i+"'";
			if (i==dd){str_sel_day+=" selected " }
			str_sel_day+=">"+i+"</option>"
		}
		str_sel_day+="</select>";
		var from_year=1950;
//		if (yy<from_year)from_year=yy;
		var str_sel_year="<select name='"+ pref+"_year' onChange=javascript:PublicDate('"+form_name+"','"+pref+"',document.forms."+form_name+"."+pref+"_day[document.forms."+form_name+"."+pref+"_day.selectedIndex].value,document.forms."+form_name+"."+pref+"_mnth[document.forms."+form_name+"."+pref+"_mnth.selectedIndex].value,document.forms."+form_name+"."+pref+"_year[document.forms."+form_name+"."+pref+"_year.selectedIndex].value,"+empty+")>";
		if (empty) str_sel_year+="<option value=''>&#150;</option>";

		for (i=from_year; i<=today.getYear(); i+=1) {
			str_sel_year+="<option value="+i;
			if (i==yy){str_sel_year+=" selected " }
			str_sel_year+=">"+i+"</option>"
		}
		str_sel_year+="</select>";

		document.all[pref].innerHTML=str_sel_day+str_sel_mnth+str_sel_year;

		//alert(document.all[pref].innerHTML);

	}
}
