var defaultErrorPrefix

if (typeof _lang == "string") {
  _lang = _lang.toLowerCase();
} else {
  _lang = "en";
}

(function() {
  var scripts =  [ "js/sprintf.js",
  	           "js/lang/" + _lang + ".js" ];
  var head = document.getElementsByTagName("head")[0];
  for (var i = 0; i < scripts.length; ++i) {
    var script = document.createElement("script");
    script.src = scripts[i];
    head.appendChild(script);
  }
})();

setTimeout(function() { defaultErrorPrefix = I18N.msg['OBLIGATORY_FIELDS']; }, 100);

var group_type

function group_changed(groups) {
  group_type=groups.options[groups.selectedIndex].value
  document.forms[0].elements['schoolcard'].disabled = ((group_type==5)||(group_type==6))?'':'disabled';
  if(document.forms[0].elements['schoolcard'].disabled) document.forms[0].elements['schoolcard'].checked = false
  if(group_type!=0)  
    x_load_products(group_type,update_products);
  else 
    with(document.forms[0]) {
      elements['id_product'].disabled = 'disabled'
      elements['id_product'].selectedIndex = 0
      elements['id_product_type'].disabled = 'disabled'
      elements['id_product_type'].selectedIndex = 0
      elements['id_product_name'].disabled = 'disabled'
      elements['id_product_name'].selectedIndex = 0
      elements['id_product_language'].disabled = 'disabled'
      elements['id_product_language'].selectedIndex = 0
  } 
}

function update_products(res) {
  for(i=document.forms[0].elements['id_product'].options.length-1;i>0;i--) 
     document.forms[0].elements['id_product'].options[i] = null
  j = 1;
  for(i in res) 
     document.forms[0].elements['id_product'].options[j++] = new Option(res[i],i)
  with(document.forms[0]) {  
    elements['id_product'].disabled = ''
    elements['id_product'].selectedIndex = 0       
    elements['id_product_type'].disabled = 'disabled'
    elements['id_product_type'].selectedIndex = 0
    elements['id_product_name'].disabled = 'disabled'
    elements['id_product_name'].selectedIndex = 0
    elements['id_product_language'].disabled = 'disabled'
    elements['id_product_language'].selectedIndex = 0
  } 
}

function product_changed(product) {
  if(product.selectedIndex!=0) {
    if(document.forms[0].elements['id_group']) group_type = document.forms[0].elements['id_group'].options[groups.selectedIndex].value;
    else group_type = 2;
    x_load_product_types(product.options[product.selectedIndex].value,group_type,update_product_types);
  }    
  with(document.forms[0]) {
      elements['id_product_type'].disabled = 'disabled'
      elements['id_product_type'].selectedIndex = 0
      elements['id_product_name'].disabled = 'disabled'
      elements['id_product_name'].selectedIndex = 0
      elements['id_product_language'].disabled = 'disabled'
      elements['id_product_language'].selectedIndex = 0
  } 
}

function update_product_types(res) {
  for(i=document.forms[0].elements['id_product_type'].options.length-1;i>0;i--) 
     document.forms[0].elements['id_product_type'].options[i] = null
  j = 1;
  for(i in res) 
     document.forms[0].elements['id_product_type'].options[j++] = new Option(res[i],i)
  with(document.forms[0]) {  
    elements['id_product_type'].disabled = '' 
    elements['id_product_type'].selectedIndex = 0
    elements['id_product_name'].disabled = 'disabled'
    elements['id_product_name'].selectedIndex = 0
    elements['id_product_language'].disabled = 'disabled'
    elements['id_product_language'].selectedIndex = 0
  } 
}

function product_type_changed(product) {
  if(product.selectedIndex!=0) {
    x_load_product_names(product.options[product.selectedIndex].value,update_product_names);
  }    
  with(document.forms[0]) {
      elements['id_product_name'].disabled = 'disabled'
      elements['id_product_name'].selectedIndex = 0
      elements['id_product_language'].disabled = 'disabled'
      elements['id_product_language'].selectedIndex = 0
  }    
}

function update_product_names(res) {
  for(i=document.forms[0].elements['id_product_name'].options.length-1;i>0;i--) 
     document.forms[0].elements['id_product_name'].options[i] = null
  j = 1;
  for(i in res) 
     document.forms[0].elements['id_product_name'].options[j++] = new Option(res[i],i)
  with(document.forms[0]) {  
    elements['id_product_name'].disabled = ''
    elements['id_product_name'].selectedIndex = 0
    elements['id_product_language'].disabled = 'disabled'
    elements['id_product_language'].selectedIndex = 0
  } 
}

function product_name_changed(product) {
  if(product.selectedIndex!=0) {
    x_load_product_langs(product.options[product.selectedIndex].value,update_product_langs);
  }    
  with(document.forms[0]) {
      elements['id_product_language'].disabled = 'disabled'
      elements['id_product_language'].selectedIndex = 0
  }    
}

function update_product_langs(res) {
  for(i=document.forms[0].elements['id_product_language'].options.length-1;i>0;i--) 
     document.forms[0].elements['id_product_language'].options[i] = null
  j = 1;
  for(i in res) 
     document.forms[0].elements['id_product_language'].options[j++] = new Option(res[i],i)
  with(document.forms[0]) {  
    elements['id_product_language'].disabled = ''
    elements['id_product_language'].selectedIndex = 0
  } 
}

function validate() {
  if(document.getElementById('id_group')) {
    if(document.forms[0].elements['id_group'].selectedIndex<1) {
      alert(I18N.msg['GROUP_TYPE']);
      return false;
    }
    if(document.forms[0].elements['id_group'].options[document.forms[0].elements['id_group'].selectedIndex].value<1) {
      alert(I18N.msg['VALID_GROUP']);
      return false;
    }
  }
  with(document.forms[0]) {
    if(elements['id_product'].selectedIndex>0) {
      if(elements['id_product_type'].selectedIndex<1) {
	  alert(I18N.msg['PRODUCT_OPTIONS_1']);
	  return false;
      }
      if(elements['id_product_name'].selectedIndex<1) {
	  alert(I18N.msg['PRODUCT_OPTIONS_2']);
	  return false;
      }
      if(elements['id_product_language'].selectedIndex<1) {
	  alert(I18N.msg['PRODUCT_OPTIONS_3']);
	  return false;
      }
    }
  }
  return true;
}

window.onload = function() {
  if(!document.getElementById('id_group')) document.forms[0].elements['id_product'].disabled = ''
  groups = document.forms[0].elements['id_group']
  if(groups) { 
    group_type=groups.options[groups.selectedIndex].value
    document.forms[0].elements['schoolcard'].disabled = ((group_type==5)||(group_type==6))?'':'disabled';
    document.forms[0].elements['id_product'].disabled = (group_type>0)?'':'disabled';
  }
}