
/**
* @version  0.0.7
* @require  fix()
* @date     2005-01-06 16:35:15
*/

var cfBorderColor     = '#000000';

var sAllWarnings = '';
var oFirstWrong;
var bIsWarnings = false;
var bAllGood 		= true;

function checkText( obj, komunikat ) {

	re = /\s/gi;
	checkT = obj.value.replace(re, "");

	if( checkT == '' ) {
		if( komunikat )
  		sAllWarnings += komunikat +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
	
return true;
} // end function checkText


function checkReal( obj ) {

	poprawnyRealname = /^[а-яА-Яa-zA-Z() \-\+]{5,}$/i;

	if( obj.value.search( poprawnyRealname ) == -1 ) {
		sAllWarnings += cfLangReal +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
} // end function checkRealname

function checkReal( obj ) {

	poprawnyVibor = /^[а-яА-Яa-zA-Z() \-\+]{5,}$/i;

	if( obj.value.search( poprawnyVibor ) == -1 ) {
		sAllWarnings += cfLangReal +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
} // end function checkRealname


//function checkNewcom( obj ) {
//
//	poprawnyNew_comment = /^[/nа-яА-Яa-zA-Z0-9() \-\+]{5,}$/i;
//
//	if( obj.value.search( poprawnyNew_comment ) == -1 ) {
//		sAllWarnings += cfLangNewcom +'\n';
//		if( obj.type != 'hidden' ){
//		obj.style.borderColor = 'red';
//      if( bIsWarnings == false )
//        oFirstWrong = obj;
//		}
//		bIsWarnings = true;
//		return false;
//	}
//	else if( obj.type != 'hidden' )
//  	obj.style.borderColor = cfBorderColor;
//return true;
//} // end function checkNewcom


//Тема письма
function checkZag( obj ) {

	poprawnyZagname = /^[а-яА-Яa-zA-Z0-9()\" \-\+]{5,}$/i;

	if( obj.value.search( poprawnyZagname ) == -1 ) {
		sAllWarnings += cfLangZag +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
} // end function checkZagname

//Телефон
function checkTelefon( obj ) {
	if(obj.value.length==0) return true; //Если длинна текста =0, позволяем отправить форму 
	re = /\s/gi;
	check = obj.value.replace( re, "" );

	//poprawnyTelefon = /^[0-9]+([+\\.-])+$/i;
	//poprawnyTelefon = /^(\()?(787|939)(\)|-)?([0-9]{3})(-)?([0-9]{4}|[0-9]{4})$/i;
	//poprawnyTelefon = /(\+)?([-\._\(\) ]?[\d]{3,20}[-\._\(\) ]?){2,12}$/i;
		poprawnyTelefon = /\+?\d{0,3}(\([\d-]{3,6}\))?[\d-]{3,20}$/i;

	
	if ( check.search( poprawnyTelefon ) == -1 ) {
		sAllWarnings += cfLangTelef +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
}

//При этом получается, что файл нужен обязательно, а на формат не реагирует. И пусть форма работает если нет файла, а если есть то проверка по формату.

//function test(inp) {
 //if(inp.value!="" && !/\.(jpg|doc|zip|rar)$/.test(inp.value)) { 
 //  sAllWarnings += cfWrongValue +'\n';  //alert("Не допустимый тип файла!");
 // if( obj.type != 'hidden' ){
 /// 		obj.style.borderColor = 'red';
//      if( bIsWarnings == false )
//        oFirstWrong = obj;
//		}
//		bIsWarnings = true;
//		return false;
//	}
//	else if( obj.type != 'hidden' )
  //	obj.style.borderColor = cfBorderColor;
//return true;
//} 



function checkEmail( obj ) {
	if(obj.value.length==0) return true; //Если длинна текста =0, позволяем отправить форму 
	re = /\s/gi;
	check = obj.value.replace( re, "" );

	//if (  poprawnyEmail  != "" ) {
	poprawnyEmail = /^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9_\.-]+([\.][a-z]{2,4}))+$/i;
	
	if ( check.search( poprawnyEmail ) == -1 ) {
		sAllWarnings += cfLangMail +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
	else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
//}
} // end function checkEmail




function checkTxt( obj, min, komunikat ) {
	if( !min )
		min = 6;

	var re = /\s/gi;
	var check = obj.value.replace( re, "" );

	if( check.length < min ) {
		if( komunikat )
      sAllWarnings += komunikat +'\n';
    else
      sAllWarnings += cfTxtToShort +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
  else if( obj.type != 'hidden' )
  	obj.style.borderColor = cfBorderColor;
return true;
} // end function checkTxt


function checkCheck( obj, check, znak, komunikat, option ) {
  if( znak == '=' )
    znak = '==';

  if( option == 'string' )
    // dla danych typu string
  	eval ( 'good = ( "'+ obj.value +'" '+ znak +' "'+ check.value +'" );' );
  else
    // dla danych liczbowych
  	eval ( 'good = ( '+ +obj.value +' '+ znak +' '+ +check.value +' );' );



	if( good == true ) {
    if( obj.type != 'hidden' )
     obj.style.borderColor = cfBorderColor;
  }
  else{
		if( komunikat )
      sAllWarnings += komunikat +'\n';
    else
      sAllWarnings += cfWrongValue +'\n';
		if( obj.type != 'hidden' ){
  		obj.style.borderColor = 'red';
      if( bIsWarnings == false )
        oFirstWrong = obj;
		}
		bIsWarnings = true;
		return false;
	}
return true;
} // end function checkTxt









function checkForm( form, tablica ) {

  sAllWarnings 	= '';
  bIsWarnings 	= false;
  bAllGood			= true;
	oFirstWrong 	= '';
  
  for( i in tablica ) {

		if( !tablica[i][1] || tablica[i][1] == 'simple' ) {
			bAllGood = checkText( form[tablica[i][0]], tablica[i][2] );
		}
		else if( ( tablica[i][1] == 'real' ) && ( ( tablica[i][2] == 'false' && form[tablica[i][0]].value ) || !tablica[i][2] ) ) {
			bAllGood = checkReal( form[tablica[i][0]] );
		}
		else if( ( tablica[i][1] == 'zag' ) && ( ( tablica[i][2] == 'false' && form[tablica[i][0]].value ) || !tablica[i][2] ) ) {
			bAllGood = checkZag( form[tablica[i][0]] );
		}
		//else if( ( tablica[i][1] == 'newcom' ) && ( ( tablica[i][2] == 'false' && form[tablica[i][0]].value ) || !tablica[i][2] ) ) {
		//	bAllGood = checkNewcom( form[tablica[i][0]] );
		//}
		else if( ( tablica[i][1] == 'email' ) && ( ( tablica[i][2] == 'false' && form[tablica[i][0]].value ) || !tablica[i][2] ) ) {
			bAllGood = checkEmail( form[tablica[i][0]] );
		}
		else if( ( tablica[i][1] == 'telefon' ) && ( ( tablica[i][2] == 'false' && form[tablica[i][0]].value ) || !tablica[i][2] ) ) {
			bAllGood = checkTelefon( form[tablica[i][0]] );
		}
		else if( ( tablica[i][1] == 'txt' ) && ( ( tablica[i][4] == 'false' && form[tablica[i][0]].value ) || !tablica[i][4] ) ) { 		// opis
			bAllGood = checkTxt( form[tablica[i][0]], tablica[i][2], tablica[i][3] );
		}
		else if( ( tablica[i][1] == 'check' ) && ( ( tablica[i][4] == 'false' && ( form[tablica[i][0][0]].value && form[tablica[i][0][1]].value ) ) || !tablica[i][4] ) ) { 		// sprawdzanie rownosci itp
			bAllGood = checkCheck( form[tablica[i][0][0]], form[tablica[i][0][1]], tablica[i][2], tablica[i][3] );
		}
		

	} // end for

  if( bIsWarnings == true ) {
		sAllWarnings = cfLangNoWord + '\n' + sAllWarnings;
    alert ( sAllWarnings );
    if( oFirstWrong )
      oFirstWrong.focus();
    return false;
	}
return true;
} // end function checkForm

