// common JS functions for MarBEF QA pages

// Popup Window
//
function OpenLink(URL,wd,hg,l,t,scroll){
 if (!hg) hg=555;	
 if (!wd) wd=640;
 if (!l) l=250;
 if (!t) t=100;
 var sb="yes";
 if (scroll==0 || scroll==false || scroll=="no") sb="no";   
 //if (winDetail) winDetail.close();
 var winname="win"+Math.round(Math.random()*100);
 var winDetail = window.open(URL,winname,"width="+wd+",height="+hg+",left="+l+",top="+t+",resizable=yes,scrollbars="+sb); 
 winDetail.focus();
}


// To send text from a popup to the window.opener + close the popup
// cc decides whether to concatenate the text with a |, default: 1 (yes)
//
function sendText(text,obj,cc){
 if (cc==null) cc=1;
 if (opener && !opener.document.closed){
  if (txtfield=getObj(obj)) { 
    if (txtfield.value=="" || cc==0){ 
     txtfield.value=urldecode(text); 
    }else{ 
     txtfield.value=txtfield.value + " | " + urldecode(text); 
    }
   }
  }
 window.close();
}


// get *any* object in the child or grand-child window 
// gets first the object by id, if its not found, it returns the first object with the name
//
function getObj(name){
 var obj;
 var objs;
 if (opener && !opener.document.closed){
  if (document.getElementById){ obj = opener.document.getElementById(name);}
  else if (document.all) { obj = opener.document.all[name]; }
  else if (document.layers) { obj = opener.document.layers[name]; }
  if(!obj && document.getElementsByName) { objs = opener.document.getElementsByName(name); obj=objs[0]; }
 }else{
  if (document.getElementById){ obj = document.getElementById(name);}
  else if (document.all) { obj = document.all[name]; }
  else if (document.layers) { obj = document.layers[name]; }
  if(!obj && document.getElementsByName) { objs = document.getElementsByName(name); obj=objs[0]; }
 }
 return obj;
}


// similar to the PHP urldecode
//
function urldecode(ch) {
  ch = ch.replace(/[+]/g," ")
  return unescape(ch)
}


// Function to delete a MM-menu-item on the fly
//
function mm_removeItem(menuName, itemName) 
{ 
  menuName = menuName.toLowerCase(); 
  for (var i=0; i<_mi.length; i++) 
    if (_mi[i][1].replace(/\&nbsp\;/ig,' ') == itemName && _m[_mi[i][0]][1] == menuName) break; 
  if (i == _mi.length) return; 

  var idx = 0; 
  newItemArr = new Array(); 
  for (var j=0; j<_m[_mi[i][0]][0].length; j++) 
    if (_m[_mi[i][0]][0][j] != i) 
      newItemArr[idx++] = _m[_mi[i][0]][0][j]; 
  _m[_mi[i][0]][0] = newItemArr; 

  BDMenu(_mi[i][0]); 
}

