var elements = new Array('Prod','Wirk','Indi');
var tables   = new Array();
tables["Prod"]="Product";
tables["Wirk"]="Ingredient";
tables["Indi"]="Indication";

ypos		= new Array();
ypos["Prod"]	= 40;
ypos["Wirk"]	= 62;
ypos["Indi"]	= 84;

var go = false;

function trim(string) {
  return (string.replace(/\s+$/,"").replace(/^\s+/,""));
}

function checkAjax() {
  var xmlHttp = false;  
  try {
    if (window.ActiveXObject) {
      for (var i = 5; i; i-- ) {
        try {
          if (i == 2) {
            xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );    
          }
          else {
            xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
          }
          break;
        }
        catch (excNotLoadable) {                        
            xmlHttp = false;
        }
      }
    }
    else if (window.XMLHttpRequest) {
      xmlHttp = new XMLHttpRequest();
    }
  }
  catch(excNotLoadable) {
    xmlHttp = false;
  }
  return xmlHttp;
}

function addTime(url) {
  var currentTime = new Date();
  currentTime = currentTime.getTime();
  if (url.indexOf('?') != -1) {
    url = url+'&time='+currentTime;
  }
  else {
    url = url+'?time='+currentTime;
  }
  return url;
}

function ajaxRequest(urlToken,changeElement,urlParams) {
  var url = '/scripts/include/modules/CS/'+urlToken+'_ajax.php';
  var xmlHttp = checkAjax();
  if (xmlHttp)  {
    url = addTime(url);
    if (urlParams) {
      url = url+'&'+urlParams;
    }
    xmlHttp.open('GET', url, true);
    xmlHttp.onreadystatechange = function () {
      if (xmlHttp.readyState == 4) {
        if (urlToken == 'product_navigator') {
          document.getElementById(changeElement).innerHTML = xmlHttp.responseText;
          showGoDiv(changeElement);
        }
        else {
          var resTxt = xmlHttp.responseText;
          if (resTxt.indexOf('prodNavLink')!=-1) {
            resTxt = resTxt.match(/<a.+<\/a>/g).join('');
            resTxt = trim(resTxt);
            document.getElementById(changeElement).innerHTML = resTxt;
            go = true;
            document.getElementById('pnFb2').style.visibility = 'hidden';
          }
          else {
            document.getElementById('pnFb2').style.visibility = 'visible';
          }
        }
      }
    };
    xmlHttp.send(null);
  }
}



function selChange(element,val,langID) {
  go = false;
  document.getElementById('pnFb2').style.visibility = 'hidden';
  document.getElementById('pnGo').innerHTML = '';
  
  var relation = tables[element];
  var productID = getSelVal('Prod');
  document.getElementById('pnGo').style.top = ypos[element]+'px';
  // hide go button by default if no explicit product selection
  if (element == 'Prod' && val != -1) {
    setGo();
  }
  // show all items
  if (val == -1) {
    document.forms['fo'+element].elements['sel'+element].options[0].selected = true;
  }
  for(var i=0;i<elements.length;i++) {
    var cElement = elements[i];
    var table = tables[cElement];
    ajaxRequest('product_navigator','prodNav'+cElement,'table='+table+'&curr='+cElement+'&element='+relation+'&id='+val+'&langID='+langID+'&productID='+productID);
  }
  if (!go && val != -1 && productID == -1) {
    tryGo(relation,val);
  }
  else if (val != -1) {
    document.getElementById('pnFb2').style.visibility = 'visible';
  }
}

function showGoDiv(changeElement) {
  if (changeElement == 'prodNavProd') {
    if (getSelVal('Prod') != -1) {
      setGo();
    }
  }
}

function setGo() {
  ajaxRequest('product_link','pnGo','ext_column_2='+getSelVal('Prod'));
}

function tryGo(element,id) {
  ajaxRequest('product_link','pnGo','element='+element+'&id='+id);
}

function getSelVal(element) {
  return document.forms['fo'+element].elements['sel'+element].options[document.forms['fo'+element].elements['sel'+element].selectedIndex].value;
}
