function printArray (input) {
	var output = '';
	for (var i = 0; i < input.length; i++) {
		if (typeof input[i] === 'string') {
			output += '"' + input[i] + '"';
		} else {
			output += String(input[i]);
		}
		if (i < input.length - 1) output += ', ';
	}
	return output;
}

function provjeri_telefone() {
    var telef = document.getElementById('telefon');
    var mob = document.getElementById('mobitel');
    if((telef.value=='') && (mob.value=='')) {
        alert(poruka_telefon);    
    }
}

function pazi_telefon() {
    var telef = document.getElementById('telefon');
    if (telef.value='') {
        alert (poruka_telefon1);
    }
}

function validate_controls(){
	var res = true;
    if (check_uvjeti = xGetElementById('check_uvjeti')) {
    if (check_uvjeti.checked==false) {
        alert (poruka_uvjeti);
        res= false;
    }
    }
	var controls = xGetElementsByAttribute('input', 'validate', '.+', null);
	controls = controls.concat(xGetElementsByAttribute('select', 'validate', '.+', null));
	reset_error_labels(controls);
 
	var check_group = true;
	var group_controls = new Array();
	
	var vrsta_oglasa = xGetElementById('vrsta_oglasa');
	if (vrsta_oglasa && vrsta_oglasa.value == 'najam')
		check_group = false;
		
	for (var i = 0; i < controls.length; ++i) {
		var validators = controls[i].getAttribute('validate').split('|');
		var value = controls[i].value;		
		
		for (var j=0; j<validators.length; j++){
			if (validators[j] == 'mandatory' && value == ''){ 
				set_error_label(controls[i]);
				res = false;
			} else if(validators[j].substring(0, 'mandatory_group'.length) == 'mandatory_group'){
				group_controls[group_controls.length] = controls[i];
				if (value != '')
					check_group = true;
			} else if (validators[j].substring(0, 'number'.length) == 'number'){
				var params = validators[j].split(',');
				value = value.replace(',', '.');
				params[0] = value;
				if (check_number(params) == false){
					set_error_label(controls[i]);
					res = false;
				}
			} else if (validators[j].substring(0, 'integer'.length) == 'integer'){
				var params = validators[j].split(',');
				value = value.replace('.', '');
				value = value.replace(',', '');
				params[0] = value;
				if (check_integer(params) == false){
					set_error_label(controls[i]);
					res = false;
				}
			} else if (validators[j] == 'phone' && check_phone(value) == false){
				set_error_label(controls[i]);
				res = false;
			}
		}
	}
	
	if (!check_group){
		res = false;
		for (i = 0; i < group_controls.length; ++i){
			set_error_label(group_controls[i]);
		}
	}
	
	if (res == false){
		var message_control = xGetElementById('message');
		if (message_control)
			message_control.innerHTML = validation_error_message;
	}
	return res;
};

function check_integer(params){
	var validChars = "0123456789";
	var c;
	for(var i=0; i<params[0].length; ++i){
		c = params[0].charAt(i);
		if(validChars.indexOf(c) == -1) 
			return false;
	}
	return check_number(params);
}

function check_number(params) {
	var validChars = "0123456789.";
	var c;
	for(var i=0; i<params[0].length; ++i){
		c = params[0].charAt(i);
		if(validChars.indexOf(c) == -1) 
			return false;
	}
	if (params.length>1 && !isNaN(parseFloat(params[1])) && parseFloat(params[1])>parseFloat(params[0]))
		return false; 
	if (params.length>2 && !isNaN(parseFloat(params[2])) && parseFloat(params[2])<parseFloat(params[0]))
		return false;
	return true;
}

function check_phone() {
	var validChars = "0123456789-/";
	var c;
	if (phone.length < 7 || phone.length > 15)
		return false;
	for(var i=0; i<phone.length; i++){
		c = phone.charAt(i);
		if (validChars.indexOf(c) == -1)
			return false;
	}
	return true;
}

function reset_error_labels(controls){		
	for (var i = 0; i < controls.length; ++i) {
		var label = xGetElementById(controls[i].name + '_label');
		if (label){
			label.removeAttribute('style');
		}	
	}
}

function set_error_label(ele){
	var label = xGetElementById(ele.name + '_label');
	if (label){
		label.style.color = '#FF0000';
	}	
}

function inject_suggest_behavior(){
	var controls = xGetElementsByAttribute('input', 'autocomplete_field', '.+', null);
	var suggestOptions = { 
		matchAnywhere      	: false,
		ignoreCase      	: true,
		suggestDivClassName : 'suggest_box',
		selectionColor		: '#FFC82F',
		count				: 10
	};
	
	for (var i = 0; i < controls.length; ++i) {
		var field = controls[i].getAttribute('autocomplete_field');
		var id = controls[i].getAttribute('id');		
		suggestOptions.requestParameters = ['t=' + field];			
		suggest = new TextSuggest(id, 'ajax_handlers/lista_svojstava.php', suggestOptions);
	}
}

function rent_show(el){
    if (!el || el == null) return false;
	var rent_table = xGetElementById('rent_table');
	var sell_table = xGetElementById('sell_table');
	var priceEl = xGetElementById("cijena");

	if (el.value == 'prodaja'){
		rent_table.style.display = 'none';
	} else {
		rent_table.style.display = '';
	}
	
	if (el.value == 'najam'){
		sell_table.style.display = 'none';		
		priceEl.value = "0";
	} else {
		sell_table.style.display = '';
	}
}

function switchPriceControls(el){
	var priceEl = xGetElementById("cijena");
	var valutaEl = xGetElementById("valuta");
	var bezEl = xGetElementById("bez_cijene");
	var naUpitEl = xGetElementById("na_upit");
	var porezEl = xGetElementById("porez");
	
	if (el.id == "bez_cijene"){
		naUpitEl.disabled = el.checked;
	} else {
		bezEl.disabled = el.checked;
	}
		
	priceEl.disabled = el.checked;
	valutaEl.disabled = el.checked;
	if (porezEl){
		porezEl.disabled = el.checked;
	}
	
	if (priceEl.disabled){
		priceEl.value = "0";
		if (porezEl){
			porezEl.value = "";
		}
	}	
}

function engine_show(el){
	var rent_table = xGetElementById('engine_table');
	
	if ((el.value == '') || (el.value == 'bez_motora')) {
		rent_table.style.display = 'none';
	} else{
		rent_table.style.display = '';
	}	
}

function detailed_search_show(el){
	var flag = el.getAttribute("flag");
	var nextText = el.getAttribute('nextText');
	var tableEl = xGetElementById("detailed_search");
	
	if (flag == null || flag == 'off'){
		tableEl.style.display = '';
		flag = 'on';
	} else {
		tableEl.style.display = 'none';
		flag = 'off';
	}
	el.setAttribute("flag", flag);
	el.setAttribute("nextText", el.firstChild.data);
	el.firstChild.data = nextText;
}

function wopen_sr(url, name, w, h)
{
	w += 32;
	h += 96;
	wleft = (screen.width - w) / 2;
	wtop = (screen.height - h) / 2;
	var win = window.open(url,
	name,
	'width=' + w + ', height=' + h + ', ' +
	'left=' + wleft + ', top=' + wtop + ', ' +
	'location=no, menubar=no, ' +
	'status=no, toolbar=no, scrollbars=yes, resizable=yes');
	win.resizeTo(w, h);
	win.moveTo(wleft, wtop);
	win.focus();
	return win;
}

function survey_answer_chosen(el){
	var chosenEl = xGetElementById("odabran");
	
	chosenEl.value = el.value;
}

function anketa_glasaj()
{
    var id = xGetElementById('anketa_id').value;
    var odgovor = xGetElementById('odabran').value;
    
	if (odgovor == ""){
		alert (poruka_anketa);
		return false;
	}
    wopen_sr('ankete_popup.php?id=' + id + '&odgovor=' + odgovor, 'anketa', 320, 240);
    return false;
}

function validate_email(form_id,email) { 
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.forms[form_id].elements[email].value;
   if(reg.test(address) == false) {
      alert(probni_alert);
      return false;
   }
}

function pokazi(Click_Menu)
{
el = document.getElementById(Click_Menu);
if (el.style.display == "none")
{
el.style.display = "";
}
else
{
el.style.display = "none";
}
}

function check_favorites() {
var total =  0;
var ids = '';
var form = document.getElementById('forma_favoriti');
var max = form.checkbox.length;
for (var idx = 0; idx < max; idx++) {
if (eval("form.checkbox[" + idx + "].checked") == true) {
    total += 1;
    ids += eval("form.checkbox[" + idx + "].id")+':'; 
   }
}
if (total > 3) {
alert("Možete odabrati najviše 3 favorita za usporedbu!");
return false;
}
else {
wopen_sr('usporedba_favorita.php?ids=' + ids, 'Usporedba favorita', 640, 480);
}
}
    
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
