function onLoadParseCommand()
{
    
    var inputList = document.getElementsByTagName('input'); 
  	var hashList = new Object();
  	
  	//addLoadEvent(ChangeCSSBgImg);
  	
    for(var i=0;i<inputList.length;i++ )
    
    {
    
      var element = inputList[i];
    
      if(element.id == undefined)
      {
       alert("One or more imput doesn`t have id"+element.className);
       return;
      }
      var idstr = element.id.toString();
      
      var pattern = /(Cmd)(.+)/;
      
      var result =  idstr.match(pattern);
      
     if(result != null)
     {
        if(result[1] == "Cmd")
        {
          var resend = result[2].split('_');          
          var argument = "";
          var name = "";
          
          name =  result[2];           
          if(resend.length == 2)
          {
            argument = resend[1];
            name = resend[0];
          }
          
          if(hashList[name] == undefined)   
      		hashList[name] = element;
      	  else
      	  {
      	  	alert("Error: duplicate command :"+name);
      	  	return;
      	  }
          element.cmdargument = argument;
          element.cmdname = "Cmd"+name;                                    
          element.onclick = function()
          {           
             var valid = this.getAttribute('valid')
             var ret = true
             if (valid) ret = eval(valid)
             if (ret) sendCommand(this.cmdname, this.cmdargument);
             return false
          }
                  
        } 
     }
      
     
      
    }
    
    
    
    
}

function sendCommand(commandName , commandArgument, formContainer)
{
	if (!formContainer) formContainer = "mainForm";
    var mainForm = document.getElementById("mainForm");
    
	disableOtherFormFields(formContainer);
    
    var CommandArgumentElement = document.getElementById("CommandArgument");  
    var CommandNameElement = document.getElementById("CommandName");
    var ComponentIdElement = document.getElementById("ComponentId");

    if(commandArgument != undefined)
    	CommandArgumentElement.value = commandArgument;
    	
    CommandNameElement.value = commandName;
    ComponentIdElement.value = formContainer;
    mainForm.submit();
	return;
}

function checkemail(email)
{
	var filter=/^.+@.+\..{2,3}$/;
	if (filter.test(email)) return true
	return false
}

function sendValidateForm(click_button)
{
	// naleznem ID div, ve kterém je form zabalený
	var formId = findContainerFormId(click_button);
		
	//var inputList = document.getElementsByTagName('input');	
	//var areaList = document.getElementsByTagName('textarea');
	//var selectList = document.getElementsByTagName('select');
	
	var inputList = findInputs(formId);	
	var areaList = findTextareas(formId);
	var selectList = findSelects(formId);
	
	var sdata = new Array();
	
	var elementArray = new Array();	
	var button = null;
  	for(var i=0;i<inputList.length;i++)
  	{
        if(inputList[i].name.charAt(1) == "_")
        {
	  		if(inputList[i].type != "button") {
				elementArray.push(inputList[i]);
			}
	  		else {
				button = inputList[i];
				//alert(inputList[i].type);
			}
	  	}
	}
	if (button == null)
	{
	 alert('Error')
	 return; 
	}
	for(var i=0;i<areaList.length;i++)
	{
	  	if(areaList[i].name.charAt(1) == "_" )
		{
	  		elementArray.push(areaList[i]);
	  	}
	}
    for(var i=0;i<selectList.length;i++)
    {
	  	if(selectList[i].name.charAt(1) == "_" )
	  	{
			elementArray.push(selectList[i]);
	  	}
	}

	   		
	for(var i=0;i<elementArray.length;i++)
	{
		var name = elementArray[i].name;
		var value = elementArray[i].value.replace(/^\s*|\s*$/g, "");				
		var pole = name.split("_");
		if (elementArray[i].type == 'text')
		{
			var required = (Number(pole[2])==1) ? true : false;
			if (required)
			{
				if(value == '')
				{
					var desc = Utf8.decode(pole[1]);
					alert(command_js_txt1+desc);
					elementArray[i].focus();
					return
				}
			}
		}

		if (elementArray[i].type == 'text' && pole[3]==4)
		{
			var desc = Utf8.decode(pole[1]);		
			if (!checkemail(value))
			{
				alert(command_js_txt2+desc);
			   	elementArray[i].focus();
				return
			}			
		}
	}

	if(confirm(command_js_txt3))
	{			
        for(var i=0;i<elementArray.length;i++)
		{
			sdata.push("p"+i+":"+elementArray[i].name);
			elementArray[i].name = "p"+i;
		}
		var psdata = document.getElementById("psdata");
 		if (!psdata)
 		{
			psdata = document.createElement("input");
        	psdata.setAttribute("name","psdata");
        	psdata.setAttribute("id","psdata");
        	psdata.setAttribute("type","hidden");
        	document.getElementById("mainForm").appendChild(psdata);
		}
		var a = ""
		for(var i=0;i<sdata.length;i++) a += "(!^#@]"+sdata[i]
		psdata.value = a
		
		sendCommand("CmdSendForm", button.name, formId);
	}			
}

function resetForm()
{
	var inputList = document.getElementsByTagName('input');	
	var areaList = document.getElementsByTagName('textarea');

  	for(var i=0;i<inputList.length;i++)
  	{
	  	if(inputList[i].name.charAt(1) == "_" && inputList[i].type == "text") inputList[i].value = ""	  
	}
	for(var i=0;i<areaList.length;i++)
	{
	  	if(areaList[i].name.charAt(1) == "_" ) areaList[i].value = ""	 
	}
}

function dweFormRadioClick(elRadio)
{
	var pole = elRadio.name.split("_");
	var group = pole[2];
	if ((!group) || (group == '')) return;
			
	var inputList = document.getElementsByTagName('input');	
  	for(var i=0;i<inputList.length;i++)
  	{
	  	var name = inputList[i].name;
	  	if(name.charAt(1) == "_" && inputList[i].type == "radio")
	  	{
	  		 pole = name.split("_");
	  		 if (pole[2] == group) inputList[i].checked = false;
	  	}	 	  
	}
	elRadio.checked = true;
}
/**
 * Nalezne ID divu, ve kterém je form zabalený
 * @example
 *  ID div = "formId_36091d9c98678eeee0d7f3fe78d391ce" 
 * @param string 
 */
function findContainerFormId(source_el)
{
	var el = source_el;
	var parent = null;
	var id = '';
	do {
		parent = el.parentNode;
		if(!parent) {
			return "mainForm";
		}
		id = parent.id;
		if(!id) id = '';
		el = parent;
	} while(id.match("^formId_[a-z0-9]*$") == null);
	//alert('id divu je '+id);	
	return id;
}

function findInputs(form_id) {
	var inputs = null;
	var elements = new Array();
	fields = document.getElementsByTagName('input');
	for(var i = 0; i < fields.length; i++) {
		div_form = findContainerFormId(fields[i]);
		if(div_form == form_id) {
			elements.push(fields[i]);
		}
	}
	return elements;
}

function findTextareas(form_id) {
	var fields = null;
	var elements = new Array();
	fields = document.getElementsByTagName('textarea');
	for(var i = 0; i < fields.length; i++) {
		div_form = findContainerFormId(fields[i]);
		if(div_form == form_id) {
			elements.push(fields[i]);
		}
	}
	return elements;
}

function findSelects(form_id) {
	var fields = null;
	var elements = new Array();
	fields = document.getElementsByTagName('select');
	for(var i = 0; i < fields.length; i++) {
		div_form = findContainerFormId(fields[i]);
		if(div_form == form_id) {
			elements.push(fields[i]);
		}
	}
	return elements;
}
/**
 * Při odeslání formuláře odstraní ty pole, která jsou nežádoucí
 * @param string div|form ID
 */ 
function disableOtherFormFields(form_id) {

	if(form_id == "mainForm") {
		// odešle se všechno
		return;	
	}

	var inputs = null;
	var textareas = null;
	var selects = null;

	var div_form = null;
	// počet zrušených prvků
	var found = 0;
	var removed = 0;
	
	inputs = document.getElementsByTagName('input');
	//alert('inputs = '+inputs.length);
	found += inputs.length;
	for(var i = 0; i < inputs.length; i++) {
		div_form = findContainerFormId(inputs[i]);
		if(div_form != form_id) {
			if(inputs[i].name != "CommandName" && inputs[i].name != "CommandArgument" && inputs[i].name != "psdata" && inputs[i].name != "ComponentId") {
				removed++;
				remove_el = inputs[i];
				//remove_el.setAttribute('name',null);
				remove_el.removeAttribute('name');
			}
		}
	}
	
	textareas = document.getElementsByTagName('textarea');
	//alert('textareas = '+textareas.length);
	found += textareas.length;
	for(var i = 0; i < textareas.length; i++) {
		div_form = findContainerFormId(textareas[i]);
		if(div_form != form_id) {
			if(inputs[i].name != "CommandName" && inputs[i].name != "CommandArgument" && inputs[i].name != "psdata" && inputs[i].name != "ComponentId") {
				removed++;
				remove_el = textareas[i];
				remove_el.removeAttribute('name');
			}
		}
	}
	
	selects = document.getElementsByTagName('select');
	//alert('selects = '+selects.length);
	found += selects.length;
	for(var i = 0; i < selects.length; i++) {
		div_form = findContainerFormId(selects[i]);
		if(div_form != form_id) {
			if(inputs[i].name != "CommandName" && inputs[i].name != "CommandArgument" && inputs[i].name != "psdata" && inputs[i].name != "ComponentId") {
				removed++;
				remove_el = selects[i];
				remove_el.removeAttribute('name');
			}
		}
	}
	//alert('found = '+found+', removed = '+removed);
}

