// vim: set ts=4 sw=4 :
String.prototype.asInteger = function() { var l = parseInt(this, 10); return (isNaN(l)) ? 0 : l; };
Number.prototype.asInteger = function() { return (isNaN(this)) ? 0 : this; };

var tel_count = 0;
var f_ch_to = 0;

function e(id) {
	return document.getElementById(id);
}

function getPosition(e) {
	var pleft = 0; var ptop = 0;
	if (e.offsetParent) {
		do {
			pleft += e.offsetLeft + ((e.currentStyle) ? e.currentStyle.borderLeftWidth.asInteger() : 0);
			ptop += e.offsetTop + ((e.currentStyle) ? e.currentStyle.borderTopWidth.asInteger() : 0);
		} while (e = e.offsetParent);
	}

	return { x: pleft, y: ptop };
}


function clearField(id, dflt) {
	var field = e(id);
	if ( field.value == dflt ) {
		field.value = '';
	}
}

function setInner(html, id) {
	e(id).innerHTML = html;
}

function getAllBrands(ev) {
	ev.returnValue = false;

	setInner('<b>Ładuję...</b>', 'brandslink');
	var a = Ajax('/ajax/brands.html', document.location);
	a.onSuccess = function () { setInner(this.HTTP.responseText, 'brands'); }
	a.GET();
	
	return false;
}

function porUsun(evnt, id) {
	evnt.returnValue = false;

	var a = Ajax('/ajax/porownaj-usun-' + id + '.html');
	loadingShow('pcont', '');
	a.onSuccess = function () {
		loadingHide('pcont');
		setInner(this.HTTP.responseText, 'pcont');
	}
	a.GET();
	return false;
}

function sendComment(evnt, id) {
	evnt.returnValue = false;
	e('send').disabled = true;
	e('send').innerHTML = 'Wysyłam...';

	var a = Ajax('/ajax/komentarze-' + id + '.html');
	loadingShow('c2komentarze', 'Wysyłam...');
	a.onSuccess = function () {
		loadingHide('c2komentarze');
		setInner(this.HTTP.responseText, 'c2komentarze');
	}
	var rodzaj = '0';
	if (e('id_rodzaj_poz').checked) rodzaj = '+';
	if (e('id_rodzaj_neg').checked) rodzaj = '-';
	a.AddPOSTParam('komentarz', e('id_komentarz').value);
	a.AddPOSTParam('rodzaj', rodzaj);
	var podpis = document.getElementById('id_podpis');
	if (podpis){
		a.AddPOSTParam('podpis', e('id_podpis').value);
	}
	var captcha = document.getElementById('id_captcha');
	if (captcha){
		a.AddPOSTParam('captcha', e('id_captcha_key').value);
		a.AddPOSTParam('captcha', e('id_captcha').value);
	}
	a.POST();

	return false;
}

function getOceny(evnt, id) {
	evnt.returnValue = false;

	var a = Ajax('/ajax/oceny-' + id + '.html', document.location);
	loadingShow('ocena', 'Ładuję...');
	a.onSuccess = function () {
		loadingHide('ocena');
		setInner(this.HTTP.responseText, 'ocena');
		slider_new(e('id_ocena_wy_kn'), 1, 10, 0, 68, e('id_ocena_wy'));
		slider_new(e('id_ocena_ja_kn'), 1, 10, 0, 68, e('id_ocena_ja'));
		slider_new(e('id_ocena_mo_kn'), 1, 10, 0, 68, e('id_ocena_mo'));
	}
	a.GET();

	return false;
}

function sendOceny(evnt, id) {
	evnt.returnValue = false;

	setInner('Wysyłam...', 'ocenabtn');
	loadingShow('ocena', '');
	var a = Ajax('/ajax/oceny-' + id + '.html', document.location);
	a.onSuccess = function () {
		loadingHide('ocena');
		setInner(this.HTTP.responseText, 'ocena');
	}
	a.AddPOSTParam('wyglad', e('id_ocena_wy').value);
	a.AddPOSTParam('jakosc', e('id_ocena_ja').value);
	a.AddPOSTParam('mozliwosci', e('id_ocena_mo').value);
	a.POST();

	return false;
}

function addclass(a, klass) {
	var a = e('t_'+a);
	a.className = a.className + ' ' + klass;
}

function removeclass(a, klass) {
	var re = new RegExp('\\s?'+klass, 'g');
	var a = e('t_'+a);
	a.className = a.className.replace(re, '');
}

function pageNumerate() {
	var list = document.getElementsByTagName('div');
	var pagelist = '';
	var pn = 0;
	tel_count = 0;
	for (var i=0; i < list.length; i++) {
		if (list[i].className == 'page') {
			pn += 1;
			list[i].setAttribute('id', 'page_' + pn);
		}
		if (list[i].className.match(/tel(\s|")/)) {
			tel_count++;
		}
	}
	total_pages = pn;
	page = pageGet()

	if (tel_count > 0) {
		e('pn').innerHTML = pageNumbering(page);
		pageSwitch(page);
		e('strony').style.display = 'block';
		e('sorter').style.display = 'block';
		if ( pn > 1 ) {
			e('shortnav').innerHTML = pageNumberingShort(page);
			e('shortnav').style.display = 'inline';
		}
		pageSorter();
	} else {
		e('strony').style.display = 'none';
		e('shortnav').style.display = 'none';
		e('sorter').style.display = 'none';
	}
}

function pageGet() {
	var loc = document.location;
	loc = loc + '';
	var match = loc.match(/#page(\d+)/)
	if (match) {
		try { return parseInt(match[1]); }
		catch(e) { return 1; }
	} else {
		return 1;
	}
}

function pageSwitch(num) {
	var list = document.getElementsByTagName('div');
	for (var i=0; i < list.length; i++) {
		if (list[i].className == 'page') {
			id = list[i].getAttribute('id');
			list[i].style.display = (id == ('page_'+num)) ? 'inline' : 'none';
			if (id == ('page_'+num)) {
				pageEnableImages(list[i]);
			}
		}
	}
	e('pn').innerHTML = pageNumbering(num);
	e('shortnav').innerHTML = pageNumberingShort(num);
}

function pageEnableImages(node) {
	var list = node.childNodes;
	for (var i=0; i < list.length; i++) {
		try {
			img = list[i].childNodes[0].childNodes[0].childNodes[0];
			try {
				var src = img.getAttribute('longdesc');
				if (src) img.src = src;
			} catch (e) {};			
			makeDraggable(img, list[i].id, img.alt, img.src);
		} catch (e) {};
	}
}

function pageNumbering(sel) {
	var str = '';
	var max = total_pages;
	try { page_size = parseInt(page_size); }
	catch(e) { page_size = 1; }
	try { tel_count = parseInt(tel_count); }
	catch(e) { tel_count = 1; }

	for (var i=1; i <= max; i++) {

		from = (i-1) * page_size+1;
		to = i * page_size;
		if (to > tel_count) { to = tel_count; }

		str += ' <nobr>';

		if (i != sel) {
			str += pageLink(i, from + '-' + to);
		} else {
			str += ' <b class="button">' + from + '-' + to + '</b>';
		}
		str += '</nobr>';
	}
	return str;
}

function pageLink(i, title, enabled) {
	if (enabled == null) { enabled = true; }
	return ' <a class="button' + ((enabled) ? '' : ' disabled') + '" href="#' + ((i>1) ? ('page' + i) : '') + '" onClick="' + ((enabled) ? 'pageSwitch(' + i + ');' : 'function(e) {e.returnValue=false; return false;}') + '">' + title + '</a>';
}

function pageSorter() {
	var str = ''
	for(var i=0; i<orders.length; i++) {
		if (orders[i][0] == sort_order) {
			str = str + ' <b class="button">';
		} else {
			str = str + ' <a class="button" href="#" onclick="set_sort(\'' + orders[i][0] + '\');">';
		}
		str = str + orders[i][1];
		if (orders[i][0] == sort_order) {
			str = str + '</b>';
		} else {
			str = str + '</a>';
		}
	}
	e('sorter').innerHTML = str;
}

function pageNumberingShort(i) {
	var str = '';
	var max = total_pages;

	try { page_size = parseInt(page_size); }
	catch(e) { page_size = 1; }
	try { tel_count = parseInt(tel_count); }
	catch(e) { tel_count = 1; }

	str += pageLink(1, '<b>&laquo;</b>', (i>1));
	str += pageLink(i-1, '<b>&lsaquo;</b>', (i>1));

	from = (i-1) * page_size+1;
	to = i * page_size;
	if (to > tel_count) { to = tel_count; }
	var pages_total = Math.ceil(tel_count / page_size);
	
	str += ' <b>' + from + '-' + to + '</b> z <b>' + tel_count + '</b>';

	str += pageLink(i+1, '<b>&rsaquo;</b>', (i<pages_total));
	str += pageLink(pages_total, '<b>&raquo;</b>', (i<pages_total));
	return str;
}

function f_ch(el) {
	var a = '';
	if (f_ch_to) window.clearTimeout(f_ch_to);
	
	if (kategoria != '') {
		a = Ajax('/ajax/qsearch-' + kategoria +'.html', document.location);
	} else {
		a = Ajax('/ajax/qsearch.html', document.location);
		if (e('qsearchi').value != marka_i_model) {
			a.AddGETParam('s', e('qsearchi').value);
		}
	}
	a.AddGETParam('so', sort_order);
	loadingShow('lista', 'Filtruję...');
	try {
		document.getElementById('newsy_posty').style.display = 'none';
	} catch (e) {};

	var sel_b = document.getElementById('id_b');
	if (sel_b) {
		var b = sel_b.options[sel_b.selectedIndex].value;
		if (b != '') { a.AddGETParam('b', b); }
	}

	//var sel_rok = document.getElementById('id_rok');
	//var rok = sel_rok.options[sel_rok.selectedIndex].value;
	//if (rok != '') { a.AddGETParam('rok', rok); }

	var sel_os = document.getElementById('id_os');
	var os = sel_os.options[sel_os.selectedIndex].value;
	if (os != '') { a.AddGETParam('os', os); }

	var sel_mpx = document.getElementById('id_mpx');
	if (el == 'foto') {
		if (!e('id_f').checked) {
			sel_mpx.selectedIndex = 0;
		}
	}
	var mpx = sel_mpx.options[sel_mpx.selectedIndex].value;
	if (mpx != '') {
		a.AddGETParam('mpx', mpx);
		e('id_f').checked = 'checked';
	}

	//var sel_odbiornik = document.getElementById('id_odbiornik');
	//var odbiornik = sel_odbiornik.options[sel_odbiornik.selectedIndex].value;
	//if (odbiornik != '') { a.AddGETParam('odbiornik', odbiornik); }

	if (e('id_bt').checked) { a.AddGETParam('bt', 't'); }
	if (e('id_gps').checked) { a.AddGETParam('gps', 't'); }
	if (e('id_wf').checked) { a.AddGETParam('wf', 't'); }
	if (e('id_mp').checked) { a.AddGETParam('mp', 't'); }
	if (e('id_f').checked) { a.AddGETParam('f', 't'); }
	if (e('id_u').checked) { a.AddGETParam('u', 't'); }
	if (e('id_r').checked) { a.AddGETParam('r', 't'); }
	//if (e('id_i').checked) { a.AddGETParam('i', 't'); }
	if (e('id_3').checked) { a.AddGETParam('3', 't'); }
	if (e('id_kp').checked) { a.AddGETParam('kp', 't'); }
	if (e('id_qw').checked) { a.AddGETParam('qw', 't'); }
	if (e('id_3d').checked) { a.AddGETParam('3d', 't'); }
	if (e('id_ed').checked) { a.AddGETParam('ed', 't'); }
	if (e('id_kem').checked) { a.AddGETParam('kem', 't'); }
	if (e('id_ds').checked) { a.AddGETParam('ds', 't'); }
	if (e('id_lb').checked) { a.AddGETParam('lb', 't'); }

	document.location = '#';

	a.onSuccess = function () {
		loadingHide('lista');
		setInner(this.HTTP.responseText, 'lista');
		pageNumerate();
	}
	a.GET();
	
	return false;
}

function f_ch_ie() {
	if (document.all) {
		if (f_ch_to) window.clearTimeout(f_ch_to);
		f_ch_to = window.setTimeout(f_ch, 100);
	}
}

function set_sort(sort) {
	sort_order = sort;
	f_ch();
}

function loadingShow(for_id, msg, dx, dy) {
	var div = e(for_id);
	if (div == null) return false;

	if (!div.loader) {
		// create loader for that div:
		div.loader = document.createElement('div');
		div.loader.id = for_id + '_loader';
		div.loader.className = 'loader';
		div.loader.style.display = 'none';
		e('container').insertBefore(div.loader, e('container').firstChild);
	}
	// show loader
	if (msg == null) msg = 'Wczytuję...';
	if (dx == null) dx = 0;
	if (dy == null) dy = 0;
	div.loader.innerHTML = '<img src="/gfx/indicator.gif" alt="" /> ' + msg;
	var pos = getPosition(div);
	if (div.loader.style && (typeof(div.loader.style.left) == 'string')) {
		div.loader.style.left = (pos.x + 2 + dx) + 'px';
		div.loader.style.top = (pos.y + 2 + dy) + 'px';
	} else if (div.loader.style) {
		div.loader.style.left = pos.x + 2 + dx;
		div.loader.style.top = pos.y + 2 + dy;
	}
	div.loader.style.display = 'block';
}

function loadingHide(for_id) {
	var div = e(for_id);
	if (div == null) return false;
	if (div.loader) div.loader.style.display = 'none';
	return false;
}

