/**************************************************************Dropdown menu for Oscommerce.Based on the jsrs code of Brent Ashley.Author: Iván PrietoUrl: www.euskopc.com (in construction)***************************************************************/// constantsvar noValue = '-99';var fab_lleno='0';var cat_lleno='0';var fab_preselect='0';var cat_preselect='0';IDCategories = noValue;IDSubcategories = noValue;IDManufacturers = noValue;/***********************languages*******************/var DROPDOWNMENU_CLEAN_DATA = new Array();var DROPDOWNMENU_CONTAINS_DATA = new Array();var DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS = new Array();var DROPDOWNMENU_SEARCH_ALL_CATEGORIES = new Array();var DROPDOWNMENU_SEARCH_ALL_SUBCATEGORIES = new Array();//EnglishDROPDOWNMENU_CLEAN_DATA[1] = 'Clean data';DROPDOWNMENU_CONTAINS_DATA[1] = 'Contains data';DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS[1] = 'All manufacturers';DROPDOWNMENU_SEARCH_ALL_CATEGORIES[1] = 'All categories';DROPDOWNMENU_SEARCH_ALL_SUBCATEGORIES[1] = 'All subcategories';//GermanDROPDOWNMENU_CLEAN_DATA[2] = 'Zurück setzen';DROPDOWNMENU_CONTAINS_DATA[2] = 'Bitte wählen!';DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS[2] = 'Hersteller';DROPDOWNMENU_SEARCH_ALL_CATEGORIES[2] = 'Produktkategorien';DROPDOWNMENU_SEARCH_ALL_SUBCATEGORIES[2] = 'Unterkategorien';//SpanishDROPDOWNMENU_CLEAN_DATA[3] = 'Limpiar datos';DROPDOWNMENU_CONTAINS_DATA[3] = 'Contiene datos';DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS[3] = 'Todos los fabricantes';DROPDOWNMENU_SEARCH_ALL_CATEGORIES[3] = 'Todas las categorias';DROPDOWNMENU_SEARCH_ALL_SUBCATEGORIES[3] = 'Todas las subcategorias';/***************************************************/var boolEnabled = true;var curOption = new Array();var isLoaded = new Array();function initLists(){  // initialize lists  emptyList( 'categories_id' );  emptyList( 'subcategories_id');  emptyList( 'manufacturers_id' );  jsrsExecute( 'select_rs.php', cbFillOptions, 'manufacturersList',languages_id );  jsrsExecute( 'select_rs.php', cbFillMake, 'categoriesList',languages_id );}function preselect(idCategories,idSubcategories,idManufacturers,selectable){  boolEnabled = selectable;  IDSubcategories = idSubcategories;  IDManufacturers = idManufacturers;  if(idManufacturers=="-99"){    IDManufacturers = '';  }  else{    IDManufacturers = idManufacturers;    fab_preselect=parseInt("1");  }  if(idCategories=="-99"){    IDCategories = '';  }  else{    IDCategories = idCategories;    cat_preselect=parseInt("1");  }  initLists();}function manufacturers_id_onChange(){  var val = this.options[this.selectedIndex].value;  IDCategories = noValue;  IDSubcategories = noValue;  IDManufacturers = val;  if(val == noValue){    emptyList( 'categories_id' );    emptyList( 'subcategories_id' );    window.status = 'cargando categorías...';    jsrsExecute( 'select_rs.php', cbFillOptions, 'manufacturersList',languages_id );    jsrsExecute( 'select_rs.php', cbFillMake, 'categoriesList',languages_id );  }  else {    fab_lleno="1";    curOption[this.name] = val;    // init dependent lists    emptyList( 'categories_id' );    emptyList( 'subcategories_id' );    window.status = 'cargando categorías...';    jsrsExecute( 'select_rs.php', cbFillMake, 'categoriesList', Array(val,languages_id) );  }}function categories_id_onChange(){  var val = this.options[this.selectedIndex].value;  var fabri=this.form.manufacturers_id.options[this.form.manufacturers_id.selectedIndex].value;  IDCategories= val;  IDManufacturers= fabri;  if(val == noValue){    if(cat_limpiar_activado=="1"){      emptyList( 'subcategories_id' );      jsrsExecute( 'select_rs.php', cbFillMake, 'categoriesList', Array(fabri,languages_id) );      cat_limpiar_activado="0";    }  }  else {    cat_lleno="1";    curOption[this.name] = val;    if(curOption[this.name]==""){      document.forms['QForm']['categories_id'].options[0].text=DROPDOWNMENU_SEARCH_ALL_CATEGORIES[languages_id];      document.forms['QForm']['categories_id'].options[0].style.color='black';      emptyList( 'subcategories_id' );    }    else{    // init dependent lists      emptyList( 'subcategories_id' );      window.status = 'cargando subcategorías...';      if(fabri!=noValue){        jsrsExecute( 'select_rs.php', cbFillModel, 'subcategoriesList', Array(fabri,val,languages_id) );      }    else{      jsrsExecute( 'select_rs.php', cbFillModel, 'subcategoriesList', Array('',val,languages_id) );}    }  }}function subcategories_id_onChange(){}function cbFillMake ( strCategories ){  window.status = '';  fillList( 'categories_id',  strCategories );  if(IDCategories != noValue ){    if(IDManufacturers == noValue){      jsrsExecute( 'select_rs.php', cbFillModel, 'subcategoriesList', Array(''+IDManufacturers+'',''+IDCategories+'',languages_id) );    }    jsrsExecute( 'select_rs.php', cbFillModel, 'subcategoriesList', Array(''+IDManufacturers+'',''+IDCategories+'',languages_id) );    if(cat_preselect=='1'){      cat_lleno=parseInt("1");    }  }}function cbFillModel ( strSubcategories ){  // callback for dependent listbox  window.status = '';  fillList( 'subcategories_id',  strSubcategories );}function cbFillOptions( strManufacturers ){  // callback for dependent listbox  window.status = '';  fillList( 'manufacturers_id', strManufacturers );  if(IDManufacturers != noValue){    jsrsExecute( 'select_rs.php', cbFillMake, 'categoriesList', Array(''+IDManufacturers+'',languages_id) );    if(fab_preselect=='1'){      fab_lleno=parseInt("1");    }  }}function search_all_text(listName){  if (listName=='manufacturers_id'){    document.forms['QForm'][listName].options[0] = new Option(DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS[languages_id], '');  }  else if (listName=='categories_id'){    document.forms['QForm'][listName].options[0] = new Option(DROPDOWNMENU_SEARCH_ALL_CATEGORIES[languages_id], '');  }  else{    document.forms['QForm'][listName].options[0] = new Option(DROPDOWNMENU_SEARCH_ALL_SUBCATEGORIES[languages_id], '');  }}function fillList( listName, strManufacturers ){  // fill any list with options  emptyList( listName );  // always insert selection prompt  var lst = document.forms['QForm'][listName];  if(fab_lleno=="1"){    if(document.forms['QForm']['manufacturers_id'].options[0].text==DROPDOWNMENU_CLEAN_DATA[languages_id]){      document.forms['QForm']['manufacturers_id'].options[0].text=DROPDOWNMENU_SEARCH_ALL_MANUFACTURERS[languages_id];      document.forms['QForm']['manufacturers_id'].options[0].style.color='black';      search_all_text('categories_id');      document.forms['QForm']['categories_id'].options[0].style.color='black';    }    else{    document.forms['QForm']['manufacturers_id'].options[0].text = DROPDOWNMENU_CLEAN_DATA[languages_id];    document.forms['QForm']['manufacturers_id'].options[0].style.color='blue';    lst.options[0] = new Option(DROPDOWNMENU_CONTAINS_DATA[languages_id], '');    lst.options[0].style.color='red';    }  fab_lleno="0";  }  else{    if (cat_lleno=="1"){      document.forms['QForm']['categories_id'].options[0] = new Option(DROPDOWNMENU_CLEAN_DATA[languages_id], '');      document.forms['QForm']['categories_id'].options[0].style.color='blue';      search_all_text(listName);      lst.options[0].style.color='black';      cat_lleno="0";      cat_limpiar_activado="1";    }    else{search_all_text(listName);    }  }  // options in form "value~displaytext|value~displaytext|..."  var aOptionPairs = strManufacturers.split('|');  for( var i = 0; i < aOptionPairs.length; i++ ){    if (aOptionPairs[i].indexOf('~') != -1) {      var aOptions = aOptionPairs[i].split('~');      lst.options[i + 1] = new Option(aOptions[1], aOptions[0]);    }  }  switch(listName){  	case 'categories_id':		  ID = IDCategories;		break;  	case 'subcategories_id':		  ID = IDSubcategories;		break;	case 'manufacturers_id':		  ID = IDManufacturers;		break;  }  // init to no value  selectOption( listName, ID );  isLoaded[listName] = true;  lst.disabled = !boolEnabled;  lst.onchange = eval( listName + "_onChange" );}function emptyList( listName ){  var lst = document.forms['QForm'][listName];  lst.options.length = 0;  lst.onchange = null;  lst.disabled = !boolEnabled;  isLoaded[listName] = false;  curOption[listName] = noValue;  lst.style.width=145;  lst.style.background='#ffeab1';}function selectOption( listName, optionVal ){  // set list selection to option based on value  var lst = document.forms['QForm'][listName];  for( var i = 0; i< lst.options.length; i++ ){    if( lst.options[i].value == optionVal ){      lst.selectedIndex = i;      curOption[listName] = optionVal;      return;    }  }}