function utf8_encode( s )
{
  return unescape( encodeURIComponent( s ) );
}

function utf8_decode( s )
{
  return decodeURIComponent( escape( s ) );
}


function mark(elem, value) {
	if(!value){
		elem.style['border'] = '2px solid #f00';
		elem.style['margin'] = '1px -1px 6px -1px';
	}
	else{
		elem.style['border'] = '1px solid #8D8F90';
		elem.style['margin'] = '2px 0 7px 0px';
	}
}

function checkField(elem){
	if(elem.value == ""){
		mark(elem, false);
		return false;
	}
	else{
		mark(elem, true);
		return true;
	}
}

function checkLetters(elem){
	regEx=/^[\x41-\x5a\x61-\x7a\xc0-\xff\xa0\x20\-]*$/;
	if(checkField(elem)) {
		if(!regEx.test(elem.value)){
			mark(elem, false);
			return 1;
		}
		else{
			mark(elem, true);
			return 0;
		}
	}
	return 1;
}

function checkNumbers(elem){
	regEx=/^[\x30-\x39\xa0\x20\-\/]*$/;
	if(checkField(elem)) {
		if(!regEx.test(elem.value)){
			mark(elem, false);
			return 1;
		}
		else{
			mark(elem, true);
			return 0;
		}
	}
	return 1;
}

function checkNumbersString(value){
	regEx=/^[\x30-\x39]*$/;
	if(!regEx.test(value)){
		return 1;
	}
	else{
		return 0;
	}
}

function checkLettersAndNumbers(elem){
	regEx=/^[\x30-\x39\x41-\x5a\x61-\x7a\xc0-\xff\x20\-]*$/;
	if(checkField(elem)) {
		if(!regEx.test(elem.value)){
			mark(elem, false);
			return 1;
		}
		else{
			mark(elem, true);
			return 0;
		}
	} 
	return 1;
}

function checkCheckbox(elem){
	if(!elem.checked){
		elem.parentNode.style['color'] = '#56c4e3';
		return 1;
	}
	else{
		elem.parentNode.style['color'] = '#d9d9d9';
		return 0;
	}
}

function checkEqual(elem1, elem2){
	if(checkField(elem1) & checkField(elem2)) {
		if(elem1.value === elem2.value){
			mark(elem1, true);
			mark(elem2, true);
			return 0;
		}
		else{
			mark(elem1, false);
			mark(elem2, false);
			return 1;
			
		}	
	}
	return 1;
}


