var lastid    = 0;
var starClicked = false;
var isover=false;
var globalId=false;
var canSend=false;
var archivecount=0;

function initRating() {
	if (!document.getElementsByTagName){ return; }
	var imagez = document.getElementsByTagName('img');

	for (var i=0; i<imagez.length; i++){
		var img = imagez[i];

		var att = String(img.getAttribute('id'));

		if (img.getAttribute('src') && att.toLowerCase().match('rate-star')) {
			img.onclick     = function () {doRateStarClick(this); return false;}
			img.onmouseover = function () {doRateStarOver(this); return false;}
			img.onmouseout  = function () {doRateStarOut(this); return false;}
		}
	}
}

function initAjaxMenu() {
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName('a');

	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];

		var relAttribute = String(anchor.getAttribute('rel'));

		if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('menu')) && !relAttribute.toLowerCase().match('submenu') ){
			anchor.onclick = function () {doAjax(this); return false;}
		} else if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('archive')) ){
			anchor.onclick = function () {doArchive(this); return false;}
		}
	}
}

function doAjax(obj){
	var rel = obj.rel;
	var tmp = rel.split('-');

	if (tmp[0].toLowerCase().match('menu') && !tmp[0].toLowerCase().match('submenu')) {
		// check whether we have submenu DIV or not. If yes, open it.
		if (ge('submenu-'+tmp[1])!=null && ge('submenu-'+tmp[1])!=undefined) {
			// toggle submenu on and off
				new Effect.toggle('submenu-'+tmp[1], 'blind', {duration:0.75});
		} else {
			// check whether user clicked on article or on yggdrasil item.
			if (tmp[1]==null || tmp[1]==undefined || tmp[1]=="") {
				// looks like this is yggdrasil item
				getContent('yggdrasil', obj.href);
			} else {
				// looks like this is article item with no submenu
			}
			return false;
		}
	} else if (tmp[0].toLowerCase().match('submenu')) {
		getContent('articles', tmp[1]+'-'+tmp[2]);
	}
}

function doArchive(obj){
	var archivecount = ((archivecounterarray==undefined)?0:archivecounterarray.length);
	if (archivecount>0) {
		for (var x=0; x<archivecount; x++) {
			var f=ge('menu-'+archivecounterarray[x]);
			new Effect.toggle(f, 'blind', {duration:0.75});
		}
		//new Effect.toggle('archive', 'blind', {duration:0.75});
	} else {
		return false;
	}
}


function doRateStarClick(obj) {
	if (starClicked==false) {
		var att = String(obj.getAttribute('id'));
		var temp = att.split('-');
		new Effect.Fade('rate-stars', {duration:0.5, to:0.3});
		new Effect.Appear('rate-progress', {duration:0.5, to:1.0});
		new Ajax.Request("scripts/ajax-rating.php", {parameters:'type=rateArticle&rating='+Math.round(temp[2])+'&article='+Math.round(temp[3]), onSuccess:handlerFuncRating, onFailure:errFunc});
		starClicked = true;
	}
}

function doRateStarOver(obj) {
	if (starClicked==false) {
		var att = String(obj.getAttribute('id'));
		var temp = att.split('-');
		for (var i=1; i<Math.round(temp[2])+1; i++) {
			document.getElementById('rate-star-'+i+'-'+temp[3]).src='i/ico-star-active.gif';
		}
	isover=true;
	}
}

function doRateStarOut(obj) {
	isover=false;
	if (starClicked==false) {
		var att = String(obj.getAttribute('id'));
		var temp = att.split('-');
		for (var i=1; i<6; i++) {
			document.getElementById('rate-star-'+i+'-'+temp[3]).src='i/ico-star-inactive.gif';
		}
	}
}

function doRateStarOutDivOver() {
	if (starClicked==false && isover==false) {
		for (var i=1; i<6; i++) {
			if (i<=activeStarsCount && activeStarsCount!=0) {
				document.getElementById('rate-star-'+i+'-'+articleId).src='i/ico-star-active.gif';
			} else {
				document.getElementById('rate-star-'+i+'-'+articleId).src='i/ico-star-inactive.gif';
			}
		}
	}
}


function getContent(type, id){
	Element.setOpacity('content-itself', 0);
	new Ajax.Request("scripts/ajax-content.php", {parameters:'type='+type+'&id='+id, onSuccess:handlerFunc, onFailure:errFunc});
}

function toolbars(tbar, rate) {
	if(ge('content-toolbar').style.display=="none" && tbar==1) {
		new Effect.BlindDown('content-toolbar', {duration:0.75});
	} else if (ge('content-toolbar').style.display!="none" && tbar==0) {
		new Effect.BlindUp('content-toolbar', {duration:0.75});
	}
	if(ge('content-rate').style.display=="none" && rate==1) {
		new Effect.BlindDown('content-rate', {duration:0.75});
	} else if (ge('content-rate').style.display!="none" && rate==0) {
		new Effect.BlindUp('content-rate', {duration:0.75});
	}
}

function checkSender(obj) {
	if (obj.value=='') {
		ge(obj.name+'Result').innerHTML = '&nbsp; Meno odosielateľa je neplatné.';
		canSend=false;
	} else {
		ge(obj.name+'Result').innerHTML = '&nbsp;';
		canSend=true;
	}
}

function showNotifier() {
	Effect.toggle('content-notifier', 'blind', {duration:0.75});
	ge('emailReceiver').value='';
	ge('emailSender').value='';
	ge('nameSender').value='';
	ge('notifierSubmitResult').innerHTML='&nbsp;';
}

function checkEmail(obj) {
	globalId=obj;
	new Ajax.Request("scripts/ajax-notifier.php",
	 {parameters:'type=validateEmail&address='+obj.value,
		onSuccess:handlerFuncCheckMail,
		onFailure:errFunc}
	);
}

function submitNotifier() {
	if (ge('emailReceiver').value!='' && ge('emailSender').value!='' && ge('nameSender').value!='') {
		new Effect.Appear('notifier-progress', {duration:0.5});
		new Ajax.Request("scripts/ajax-notifier.php",
		 {parameters:'type=sendEmail&article='+articleId+'&emailReceiver='+ge('emailReceiver').value+'&emailSender='+ge('emailSender').value+'&nameSender='+ge('nameSender').value,
			onSuccess:handlerFuncSendMail,
			onFailure:errFunc}
		);
	} else {
		alert('Niesú vyplnené niektoré polia.');
	}
}


// Helper funcs

var handlerFuncRating = function(t) {
	new Effect.Fade('rate-progress', {duration:0.5});
	new Effect.Appear('rate-output', {duration:0.5});
	//ge('content-itself').innerHTML = t.responseText;
}

var handlerFuncSendMail = function(t) {
	new Effect.Fade('notifier-progress', {duration:0.5});
	if (t.responseText){
		ge('notifierSubmitResult').innerHTML = '&nbsp; Upozornenie na článok bolo odoslané. <a href="javascript:showNotifier();" target="_self">Zatvoriť.</a>';
	} else {
		ge('notifierSubmitResult').innerHTML = '&nbsp; Nepodarilo sa odoslať e-mail.';
	}
	globalId=false;
}

var handlerFuncCheckMail = function(t) {
	if (t.responseText==1||t.responseText=='1'){
		ge(globalId.id+'Result').innerHTML = '&nbsp;';
		canSend=true;
	} else {
		ge(globalId.id+'Result').innerHTML = '&nbsp; Adresa nieje správna.';
		canSend=false;
	}
	globalId=false;
}

var handlerFunc = function(t) {
	ge('content-itself').innerHTML = t.responseText;
}

var errFunc = function(t) {
	alert('Error ' + t.status + ' -- ' + t.statusText);
}

function ge(o){
	return document.getElementById(o);
}

function isdefined(variable) {
	return (typeof(window[variable]) == "undefined")?  false: true;
}

window.onload = function(){
	initAjaxMenu();
	initRating();

	if (articleId!=0) {
		var Timer = setInterval("doRateStarOutDivOver()", 50);
	}

	ge('vyhladavanie-input').onfocus = function(){
		this.style.color="#444444";
		this.select();
	}
	ge('vyhladavanie-input').onblur = function(){
		this.style.color="";
	}
}

function submitSearch() {
	var x=ge('vyhladavanie-input');
	if(x.value!=''&&x.value.length>2&&x.value!='Zadajte hľadaný výraz...'){
		document.forms['searchForm'].submit();
	}else{
		alert('Nesprávne vyplnený hľadaný výraz.');
		x.focus();
	}
}


function rozsireneVyhladavanie() {
	ge('rozsirene').value = ((ge('rozsirene').value=='0'||ge('rozsirene').value==0)?ge('rozsirene').value='1':ge('rozsirene').value='0');
	Effect.toggle('vyhladavanie-rozsirene', 'blind', {duration:0.5});
}
