//part of Live Form Validation plugin for Nette Framework
//JavaScript functions for custom rendering of client-side errors
//change to your satisfaction (you can use 3rd party JS libs)

function hasClass(ele, cls) {
    var classes = ele.className.split(" ");
    for (var i=0;i<classes.length;i++)
        if (classes[i].indexOf(cls) == 0)
            return true;
    return false;
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var classes = ele.className.split(" ");
        ele.className = '';
        i = 0;
        for (var i=0;i<classes.length;i++)
            if (classes[i].indexOf(cls) != 0)
            {
                if(i==0) ele.className += classes[i];
                else ele.className += ' '+classes[i];
                i++;
            }
	}
}
function errorMessageElement(id, sender)
{
   	var el = document.getElementById(id);
    if(!el)
    {
        el = document.createElement('span');
        el.id = id;
        var parent = sender.parentNode;

        if(parent.lastchild == sender) {
            parent.appendChild(el);
        } else {
            parent.insertBefore(el, sender.nextSibling);
        }
    }
    else
    {
        var x = id.length;
        
        var idp = id.substr(0, x-8);
       
        var elp = document.getElementById(idp);
        
        sp=/nospam/;
        if (sp.test(elp.className)!=true) 
          el.style.display = 'inline';
    }
    return el;
}
function addError(sender, message)
{   	
	addClass(sender, 'form-control-error');
    var id = sender.id+'_message';
    el = errorMessageElement(id, sender);
    el.className = 'form-error-message';
    el.innerHTML = message;
    if(sender.style.display == 'none')
        el.style.display = 'none';
}

/**front**/
function addErrorFront(sender, message) {
	addClass(sender, 'form-control-error');
    
	var id = sender.id+'_message';    
    
    var id = sender.id+'_message';    
    
    if($("#" + id).length > 0) {
    	$("#" + id).remove();
    }
    
    el = errorMessageElement(id, sender);
    el.className = 'form-error-message';
    //el.innerHTML = message;
    if(sender.style.display == 'none')
        el.style.display = 'none';    
    
    //vlozit do error containeru
    var controlName = sender.id.substr(sender.id.indexOf("-")+1);    
    var containerName = "error-container-" + controlName;
    //vytvorit span a vrazit ho do pripraveneho divu    
    
    if($("#" + id + "_text").length == 0) {     
    	$('<span class="form-error-message-text" id="' + id + '_text">' + message + '</span>').appendTo("#" + containerName);   
	}

    if(sender.style.display == 'none')
        $("#" + containerName).hide();
}

function removeError(sender)
{	
	removeClass(sender, 'form-control-error');
    var el = document.getElementById(sender.id+'_message');
    if(el)
        el.style.display = 'none';
    onValid(sender);
}

/**front**/
function removeErrorFront(sender)
{
	
	removeClass(sender, 'form-control-error');
    var el = document.getElementById(sender.id+'_message');
    if(el)
        el.style.display = 'none';
	
	var controlName = sender.id.substr(sender.id.indexOf("-")+1);
	var containerName = "error-container-" + controlName;
	
	//odstranit element, pokud exituje
	if($("#" + containerName+" span").length > 0) {
		$("#" + containerName+" span").remove();     		
	}	
    onValid(sender);
}

function informError(submitter)
{    
	el = errorMessageElement(submitter.id+"_message", submitter);	
	el.className = "form-error-message";
    el.innerHTML = "\u0160patn\u011b vypln\u011bný formulá\u0159!";
    setTimeout('$("#'+ submitter.id+'_message").fadeOut(1000)', 5000);
    
}
function onValid(sender)
{   
	var id = sender.id+'_message';
    el = errorMessageElement(id, sender);
    el.className = 'form-valid-message';
    
    el.innerHTML = "";
    if(sender.style.display == 'none')
        el.style.display = 'none';
}


