function my_round(val, dec) {
	var parm = Math.pow(10, Math.round(dec));
	var ret_val = Math.round(val*parm)/parm;
	return ret_val;
}
	

function statusMsg(status) {
	var s=document.getElementById(status);
	
	s.style.display="block";
	
	//setTimeout('statusMsgHide('+status+')', 3000);
}

function statusMsgHide(status) {
	var s=document.getElementById(status);
	
	s.style.display="none";
}

function currency(field_id) {
	var f=document.getElementById(field_id);
	
	f.value=f.value.replace(/,/, '.');
	f.value=f.value.replace(/ /, '');
	f_ex=f.value.split('.');
	if (!f.value.match('.')) {
		if (!f_ex[0]||f_ex[0].length<1) {
			f.value='0.00';
		} else {
			f.value=f.value+'.00';
		}
	} else {
		if (!f_ex[0]||f_ex[0].length<1) {
			f.value='0';
		}
		if (!f_ex[1]||f_ex[1].length<1) {
			f.value=f_ex[0]+'.00';
		} else if (f_ex[1].length==1) {
			f.value=f.value+'0';
		} else if (f_ex[1].length>2) {
			f.value=f_ex[0]+'.'+f_ex[1].substr(0, 2);
		}
	}
}

function valid_egn(s) {
    var t = [2, 4, 8, 5, 10, 9, 7, 3, 6];
    if (typeof s!='string') {
    	return false;
    }
    if (s.length!=10) {
    	return false;
    }
    
    var rv;
    var pr=s;
    var rr=0;
    for (var i=0; i<9; i++) {
        if (s[i]==0)
        	continue;
        rr=rr+(s.charAt(i)*t[i]);
    }
    var chs=0;
    chs=(rr%11);
    if (chs==10)
    	chs=0;
    if (s.charAt(9)==chs) {
    	return true;
    } else {
    	return false;
    }
	return true;
}

function valid_gsm(s) {
	var f=document.getElementById(s);
	
	f.value=f.value.replace(/ /g, '');
	f.value=f.value.replace(/\//g, '');
	f.value=f.value.replace(/-/g, '');
	
	if (f.value.charAt(0)==0)
		f.value=f.value.substr(1);
	
	if (isNaN(f.value)) {
		alert('Моля, въведете валиден GSM номер!');
		return false;
	} else {
		return true;
	}
}

function valid_gsm_with_code(s1, s2) {
	var f1=document.getElementById(s1);
	var f2=document.getElementById(s2);
	
	if (f1.value=='999') {
		alert('Моля, изберете GSM код!');
		document.getElementById('btn_OK').disabled=false;
		return false;
	}
	
	f2.value=f2.value.replace(/\./g, '');
	f2.value=f2.value.replace(/,/g, '');
	f2.value=f2.value.replace(/-/g, '');

	var length_error = 0;
	var num = parseFloat(f2.value);
	var str = num.toString();
	var len = str.length;
	
	if (len!=7) {
		if (len==6&&f2.value.charAt(0)!='0') {
			length_error=1;
		} else if (len!=6) {
			length_error=1;
		}
	}
	//alert(length_error);
	
	if (isNaN(f2.value)||length_error==1||parseFloat(f2.value)<1) {
		alert('Моля, въведете валиден GSM номер!');
		document.getElementById('btn_OK').disabled=false;
		return false;
	} else {
		return true;
	}
}

function valid_sms_code(s) {
	var f=document.getElementById(s);
	
	if (f.value.length!=6) {
		alert('Моля, въведете валиден SMS код!');
		document.getElementById('btn_OK').disabled=false;
		return false;
	} else {
		return true;
	}
}

function valid_id_card(s) {
    if (s.length!=9) {
    	return false;
    } else {
    	return true;
    }
}

function valid_budget(field_id) {
	var b=document.getElementById(field_id);

	currency(field_id);
	
	if (isNaN(b.value))
		return 1;
	else if (b.value<180)
		return 2;
	else
		return 0;
}

function show_hide(minus, plus, div, subdiv, act) {
	var m=document.getElementById(minus);
	var p=document.getElementById(plus);
	var d=document.getElementById(div);
	
	if (subdiv!=null)
		var s=document.getElementById(subdiv);
	
	if (act==1) {
		m.style.display = 'inline';
		p.style.display = 'none';
		d.style.display = 'block';
		if (subdiv!=null)
			s.style.display = 'block';
	} else {
		m.style.display = 'none';
		p.style.display = 'inline';
		d.style.display = 'none';
		if (subdiv!=null)
			s.style.display = 'none';
	}
}

function focusControl(contr) {
	var x = document.getElementById(contr);
	if (x != undefined) {
		x.focus();
	}
}

function Test(field){
	alert(field.value % 400);
}


function checkTime(field) { 
	 var errorMsg = "";
	 // regular expression to match required time format 
	 re = /^(\d{2})[.:;\-,/](\d{2})[.:;,\-/](\d{2})$/;
	 if(field.value != '')
	 {
	 	 if(regs = field.value.match(re)) 
	 	{ 
		 	if(regs[4]) 
			{ // 12-hour time format with am/pm 
		 		if(regs[1] < 1 || regs[1] > 12) 
		 		{ 
		 			errorMsg = "Невалидена стойност за часа: " + regs[1]; 
		 		}
			} 
			else 
			{ // 24-hour time format 
		   		if(regs[1] > 23) 
				{ 
					errorMsg = "Невалидна стойност за часа: " + regs[1]; 
		   		}
			} 
			if(!errorMsg && regs[2] > 59) 
			{ 
				errorMsg = "Невалидна стойност за минутите: " + regs[2]; 
			} 
			if(!errorMsg && regs[3] > 59) 
			{ 
				errorMsg = "Невалидна стойност за секундите: " + regs[3]; 
			} 
		} 
		else 
		{ 
			errorMsg = "Невалидна форма на времето. Моля въведете времето в следния формат: 00:00:00"; 
		} 
	} 
	else
	{
		errorMsg = "Моля въведете стойност за времето!";
	}
	if(errorMsg != "") 
	{ 
		alert(errorMsg); 
	  	field.focus(); 
	  	return false; 
	} 
	field.value = regs[1] + ':' + regs[2] + ':' + regs[3];
	return true; 
}
/*
function checkDate(field) 
{ 
 	var allowBlank = false; 
 	var minYear = 1900; 
 	var maxYear = 2100; 
 	var errorMsg = ""; 
 	// regular expression to match required date format 
 	re = /^(\d{2})\.(\d{2})\.(\d{4})$/; 
 	if(field.value != '') 
 	{ 
 		if(regs = field.value.match(re)) 
 		{ 
 			if(regs[1] < 1 || regs[1] > 31) 
 			{ 
 				errorMsg = "Invalid value for day: " + regs[1]; 
 			} 
 			else if(regs[2] < 1 || regs[2] > 12) 
 			{ 
 				errorMsg = "Invalid value for month: " + regs[2]; 
 			} 
 			else if(regs[3] < minYear || regs[3] > maxYear) 
 			{ 
 				errorMsg = "Invalid value for year: " + regs[3] + " - must be between " + minYear + " and " + maxYear; 
 			} 
 		} 
 		else 
 		{ 
 			errorMsg = "Invalid date format: " + field.value; 
 		} 
 	} 
 	else if(!allowBlank) 
 	{ 
 		errorMsg = "Empty date not allowed!";
 	} 
 	if(errorMsg != "") 
 	{ 
 		alert(errorMsg); 
 		field.focus(); 
 		return false; 
 	} 
 	return true; 
 }
*/

function checkDate(field) {
	var month_days = new Array();
	month_days[1] = 31;
	month_days[2] = 28;
	month_days[3] = 31;
	month_days[4] = 30;
	month_days[5] = 31;
	month_days[6] = 30;
	month_days[7] = 31;
	month_days[8] = 31;
	month_days[9] = 30;
	month_days[10] = 31;
	month_days[11] = 30;
	month_days[12] = 31;
	var year_min = 1900;
	var year_max = 2100;
	var day;
	var month;
	var year;
	var date_val = field.value;
	
	date_val = date_val.replace(/,/g, '.');
	date_val = date_val.replace(/-/g, '.');
	date_val = date_val.replace(/;/g, '.');
	date_val = date_val.replace(/\//g, '.');
	
	var pos = date_val.indexOf('.');
	if (pos < 1) {
		return false;
	}
	var day_str = date_val.substr(0, pos);
	if (isNaN(day_str)) {
		return false;
	}
	day = parseInt(day_str, 10);
	if (day < 1) {
		return false;
	}
	
	date_val = date_val.substr(pos + 1, date_val.length - pos);
	pos = date_val.indexOf('.');
	if (pos < 1) {
		return false;
	}
	month_str = date_val.substr(0, pos);
	if (isNaN(month_str)) {
		return false;
	}
	month = parseInt(month_str, 10);
	if ((month < 1) || (month > 12)) {
		return false;
	}
	
	year_str = date_val.substr(pos + 1, date_val.length - pos);
	pos = year_str.indexOf('.');
	if (pos != -1) {
		return false;
	}
	if (isNaN(year_str) || year_str=='' || year_str==' ') {
		return false;
	}
	year = parseInt(year_str, 10);
	
	if (year < 20) {
		year += 2000;
	} else {
		if ((year > 19) && (year < 100)) {
			year += 1900;
		}
	}
	
	if ((year < year_min) || (year > year_max)) {
		return false;
	}
	
	if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))) {
		month_days[2] = 29;
	}
	
	if ((day < 1) || (day > month_days[month])) {
		return false;
	}
	
	if (day < 10) {
		day_str = '0' + day;
	} else {
		day_str = day;
	}
	if (month < 10) {
		month_str = '0' + month;
	} else {
		month_str = month;
	}
	
	field.value = day_str + '.' + month_str + '.' + year;
	
	return true;
}

function submitForm1(bill_date) {
	var x = document.getElementById('fld_bill_date');
	x.value = bill_date;
	y = document.forms.frm_statements;
	y.submit();
}

function checkForm2() {
	var x = document.getElementById('fld_start_date');
	var r = checkDate(x); 
	if (!r) {
		x.focus();
		alert('Невалидна дата в полето Период от')
		return false;
	}
	var x = document.getElementById('fld_end_date');
	var r = checkDate(x); 
	if (!r) {
		x.focus();
		alert('Невалидна дата в полето Период до')
		return false;
	}
	x = document.getElementById("fld_POS_id");
	if (x.options[x.selectedIndex].value == -1) {
		alert("Моля, изберете POS терминал\nPlease choose a terminal");
		return false;
	}
	return true;
}

function set_extra_fld() {
	var x = document.getElementById("fld_trnx");
	var y = document.getElementById('extra_fld');
	var z = document.getElementById('extra_fld_sub');
	switch (x.value) {
		case 'BI/NR': 
			y.style.display = 'none';
			z.style.display = 'none';
			break;
		case 'LP/NR': 
			y.style.display = 'block';
			z.style.display = 'inline';
			break;
		case 'IS/NR':
			y.style.display = 'block';
			z.style.display = 'inline';
    		break;
    	case 'PU/NR':
    		y.style.display = 'block';
    		z.style.display = 'none';
    		break; 
	}
	
}

function check_virtual_POS_form() {
	var x = document.getElementById('fld_card_no');
	if (x.value == '') {
		alert('Моля въведете номер на карта');
		x.focus();
		return false;
	}
	var trnx = document.getElementById("fld_trnx");
	switch (trnx.value) {
		case 'LP/NR':
			x = document.getElementById('fld_trnx_amnt');
			if (x.value == '') {
	    		alert('Моля въведете стойността на продажбата');
	    		x.focus();
	    		return false;
			}
			x = document.getElementById('fld_install_cnt');
			if (x.value == '') {
	    		alert('Моля въведете броя на вноските');
	    		x.focus();
	    		return false;
			}
			break;
		case 'BI/NR':
			alert('Внимание! Справката за баланс може да отнеме време! Моля изчакайте.');
			break;
		case 'PU/NR':
			x = document.getElementById('fld_trnx_amnt');
			if (x.value == '') {
	    		alert('Моля въведете стойността на продажбата');
	    		x.focus();
	    		return false;
			}
			break;
		case 'IS/NR':
			x = document.getElementById('fld_trnx_amnt');
			if (x.value == '') {
	    		alert('Моля въведете стойността на продажбата');
	    		x.focus();
	    		return false;
			}
			x = document.getElementById('fld_install_cnt');
			if (x.value == '') {
	    		alert('Моля въведете броя на вноските');
	    		x.focus();
	    		return false;
			}
			break;
	}
	return true;
}

function showHideSubmenu(no) {
	var elem = document.getElementById('submenu'+no);
	if (elem.className == 'submenu') {
		elem.className = 'submenu none'
	} else {
		elem.className = 'submenu'
	};
}

function checkForm3() {
	var selectBox = document.getElementById('fld_spec_type');
	if (selectBox.selectedIndex == 0) {
		alert('Моля изберете тип на спецификацията');
		return false;
	}
	return true;
}

function changeHint(selectBox) {
	hint = document.getElementById('spec_hint');
	switch (selectBox.options[selectBox.selectedIndex].value) {
		case '-1':
			hint.innerHTML = '&nbsp;';
			break;
		case '1':
			hint.innerHTML = 'С оскъпяване и с Търговска Отстъпка';
			break;
		case '2':
			hint.innerHTML = 'С оскъпяване и без Търговска Отстъпка';
			break;
		case '3':
			hint.innerHTML = 'Без оскъпяване и с Търговска Отстъпка';
			break;
		case '4':
			hint.innerHTML = 'Без оскъпяване и без Търговска Отстъпка';
			break;
	}
}


//Merchant invoice specific functions

function userOnBlurFnc() {
	var grid_sum = '';
	var base_sum = 0;
	var tmp = 0;
	var fld = '';
	for (i = 0; i < trnx_cnt; i++) {
		grid_sum = document.getElementById('grd' + i + '_total');
		base_sum = my_round(base_sum + my_round(parseFloat(grid_sum.value), 2), 2);
		grid_sum.value = parseFloat(grid_sum.value).toFixed(2);
	}
	var to = my_round(base_sum*tot_comm_rate, 2);
	var dan_osnova = my_round(base_sum - to, 2);
	var dds = my_round(dan_osnova*vat_rate, 2);
	var spec_total = my_round(dan_osnova + dds, 2);
	
	fld = document.getElementById('spec_tot');
	fld.innerHTML = base_sum.toFixed(2);
	fld = document.getElementById('fld_spec_tot_sum');
	fld.value = base_sum.toFixed(2);
	
	fld = document.getElementById('spec_commission');
	fld.innerHTML = to.toFixed(2);
	fld = document.getElementById('fld_spec_commission');
	fld.value = to.toFixed(2);
	
	fld = document.getElementById('spec_dana4na_osnova');
	fld.innerHTML = dan_osnova.toFixed(2);
	fld = document.getElementById('fld_spec_dana4na_osnova');
	fld.value = dan_osnova.toFixed(2);
	
	fld = document.getElementById('spec_vat_amnt');
	fld.innerHTML = dds.toFixed(2);
	fld = document.getElementById('fld_spec_vat_amnt');
	fld.value = dds.toFixed(2);
	
	fld = document.getElementById('spec_final');
	fld.innerHTML = spec_total.toFixed(2);
	fld = document.getElementById('fld_spec_final');
	fld.value = spec_total.toFixed(2);
}

function validateFormInvoice() {
	var x = document.getElementById('fld_spec_date');
	$res = checkDate(x);
	if (!$res) {
		alert('Полето "Спецификация Дата" съдържа невалидна дата');
		x.focus();
		x.select();
		return false;
	}
	
	var x = document.getElementById('fld_inv_date');
	$res = checkDate(x);
	if (!$res) {
		alert('Полето "Фактура Дата" съдържа невалидна дата');
		x.focus();
		x.select();
		return false;
	}
	
	var x = document.getElementById('fld_spec_no');
	if ((x.value == '') || (isNaN(x.value))) {
		alert('Невалиден номер на спецификация');
		x.focus();
		return false;
	}
	var zeroes = 10 - x.value.length;
	for (i = 0; i < zeroes; i++) {
		x.value = '0' + x.value;
	}
	
	var x = document.getElementById('fld_inv_no');
	if ((x.value == '') || (isNaN(x.value))) {
		alert('Невалиден номер на фактура');
		x.focus();
		return false;
	}
	var zeroes = 10 - x.value.length;
	for (i = 0; i < zeroes; i++) {
		x.value = '0' + x.value;
	}
	
	return true;
}

function setAction(action) {
	var x = document.getElementById('fld_action');
	x.value = action;
	return true;
}

function copyDate(src) {
	var x = document.getElementById('fld_inv_date');
	x.value = src.value;
	return true;
}

function lPadValue(elem, tot_str_len, pad_with) {
	var pad_cnt = tot_str_len - elem.value.length;
	for (i = 0; i < pad_cnt; i++) {
		elem.value = pad_with + elem.value;
	}
}

//End MRC invoice functions

function checkForm4() {
	var x = document.getElementById("fld_card_no");
	if (x.value == '') {
		alert("Моля, въведете номер на OpenDoor карта!");
		return false;
	}
	return true;
}

//Apply for a card functions
function checkSugg() {
	sugg = document.getElementById('fld_sugg');
	if (sugg.value == '') {
		alert('Моля, въведете вашето предложение, преди да натиснете бутона "Изпрати".');
		return false;
	} else {
		return true;
	};
};

function setBtnState() {
	btn = document.getElementById('btn_submit_suggestion');
	sugg = document.getElementById('fld_sugg');
	if (sugg.value == '') {
		btn.disabled = true;
	} else {
		btn.disabled = false;
	};
	return true;
}

function setStmtDate(dates) {
	var txt = document.getElementById("txtStmtDate");
	var dropDown = document.getElementById("fld_mi_date");
	txt.innerHTML = dates[dropDown.selectedIndex];
}

function enableDisableControlByCheckBox(chkBox, control) {
	var x = document.getElementById(control);
	x.disabled = !chkBox.checked;
	if (x.disabled) {
		x.style.color = "lightgray";
	} else {
		x.style.color = "black";
	}
}

//End Apply for a card

function getZZCodeAndActivateQuestionary(quest_id) {
	var code = prompt("Моля въведете кода на Записа на заповед", '');
	if (code != null && code != '') {
		var fld = document.getElementById('fld_zz_code');
		fld.value = code;
		fld = document.getElementById('id');
		fld.value = quest_id;
		document.getElementById("frmActivate").submit();
	} else {
		alert("За да активирате картата трябва да въведете кода на съответстващия Запис на заповед!");
	}	
}

function setLPD() {
	var x = document.getElementById('fldPaymentDate');
	var select = document.getElementById('fld_mi_date');
	if (select.selectedIndex == 0) {
		x.innerHTML = "10-то число";
		return true;
	}
	if (select.selectedIndex == 1) {
		x.innerHTML = "20-то число";
		return true;
	}
	if (select.selectedIndex == 2) {
		x.innerHTML = "края";
		return true;
	}
}

function setLPD_fromHiddenInput() {
	var x = document.getElementById('fldPaymentDate');
	var select = document.getElementById('fld_mi_date');
	if (select.value == '1st') {
		x.innerHTML = "10-то число";
		return true;
	}
	if (select.value == '10') {
		x.innerHTML = "20-то число";
		return true;
	}
	if (select.value == '20') {
		x.innerHTML = "края";
		return true;
	}
}

function applicationOnLoadFunc() {
	setLPD_fromHiddenInput();
	window.print();
}

function saveNewCardApplication() {
	var res = window.prompt('Моля въведете кода на документа!', "");
	if ((res == null) || (trim(res) == '')) {
		alert('Не е въведен код на документ!');
		return false;
	}
	var code = document.getElementById('fld_doc_code');
	var res = res.toUpperCase();
	if (code.value != res) {
		alert('Невалиден код на документ!');
		return false;
	}
	return true;
}

function newCardFormSubmit() {
	var x = document.getElementById('fld_valid_till');
	if (!checkDate(x)) {
		alert('Полето "Валидна до" съдържа невалидна дата!');
		x.focus();
		return false;
	}
	x = document.getElementById('fld_id_card_date');
	if (!checkDate(x)) {
		alert('Полето "Издадена от МВР на" съдържа невалидна дата!');
		x.focus();
		return false;
	}
	x = document.getElementById('fld_comp_contr_no_limit');
	if (trim(x.value) != '') {
		if (!checkDate(x)) {
			alert('Полето "безсрочен от" съдържа невалидна дата!');
			x.focus();
			return false;
		}
	}
	x = document.getElementById('fld_comp_contr_with_limit');
	if (trim(x.value) != '') {
		if (!checkDate(x)) {
			alert('Полето "срочен до" съдържа невалидна дата!');
			x.focus();
			return false;
		}
	}
	return true;
}

Array.prototype.in_array = function(search_term) {
	var i = this.length;
	if (i > 0) {
		do {
			if (this[i] == search_term) {
				return true;
			}
		} while (i--);
	}
	return false;
}	

function frmCustStatsValidate() {
	var x = document.getElementById('fld_start_date');
	var res = checkDate(x);
	if (!res) {
		x.focus();
		alert('Полето "Период от" съдържа невалидна дата!');
		return false;
	}
	x = document.getElementById('fld_end_date');
	res = checkDate(x);
	if (!res) {
		x.focus();
		alert('Полето "Период до" съдържа невалидна дата!');
		return false;
	}
	return true;
}

function submitFormCustMS(bill_date, card_no) {
	var x = document.getElementById('fld_bill_date');
	x.value = bill_date;
	x = document.getElementById('fld_card_no');
	x.value = card_no;
	y = document.forms.frm_statements;
	y.submit();
}

function vPOSCheckCardNo(elem) {
	var chr = elem.value.charAt(0);
	if (chr == ';') {
		elem.value = elem.value.slice(1);
	}
	chr = elem.value.charAt(elem.value.length - 1);
	if (chr == '?') {
		elem.value = elem.value.slice(0, elem.value.length - 1);
	}
}

function viewSlipDetails (term_id, batch_no, sequence_no, ref_no, code, sub_code) {
	var f=document.getElementById('trnx');
	var t=document.getElementById('fld_term_id');
	var b=document.getElementById('fld_batch_no');
	var s=document.getElementById('fld_sequence_no');
	var r=document.getElementById('fld_ref_no');
	var y=document.getElementById('fld_type');
	var c=document.getElementById('fld_code');
	var sc=document.getElementById('fld_sub_code');
	
	t.value=term_id;
	b.value=batch_no;
	s.value=sequence_no;
	r.value=ref_no;
	y.value=code+'-'+sub_code;
	c.value=code;
	sc.value=sub_code;
	
	f.submit();
}

function viewOfflineTrnxDetails(ref_no, code, sub_code)
{
	var f=document.getElementById('offline_trnx');
	var r=document.getElementById('fld_offline_trnx_rrn');
	var c=document.getElementById('fld_offline_trnx_code');
	var sc=document.getElementById('fld_offline_trnx_sub_code');
	
	r.value=ref_no;
	c.value=code;
	sc.value=sub_code;
	
	f.submit();
	
}

function showHideDiv(element, display) {
	var e = document.getElementById(element);
	if (e.style.display == 'none') {
		e.style.display = display;
	} else {
		e.style.display = 'none';
	}
}

function showHeaderSearchFld() {
	var x = $('divHeaderSrchFrm');
	if (x.style.display == 'none') {
		x.style.display = 'block';
	} else {
		x.style.display = 'none';
		$('divHeaderSrchRes').style.display = 'none';
	}
};

function validateMrcHowToJoin() {
	var flds = new Array('fld_company', 'fld_bussiness', 'fld_bulstat', 'fld_fname', 'fld_lname', 'fld_position', 'fld_city', 'fld_jk', 'fld_phone1', 'fld_gsm');
	var flds_names = new Array('Име на фирмата', 'Предмет на дейност', 'Булстат', 'Име', 'Фамилия', 'Позиция във фирмата', 'Град', 'ж.к., ул., No ...', 'Телефон', 'Мобилен телефон');
	for (i = 0; i < flds.length; i++) {
		if (trim($(flds[i]).value) == '') {
			alert('Полето ' + flds_names[i] + ' е задължително!');
			$(flds[i]).focus();
			return false;
		}
	}
	if (! $('fld_dds_reg_no').checked && ! $('fld_dds_reg').checked) {
		alert('Моля, посочете дали фирмата е регистрирана по ЗДДС!');
		return false;
	}
	return true;
}

Array.prototype.find = function(searchStr) {
	var returnArray = false;
	for (i=0; i<this.length; i++) {
	if (typeof(searchStr) == 'function') {
		if (searchStr.test(this[i])) {
			if (!returnArray) { returnArray = [] }
				returnArray.push(i);
			}
		} else {
			if (this[i]===searchStr) {
				if (!returnArray) { returnArray = [] }
				returnArray.push(i);
			}
		}
	}
	return returnArray;
}

Array.prototype.findFirst = function(searchStr) {
	for (i = 0; i < this.length; i++) {
		if (typeof(searchStr) == 'function') {
			if (searchStr.test(this[i])) {
				return i;
			}
		} else {
			if (this[i] === searchStr) {
				return i;
			}
		}
	}
	return false;
}


