function sprintf()
{
	if (!arguments || arguments.length < 1 || !RegExp)
	{
		return;
	}
	var str = arguments[0];
	var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
	var a = b = [], numSubstitutions = 0, numMatches = 0;
	while (a = re.exec(str))
	{
		var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
		var pPrecision = a[5], pType = a[6], rightPart = a[7];
		
		//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);

		numMatches++;
		if (pType == '%')
		{
			subst = '%';
		}
		else
		{
			numSubstitutions++;
			if (numSubstitutions >= arguments.length)
			{
				alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
			}
			var param = arguments[numSubstitutions];
			var pad = '';
			       if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
			  else if (pPad) pad = pPad;
			var justifyRight = true;
			       if (pJustify && pJustify === "-") justifyRight = false;
			var minLength = -1;
			       if (pMinLength) minLength = parseInt(pMinLength);
			var precision = -1;
			       if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
			var subst = param;
			       if (pType == 'b') subst = parseInt(param).toString(2);
			  else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
			  else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
			  else if (pType == 'u') subst = Math.abs(param);
			  else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
			  else if (pType == 'o') subst = parseInt(param).toString(8);
			  else if (pType == 's') subst = param;
			  else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
			  else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
		}
		str = leftpart + subst + rightPart;
	}
	return str;
}

function file_upload(formular_files, prvky) {
  document.getElementById('input_'+prvky).style.display='none';
  document.getElementById('loading_'+prvky).style.display='block';
  formular_files.submit();
  
  pocet=document.getElementById('count_'+prvky).value;
  formular_files.reset();
  document.getElementById('count_'+prvky).value=pocet;
}

function file_uploaded(prvky, type, guid, soubor, ns, original) {
  if (!(ns>0)) {ns=0;}

  if (type=='1') {

    pocet = parseInt(document.getElementById('count_'+prvky).value)+1;
    document.getElementById('count_'+prvky).value=pocet;
    
    files[prvky+'_'+pocet+'_original_name'] = soubor;
    files[prvky+'_'+pocet+'_original_guid'] = guid;
    files[prvky+'_'+pocet+'_original_ns'] = ns;

  } else if (type=='3') {
  
    pocet = parseInt(document.getElementById('count_'+prvky).value);

    for (i=0; i<pocet; i++) {
      if (files[prvky+'_'+i+'_original_guid']==original) {pocet=i; break;}
    }
    
    files[prvky+'_'+pocet+'_preklad_name'] = soubor;
    files[prvky+'_'+pocet+'_preklad_guid'] = guid;
    files[prvky+'_'+pocet+'_preklad_ns'] = ns;

  } else {
  
    pocet = parseInt(document.getElementById('count_'+prvky).value)+1;
    document.getElementById('count_'+prvky).value=pocet;
    
    files[prvky+'_'+pocet+'_name'] = soubor;
    files[prvky+'_'+pocet+'_guid'] = guid;
    files[prvky+'_'+pocet+'_ns'] = ns;
  }

  pocet = parseInt(document.getElementById('count_'+prvky).value);
  
  obsah='<table style="width: 100%">';
  for (i=1; i<=pocet; i++) {
    obsah+='<tr>';

    if (files[prvky+'_type_original']) {
      if (files[prvky+'_type_original_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_original_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="'+sprintf(files[prvky+'_type_file_href'], files[prvky+'_'+i+'_original_guid'])+'" onclick="'+sprintf(files[prvky+'_type_file_onclick'], files[prvky+'_'+i+'_original_guid'])+'" title="'+files[prvky+'_'+i+'_original_name']+'">'+files[prvky+'_'+i+'_original_name'].substr(0, 11)+(files[prvky+'_'+i+'_original_name'].length>11?'...':'')+'</a></td>';
      if (files[prvky+'_type_original_ns']) {
        if (files[prvky+'_type_original_ns_edit']) {
          obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'" value="'+window.files[prvky+'_'+i+'_original_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_original_ns\']=this.value;" /></td>';
          obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_original_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
        } else {
          obsah+='<td colspan="2" style="width: 75px; text-align: right;">'+window.files[prvky+'_'+i+'_preklad_ns']+' NS</td>';
        }
      }
    }
    
    obsah+='<td style="width: 20px;"></td>';
    
    if (files[prvky+'_type_preklad']) {
      if (files[prvky+'_'+i+'_preklad_guid']) {
        if (files[prvky+'_type_preklad_delete']) {
          obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_preklad_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
        }
        obsah+='<td><a href="'+sprintf(files[prvky+'_type_file_href'], files[prvky+'_'+i+'_preklad_guid'])+'" onclick="'+sprintf(files[prvky+'_type_file_onclick'], files[prvky+'_'+i+'_preklad_guid'])+'" title="'+files[prvky+'_'+i+'_preklad_name']+'">'+files[prvky+'_'+i+'_preklad_name'].substr(0, 11)+(files[prvky+'_'+i+'_preklad_name'].length>11?'...':'')+'</a></td>';
        if (files[prvky+'_type_preklad_ns']) {
          if (files[prvky+'_type_preklad_ns_edit']) {
            obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'" value="'+window.files[prvky+'_'+i+'_preklad_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_preklad_ns\']=this.value;" /></td>';
            obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_preklad_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_preklad_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
          } else {
            obsah+='<td colspan="2" style="width: 75px; text-align: right;">'+window.files[prvky+'_'+i+'_preklad_ns']+' NS</td>';
          }
        }
      } else {
        if (files[prvky+'_type_preklad_upload'])  {
          obsah+='<td colspan="4">UPLOAD SKRIPT</td>';
        } else {
          obsah+='<td colspan="4">zatím nebyl nahrán žádný překlad</td>';
        }
      }
    }
    
    if (files[prvky+'_type_reference']) {
      if (files[prvky+'_type_reference_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_guid']+'">'+files[prvky+'_'+i+'_name']+'</a></td>';
      if (files[prvky+'_type_reference_ns']) {
        obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'" value="'+window.files[prvky+'_'+i+'_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_ns\']=this.value;" /></td>';
        obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
      }
    }
    
    obsah+='</tr>';
  }
  obsah+='</table>';
  document.getElementById('files_'+prvky).innerHTML=obsah;
  
  document.getElementById('loading_'+prvky).style.display='none';
  document.getElementById('input_'+prvky).style.display='block';
}

function file_nouploaded(prvky, soubor) {  
  document.getElementById('loading_'+prvky).style.display='none';
  document.getElementById('input_'+prvky).style.display='block';
  if (soubor!="") {alert('Nastala chyba při nahrávání souboru '+soubor+'!\n\nZkuste to později znovu!');}
}

function file_unload(prvky, guid, poradi) {

  pocet = parseInt(document.getElementById('count_'+prvky).value);
  document.getElementById('count_'+prvky).value=pocet;

  document.getElementById('input_'+prvky).style.display='none';

  obsah='<table style="width: 100%">';
  for (i=1; i<=pocet; i++) {
    if (i!=poradi) {
      obsah+='<tr>';
      
      if (files[prvky+'_type_original']) {
        obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_original_guid']+'">'+files[prvky+'_'+i+'_original_name']+'</a></td>';
      }
      
      if (files[prvky+'_type_reference']) {
        obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_original_guid']+'">'+files[prvky+'_'+i+'_original_name']+'</a></td>';
      }
      
      obsah+='</tr>';
    }
    else {obsah+='<tr><td><img src="./pictures/loading.gif" />&nbsp;'+files[prvky+'_'+i+'_original_name']+'</td></tr>';}
  }
  obsah+='</table>';
  document.getElementById('files_'+prvky).innerHTML=obsah;

  window.ajaxIframe.document.location.href='./index.php?page=ajax&subpage=file-unload&prvky='+prvky+'&guid='+guid+'&poradi='+poradi;
}

function file_nounloaded(prvky) { 
  pocet = parseInt(document.getElementById('count_'+prvky).value);
  document.getElementById('count_'+prvky).value=pocet; 

  obsah='<table style="width: 100%">';
  for (i=1; i<=pocet; i++) {
    obsah+='<tr>';
    
    if (files[prvky+'_type_original']) {
      if (files[prvky+'_type_original_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_original_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_original_guid']+'">'+files[prvky+'_'+i+'_original_name']+'</a></td>';
      if (files[prvky+'_type_original_ns']) {
        obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'" value="'+window.files[prvky+'_'+i+'_original_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_original_ns\']=this.value;" /></td>';
        obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_original_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
      }
    }
    
    if (files[prvky+'_type_reference']) {
      if (files[prvky+'_type_reference_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_reference_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_reference_guid']+'">'+files[prvky+'_'+i+'_reference_name']+'</a></td>';
      if (files[prvky+'_type_reference_ns']) {
        obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'" value="'+window.files[prvky+'_'+i+'_reference_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_reference_ns\']=this.value;" /></td>';
        obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_reference_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_reference_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
      }
    }
    
    obsah+='</tr>';
  }
  obsah+='</table>';
  document.getElementById('files_'+prvky).innerHTML=obsah;

  document.getElementById('input_'+prvky).style.display='block';
  alert('Nastala chyba při pokusu o odstranění souboru!\n\nZkuste to později znovu!');
}

function file_unloaded(prvky, poradi) {
  pocet = parseInt(document.getElementById('count_'+prvky).value)-1;
  document.getElementById('count_'+prvky).value=pocet;

  for (i=parseInt(poradi); i<=pocet; i++) {
    files[prvky+'_'+i+'_original_guid'] = files[prvky+'_'+(i+1)+'_original_guid'];
    files[prvky+'_'+i+'_original_name'] = files[prvky+'_'+(i+1)+'_original_name'];
    files[prvky+'_'+i+'_original_ns'] = files[prvky+'_'+(i+1)+'_original_ns'];
  }
  
  files[prvky+'_'+(pocet+1)+'_original_guid'] = '';
  files[prvky+'_'+(pocet+1)+'_original_name'] = '';
  files[prvky+'_'+(pocet+1)+'_original_ns'] = '';

  obsah='<table style="width: 100%">';
  for (i=1; i<=pocet; i++) {
    obsah+='<tr>';
    
    if (files[prvky+'_type_original']) {
      if (files[prvky+'_type_original_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_original_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_original_guid']+'">'+files[prvky+'_'+i+'_original_name']+'</a></td>';
      if (files[prvky+'_type_original_ns']) {
        obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'" value="'+window.files[prvky+'_'+i+'_original_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_original_ns\']=this.value;" /></td>';
        obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_original_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_original_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_original_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
      }
    }
    
    if (files[prvky+'_type_reference']) {
      if (files[prvky+'_type_reference_delete']) {
        obsah+='<td style="width: 15px;"><a href="#" onclick="file_unload(\''+prvky+'\', \''+files[prvky+'_'+i+'_guid']+'\', \''+i+'\'); return false;"><img src="./pictures/not.gif" /></a></td>';
      }
      obsah+='<td><a href="./index.php?page=new&subpage=file_download_temp&soubor='+files[prvky+'_'+i+'_guid']+'">'+files[prvky+'_'+i+'_name']+'</a></td>';
      if (files[prvky+'_type_reference_ns']) {
        obsah+='<td style="width: 50px; text-align: right;"><input type="text" name="ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'" value="'+window.files[prvky+'_'+i+'_ns']+'" style="width: 40px;" onchange="ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']=true; window.files[\''+prvky+'_'+i+'_ns\']=this.value;" /></td>';
        obsah+='<td style="width: 25px;"><a href="#" onclick="if (ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']) {ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value=Math.max(0,(Math.ceil(parseInt(ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value)/180))/10); window.files[\''+prvky+'_'+i+'_ns\']=ORIG_NS_'+guid_calc(files[prvky+'_'+i+'_guid'])+'.value; ORIG_NS_change[\''+guid_calc(files[prvky+'_'+i+'_guid'])+'\']=false;} return false;"><img src="./pictures/calc.png" border="0"></a></td>';
      }
    }
    
    obsah+='</tr>';
  }
  obsah+='</table>';
  document.getElementById('files_'+prvky).innerHTML=obsah;

  document.getElementById('input_'+prvky).style.display='block';
}

var files = new Array();
