function uiPollBuilder(area_id, mayvote) {
	var area= document.getElementById(area_id);
	var xhr= null;
	var uri= 'polls/latest';
	var data=null;
	var voted= false;

	area.innerHTML= '<div class="ajax_box"></div>';

	if (window.XMLHttpRequest)
		xhr= new XMLHttpRequest();
	else if (window.ActiveXObject)
		xhr= new ActiveXObject('Microsoft.XMLHTTP');

	if (!xhr) return;

	function submitForm() {
		if (voted || !mayvote) return false;
		voted= true;

		var uri= 'polls/vote-latest';

		var data= phpwdsGetFormData('form_poll');
		var data_t= 'pollopt=' + data.pollopt;

		xhr.open('POST', phpwds_baseurl + uri, false);
		xhr.setRequestHeader('Method', 'POST /' + uri + ' HTTP/1.1');
		xhr.setRequestHeader('Accept', 'application/json');
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xhr.send(data_t);
		if (xhr.status == 200) {
			window.location='polls/1#latest';
		}

		return false;
	}

	xhr.open('GET', phpwds_baseurl + uri, true);
	xhr.setRequestHeader('Accept', 'application/json');
	xhr.onreadystatechange= function() {
		if (xhr.readyState==4 && xhr.status == 200 && xhr.getResponseHeader('Content-Type').indexOf('application/json') != -1) {
			data= null;
			eval('data=' + xhr.responseText);

			// Poll form
			var form= document.createElement('form');
			form.setAttribute('id', 'form_poll');
			form.onsubmit= submitForm;

			// Poll question
			var p= document.createElement('p');
			p.appendChild(document.createTextNode(data.question));
			form.appendChild(p);

			// Poll options
			for (i in data.options) {
				var opt= data.options[i];

				var l= document.createElement('label');
				var i= document.createElement('input');
				i.setAttribute('type', 'radio');
				i.setAttribute('name', 'pollopt');
				i.setAttribute('value', opt.id);
				i.setAttribute('class', 'checkbox');
				i.onclick= function() {submitForm();}

				l.appendChild(i);
				l.appendChild(document.createTextNode(opt.text));
				form.appendChild(l);
			}
			if (!mayvote) {
				p= document.createElement('p');
				p.setAttribute('style', 'text-align:center;font-size:0.8em');
				p.appendChild(document.createTextNode('(Morate biti logirani da bi glasovali.)'));
				form.appendChild(p);
			}

			// Inner box
			var b= document.createElement('div');
			b.setAttribute('class', 'box');
			var h= document.createElement('div');
			h.setAttribute('class', 'head');
			h.appendChild(document.createTextNode('Anketa'));
			b.appendChild(h);
			b.appendChild(form);

			// Outer box
			var b2= document.createElement('div');
			b2.setAttribute('class', 'box2');
			b2.appendChild(b);

			// Poll area
			area.innerHTML= '';
			area.appendChild(b2);


						$("#content .box2").corner("round");
			$("#content .box2 .box").corner("round");
			$("#content .box2 .box .head").corner("top");

		}
	}
	xhr.send();

}

function uiSideNews(box_id) {
	var box= document.getElementById(box_id);
	if (!box) return;
	var xhr= new phpwdsHttpRequest(function(code, data) {
		if (code==200) {
			eval("data= " + data + ';');
			if (!data.length) {
				box.innerHTML= 'Nema novosti.';
			} else {
				var str="";
				for (i in data) {
					str+= '<div><img src="'+data[i].thumbnail+'" /><span>' + data[i].news_tstamp + '</span> <a href="news/item/' + data[i].news_id + '">' + data[i].news_title + '</a></div>';
				}
				box.innerHTML= str;
			}
		}
	});
	xhr.send('GET', 'news/1', null, 'application/json');
}

function uiSideReviews(box_id) {
	var box= document.getElementById(box_id);
	if (!box) return;
	var xhr= new phpwdsHttpRequest(function(code, data) {
		if (code==200) {
			eval("data= " + data + ';');
			if (!data.length) {
				box.innerHTML= 'Nema recenzija.';
			} else {
				str= '';
				for (i in data) {
					str+= '<div><img src="static/files/reviews/'+data[i].review_id+'/thumbs/'+data[i].thumbnail+'" /><span>' + data[i].review_tstamp + '</span> <a href="reviews/view/' + data[i].review_id + '">' + data[i].review_title + '</a></div>';
				}
				box.innerHTML= str;
			}
		}
	});
	xhr.send('GET', 'reviews/1', null, 'application/json');
}

function uiWebshopButton() {
	var clicked= false;
	var splash_id= '';
	var xhr= new phpwdsHttpRequest(function(code, data) {
		if (code==200) {
			phpwdsShowSplash(data, 'info', splash_id);
		} else {
			phpwdsShowSplash(data, 'warn', splash_id);
		}
		clicked= false;
	});

	this.on_click= function(product_id, rent, rbox) {
		if (clicked) return false;
		clicked= true;
		data= new Object();
		data.product_id= product_id;
		data.rent= rent;
		splash_id= rbox;
		document.getElementById(rbox).innerHTML= '<div class="ajax_loader">Stavljam proizvod u ko\u0161aricu...</div>';
		xhr.send('POST', 'webshop/add', data, 'text/plain');
		return false;
	}
}

function uiVoteProduct() {
	var clicked= false;
	var splash_id='';
	var form_box= '';
	var user_rating=0;
	var xhr= new phpwdsHttpRequest(function(code, data) {
		if (code==200) {
			phpwdsShowSplash(data, 'info', splash_id);
			document.getElementById(form_box).innerHTML= '<div><img src="static/img/vote-'+user_rating+'.png" alt="ocjena '+user_rating+'" /> (vaša ocjena)</div>';
		} else {
			phpwdsShowSplash(data, 'warn', splash_id);
		}
		clicked= false;
	});

	this.vote= function(product_id, rating, rbox, formbox) {
		if (clicked) return false;
		clicked= true;
		data= new Object();
		data.rating= rating;
		splash_id= rbox;
		form_box= formbox;
		user_rating= rating;
		document.getElementById(rbox).innerHTML= 'Bilje\u017eim Vašu ocjenu...';
		xhr.send('POST', 'products/rate/' + product_id, data, 'text/plain');
		return false;
	}
}

function uiFeatureRotator(obj, id, features) {
	var delay= 4;
	var count= features.length;
	var current= 0;
	var e= document.getElementById(id);
	var paused= false;
	var t= null;

	this.rotator= function() {
		if (paused) return;
		e.innerHTML= '<a href="' + phpwds_baseurl + features[current][1] + '"><img src="static/files/featured/'+features[current][0]+'" alt="feature" /></a>';
		current= current + 1;
		if (current >= count) current= 0;
		if (!paused)
			t= setTimeout(obj + ".rotator()", delay * 1000);
	}

	e.onmouseover= function() {
		paused= true;
		clearTimeout(t);
	}

	e.onmouseout= function() {
		paused= false;
		t= setTimeout(obj + ".rotator()", delay * 1000);
	}


	this.rotator();
}
