/*
* Really easy field validation with Prototype
* http://tetlaw.id.au/view/javascript/really-easy-field-validation
* Andrew Tetlaw
* Version 1.5.4.1 (2007-01-05)
* 
* Copyright (c) 2007 Andrew Tetlaw
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* 
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
* 
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
* 

THIS IS A COPY WHICH IS SLIGHTLY DIFFERENT FROM THE ORIGINAL AND IT IS sligthly copy righted to GEORGE DONEV :-)
you have a different error handling methods, like creating a floating div fr the errors, apending new functions, etc ... still in beta version though. 

i suggest that you do not use this since ... it still needs a lot of fixes


*/
var Validator = Class.create();

Validator.prototype = {
	initialize : function(className, error, test, options) {
		if(typeof test == 'function'){
			this.options = $H(options);
			this._test = test;
		} else {
			this.options = $H(test);
			this._test = function(){return true};
		}
		this.error = error || 'Validation failed.';
		this.className = className;
	},
	test : function(v, elm) {
		return (this._test(v,elm) && this.options.all(function(p){
			return Validator.methods[p.key] ? Validator.methods[p.key](v,elm,p.value) : true;
		}));
	}
}
Validator.methods = {
	pattern : function(v,elm,opt) {return Validation.get('IsEmpty').test(v) || opt.test(v)},
	minLength : function(v,elm,opt) {return v.length >= opt},
	maxLength : function(v,elm,opt) {return v.length <= opt},
	min : function(v,elm,opt) {return v >= parseFloat(opt)}, 
	max : function(v,elm,opt) {return v <= parseFloat(opt)},
	notOneOf : function(v,elm,opt) {return $A(opt).all(function(value) {
		return v != value;
	})},
	oneOf : function(v,elm,opt) {return $A(opt).any(function(value) {
		return v == value;
	})},
	is : function(v,elm,opt) {return v == opt},
	isNot : function(v,elm,opt) {return v != opt},
	equalToField : function(v,elm,opt) {return v == $F(opt)},
	notEqualToField : function(v,elm,opt) {return v != $F(opt)},
	include : function(v,elm,opt) {return $A(opt).all(function(value) {
		return Validation.get(value).test(v,elm);
	})}
}
/*TVA TUKA E MOJO KOD ZA AUTO TAB DO DEKA SO E MARKIRAN:*/
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode; 
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
  }
  return true;
}
/* DO TUKA*/

/* tuka pisheme kodo za zabnata tablica...*/
function mlechen_zyb(zyb_name) {
if (zyb_name.value == '') {
zyb_name.value = 1;
}
else if (zyb_name.value == 1) {
zyb_name.value = '';
}
}

function m_zyb_bg(zyb_td) {
var bg = document.getElementById(zyb_td);
if (bg.className == 'zyben_statut_td1') {
bg.className ='zyben_statut_td2';
}
else if (bg.className == 'zyben_statut_td2') {
bg.className ='zyben_statut_td1';
}
}

/* DO TUKA*/

var Validation = Class.create();

Validation.prototype = {
	initialize : function(form, options){
		this.options = Object.extend({
			onSubmit : true,
			stopOnFirst : false,
			immediate : false,
			focusOnError : true,
			useTitles : false,
			onFormValidate : function(result, form) {},
			onElementValidate : function(result, elm) {}
		}, options || {});
		this.form = $(form);
		if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
		if(this.options.immediate) {
			var useTitles = this.options.useTitles;
			var callback = this.options.onElementValidate;
			Form.getElements(this.form).each(function(input) { // Thanks Mike!
				Event.observe(input, 'blur', function(ev) { Validation.validate(Event.element(ev),{useTitle : useTitles, onElementValidate : callback}); });
			});
		}
	},
	onSubmit :  function(ev){
		$('submit').disable();
		if(!this.validate()) Event.stop(ev);
	},
	validate : function() {
		var result = false;
		var useTitles = this.options.useTitles;
		var callback = this.options.onElementValidate;
		if(this.options.stopOnFirst) {
			result = Form.getElements(this.form).all(function(elm) { return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback}); });
		} else {
			result = Form.getElements(this.form).collect(function(elm) { return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback}); }).all();
		}
		if(!result && this.options.focusOnError) {
			Form.getElements(this.form).findAll(function(elm){return $(elm).hasClassName('validation-failed')}).first().focus()
		}
		this.options.onFormValidate(result, this.form);
		return result;
	},
	reset : function() {
		Form.getElements(this.form).each(Validation.reset);
	}
}

Object.extend(Validation, {
	validate : function(elm, options){
		options = Object.extend({
			useTitle : false,
			onElementValidate : function(result, elm) {}
		}, options || {});
		elm = $(elm);
		var cn = elm.classNames();
		return result = cn.all(function(value) {
			var test = Validation.test(value,elm,options.useTitle);
			options.onElementValidate(test, elm);
			return test;
		});
	},
	test : function(name, elm, useTitle) {
		
		var v = Validation.get(name);
		var prop = '__advice'+name.camelize();
		try {
		if(Validation.isVisible(elm) && !v.test($F(elm), elm)) {
			var element_id =  Validation.getElmID(elm);
			$('submit').removeAttribute('disabled');
			if(!elm[prop]) {
					if (!$('errors_div')) {
					create_error_div();
					}
				var advice = Validation.getAdvice(name, elm);
				//count how manuy required fields you have...
				if(advice == null) {
					var errorMsg = useTitle ? ((elm && elm.title) ? elm.title : v.error) : v.error;
					advice = '<div class="validation-advice" id="advice-' + name + '-' + Validation.getElmID(elm) +'" style="display:block">' + errorMsg + '</div>'; 
					if (name == "required") {
						if (!$('advice-required-field')) {
							advice = '<div class="validation-advice" id="advice-required-field" style="display:block">' + errorMsg + '</div>';	
							switch (elm.type.toLowerCase()) {
							case 'checkbox':
							case 'radio':
								var p = elm.parentNode;
								if(p) {
									new Insertion.Bottom($('error_screen_middle'), advice);
								} else {
									new Insertion.Bottom($('error_screen_middle'), advice);
								}
								break;
							default:
								new Insertion.Bottom($('error_screen_middle'), advice);
							}
						  }
						}
						else {
								switch (elm.type.toLowerCase()) {
									case 'checkbox':
									case 'radio':
										var p = elm.parentNode;
										if(p) {
											new Insertion.Bottom($('error_screen_middle'), advice);
										} else {
											new Insertion.Bottom($('error_screen_middle'), advice);
										}
										break;
									default:
										new Insertion.Bottom($('error_screen_middle'), advice);
								}
						}
					
					advice = Validation.getAdvice(name, elm);
				}
					
			}
			//elm[prop] = true; - tva tuka sprechuva
			elm.removeClassName('validation-passed');
			elm.addClassName('validation-failed');
			return false;
		} else {
			var advice = Validation.getAdvice(name, elm);
			if(advice != null) advice.hide();
			elm[prop] = '';
			elm.removeClassName('validation-failed');
			elm.addClassName('validation-passed');
			return true;
		}
		} catch(e) {
			throw(e)
		}
	},
	isVisible : function(elm) {
		while(elm.tagName != 'BODY') {
			if(!$(elm).visible()) return false;
			elm = elm.parentNode;
		}
		return true;
	},
	getAdvice : function(name, elm) {
		return $('advice-' + name + '-' + Validation.getElmID(elm)) || $('advice-' + Validation.getElmID(elm));
	},
	getElmID : function(elm) {
		return elm.id ? elm.id : elm.name;
	},
	reset : function(elm) {
		elm = $(elm);
		var cn = elm.classNames();
		cn.each(function(value) {
			var prop = '__advice'+value.camelize();
			if(elm[prop]) {
				var advice = Validation.getAdvice(value, elm);
				advice.hide();
				elm[prop] = '';
			}
			elm.removeClassName('validation-failed');
			elm.removeClassName('validation-passed');
		});
	},
	add : function(className, error, test, options) {
		var nv = {};
		nv[className] = new Validator(className, error, test, options);
		Object.extend(Validation.methods, nv);
	},
	addAllThese : function(validators) {
		var nv = {};
		$A(validators).each(function(value) {
				nv[value[0]] = new Validator(value[0], value[1], value[2], (value.length > 3 ? value[3] : {}));
			});
		Object.extend(Validation.methods, nv);
	},
	get : function(name) {
		return  Validation.methods[name] ? Validation.methods[name] : Validation.methods['_LikeNoIDIEverSaw_'];
	},
	methods : {
		'_LikeNoIDIEverSaw_' : new Validator('_LikeNoIDIEverSaw_','',{})
	}
});

Validation.add('IsEmpty', '', function(v) {
				return  ((v == null) || (v.length == 0)); // || /^\s+$/.test(v));
			});
Validation.add('isValidEgn', '', function(v) {
     var egneto = new EGN(v);								  
	return !egneto.isValid(); // || /^\s+$/.test(v));
});
Validation.add('iSvalidzybenstatuttd', '', function(v) {  								  
	return !match_statusi(v); // || /^\s+$/.test(v));
});

Validation.add('iSvalidusername', '', function(v) {  								  
	return !match_username(v); // || /^\s+$/.test(v));
});
Validation.add('passwordmatch', '', function(v) {  								  
	return !match_passwords(v); // || /^\s+$/.test(v));
});
Validation.add('iSlpkValid', '', function(v) {  								  
	return !check_lpk_len(v); // || /^\s+$/.test(v));
});
Validation.add('iSvalidPrice', '', function(v) {  								  
	return !match_price(v); // || /^\s+$/.test(v));
});
Validation.add('iSvalidPkodZyb', '', function(v) {  								  
	return !match_kod_zyb(v); // || /^\s+$/.test(v));
});



Validation.addAllThese([
	['required', 'Полето/та в червено са задължителни!', function(v) {
				return !Validation.get('IsEmpty').test(v);
			}],
	['egn', 'Грешно ЕГН!', function(v) {
				return !Validation.get('isValidEgn').test(v);
			}],
	['username', 'Моля използвайте само букви на латиница, - или _, най-малко 6 символа!', function(v) {
				return !Validation.get('iSvalidusername').test(v) && /^[a-zA-Z0-9\_-]+$/.test(v);
			}],
	['password', 'Моля използвайте само букви на латиница, - или _, най-малко 6 символа!', function(v) {
				return !Validation.get('iSvalidusername').test(v) && /^[a-zA-Z0-9\_-]+$/.test(v);
			}],
	['password2', 'Двете пароли се различават!', function(v) {
				return !Validation.get('passwordmatch').test(v);
			}],
	['zyben_statut_td', 'Грешен код зъбен статус!', function(v) {
				return !Validation.get('iSvalidzybenstatuttd').test(v);
			}],
	['kod_zyb', 'Невалиден код зъб!', function(v) {
				return !Validation.get('iSvalidPkodZyb').test(v);
			}],
	['valid_lpk', 'Невалиден ЛПК номер!', function(v) {
				return !Validation.get('iSlpkValid').test(v);
			}],
	['validate-number', 'Моля въведете валиден номер, без празни места или символи, различни от Цифри. Ползвайте точка за нецели стойности.', function(v) {
				return !Validation.get('iSvalidPrice').test(v);;
			}],
	['required1b1', 'Въведения Номер на клиника е невалиден!  Използвали сте различни символи от Цифри. Моля въведете правилния код на болицата	от меню "Настройки".', function(v) {
				return Validation.get('IsEmpty').test(v) || (!isNaN(v) && !/^\s+$/.test(v));
			}],
	['required1b', 'Моля въведете правилно ЕГН!', function(v) {
				return Validation.get('IsEmpty').test(v) ||  !/[^\d]/.test(v);
			}],
	['validate-alpha', 'Въвели сте различни символи от букви. Моля попълнете полето и ползвайте само букви а-я, А-Я a-z A-Z!', function (v) {
				return Validation.get('IsEmpty').test(v) ||  /^[а-яА-Яa-zA-Z\ ]+$/.test(v)
			}],
	['validate-alphanum', 'Въвели сте различни символи от букви и Цифри. Моля попълнете полето и ползвайте само букви а-я, А-Я и 1,2,3,..Цифри!', function(v) {
				return Validation.get('IsEmpty').test(v) ||  !/\W/.test(v)
			}],
	['validate-num', 'Имате въведено символи различни от Цифри. Моля попълнете полето и ползвайте само цифри 0,1,2,3,..!', function(v) {       return  Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v);
			}],
	['validate-date', 'Please enter a valid date.', function(v) {
				var test = new Date(v);
				return Validation.get('IsEmpty').test(v) || !isNaN(test);
			}],
	['validate-email', 'Моля въведете правилен EMAIL!', function (v) {
				return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
			}],
	['validate-url', 'Please enter a valid URL.', function (v) {
				return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
			}],
	['validate-date-au', 'Моля въведете датата във формат дд/мм/гггг.', function(v) {
				if(Validation.get('IsEmpty').test(v)) return true;
				var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
				if(!regex.test(v)) return false;
				var d = new Date(v.replace(regex, '$2/$1/$3'));
				return ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) && 
							(parseInt(RegExp.$1, 10) == d.getDate()) && 
							(parseInt(RegExp.$3, 10) == d.getFullYear() );
			}],
	['validate-currency-dollar', 'Please enter a valid $ amount. For example $100.00 .', function(v) {
				// [$]1[##][,###]+[.##]
				// [$]1###+[.##]
				// [$]0.##
				// [$].##
				return Validation.get('IsEmpty').test(v) ||  /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
			}],
	['validate-selection', 'Please make a selection', function(v,elm){
				return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v);
			}],
	['validate-one-required', 'Please select one of the above options.', function (v,elm) {
				var p = elm.parentNode;
				var options = p.getElementsByTagName('INPUT');
				return $A(options).any(function(elm) {
					return $F(elm);
				});
			}]
]);


/* проверка на егн*/
function EGN(egnNum)
{
this.egnNum = egnNum;
this.monthBorn = this.getNums(this.egnNum, 2, 2);
this.dayBorn = this.getNums(this.egnNum, 4, 2);
this.regionNum = this.getNums(this.egnNum, 6, 3);
this.dateBorn = this.getDateBorn();
}

EGN.prototype.getDateBorn = function ()
{
var year_flag = 1900;

if (this.monthBorn > 40) year_flag += 100;
else if (this.monthBorn > 20) year_flag -= 100;

this.monthBorn = (this.monthBorn % 20) - 1;
return new Date(year_flag + this.getNums(this.egnNum, 0, 2), this.monthBorn, this.dayBorn);
}

EGN.prototype.getNums = function (str, start, simbolNum)
{
return (str.substr(start, simbolNum) * 1);
}

EGN.prototype.isValid = function ()
{
if (!(/^\d{10}$/.test(this.egnNum)) || new Date().getTime() < this.dateBorn.getTime() || this.dateBorn.getMonth() != this.monthBorn || this.dateBorn.getDate() != this.dayBorn)
{
return false;
}

var flagNum = new Array(2, 4, 8, 5, 10, 9, 7, 3, 6, 0);
var lastNum = 0;
for (i = 0; i < flagNum.length; ++i)
{
var curNum = this.getNums(this.egnNum, i, 1);
lastNum += flagNum[i] * curNum;
}
if ((lastNum % 11) % 10 != curNum)
return false;

return true;
}

EGN.prototype.getSex = function ()
{
return (this.getNums(this.egnNum, 8, 1) % 2 == 0) ? 'мъж' : 'жена';
}

EGN.prototype.getYearOld = function ()
{
var curently = new Date();
var diff = Math.floor((curently.getTime() - this.dateBorn.getTime()) / (1000 * 60 * 60 * 24));
diff -= Math.floor((curently.getFullYear() - this.dateBorn.getFullYear()) / 4);
return Math.floor(diff / 365);
}


EGN.prototype.regionName = [
['Благоевград', 43],
['Бургас', 93],
['Варна', 139],
['Велико Търново', 169],
['Видин', 183],
['Враца', 217],
['Габрово', 233],
['Кърджали', 281],
['Кюстендил', 301],
['Ловеч', 319],
['Монтана', 341],
['Пазарджик', 377],
['Перник', 395],
['Плевен', 435],
['Пловдив', 501],
['Разград', 527],
['Русе', 555],
['Силистра', 575],
['Сливен', 601],
['Смолян', 623],
['София - град', 721],
['София - окръг', 751],
['Стара Загора', 789],
['Добрич (Толбухин)', 821],
['Търговище', 843],
['Хасково', 871],
['Шумен', 903],
['Ямбол', 925],
['Друг/Неизвестен', 999]
]

EGN.prototype.getRegionIndex = function ()
{
for (i = 0; i < this.regionName.length; ++i)
{
if (this.regionName[i][1] >= this.regionNum)
{
return i;
}
}
}

EGN.prototype.getRegionName = function ()
{
return this.regionName[this.getRegionIndex()][0];
}



function checkEgn()
{
var obj = document.getElementById('egn_info');
var egn = new EGN(document.forms['form1'].elements['pac_egn'].value);
if (!egn.isValid())
{
return false;
}	
else {
document.form1.pac_birth_year.value=egn.dateBorn.getFullYear();
document.form1.pac_birth_date.value=egn.dateBorn.getDate();
document.form1.pac_birth_month.value=egn.dateBorn.getMonth()+1;

return true;
}
}
function checkEgn1() {
var egn = new EGN($F('pac_egn'));
var egnLength = $F('pac_egn').length;
if (egnLength == 10) {
if (!egn.isValid()) {
return false;
}	
else {
document.form1.pac_birth_year.value=egn.dateBorn.getFullYear();
document.form1.pac_birth_date.value=egn.dateBorn.getDate();
document.form1.pac_birth_month.value=egn.dateBorn.getMonth()+1;
return true;
}
}
}



function today_date() {
var today = new Date()
var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = "/"
var today1 = month + s + day + s + year;
return today1;
}

function deinost1(dei1, dei1_txt) {
if (dei1 == 101) {
dei1_txt.value = 'обстоен преглед';
}
else if (dei1 == 102) {
dei1_txt.value = 'специализиран обстоен преглед';
}
else if (dei1 == 103) {
dei1_txt.value = 'обстоен преглед за бременна';
}
else if (dei1 == 301) {
dei1_txt.value = 'обтурация';
}
else if (dei1 == 332) {
dei1_txt.value = 'Лечение на пул. пер. на временен зъб';
}
else if (dei1 == 333) {
dei1_txt.value = 'Лечение на пул. пер. на постоянен зъб';
}
else if (dei1 == 508) {
dei1_txt.value = 'екстракция временен зъб';
}
else if (dei1 == 509) {
dei1_txt.value = 'екстракция постоянен зъб';
}
else if (dei1 == 510) {
dei1_txt.value = 'екстракция на дълбоко фрак. зъб';
}
else if (dei1 == 520) {
dei1_txt.value = 'Инцизия в съед. ложи вкл. анестезия';
}
else if (dei1 == 544) {
dei1_txt.value = 'контролен преглед';
}
else if (dei1 == 901) {
dei1_txt.value = 'обща анестезия в амбул. условия';
}
else if (dei1 == 902) {
dei1_txt.value = 'обща анестезия в болнични услови';
}
else if (dei1 == 903) {
dei1_txt.value = '24 часа наблюдение';
}
else {
	dei1_txt.value = '';
}
}
function show_egn_search() {
var egn_input_contact = parent.frames['egncheck'].document.egncheck.egn.value;
var egn_input_contact = egn_input_contact.length;
var egn_2 = new EGN(document.forms['form1'].elements['pac_egn'].value);
var submit_btn = parent.frames['egncheck'].document.getElementById('submit_p');
if (egn_input_contact == 10 && egn_2.isValid()) {
submit_btn.style.display = "block";
}
else {submit_btn.style.display = "none";}
}

function iframe_resize() {
var egn_2 = new EGN(document.forms['form1'].elements['pac_egn'].value);
var egn_input_contact = parent.frames['egncheck'].document.egncheck.egn.value;
var inner_frame_value = parent.frames['egncheck'].document.getElementById('egn_check_inner');
var inner_frame_value = inner_frame_value.innerHTML;
var egn_input_contact = egn_input_contact.length;
var frame1 = document.getElementById('iframe_contact');
if (egn_input_contact == 10 && egn_2.isValid() && inner_frame_value==0 ) {
frame1.setAttribute("height", "80");
}
else {
frame1.setAttribute("height", inner_frame_value );
}
}

function create_error_div() {
var doc_width = ((document.viewport.getWidth())/2-241).ceil();
var page_scroll = '';
	if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    page_scroll = document.body.scrollTop;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    page_scroll = document.documentElement.scrollTop;
  }

document.documentElement.scrollTop;
var top_margin = page_scroll + 220;
var error_div = '<div id="errors_div" style="top:'+ top_margin + 'px; left:' + doc_width + 'px;"><div class="error_screen_top" id="error_screen_top"><a href="Javascript:close_error_div();" title="Затвори"><img style="border:0; float:right; padding-top:8px; padding-right:15px;" src="../images/close_error.gif" alt="Затвори"></a></div><div class="error_screen_middle" id="error_screen_middle"></div><div class="error_screen_middle" id="error_screen_middle_bottom" align="center"><a href="Javascript:close_error_div();" title="Затвори"><img style="border:0; padding-top:8px; padding-right:15px;" src="../images/ok_error.gif" alt="Добре"></a></div><div class="error_screen_bottom" id="error_screen_bottom"></div></div>';
new Insertion.Before($('footer'), error_div);
$('errors_div').show();
$('errors_div').absolutize();
}

function close_error_div() {
$('errors_div').remove();

}

function match_statusi(v){
		//var v = v.toArray();

	if (v.length >0) {
			if (/^[CGROEKXPaIFPAcgroekxpifp \/ -]+$/.test(v)) {		
					if (v.length >3) {
						if (v != 'PaIII') {
							if (!v.match(/([\/])/) || v.length >4) {
							alert('Въвели сте повече от 3 символи за код на зъб! Това е позволено само за Пародонтоза 3 степен - PaIII или като исползвате компбинация от два статуси разделени с "/". При всички други варианти, Кодовете ще излезнат извън полето и съответно няма да може да се изпечатат правилно.');
							return false;
							}
						}
						return true;
					}
				return true;
		 //alert('ima ja');
		}
		else {
			return false;
			//alert('nema ja');
		}
	}
	else {
		//alert('prazna e');
	return true;
	}
}
function match_price(v) {
	if (v.match(/^([0-9\.])/)) {//alert('ima ja');
	return true;
		}else {//alert('nema ja');
			return false;}
}

function match_kod_zyb(v) {
	//var allowed = new Array('55', '54', '53', '52', '51', '18', '17', '16', '15', '14', '13', '12', '11', '21', '22', '23', '24', '25',	'26', '27',	'28', '48', '47', '46', '45', '44', '43', '42', '41', '85', '84', '83', '82', '81', '31', '32', '33', '34', '35', '36', '37', '38', '71', '72', '73', '74', '75');
		if (v in oc(['55', '54', '53', '52', '51', '18', '17', '16', '15', '14', '13', '12', '11', '21', '22', '23', '24', '25',	'26', '27',	'28', '48', '47', '46', '45', '44', '43', '42', '41', '85', '84', '83', '82', '81', '31', '32', '33', '34', '35', '36', '37', '38', '71', '72', '73', '74', '75', '61',	'62', '63', '64', '65']) || v.length == 0) {
			//alert('ima ja');
			return true;
		} else {
			//alert('nema ja');
			return false;
		}
}
function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

function match_username (v) {
	if (v.length >5) {return true;}	
	else {return false;}
}

function match_passwords(v) {
var pass1 = $F('password');
if (pass1 == v) {return true; } else {return false;}
}

function check_lpk_len(v) {
if (v.length == 9) {return true; } else {return false;}
}

function insert_cherta(id) {
	if ($(id).value == '') {
		$(id).value = '-';
	}
	else if ($(id).value == '-') {
		  $(id).value = '';
          }
}	