var proxyURL = '/soap/server_proxy_json.php';

/* **********
 * SUBMETHODS
 */
function showSubmethods(moduleName) {

    //skryti vsech moznych jinych submenu
    hideAll();

    //nalezeni elementu modulu v menu
    var menuItem = $('li-'+moduleName);

    //vygenerovani dynamickeho divu
    var items = document.getElements('div.Submethod-'+moduleName);
    if (items.length > 0) {
        var div = new Element('div', {'id' : 'submenu-'+moduleName, 'class' : 'submenu'});
        for (var i=0; i<items.length; i++) {
            var a = new Element('a', {
                'href' : items[i].get('text').split('::', 2)[0],
                'text' : items[i].get('text').split('::', 2)[1]
            });
            a.inject(div);
        }

        var pos = menuItem.getElement('a').getPosition();
        pos.y  += 27;
        div.setPosition(pos);
        div.setStyle('position', 'absolute');
        var menu1_a = menuItem.getElement('a');
        //vypocet sirky
        var width = menu1_a.getStyle('width').toInt() + menu1_a.getStyle('padding-left').toInt() + menu1_a.getStyle('padding-right').toInt(); 
        div.setStyle('width', width+'px');
        
        div.addEvent('mouseleave', function(){hideAll();});
        div.inject('content', 'before');
    }
}

function hideAll() {
    document.getElements('div.submenu').each(function(item) {
        item.dispose();
    });
}

function hideSubmethods(moduleName) {
//    $('submenu-'+moduleName).dispose();
}

window.addEvent('domready', function() {
    var header = document.getElement('.header');
    if (header != null) { header.addEvent('mouseenter', function() { hideAll(); }); }
});

/* *****
 * PALCE
 */
function initPalce() {
	['nahoru', 'dolu'].each(function(smer){
		document.getElements('.palec_'+smer).each(function(img){
			var parent = img.getParent('.GenericViewer');
			var name   = parent.get('id').split(':')[0];
			var id     = parent.get('id').split(':')[1];
			var hodnoceno = Cookie.read('iHodnotitelne-'+id);
			if (hodnoceno != 'ano') {
				img.addEvent('click', function(){ addPalecRequest(smer, name, id); });
				img.setStyle('cursor', 'pointer');
			} else {
				img.setStyle('visibility', 'hidden');
			}
		});	
	});
}

function addPalecRequest(smer, name, id){
	new Request.JSON({
        url: proxyURL,
        onSuccess: function(result){
			addPalecResponseHandle(result);
        }
    }).post({'method': 'addPalec', 'smer': smer, 'name': name, 'id': id});
	//odebrani eventu - zabraneni opakovanemu pozadavku
	$(name+':'+id).getElements('.palec').each(function(img){
		img.removeEvents();
		img.setStyle('cursor', 'auto');
	});
	//spinner
	var td = $(name+':'+id).getElement('.palce').getElements('td')[1];
	td.addClass('spinner');
	td.set('text', ' ');
}

function addPalecResponseHandle(result) {
	var td = $(result.name+':'+result.id).getElement('.palce').getElements('td')[1];
	td.removeClass('spinner');
	td.set('html', result.bar);
	//skryti palcu
	td.getParent().getElements('.palec').each(function(img){
		img.setStyle('visibility', 'hidden');
	});
}

function getLoginFields() {
	return [document.getElement('.LoginFormEditor .textInput'),document.getElement('.LoginFormEditor .passInput')];
}

function loginPanelDecorate() {
	if (Cookie.read('UserLoginId') == null) {
		getLoginFields().each(function (item){
			item.addEvent('keydown',   function(e){removeTextHints();});
			item.addEvent('mousedown', function(e){removeTextHints();});
		});
	}
}

function removeTextHints() {
	getLoginFields().each(function (item){
		item.removeEvents();
		item.setStyle('background-image', 'none');
	});
}

/* ***********
 * STRANKOVANI
 */
function initPaging() {
	document.getElements('div.ComponentCollection-Paging-Row').each(function(row){
		var actual = row.getElement('.actual');
		//strankovani neni povoleno
		if (actual == null) {
			return;
		}
		actual.addEvent('keydown', function(e){
			//bereme pouze cisla a backspace
			var code = e.code;
//			alert(code);
			if (!(((code > 47) && (code < 58)) || ((code > 95) && (code < 106)) || code == 8)) {
				e.stop(); 
			}
			if (e.key == 'enter') {
				var page    = String.toInt(actual.value);
				var maxPage = String.toInt(actual.getParent().getElement('input[name=maxpage]').value);
				var cpp     = String.toInt(actual.getParent().getElement('input[name=cpp]').value);
				if (page >= 1 && page <= maxPage+1) {
					var a = actual.getParent().getElement('a');
					//pouze 1 stranka ?
					if (a == null) {
						return;
					}
					//presmerovani
					var url = a.get('href').split('=')[0];
					url     = url+'='+((page-1)*cpp);
					location.href=location.protocol+'//'+location.hostname+location.pathname+url;
				}
				//neplatna hodnota
				else {
					alert('Chybně zadané číslo stránky.');
				}
			}
		});
		actual.addEvent('focus', function(e){
			e.target.value = '';
		});
		actual.addEvent('blur', function(e){
			var actual = $(e.target);
			actual.value = actual.getParent().getElement('input[name=actualStatic]').value;
		});
		
	});	
}

window.addEvent('domready', function() {
   initPalce();
   loginPanelDecorate();
   initPaging();
});

function inputKeyPress(event){
	if (event.keyCode!=13) return true;
	//enter - submit formulare
	event.stop();
	return false;
}




