// 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);
	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>1) { str += '-'; }

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

function pageLink(i, title) {
	return ' <a href="#' + ((i>1) ? ('page' + i) : '') + '" onClick="pageSwitch(' + i + ');">' + title + '</a>';
}

function pageSorter() {
	var str = ''
	for(var i=0; i<orders.length; i++) {
		if (i>0) { str += ','; }
		if (orders[i][0] == sort_order) {
			str = str + ' <b>';
		} else {
			str = str + ' <a 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; }

	if (i>1) {
		if (i>2) {
			str += pageLink(1, '<b>&laquo;</b> początek&nbsp;');
		}
		str += pageLink(i-1, '<b>&lsaquo;</b> poprzednie&nbsp;');
	}

	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>';

	if (i<pages_total) {
		str += pageLink(i+1, '&nbsp;następne <b>&rsaquo;</b>');
		if ((i+1)<pages_total) {
			str += pageLink(pages_total, '&nbsp;koniec <b>&raquo;</b>');
		}
	}
	return str;
}

function f_ch() {
	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ę...');

	var b_list = document.getElementsByName('b');
	var b = '';
	for (var i=0; i<b_list.length; i++) {
		if (b_list[i].checked) {
			b = b_list[i].value;
			break;
		}
	}
	if (b != '') { a.AddGETParam('b', b); }
	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'); }

	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;
}
