LBoxRating 				= function () {};
InlineContent			= function () {};
Page 					= function () {};
inquiry					= function () {};

/**
* nacte danemu elementu starbox
@param element elm - parent starbox element
*/
LBoxRating.starboxLoad = function(elm) {
	Element.extend(elm);
	var aPIURL	= '';
	var elmIdParts 			= elm.id.split("-");
	var elmItemType			= elmIdParts[0];
	var elmItemId			= elmIdParts[1];
	var ratingParamsElms	= elm.descendants();
	var ratingTotal			= 0;
	var ratingAVG			= 0;
	var ratingIndicator		= false;
	var ratingRated			= false;

	for (var i=0; i<ratingParamsElms.length; i++) {
		switch (ratingParamsElms[i].className) {
			case 'total':
				ratingTotal = ratingParamsElms[i].innerHTML;
			break;
			case 'average':
				ratingAVG = ratingParamsElms[i].innerHTML;
			break;
			case 'indicator':
				ratingIndicator = ratingParamsElms[i].innerHTML;
			break;
			case 'rated':
				ratingRated	= (ratingParamsElms[i].innerHTML == '1') ? true : false;
			break;
		}
	}
	new Starbox(elm, ratingAVG, {onRate: function(element, info){LBoxRating.ratingSave(element, info);}
	, effect: { mouseover: false, mouseout: true }, duration: 0.1, indicator: ratingIndicator, locked: ratingRated});
}

/**
 * Posle rating usera na API
 * @param element elm
 */
LBoxRating.ratingSave = function(elm, info){
	var aPIURL		= '/api/front';
	var ratingType	= '';
	var elmIdParts 	= elm.id.split("-");
	var elmItemType	= elmIdParts[0];
	var elmItemId	= elmIdParts[1];
	switch (elmItemType) {
		case 'download':
			ratingType = 'download';
		break;
		default:
	}
	// API request
	var request = new Ajax.Request(aPIURL, {
						  method: 'get',
						  parameters: {method: 'set', what: 'rating', type: ratingType, id: elmItemId, value: info.rating}
						});
}

/**
* loaduje starboxy k relevantnim elementum
@param string elmsTagName - tagname parent elementu pro starboxy
*/
LBoxRating.starboxLoadAll = function(elmsTagName) {
	var elms = document.getElementsByTagName(elmsTagName);
	for (var i=0; i < elms.length; i++) {
		if (elms[i].className == 'starbox') {
			LBoxRating.starboxLoad(elms[i]);
		}
	}
}

/**
* loaduje obsah clanku primo do vypisu
@param element articleLinkElm - element linku clanku ve vypisu
*/
InlineContent.toggleArticleContent = function(event) {
	articleLinkElm	= this;
	event.stop();
	
	var aPIURL		= '/api/front';
	Element.extend(articleLinkElm);
	var articleElm	= articleLinkElm.up('div.article');
	var artElmId	= articleElm.id;
	var artId		= artElmId.replace("article-", "");

	// nenacitame podruhe - jen switchujeme viditelnost
	divContent	= articleElm.down('div.content');
	if (divContent) {
		if (divContent.visible()) {
			new Effect.BlindUp(divContent, {duration: 1});
			// articleElm.scrollTo();
		}
		else {
			new Effect.BlindDown(divContent, {duration: 1});
			// divContent.scrollTo();
		}
		Event.stop(event);
		return false;
	}

	var permalink	= new Element('a', { 'class': 'gui permalink', 'href': articleLinkElm.href})
							.update(articleElm.down('.gui-data').down('.permalink-text').innerHTML);
	var linkClose	= articleElm.down('.gui-data').down('.link-close').down('a');
	if (linkClose) {
		Event.observe(linkClose, 'click', InlineContent.toggleArticleContent); 
	}

	// vytvoreni divu pro obsah clanku
	var divContent	= new Element('div', { 'class': 'wsw content', 'id': artElmId+'-content'});
	divContent.insert({top: permalink});
	divContent.hide();
	articleElm.insert(divContent);

	// loads content into div
	new Ajax.Updater(divContent, aPIURL, {
						method: 'get',
	  					parameters: {method: 'get', what: 'articleParam', type: 'body', id: artId},
						insertion: Insertion.Bottom,
						asynchronous: false
					});
	if (linkClose) divContent.insert(linkClose);
	
	new Effect.BlindDown(divContent, {duration: 1});
	// divContent.scrollTo();
}

Page.sDefense = function ($fEl, formGroupName) {
   var $fc = document.createElement('input');
   $fc.type = 'hidden';
   $fc.name = formGroupName ? formGroupName+'[defense]' : 'defense';
   $fc.value = '1';
   $fEl.appendChild($fc);
};

InlineContent.attach = function() {
return;
	var articlesLinks		= $$('.articles .heading a');
	// observe inline contentu clanku
	for (i=0; i < articlesLinks.length; i++) {
		Event.observe(articlesLinks[i], 'click', InlineContent.toggleArticleContent); 
	}
	
}
Event.observe(window, 'load', InlineContent.attach);

inquiry.morph = function() {
	this.up('.option').down('.scale-container form').submit();
}
inquiry.morphLoad = function() {
	var answer;
	var link
	var forms	= $$('.inquiry form');
	for (i=0; i < forms.length; i++) {
		submit	= forms[i].down('.submit');
		answer	= submit.up('.option').down('.text');
		link	= new Element('a', { 'href': '#', 'title': 'Hlasovat '+ answer.innerHTML})
							.update(answer.innerHTML);
		Event.observe(link, 'click', inquiry.morph);
		answer.update(link);
		submit.hide();
	}
}
Event.observe(window, 'load', inquiry.morphLoad);

parseMails = function() {
	$$('a.mail').each(function(item) {
		item.href=item.href.replace(/([\w-_.:]+)\|na\|([\w-_.:]+)/,"$1@$2");
		item.innerHTML=item.innerHTML.replace(/([\w-_.:]+)\|na\|([\w-_.:]+)/,"$1@$2");
	});
}
Event.observe(window, 'load', parseMails);
