//-----------------------------------------------------------------------------
// kontrola formulare (inputy oznacene rel="required")

var styleNormal='btn';
var styleDisabled='btn-dis';

function validateForm(form){
  var submit;
  var dis=false;
  var inputs = form.getElementsByTagName('input');
  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].type=='submit') submit=inputs[i];
    if(inputs[i].getAttribute('rel')=='required'){
      if(inputs[i].value==''){
        dis=true;
      }
    } 
  }
  
  var inputs = form.getElementsByTagName('textarea');
  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].getAttribute('rel')=='required'){
      if(inputs[i].value==''){
        dis=true;
      }
    } 
  }
  
  submit.disabled=dis;
  if(dis) 
    submit.className=styleDisabled;
  else
    submit.className=styleNormal;
}

function insertSmile(code){
  clearField(objGet('textarea'), 'text příspěvku');
  objGet('textarea').value += " " + code + " ";
}

function clearField(obj, str){
  if(obj.value == str) obj.value='';
}

//-----------------------------------------------------------------------------
function confirm_delete_account(id, name, query){
  if(confirm('Opravdu odstranit uživatele \''+name+'\' ?')){
      location.href=query+'&delete_confirmed_account='+id;
  }
}

function confirm_delete_item(task, query){
  if(confirm(task)){
      location.href=query;
  }
}

function validate_account(){
  form=objGet('account_form');
  if(form.name.value=="" || form.login.value==""
   || form.pswd1.value=="" || form.pswd2.value==""){
    form.save_new_account.disabled=true;
  }
  else form.save_new_account.disabled=false;
}

function validate_edit_account(){
  form=objGet('account_form');
  if(form.name.value=="" || form.login.value==""
   || ( form.pswd1.value=="" && form.pswd2.value!="" ) 
   || ( form.pswd1.value!="" && form.pswd2.value=="" )){
    form.save_edited_account.disabled=true;
  }
  else form.save_edited_account.disabled=false;
}

function objGet(id) {
  if (Boolean(document.getElementById))
    return document.getElementById(id);
  else if (Boolean(document.all))
    return eval('document.all.'+id);
  else
    return eval('document.'+id);
}

//-----------------------------------------------------------------------------
// prepinani listu formulare

var sheets = new Array('CZ','EN','DE','details','variants','surfaces','foto');

function sheet(id){
  for(var i=0; i<sheets.length; i++){
    if(sheets[i] == id){
      try{
        getObj(sheets[i]).style.display='block';
        getObj('tab-' + sheets[i]).className='active';
      }catch(e){}
    }
    else{
      try{
        getObj(sheets[i]).style.display='none';
        getObj('tab-' + sheets[i]).className='';
      }catch(e){}
    }
  }
}

//-----------------------------------------------------------------------------
//-------- funkce na zobrazeni a skryti moznosti v image_manageru

function options(obj, action){
  var tags = obj.getElementsByTagName('div');
  for (var i=0; i < tags.length; i++) {
    if(tags[i].className == 'options'){
      if(action == 'show')
        tags[i].style.display = 'block';
      else
        tags[i].style.display = 'none';
    }
  }
}


//-----------------------------------------------------------------------------
// funkce upravi options policka 'zaradit'

function updateSequence(){
  var form = getObj('article_form');
  var category = form.category_id.value;
  send_xmlhttprequest(processSequenceData, 'GET', '/admin/inc/get_sequence_data.php?category_id='+category);
  // loader();
}

//-----------------------------------------------------------------------------
// obsluha XML odpovedi updatu sequenci

function processSequenceData(xmlhttp){
  if(xmlhttp.readyState == 4) {
    var oSelect = getObj('article_form').new_sequence;
    var xmlNodes = xmlhttp.responseXML.getElementsByTagName('row');
    
    //alert(xmlNodes.length);
    removeAllNodes(oSelect);
    for(var i=0; i<xmlNodes.length; i++)
      addOption(oSelect, xmlNodes[i].getAttribute('value'), xmlNodes[i].firstChild.data, '');
  }
}

/** odeslání XMLHttp požadavku
* @param function obsluha funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string method GET|POST|...
* @param string url URL požadavku
* @param string [content] tělo zprávy
* @param array [headers] pole předaných hlaviček ve tvaru { 'hlavička': 'obsah' }
* @return bool true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz
*/
function send_xmlhttprequest(obsluha, method, url, content, headers) {
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) {
        return false;
    }
    xmlhttp.open(method, url);
    xmlhttp.onreadystatechange = function() {
        obsluha(xmlhttp);
    };
    if (headers) {
        for (var key in headers) {
            xmlhttp.setRequestHeader(key, headers[key]);
        }
    }
    xmlhttp.send(content);
    return true;
}

//-----------------------------------------------------------------------------
// funkce odstrani vsechny poduzly daneho elementu

function removeAllNodes (element) { 
  while (element.firstChild) { 
    element.removeChild(element.firstChild); 
  }
} 

//-----------------------------------------------------------------------------
// funkce vytvori novy OPTION s danymi hodnotami a prida ho objSelect

function addOption(objSelect, value, text, disabled) {
  var no = new Option();
  no.value = value;
  no.text = text;
  no.disabled = disabled;
  if(document.all)
    objSelect.add(no, objSelect.length);
  else  
    objSelect.add(no, objSelect.options[objSelect.length]);
}


