/* Cached on Thu, 31 Oct 2024 23:59:07 */
(function( $ ) {
$.widget('ui.hh_combobox', {
_create: function() {
var
inpt = this.element.hide(),
selected = false,
src = this.options.source,
wrapper,
input = $('');
inpt.change(function() {
setPlaceHolderClass(!this.value.length);
})
if (inpt.val().length) {
setPlaceHolderClass(false);
for (var i in src) if (src[i].value == inpt.val()) {
input.val(src[i].label);
break;
}
} else {
setPlaceHolderClass(true);
input.val(onLang.selectLabel);
}
function removeIfInvalid( element ) {
var value = $( element ).val(),
matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( value ) + "$", "i" ),
valid = false;
$(src).each(function(k,v) {
if (v.label.match( matcher ) ) {
valid = true;
return false;
}
});
if ( !valid ) {
// remove invalid value, as it didn't match anything
//$( element ).val( "" );
input.val( onLang.selectLabel );
$(inpt).val('').change();
input.data( "ui-autocomplete" ).term = "";
}
}
function setPlaceHolderClass(state) {
input.toggleClass('ui-placeholder-text',state);
}
this.wrapper = wrapper = $( "" )
.addClass( "ui-combobox" )
.insertAfter( inpt );
$(input)
.appendTo( wrapper )
.attr('title', '')
.addClass( "ui-state-default ui-combobox-input" )
.autocomplete({
delay: 0,
minLength: 0,
source: function( request, response ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( $(src).map(function(k, item) {
var text = item.label;
if ( this.value && ( !request.term || matcher.test(text) ) )
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "$1" ),
fakeVal: item.label,
value: item.value
};
}) );
},
select: function( event, ui ) {
$(this)
.val(ui.item.fakeVal)
.blur();
$(inpt).val(ui.item.value).change();
return false;
},
change: function( event, ui ) {
if ( !ui.item ) {
removeIfInvalid( this );
}
}
})
.addClass( "ui-widget ui-widget-content ui-corner-left ui-corner-right" )
.css( "border","none" )
.mousedown(function() {
input.autocomplete( "search", "" );
})
.focus(function() {
if (!inpt.val().length) input.val('');
setPlaceHolderClass(false);
})
.blur(function() {
if (!inpt.val().length) input.val(onLang.selectLabel);
setPlaceHolderClass(!inpt.val().length);
})
$(function() {
input.blur();
})
input.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "" )
.append( "" + item.label + "" )
.appendTo( ul );
};
$( "" )
.attr( "tabIndex", -1 )
.appendTo( wrapper )
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass( "ui-corner-all" )
.addClass( "ui-corner-right ui-combobox-toggle" )
.mousedown(function() {
wasOpen = input.autocomplete( "widget" ).is( ":visible" );
})
.click(function() {
input.focus();
// close if already visible
if ( wasOpen ) {
return;
}
// pass empty string as value to search for, displaying all results
input.autocomplete( "search", "" );
});
},
_destroy: function() {
this.wrapper.remove();
this.element.show();
}
})
$.widget( "ui.combobox", {
_create: function() {
var input,
that = this,
wasOpen = false,
select = this.element.hide(),
selected = select.children( ":selected" ),
value = selected.val() ? selected.text() : onLang.selectLabel,
wrapper = this.wrapper = $( "" )
.addClass( "ui-combobox" )
.insertAfter( select );
$(select).change(function() {
if (this.value != '') $(this).next().children(':first').val($(this).children(':selected').text())
else setPlaceHolderClass(true)
})
function removeIfInvalid( element ) {
var value = $( element ).val(),
matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( value ) + "$", "i" ),
valid = false;
select.children( "option" ).each(function() {
if ( $( this ).text().match( matcher ) ) {
this.selected = valid = true;
return false;
}
});
if ( !valid ) {
// remove invalid value, as it didn't match anything
$( element )
//.val( "" );
.val( onLang.selectLabel );
select.val( "" );
$( select ).change();
setTimeout(function() {
input.tooltip( "close" ).attr( "title", "" );
}, 2500 );
input.data( "ui-autocomplete" ).term = "";
}
}
function setPlaceHolderClass(state) {
input.toggleClass('ui-placeholder-text',state);
}
input = $( "" )
.appendTo( wrapper )
.val( value )
.attr( "title", "" )
.addClass( "ui-state-default ui-combobox-input" )
.autocomplete({
delay: 0,
minLength: 0,
source: function( request, response ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( select.children( "option" ).map(function() {
var text = $( this ).text();
if ( this.value && ( !request.term || matcher.test(text) ) )
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "$1" ),
value: text,
option: this
};
}) );
},
select: function( event, ui ) {
ui.item.option.selected = true;
that._trigger( "selected", event, {
item: ui.item.option
});
$( select ).change();
},
change: function( event, ui ) {
if ( !ui.item ) {
removeIfInvalid( this );
$( select ).change();
}
}
})
.addClass( "ui-widget ui-widget-content ui-corner-left ui-corner-right" )
.css( "border","none" )
.mousedown(function() {
input.autocomplete( "search", "" );
})
.focus(function() {
if (!select.val()) input.val('');
setPlaceHolderClass(false);
})
.blur(function() {
if (!select.val()) input.val(onLang.selectLabel);
setPlaceHolderClass(!select.val());
})
input.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "" )
.append( "" + item.label + "" )
.appendTo( ul );
};
$( "" )
.attr( "tabIndex", -1 )
.appendTo( wrapper )
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass( "ui-corner-all" )
.addClass( "ui-corner-right ui-combobox-toggle" )
.mousedown(function() {
wasOpen = input.autocomplete( "widget" ).is( ":visible" );
})
.click(function() {
input.focus();
// close if already visible
if ( wasOpen ) {
return;
}
// pass empty string as value to search for, displaying all results
input.autocomplete( "search", "" );
});
select.change();
},
_destroy: function() {
this.wrapper.remove();
this.element.show();
}
});
})( jQuery );
function combobox(elem) {
$(elem).combobox();
}
parser = {
all: function(elem) {
var salOut = this.salary(elem);
var ageOut = this.age(elem);
var expOut = this.exp(elem);
var div = document.createElement('div');
div.id = 'pout';
div.style.display = 'none';
if (salOut != null) {
for(prop in salOut) if (salOut.hasOwnProperty(prop)) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'ps_'+prop;
input.value = salOut[prop];
$(div).append(input);
}
}
if (ageOut != null) {
for(prop in ageOut) if (ageOut.hasOwnProperty(prop)) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'pa_'+prop;
input.value = ageOut[prop];
$(div).append(input);
}
}
if (expOut != null) {
for(prop in expOut) if (expOut.hasOwnProperty(prop)) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'pe_'+prop;
input.value = expOut[prop];
$(div).append(input);
}
}
if (div.children.length > 0) {
$(elem).parents('form:first').find('#pout').remove();
$(elem).parents('form:first').append(div);
} else {
return null;
}
},
salary: function(elem) {
var summ = '(\\d+(?:(?:\\s|\\.|,)\\d{3}\\b)*)';
var btw = '(?:(?:\\s?-\\s?)|(?:\\s[^\\d\\s]+\\s){1,2})';
var curr =
'(?:' +
['lei','mdl','\\$','usd','dol','eur','лей','леев','евро(?:$|\\s|[.,!?])','дол','u\\.?\\s?e\\.?','у\\.?\\s?е\\.?'].join(')|(?:') +
')';
var expr = new RegExp(summ + '(?:' + btw + summ + ')?\\s?(' + curr + ')', 'i');
var salary = elem.value.match(expr);
if (!salary)
return null;
var currency = '';
var curr = salary.pop().toLowerCase()/*.trimCustom('.,!?')*/;
switch (curr.replace(/[.,!?\s]/g,'')) {
case 'lei':
case 'лей':
case 'леев':
case 'mdl':
currency = 'MDL';
break;
case 'usd':
case 'dol':
case 'ue':
case 'дол':
case '$':
currency = 'USD';
break;
case 'eur':
case 'евро':
currency = 'EUR';
break;
}
if (typeof(salary[2]) != 'undefined')
return {
min: salary[1].replace(/\D/g, ''),
max: salary[2].replace(/\D/g, ''),
currency: currency
};
else
return {
max: salary[1].replace(/\D/g, ''),
currency: currency
};
},
salaryX: function(elem) {
var salary = elem.value.match(/((\d+)((\s\d+)?)(\s?))((\$)|((lei)|(mdl)|(usd)|(dol)|(eur)|(лей))|(леев)|(евр)|(дол)|(u\.?\s?e.?)|(у\.?\s?е.?))/gi);
if (salary == null) {
return null;
}
var salary_2 = [];
for (i = 0; i < salary.length; i++) {
salary_2.push(salary[i].replace(/\s/g,'').match(/(\d+)/g)[0]);
}
var currency = '';
switch (salary[0].toLowerCase().replace(/[\.\s]/g,'').match(/(?![\d\s]+?)\D+/gi)[0]) {
case 'lei':
case 'лей':
case 'леев':
case 'mdl':
currency = 'MDL';
break;
case 'usd':
case 'dol':
case 'ue':
case 'дол':
case '$':
currency = 'USD';
break;
case 'eur':
case 'евр':
currency = 'EUR';
break;
}
var out = {};
salary_2 = salary_2.sort(function(a,b){return a-b});
if (salary_2.length > 1) {
out = {
min:salary_2[0],
max:salary_2[salary_2.length-1],
currency:currency
}
} else {
out = {
max:salary_2[0],
currency:currency
}
}
return out;
},
age: function(elem) {
var summ = '(\\d{2}\\b)';
var btw = '(?:(?:\\s?-\\s?)|(?:\\s[^\\d\\s]+\\s){1,2})';
var words =
'(?:' +
['лет','ani','years'].join(')|(?:') +
')';
var expr = new RegExp('[\\D]' + summ + '(?:' + btw + summ + ')?\\s(?:'+words+')');
var list = findRowByExpr(elem.value, expr, true);
if (!list) return null;
var age = null;
var expExpr = new RegExp(['опыт','exp','стаж','врем','tim','граф','ori'].join('|'),'i');
var tmpV = '';
$(list).each(function(k,v) {
if (!v.match(expExpr)) {
tmpV = v;
age = v.match(expr);
return false;
}
})
if (age) {
if (!age[2]) {
var to = ['до','până la','pînă la','pană la','pinâ la','pîna la','pina la','pâna la','to','max'].join('|');
if (tmpV.match(new RegExp(to,'i'))) var ret = {to: age[1].replace(' ', '')};
else var ret = {from: age[1].replace(' ', '')};
} else {
var ret = {from: age[1].replace(' ', '')};
ret.to = age[2].replace(' ', '');
}
return ret;
} else return null;
},
ageX: function(elem) {
var out = {};
var eValue = elem.value.replace('exp.','exp,');
var to = ['-','до','până la','pînă la','pană la','pinâ la','pîna la','pina la','pâna la','to'].join('|');
var from = ['от','dela','de la','dup','from'].join('|');
var years = ['лет','ani','years'].join('|');
var eWord = ['опыт','exp(\\,)?'].join('|');
var exp = new RegExp('('+from+')?\\s?(\\d{2})(\\s?('+years+'))?\\s?('+to+')\\s?(\\d{2})(\\s)?('+years+')','gi');
var age = eValue.match(exp);
if (age != null) {
age = age[0].match(/(\d{2})/gi);
out = {
from: age[0],
to:age[1]
}
return out;
}
var out = {};
var age_st = new RegExp('((\\.([^\\.\\n]+))|\\n([^\\.\\n]+))('+from+')\\s?(\\d{2})\\s?('+years+')','gi');
var age_st = eValue.match(age_st);
if (age_st != null) {
if (age_st[0].match(new RegExp(eWord,'gi')) == null) {
out.from = age_st[0].match(/(\d{2})/gi)[0];
}
}
var age_sp = new RegExp('((\\.([^\\.\\n]+))|\\n([^\\.\\n]+))('+to+')\\s?(\\d{2})\\s?('+years+')','gi');
var age_sp = eValue.match(age_sp);
if (age_sp != null) {
if (age_sp[0].match(new RegExp(eWord,'gi')) == null) {
out.to = age_sp[0].match(/(\d{2})/gi)[0];
}
}
if (out.from != undefined || out.to != undefined) {
return out;
} else {
return null
}
},
exp: function(elem) {
var row = findRowByExpr(elem.value,new RegExp('опыт|expir|experi|стаж','i'), true);
if (!row) return null;
var expr = new RegExp('(\\d{1,2}\\b)');
var exp = null;
$(row).each(function(k,v) {
var tmp = v.match(expr);
if (tmp) {
exp = tmp;
return false;
}
});
return (exp)? {from: exp.pop()} : exp;
},
expX: function(elem) {
var out = {};
var eValue = elem.value.replace('exp.','exp,');
var eWord = ['опыт','exp(\\,)?'].join('|');
var to = ['-','до','până la','pînă la','pană la','pinâ la','pîna la','pina la','pâna la','to'].join('|');
var from = ['от','dela','de la','from'].join('|');
var years = ['лет','год','an','year'].join('|');
var out = {};
var expr = new RegExp('(('+eWord+')([^0-9]+))('+from+')\\s?(\\d{1,2}(?!\\d))','gi');
var exp_st = eValue.match(expr);
if (exp_st != null) {
out.from = exp_st[0].match(/(\d{1,2})/gi)[0];
}
if (out.from != undefined) {
return out;
} else {
return null
}
},
sex: function(elem) {
var f = new RegExp('^(fem|doam|domni|wom|дев|жен)','gi');
var m = new RegExp('^(bai|domn|man|male|муж|пар)','gi');
if (f.test(elem.value)) return 'f';
if (m.test(elem.value)) return 'm';
return 'u';
},
edu: function(elem) {
var edu = parseEdu(elem.value);
return edu;
}
}
function pH() {
ph = {
fName : 'Имя',
lName : 'Фамилия',
email : 'E-mail',
tel : 'Телефон'
};
$('*[ph]').focus(function() {
pHv = $(this).attr('ph');
if (this.value == pHv) {
this.value = '';
}
})
$('*[ph]').blur(function() {
pHv = $(this).attr('ph');
if (this.value == '') {
this.value = pHv;
}
})
}
function checkPH(elem) {
$(elem).find('[ph]').each(function() {
if (this.value == $(this).attr('ph')) {
this.value = '';
}
})
}
$(function() {
pH();
})