////////////////////////
// INIT FUNCTIONS  //
////////////////////////

////////////////////////
// Global FUNCTIONS  //
////////////////////////

// global
var gAnchor = ''; // help details..
var tid, time, action;
var gPtrId = 0;
var gMtaId = 0;
var gObjId = 0;
var gTgtId = 0;
var gWymLenght = 0;

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function jsVar(lCaption) {
    // alert('../background/AjaxFunctions.php?F=jsVar&tgtId=0&Label='+lCaption);
 var lLabel = '';
 jQuery.ajax({url:"../background/AjaxFunctions.php?F=jsVar&tgtId=0&Label="+lCaption,async:false,success:function(z) {
     lLabel = z;
    }});
    return lLabel
}

function fwSupport() {
  var lEmail = jsVar('ThisUserEmail');
  // alert(lEmail);
  FrmRed('http://forum.reindex.net/tiki-login.php',1,'user#'+lEmail,'pass#hebheb','page#tikiIndex');
}

function fwLang(lAction,lLang) {
  FrmRed(lAction,0,'Lang#'+lLang);
}			

function cbJRum(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['M'] == 0 && a['T'])
    alert(a['T']);
  if (a['M'] == 1 && a['T'])
     ShowMesBox(a['T'],5000);
  if (a['M'] == 2 && a['T'] && confirm(a['T']))
    return false;
}

function writetostatus(input){
    window.status=input
    return true
}
	
writetostatus('reindex.net');

function basename(lDoc) {
  var z = lDoc.substr(lDoc.lastIndexOf('\\') + 1);
  z = z.substr(z.lastIndexOf('/') + 1);
  return z;
}

function getFileExtension(filename) {  
	var ext = /^.+\.([^.]+)$/.exec(filename);  
	return ext == null ? "" : ext[1];
}

function dHelp(lContext) {
 if (gAnchor)  // 211.sql :: CSSMenu
   lLink = '../main/Help.php?HelpAction='+lContext+'#'+gAnchor;
 else    
   lLink = '../main/Help.php?HelpAction='+lContext;  
 HelpWin = window.open(lLink,"RexHelp","Menubar=yes,Scrollbars=yes,width=450,Height=475,resizable,screenX=0,screenY=0");
}

function doHelp(lContext) {
  if (browser.isIE)		
    event.returnValue = false;  
 if (gAnchor)  // 154.sql :: Portal helpdetails
   lLink = '../main/Help.php?HelpAction='+lContext+'#'+gAnchor;
 else    
   lLink = '../main/Help.php?HelpAction='+lContext;  
 HelpWin = window.open(lLink,"RexHelp","Menubar=yes,Scrollbars=yes,width=450,Height=475,resizable,screenX=0,screenY=0");
  // alert(lLink);
  apce(e);
  return false;  
}
function GetAccessKeys(lHeader) { // used by helppage Ed2.php
  var ii = 0;
  if (window.opener.document.getElementsByTagName) {
    var anchors = window.opener.document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
      if (anchors[i].accessKey != '') {
      	if (ii == 0) {
      	  document.write("<h2>"+lHeader+"</h2>\n");
      	  document.write("<table class=\"Shortcuts\">\n");
        }
        document.write("<tr>\n");
        document.write("<td class=\"ShortcutCell\">ALT+"+anchors[i].accessKey+"</td>\n");
        document.write("<td> &nbsp;=&nbsp;</td>\n");
        document.write("<td class=\"ShortcutCell\">"+anchors[i].title+"</td>\n");
        document.write("</tr>\n");
        ii++;
      }
    }
  }
  if (ii > 0) {
    document.write("</table>\n");
  }
}

function RxKey(lv) { // access-key :: called by onfocus event : used by a few functions
  if (browser.isMozilla || browser.isFirefox) {
      lv.blur(); // remove focus.
  }

  if (browser.isIE) {
    e = window.event;
    if (e.altKey) {
      lv.blur(); // remove focus.
      lv.click(); // activate link..
    }
  }
}

function keyLogin() {
  if (document.fLogin != null && document.fLogin.Uid != null && document.fLogin.Uid.value.length > 1) { // just login form...
    if (document.getElementById('dLogin')) { // 177 : fork
      ASyncAjax('cbLoginUid','LoginUid','',0,document.fLogin.Uid.value,'');
    }
    else
      document.fLogin.submit();
  }
  if (document.fPincode != null && document.fPincode.Pincode.value.length == 4) { // usr must state pincode..
    if (document.fPinRepeat != null) { // usr has not got a pincode...
      if (document.fPinRepeat.Pincode.value.length == 4 && document.fPincode.Pincode.value == document.fPinRepeat.Pincode.value && isInteger(document.fPincode.Pincode.value))
         ASyncAjax('cbLoginPin','LoginPinRepeat','',document.fPinRepeat.Pincode.value,document.fPincode.Uid.value,document.fPincode.Pincode.value);
    }
    else {
      // alert('start pin '+document.fPincode.Pincode.value);
      ASyncAjax('cbLoginPin','LoginPin','',0,document.fPincode.Uid.value,document.fPincode.Pincode.value);
    }
  }
}

function LookupHrefID(lID) {
  for (counter = 0; counter < document.links.length; counter++) {
    if (document.links[counter].id == lID) {
    	return document.links[counter].href;
    }		
  }		
}

function getLinksbyId(lID) {
  for (counter = 0; counter < document.links.length; counter++) {
    if (document.links[counter].id == lID) {
    	return counter;
    }		
  }		
}

function getImagebyId(lID) {
  for (counter = 0; counter < document.links.length; counter++) {
    if (document.images[counter].id == lID) {
    	return counter;
    }		
  }		
}

function RunEditNote(lFieldName) {
  lLink='../modals/EditBlob.php?FieldName='+lFieldName;
  // alert(lLink);
  supramodaler(0,'EditBlob',lLink,1000,1200);
}

function decodeHTMLEntities(z) {
  if (z != null) {	
    z = z.replace(/&#x20;/g,'');
    z = z.replace(/&nbsp;/g,'');
    z = z.replace(/&#8226;/g,'-');
  }  
  return z;
}

function FormTranslate(Caption) {
  if (document.fVar != null) {
    return eval('document.fVar.'+Caption+'.value');
  }
}

////////////////////////
// COOKIE FUNCTIONS   //
////////////////////////

function c4c(lForm){
  /* Set a cookie to be sure that one exists. '*/	
  document.cookie = 'killme' + escape('nothing')
  	
 /* check for a cookie */
  if (document.cookie == "") {
    /* if a cookie is not found - alert user -
     change cookieexists field value to false */
    alert("COOKIES need to be enabled!");

    /* If the user has Cookies disabled an alert will let him know 
        that cookies need to be enabled to log on.*/ 
    lForm.cookieexists.value ="false"  
  } else {
   /* this sets the value to true and nothing else will happen,
       the user will be able to log on*/
    lForm.cookieexists.value ="true"
  }  

/* Set a cookie to be sure that one exists.
   Note that this is outside the function*/
// document.cookie = 'killme' + escape('nothing')
}

///////////////////////
// MODULAR DIALOGS  //
////////////////////////
function supramodaler(lType,lName,lLink,lHeight,lWidth) {
  if (browser.isIE) {
    // alert(lType);
    if (lType == 0) // showModalDialog : constrains the user from working anywhere else
      var ModWin = window.showModalDialog(lLink,window,"dialogHeight:"+lHeight+"px;dialogWidth:"+lWidth+"px;center:yes;help:no;resizable:yes;scroll:yes;status:no;");
    if (lType == 1) { // showModelessDialog : which allows the user to work in the parent window
      var ModWin = window.showModelessDialog(lLink,window,"dialogHeight:"+lHeight+"px;dialogWidth:"+lWidth+"px;center:yes;help:no;resizable:yes;scroll:yes;status:no;");
    }  
  }    
  else
    var dialogWindow = window.open(lLink,window,"height="+lHeight+",width="+lWidth+",scrollbars=yes,resizable=yes,dialog=yes"); // not clear whether modal is standardized ??	
}

function subModal(lLink,lTitle,lHeight,lWidth,cbFunc) {
   // onclick="showPopWin('modalContent.php', 400, 300, tTest)">show modal window button</button>
  showPopWin(lLink,lTitle,lHeight,lWidth,eval(cbFunc));
}

function showMtaHistory(lMtaId) {
  lLink = '../modals/History.php?Context=2&MtaId='+lMtaId;
  supramodaler(1,'History',lLink,700,800);
}	

function viewHistory(lContext,tgtId,LokNo) {
  lLink = '../modals/History.php?Context=1&tgtId='+tgtId+'&LokNo='+LokNo;
  supramodaler(1,'History',lLink,700,800);
} 

function OpenMtaDocumentation(MtaDialect,AttrId,lCtrlField) { // 177 :: CSys.php
  lLink='../modals/MtaDocumentation.php?MtaDialect='+MtaDialect+'&AttrId='+AttrId+'&CtrlField='+lCtrlField;
  //  lLink='http://www.loc.gov/marc/bibliographic/'+locFile+'.html#mrcb'+AttrId.slice(0,3);
  supramodaler(1,'DTD',lLink,700,800); 
}  


//////////////////////////////
//      NOTIFICATIONS       //
//////////////////////////////

function viewNotifictionList(RSessionId,lObjId) { // SubscriptionId=26
  lLink = '../modals/Letters.php?RSessionId='+RSessionId+'&ObjId='+lObjId;
  supramodaler(1,'Circulation',lLink,850,680);		
}
function viewDueCircList(lObjId,lSubscriptionId) { // SubscriptionId=26
  lLink = '../modals/Letters.php?NotificationMode=DueList&ObjId='+lObjId+'&Subscription='+lSubscriptionId;
  supramodaler(1,'Circulation',lLink,850,680);		
}

function RunNotificationDeCirc(lMtaId,lObjId,lPtrId)	{ // Handles reservation... called from modal Receive.php
   lLink = '../modals/Letters.php?MtaId='+lMtaId+'&ObjId='+lObjId+'&PtrId='+lPtrId+'&NotificationMode=reservation';		
   supramodaler(1,'Circulation',lLink,950,600);
}
function viewLog(lLogId,lSort,lDescending) {
  lLink = '../modals/Syslog.php?LogId='+lLogId+'&SortColumn='+lSort+'&Descending='+lDescending;
  supramodaler(1,'LOG',lLink,800,800);
}
function viewReport(lLogId,lSort,lDescending,lFocus) {
  lLink = '../modals/Syslog.php?LogId='+lLogId+'&SortColumn='+lSort+'&Descending='+lDescending+'&Focus='+lFocus;
  window.open('../modals/Syslog.php?LogId='+lLogId+'&SortColumn='+lSort+'&Descending='+lDescending+'&Focus='+lFocus,'REPORT','toolbar=yes, Scrollbars=yes, menubar=yes,height=600,width=800,top=0,left=290');
}

function viewRemindLog(lSubscriptionId) {
  lLink = '../modals/Syslog.php?LogId=13&SortColumn=service&Descending=1&Subscription='+lSubscriptionId;
  //  alert(lLink);
  supramodaler(1,'RemindLog',lLink,800,800);  
}

function showNewsList(lDays) {
  lLink = '../modals/ReferenceList.php?Focus=Newslist&Sort=sys&Days='+lDays;
  //  alert(lLink);
  wNewsList = window.open(lLink,'NewsList','toolbar=yes, Scrollbars=yes, menubar=yes,height=800,width=800,top=0,left=290');
}

function viewCirculationList(lReceiveId,lSessionId) { // SubscriptionId=26&ObjId=22059
  // lLink = '../modals/CircList.php?ReceiveId='+lReceiveId+'&SessionId='+lSessionId;
  lLink = '../modals/Letters.php?NotificationMode=circlist&Method=2&ReceiveId='+lReceiveId+'&RSessionId='+lSessionId;
  window.location.href=lLink;		
}

function OpenCollectionLink(lLink) {
  wCollection = window.open(lLink,'Collection','toolbar=yes, Scrollbars=yes, menubar=yes,height=800,width=800,top=0,left=290');
}

function getCity(lZip) {
  lCountryCode = 'dk';	
  if (MtaDialect == 3)
    lCountryCode = 'no'
  ASyncAjax('cbGetCity','getCity','',lZip,lCountryCode,'');			
}

function cbGetCity(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rCity'])
    document.fEdit.City.value = a['rCity'];
}  

//////////////////////////////
//      IFRAME PRINT PDF    //
//////////////////////////////	

function RunUpdateReceiveBarcode(lObjId,lBarcode) { // 113.sql : Edit barcode on Receive.php (198 :: AjaxFunctions.php.SwithBarcode does the same...)
  IFrameObj = undefined;
  IFrameObj = null;	 
  lLink = '../background/bgFunctions.php?FuncName=UpdateBarcode&Id='+lObjId+'&Barcode='+lBarcode;
  // prompt('debug',lLink);
  makeHiddenIFRAME(lLink);	
}	

function RunReceiptPrint(lPtrId,lReceiptType) { // TlendItems.php via Accouts.class
  IFrameObj = undefined;
  IFrameObj = null;	
  lShowAll = TranslateCheck(document.fReceipt.ShowAll.checked);  
  lLink = '../background/bgReceipt.php?PtrId='+lPtrId+'&ReceiptType='+lReceiptType+'&ShowAll='+lShowAll;
  // prompt('debug',lLink);
  makeHiddenIFRAME(lLink);
  // printReceipt(IFrameObj); 108.sql
}

function bgRollReservationStatus(lAccountId,lObjId,lNewStatus) { // bgDelReservation.php
  IFrameObj = undefined;
  IFrameObj = null;	
  lLink = '../background/bgFunctions.php?FuncName=RollReservationStatus&Id='+lAccountId+'&ObjId='+lObjId+'&NewStatus='+lNewStatus;
  // prompt('x',lLink);
  makeHiddenIFRAME(lLink);
}

function bgDelListReservation(ltgtId,lAccountId) { // from ../main/Reservation.php
  IFrameObj = undefined;
  IFrameObj = null;	
   lLink = '../background/bgDelReservation.php?Mode=delete&tgtId='+ltgtId+'&Id='+lAccountId;
  // alert(lLink);
  makeHiddenIFRAME(lLink);	
}	

function cbBatchNotification(lJSON) {  // 203 :: former : SendMailResponse		
   var a = eval("("+lJSON+")"); 
   if (a['TypeCount'] > 0) { // make background PDF
      makeHiddenIFRAME('../background/bgCirkList.php?RSessionId='+a['SessionId']); // 203
    }     	  	
   }

//////////////////////////////
// GENERAL FORM VALIDATION  //
//////////////////////////////
function CheckDataTypes(cbField,thisField,lType,lErrorMess) { // remember :: hidden fields cannot have validity CHECK !!
  var lMess = '';
  var Mfield = JRumVar('field');
  var Mtypeflaw = JRumVar('typeflaw');

  if (lType == 'notnull') {
    if (thisField.value.length == 0)
      lMess = lMess+Mfield+' '+cbField+' '+Mtypeflaw+' '+lErrorMess+'\n'; 
  }
  if (lType == 'email') {
    if (thisField.value.indexOf(".") < 2 || thisField.value.indexOf("@") < 1)
      lMess = lMess+Mfield+' '+cbField+' '+Mtypeflaw+' '+lType+' : fx myname@example.org\n'; 
  }
  if (lType == 'integer') {
  	if (!isInteger(thisField.value)) // field
      lMess = lMess+Mfield+' '+cbField+' '+Mtypeflaw+' '+lType+' : fx 124\n'; 
  }
  if (lType == 'money') {
  	if (!isMoney(thisField)) { // object 
      lMess = lMess+Mfield+' '+cbField+' '+Mtypeflaw+' '+lType+' : fx 10.35\n'; 
    }  
  }
  if (lType == 'pdf') { // 215 :: not used !!
  	var lExt = getFileExtension(thisField.value);
  	if (lExt.toLowerCase() != 'pdf' && thisField.value.length > 0) { // object 
          lMess = lMess+Mfield+' '+cbField+' '+Mtypeflaw+' '+lType+' : fx .pdf\n'; 
    }  
  }  
  return lMess;       
}	

function isInteger(s) {
   var i;
    if (s.length == 0)
      return false;
    for (i = 0; i < s.length; i++) {   
      // Check that current character is number.
      var c = s.charAt(i);
      if (c != '.') {
        if (((c < "0") || (c > "9"))) return false;
      }  
    }
    // All characters are numbers.
    return true;
}
function isMoney(thisField) { // ::121
   var i;
    // replace , with . (Sybase smallmoney..)
    thisValue = thisField.value.replace(/[,]/g,".");
    if (thisValue.length == 0)
      return true;
    for (i = 0; i < thisValue.length; i++) {   
      // Check that current character is number.
      var c = thisValue.charAt(i);
      if (c != '.') {
        if (((c < "0") || (c > "9"))) return false;
      }  
    }
    // All characters are numbers. Return corrected string.
    thisField.value = thisValue;
    return true;
}


function CheckRadioSelects(currentForm, currentElement) {
    var theRadio = currentForm.elements[currentElement];
    window.theValue = 'Unknown';
    if (typeof theRadio != 'undefined') {
        if (typeof theRadio.length == 'undefined') {
            theRadio = new Array(theRadio);
        }
        for (var i = 0; i < theRadio.length; i++) {
            if (theRadio[i].checked) {
                window.theValue = theRadio[i].value;
                break;
            }
        }
    }
    return window.theValue;
 }

function IsBoxesSelected(current_form) { // used by search	   	
    var total_checked = 0 
    for (var i=0;i<current_form.elements.length;i++){
      if (current_form.elements[i].checked) {
          if (current_form.elements[i].name != 'allbox') {
            total_checked++   
          }
      }  
    }
    return total_checked
}

function IsTextThere(current_form) {
    var total_text = 0 
    for (counter = 0; counter < current_form.length; counter++) {
       if (current_form[counter].type == "text") {
             if (current_form[counter].value >"") {
                 total_text++
             }
       }
    }
    return total_text
}

function SetFormBlank(current_form) {
    for (counter = 0; counter < current_form.length; counter++) {
      if (current_form[counter].type == "text" || current_form[counter].type == "textarea") {
        current_form[counter].value = "";
      }  
    }
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function


function TranslateCheck(lVar) { // $lMode: 0=true/false expected ; 1=0/1
 if (lVar == true) 
    return 1;  
 if (lVar  == false)
    return 0;
 if (lVar == '') // undefined...
    return 0;        
  return lVar; // probably 0/1
}

function Int2Boolean(lVar) { // $lMode: 0=true/false expected ; 1=0/1
 if (lVar == "0") 
    return false;  
 if (lVar  == "1")
    return true;
 return false;        
}

function apce(e) { // RexUtil.printJSKeyboardCapture
  e.stopPropagation();
  e.preventDefault();
}

////////////////////////////////
//        Image swapp        //
//////////////////////////////
 
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function swapCover(lId,lImg) { // 211 :: JQuery version
   var maxWidth = $('div.sCover').innerWidth();
   var minWidth = $('div.sCover').css('min-width');
   if (!maxWidth) { // full Browseformat
     $('#'+lId).addClass('imgCoverBrowse');
     maxWidth = $('#'+lId).innerWidth();
     minWidth = $('div.imgCoverBrowse').css('min-width');
     $('#'+lId).children().remove();
   }
   // alert(maxWidth);
   // alert(minWidth);
   $('<img />')
      .load(function () { // must define before actual load...
         $(this).fadeIn("slow");
         $('#'+lId).append($(this));
         var thisWidth = $(this).width();
         var thisHeight = $(this).height();
         // alert(thisWidth+'::'+maxWidth);
         if (thisWidth > maxWidth || minWidth != '0px') {
           var ratio = maxWidth / thisWidth;   // get ratio for scaling image
           $(this).css("width", maxWidth); // Set new width
           $(this).css("height", thisHeight * ratio);  // Scale height based on ratio
         }
      }).attr('src',lImg);
}


////////////////////////////////
// SPECIFIC PAGE FUNCTIONS   //
//////////////////////////////
 
 function MakeISBN(vEanStr) {
   var ControlCif;
   var summen = 0;
   var ControlStr;
   var ISBNStr='';
   var EanStr = vEanStr;
 
 if (EanStr.slice(0,3) == '978'){
   EanStr = EanStr.slice(3,EanStr.length-1);
   for (count=0 ; count < 9 ; count++) {
     summen = summen + EanStr.charAt(count)*(10-count);
   }
   ControlCif = summen % 11;
   ISBNStr = (11-ControlCif);
   if (ControlCif == 0) 
     ISBNStr = '0';
   if (ControlCif == 1) {  
     ISBNStr = 'X';  
   }  
   ISBNStr = EanStr+ISBNStr;
   return(ISBNStr);
  }  
   
 else return(vEanStr);     
 }  


function SBrowse(lStep) { 
  if (lStep == 'next' && document.fBrowse.Next.value != '') {
    document.fBrowse.Offset.value=document.fBrowse.Next.value;
    document.fBrowse.submit();
  }     
    
  if (lStep == 'prev' && document.fBrowse.Prev.value != '') {
    document.fBrowse.Offset.value=document.fBrowse.Prev.value;
    document.fBrowse.submit();
  }  
}

function changeLocation(lLink) {
  window.location.href=lLink;	
}

function pFilebrowse(lTgtId) {	
	// alert('Setting yField : '+document.fRepository.yField.value);
  subModal('../modals/DocUpload.php?fId='+lTgtId,'GetFile',680,290,'cbFormBlobDoc');
  // subModal('../modals/FileBrowse.php','FileBrowse',550,250,'cbFileBrowse');
}

function cbFormBlobDoc(lJSON) {
  var a = eval("("+lJSON+")");
  // alert('hebheb');
}  

function cbAttachDoc(lJSON) {
  var a = eval("("+lJSON+")");
  alert(a.toSource());
}  

function eFilebrowse(lTgtId) {	
	// alert('Setting yField : '+document.fRepository.yField.value);
  subModal('../modals/FileBrowse.php?uId='+document.fRepository.uField.value+'&yId='+document.fRepository.yField.value+'&xId='+document.fRepository.xField.value,'FileBrowse',680,290,'cbFileBrowse');
  // subModal('../modals/FileBrowse.php','FileBrowse',550,250,'cbFileBrowse');
}

function cbFileBrowse(returnVal) { // Ed+Portal
	// alert(returnVal['yId']);
  var rDoc = returnVal['rDoc'];
  var rLabel = returnVal['rLabel'];
  var rCover = returnVal['rCover'];
  eval('if (document.fXML.'+document.fRepository.uField.value+'.value.length < 2) document.fXML.'+document.fRepository.uField.value+'.value = rDoc'); 
  eval('if (document.fXML.'+document.fRepository.xField.value+'.value.length < 2) document.fXML.'+document.fRepository.xField.value+'.value = rLabel');
  if (returnVal['yId']) {
  	var yValue = eval('document.fXML.'+document.fRepository.yField.value+'.value');
  	if (yValue.length < 2)
      eval('document.fXML.'+document.fRepository.yField.value+'.value = rCover');
  }    
  // document.fRepository.xField.value = returnVal['rLabel']; 
}	

function fbChange() { // Ed+Portal
 // get filename only...
 var z = document.fFileBrowse.UserFile.value.substr(document.fFileBrowse.UserFile.value.lastIndexOf('\\') + 1);
 var z = z.substr(z.lastIndexOf('/') + 1);
 var row = document.getElementById("FileBut");  	
    if (row) {
      row.innerHTML = z;
    }  
}	

function fbAlias(lTgtId,lSelected,lDoc) {
  // var z = lDoc.substr(lDoc.lastIndexOf('\\') + 1);
  // var z = z.substr(z.lastIndexOf('/') + 1);
  // prompt('debug',lTgtId+' :: '+lSelected+' :: '+lDoc);	
  // ASyncAjax('cbAliasResolvedDoc','AliasResolvedDoc',lTgtId,lSelected,document.getElementById("FileBut").innerHTML,'');
  if (lDoc)
    ASyncAjax('cbAliasResolvedDoc','AliasResolvedDoc',lTgtId,lSelected,basename(lDoc),'');
}	

function cbAliasResolvedDoc(lJSON) {
  var a = eval("("+lJSON+")");
  MM_swapImage('pCheckLlink','',a['rImg'],1);
  document.links[getLinksbyId('hCheckLink')].href = a['rLink'];
  document.getElementById('dUrlCheck').innerHTML = a['rMes'];
   document.fFileBrowse.AliasLabel.value = a['rLabel'];
   document.fFileBrowse.Doc.value = a['rDoc'];
}  

function fbReturnEd(lTgtId) {
  // alert(lTgtId);
}	


 //** -----------------------------------**//
 //**              B L O G               **//
 //** -----------------------------------**//

function Breadmore(lId) {
    jQuery.getJSON('../background/AjaxXML.php?F=BlogEntry&tgtId=0&Id='+lId, function(json) {
    	$("#bEntry"+json.rId).html(json.rText);
    });    
}

function __Breadcomments(lId) {
    ASyncAjax('cbBlogComment','BlogComment',0,lId,0,0);   
}

function cbBlogComment(lJSON) {
  var a = eval("("+lJSON+")");
  var eCaption = document.getElementById('bCom'+a[1]['EntryId']);
  removeElement(eCaption['id'],'u'+a[1]['EntryId']);
  eUl = document.createElement("ul");
  DOMAddId(eUl,'u'+a[1]['EntryId']);
  for (var x in a) {
    eCaption.style.padding = '.4em';
    createBoxElm('li',eUl,'','',a[x]['Comments']+' ('+a[x]['rName']+')');
    // createBoxElm('li',eUl,'','',jQuery.html("hebheb")+' ('+a[x]['rName']+')');
  }
  eCaption.appendChild(eUl);
}

function Baddcomments(lBlogId,lId) {
    // alert(lId);
    var o = document.getElementById('bWym'+lId);
    removeAllChildren(o);
    createBoxElm('textarea',o,'bWymEdit'+lId,'wymeditor','.....');
    // $('.wymeditor').wymeditor();
    WymPortal(lBlogId,0,lId,0,'..','');
    var o = document.getElementById('wDelete');
    o.style.visibility = 'hidden';
}



function Breadcomments(lBlogId,lId) {
  jQuery.getJSON('../background/AjaxXML.php?F=BlogComments&tgtId=0&Id='+lId, function(json) {
    var z = '<ul>';
    for (var x in json) {
       z +='<li>'+json[x].Comments+' ('+json[x].rName+')';
       if (json[x].PtrId == json[x].rCurrentPtr) // same user..
         z +='<a href="javascript:Beditcomment('+lBlogId+','+json[1].EntryId+','+json[x].rId+')"> '+json[1].edit+'</a>';
       z +='</li>';
     }
     z +='</ul>'
     $("#bCom"+json[1].EntryId).html(z);
     $("#bCom"+json[1].EntryId).css({padding:".4em"});
   });
}

function Baddblogentry(lBlogId) {
   var lMess = JRumVar('entryhelp');
   // alert(lBlogId+'::'+lMess);
   var o = document.getElementById('eWym'+lBlogId);
   if (o)
     removeAllChildren(o);
   createBoxElm('textarea',o,'bWymEdit'+lBlogId,'wymeditor','<p><br /></p>');
   // $('.wymeditor').wymeditor();
   var o = document.getElementById('bWymEdit'+lBlogId);
   o.focus();   
   WymPortal(lBlogId,0,0,0,'',lMess);

   var o = document.getElementById('wDelete');
   o.style.visibility = 'hidden';
   
}

function RemoveDeleteButton() {
  var o = document.getElementById('wDelete');
  o.style.visibility = 'hidden';
}

function Beditentry(lBlogId,lEntry) {
  // alert(lId);
   var o = document.getElementById('bWym'+lEntry);
   removeAllChildren(o);
   createBoxElm('textarea',o,'bWymEdit'+lBlogId,'wymeditor','.....');
   // $('.wymeditor').wymeditor();
   jQuery.getJSON('../background/AjaxXML.php?F=WymeGetEntry&tgtId=0&Id='+lEntry, function(json) {
   // alert(json.toSource());
     WymPortal(lBlogId,1,lEntry,0,json.F,json.M);
   });
   setTimeout("RemoveDeleteButton();",1000);
}


function Beditcomment(lBlogId,lEntry,lId) {
    // alert(lEntry+' :: '+lId);
    var o = document.getElementById('bWym'+lEntry);
    // alert(o.toSource());
    removeAllChildren(o);
    createBoxElm('textarea',o,'bWymEdit'+lId,'wymeditor','....');
    jQuery.getJSON('../background/AjaxXML.php?F=WymeGetCom&tgtId=0&Id='+lId, function(json) {
      WymPortal(lBlogId,0,lEntry,lId,json.F,json.M);
    });
}

function WymeComSave(lBlogId,lFocus,lEntryId,lCommentId) {
  document.fPost.action = '../background/AjaxXML.php';
  if (lFocus == 0) // edit comments and add entry
    APostAjax('cbWymeCom','WymeCom',lBlogId,lEntryId,lCommentId,$.wymeditors(gWymLenght).xhtml());
  else {
     APostAjax('cbWymeCom','WymeEntry',lBlogId,lEntryId,0,$.wymeditors(gWymLenght).xhtml());
  }
 // alert(lBlogId+' :: '+lEntryId+' :: '+$.wymeditors(0).xhtml()+' :: '+lCommentId);
  // alert(gWymLenght);
}
// WYMeditor.INSTANCES.length

function WymeComDelete(lBlogId,lEntryId,lCommentId) {
  // alert('Saving : '+lCommentId);
  document.fPost.action = '../background/AjaxXML.php';
  if (lCommentId) {
    APostAjax('cbWymeCom','WymeComDelete',lBlogId,lEntryId,lCommentId,$.wymeditors(gWymLenght).xhtml());
  // alert(lId+' :: '+$.wymeditors(0).xhtml()+' :: '+document.fTag.TagPanel.value);
  }
}

function cbWymeCom(lJSON) { // handles insert/update/delete
   var a = eval("("+lJSON+")");
  // alert('cbWymeCom : '+a['EntryId']+' '+a.toSource());
  if (a['EntryId'] != '0') {
    // remove Wyme
    // alert('remove.. : '+a['EntryId']);
    var o = document.getElementById('bWym'+a['EntryId']);
    removeAllChildren(o);
    // remove comments
    var eCaption = document.getElementById('bCom'+a['EntryId']);
    removeElement(eCaption,'u'+a['EntryId']);
    if (a['C'] == '0')
      document.fReload.submit();
    else
      Breadcomments(a['BlogId'],a['EntryId']); // add comments
  }
  else if (a['BlogId'] != '0') {
    // alert('Removing : '+a['BlogId'])
    var o = document.getElementById('eWym'+a['BlogId']);
    removeAllChildren(o);
    document.fReload.submit();
  }
}

function BlogEntryOnTop(lId) {
	jQuery.getJSON('../background/AjaxFunctions.php?F=EntryOnTop&tgtId=0&Id='+lId);
    document.fFilter.submit();
}	

 //** -----------------------------------**//
 //**              C A R T               **//
 //** -----------------------------------**// 
function openReferenceList(lSelected) {
  if (lSelected) {
    newWindow = window.open('../modals/ReferenceList.php?Focus='+lSelected,'REFERENCE','toolbar=no,resizable=yes,Scrollbars=yes, menubar=yes,height=620,width=470,top=0,left=290');
    setTimeout("newWindow.focus();",500); 
  }
}

 function makePDFList(lFocus) {
   document.fList.Focus.value = lFocus;
   document.fList.submit();	
}

 function SendEmailList(lFocus) {
   document.fList.Focus.value = lFocus;
   document.fList.Format.value = 'Email';
   document.fList.submit();	
}

 function changeNewsPeriod(lDays) {	
   document.fList.Days.value = lDays;
   document.fList.Focus.value = 'Newslist';
   document.fList.Format.value = '';
   document.fList.submit();	
 }
 
 function makePDFnewslist(l1,l2,l3) { // var used later ??
   document.fList.Focus.value = 'Newslist';
   document.fList.submit();
}

function swapCart(lState) {
  // alert(lState);	
  if (lState == 0) {
    MM_swapImage('navCart','','/pics/Transparent.gif',1);
    document.links[getLinksbyId('hnavCart')].href = '';	
    var row = document.getElementById('tCart');
    if (row) {
      row.style.display = (row.style.display == 'block')? 'none' : 'block';
      row.style.display = 'none';
      setTimeout("window.location.href='..\/rss\/Portal.php';",1000);
    }  
  }
  else {
    var row = document.getElementById('CartCount');  	
    if (row) {
      row.innerHTML = row.innerHTML.substring(row.innerHTML.indexOf(' '));;
    }
    MM_swapImage('navCart','','/pics/CartFill.gif',1);
    document.links[getLinksbyId('hnavCart')].href = 'javascript:GetCartItems()';
    setTimeout("MM_swapImage('navCart','','/pics/Cart.gif',1)",1000); 
  }		
}  

function GetCartItems() {
  window.location.href='../main/Hits.php?List=Cart';
} 

function ShowPdfList(lListId) {
   newWindow = window.open('../modals/ReferenceList.php?Focus=cart','REFERENCE','toolbar=no, Scrollbars=yes, menubar=yes,height=620,width=470,top=0,left=290');
   setTimeout("newWindow.focus();",500); 
 } 
 
function LinkRecord(ldrop) { // called from Ed.php + FmtSearch...
   document.fLinkRecord.Stage.value=25;
   document.fLinkRecord.Template.value = 200;
   document.fLinkRecord.LinkRec.value = 1;
   document.fLinkRecord.submit();
}

function goEditLinkItem(lMtaId) {
  document.fLinkRecord.MtaId.value = lMtaId;
  document.fLinkRecord.LinkRec.value = 1;
  document.fLinkRecord.Template.value = 200;
  document.fLinkRecord.submit();
}   
 	 
   function RunDTDSelect(lId) {
     document.fSelect.Template.value = lId;
     document.fSelect.FFocus.value = 10;     
     document.fSelect.submit();	
   }
   function RunProp(lId) {
     window.location.href = '../main/Form.php?Ifm=MtaTemplateDetail&TemplId='+lId;
   }  
   
 function exGetFile(lSelected)	{
   	document.fExport.Format.value = lSelected;
   	document.fExport.Stage.value = 1;
    document.fExport.submit();
  }	
 	 
////////////////////////////////
//      RESERVATION          //
////////////////////////////// 
 
 function viewReservationNotice(lPtrId,lMethod,lShowAll) {
  lLink = '../modals/Letters.php?NotificationMode=ResNotice&PtrId='+lPtrId+'&Method='+lMethod+'&ShowAll='+lShowAll;
  if (lMethod == 2) // letter == pdf
   window.location.href=lLink;
  else { // mail
    // alert(lLink);	
    supramodaler(0,'ResNotice',lLink,800,800);
   } 
}  

function RunShelfList(lStatusId) {
  lLink = '../modals/ShelfList.php?Mode=Reservation&StatusId='+lStatusId;
  RecordWin = window.open(lLink,"ShelfList","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0");
}
 
function cbUserCanGet(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['File'])
    window.open(a['File'],'Notifications','Menubar=yes,Scrollbars=yes,width=600,Height=575,resizable,screenX=0,screenY=0'); 	
  setTimeout("document.fSelections.submit()",2000);   
}   

function cbVisualSendRes(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['Mail'])
    window.close();
}  
 
////////////////////////////////
//        RECALL           //
////////////////////////////// 


function viewReminder(lSubscription,lMethod,lFocus,lMode) {
  if (lMode == 'delayed' && lFocus == 0)
    lFocus = 1
  if (lMode == 'missing' && lFocus == 0)
    lFocus = 2    
  lLink = '../modals/Letters.php?Subscription='+lSubscription+'&Method='+lMethod+'&Focus='+lFocus;
  if (lMethod == 2) // letter == pdf
   window.location.href=lLink;
  else { // mail
    // alert(lLink);	
    supramodaler(1,'Reminder',lLink,800,800);
  }  
}

function RunReclaim(lMessage) {	// makes two javascript-arrays 	
 if (confirm(lMessage)) {	
  for (var outeri=0;outeri<2;outeri++) {
    var ii = 0;  	
    for (var i=0;i<document.fMethod.elements.length;i++){
      if (document.fMethod.elements[i].checked && document.fMethod.elements[i].name != 'allbox') {
    	selStr = 'document.fMethod.sMethod'+document.fMethod.elements[i].id.slice(9)+'.value';
    	idStr = 'document.fMethod.elements[i].id.slice(9)';
        // ReclaimChecked[ii] = new Array(eval(idStr)), new Array(eval(selStr));
        if (outeri == 0 && eval(selStr) == 1) {
          ReclaimEmail[ii] = eval(idStr);
          ii++;
        } 
        if (outeri == 1 && eval(selStr) == 2) {
          ReclaimLetter[ii] = eval(idStr);
          ii++;
        }         
      }  
    }
  } 
  if (ReclaimEmail.length > 0) {
    ReclaimEmailCount=1;
    // prompt('debug',lLink);
    lLink = '../background/bgReclaim.php?UsrId='+ReclaimEmail[0]+'&Method=1&ShowAll='+document.fMethod.ShowAll.value;
    makeHiddenIFRAME(lLink);
  }  
  else {
    if (ReclaimLetter.length > 0) {
      ReclaimLetterCount=1;    	
      lLink = '../background/bgReclaim.php?UsrId='+ReclaimLetter[0]+'&Method=2&ShowAll='+document.fMethod.ShowAll.value;
      // prompt('debug',lLink);
      makeHiddenIFRAME(lLink);
    }  
  } 
 } // confirm..    
}    
 
 function viewReclaim(lPtrId,lMethod,lShowAll) {
  lLink = '../modals/Letters.php?NotificationMode=recall&PtrId='+lPtrId+'&Method='+lMethod+'&ShowAll='+lShowAll;
  if (lMethod == 2) // letter == pdf
   window.location.href=lLink;
  else { // mail	
    supramodaler(0,'ReclaimMod',lLink,800,800);
   } 
} 

function ReclaimResponse(lReceipt,lUsrId,lMethod,lCustId) {	
  if (ReclaimEmail.length == ReclaimEmailCount) { // stange method to prevent IFRAME from beeing called twice...
    ReclaimEmail = ''; 
  }  
  if (ReclaimLetter.length == ReclaimLetterCount) { // stange method to prevent IFRAME from beeing called twice...
    ReclaimLetter = '';     
  }  
  if (lReceipt > 0) {
    if (lMethod == 1) {
      MM_swapImage('bViewReclaim'+lUsrId,'','/pics/ReclaimDone.gif',1); 		
    }
    if (lMethod == 2) {
      MM_swapImage('bViewReclaim'+lUsrId,'','/pics/ReclaimLetter.gif',1); 		
    }
   if (lMethod == 20) {
      MM_swapImage('bRunReclaim','','/pics/ReclaimRegister.gif',1);  		
    }    
  }
  else { 
    MM_swapImage('bViewReclaim'+lUsrId,'','/pics/NoWay.gif',1); 
    if (lMethod == 20) {
      MM_swapImage('bRunReclaim','','/pics/NoWay.gif',1);
    }  
  }    
  if (ReclaimEmail.length > ReclaimEmailCount) {
    lLink = '../background/bgReclaim.php?UsrId='+ReclaimEmail[ReclaimEmailCount]+'&Method=1&ShowAll='+document.fMethod.ShowAll.value;  	
    makeHiddenIFRAME(lLink);
    ReclaimEmailCount++;      
  }
  if (ReclaimEmail.length == 0 && ReclaimLetter.length > ReclaimLetterCount) {
    lLink = '../background/bgReclaim.php?UsrId='+ReclaimLetter[ReclaimLetterCount]+'&Method=2&ShowAll='+document.fMethod.ShowAll.value;
    ReclaimLetterCount++;
    makeHiddenIFRAME(lLink);

  }  
  if (ReclaimLetter.length == 0 && ReclaimLetterCount > 0 && lMethod < 3) { // finished!
    lLink = '../background/bgReclaim.php?Method=10';  
   // prompt('debug',lLink);
   // setTimeout("makeHiddenIFRAME(lLink)",1000);
   makeHiddenIFRAME(lLink);
   
  }
  if ((ReclaimEmailCount > 0 || ReclaimLetterCount > 0) && (lMethod != 20 && ReclaimEmail.length == 0 && ReclaimLetter.length == 0)) { // now utterly finished..
    lLink = '../background/bgReclaim.php?Method=20'; 	
    setTimeout("makeHiddenIFRAME(lLink)",4000); 
    if (ReclaimLetterCount > 0)	{
       setTimeout("window.open('../UserLogs/Reclaim.pdf','Reclaim','Menubar=yes,Scrollbars=yes,width=600,Height=575,resizable,screenX=0,screenY=0')",6000); 	
    	      
    }  
  }	 	
    	  
}

function resetMissings(lSubscriptionId) {
  document.fResetMissing.Subscription.value=lSubscriptionId;
  document.fResetMissing.submit();	
}	

function showSlipp() { // 169 :: timeout+1000
  setTimeout("window.open('../UserLogs/Slipp.pdf','Notifications','Menubar=yes,Scrollbars=yes,width=600,Height=575,resizable,screenX=0,screenY=0')",4000); 	
}

function runRegisterSubscriptionPayment(lUseId,lBudgetId,lCurrencyId,lPrice,lMessage) {
  if (confirm(lMessage)) {	
    ASyncAjax('cbRegSubscriptionPayment','RegSubscriptionPayment',lPrice,lUseId,lCurrencyId,lBudgetId);	
    // alert(lUseId+' :: '+lBudgetId+' :: '+lCurrencyId+' :: '+lPrice);
  }  
}	

function cbRegSubscriptionPayment(lJSON) {
  var a = eval("("+lJSON+")");
  for (var x in a) {
    z = x.toString();
    eval('var '+z+' = "'+a[z]+'"');
  } 
  document.getElementById('InDrop').innerHTML = rMess;
  if (rRes == 1)
    document.fSub.SubscriptionNote.value = document.fSub.SubscriptionNote.value+'\n'+rMess;
  bouncelimit=8;
  direction="up";
  initbox();
  // CheckPreSubmit(3);
  // alert(rMess); 
}	

////////////////////////////////
//      SYSREQUEST           //
//////////////////////////////	

function RunSysRequest(lFocus,lFormat,lSelection,lMessage) {
  // alert('../background/bgFunctions.php?FuncName='+lFocus+'&Format='+lFormat+'&Selection='+lSelection);
  if (confirm(lMessage)) {
    lLink = '../background/bgFunctions.php?FuncName='+lFocus+'&Format='+lFormat+'&Selection='+lSelection;
    // prompt('Debug', lLink);  	
    makeHiddenIFRAME(lLink);	
  }  
}

function ajSysRequest(lFocus,lId,lSelection,lMessage) {
  if (confirm(lMessage)) {
    ASyncAjax('cb'+lFocus,lFocus,'',lId,lSelection,''); // Move2CurrentBudget
  }  
}

function ViewLocalFile(lFile) {
  RecordWin = window.open(lFile,"LocalFile","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0"); 	
}

function cbMove2CurrentBudget(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rCount'] > 0)
    alert(a['rCount']+' OK!');
  else
    alert('Error');  
}  

function cbBatchImportPatrons(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rProFile'] > 0)
    alert(a['Mess']);
  else
    alert('Error');  
}

function CheckBgStatus() {
  lLink = '../modals/Syslog.php?LogId=18&SortColumn=1&Descending=1';
  supramodaler(1,'bgStatus',lLink,800,550);
}	

function RunResetFlag(lFlagId,lMessage) {
  if (confirm(lMessage)) {	
    makeHiddenIFRAME('../background/bgFunctions.php?FuncName=ResetFlag&Id='+lFlagId);		
  }  
}	

////////////////////////////////
//      ZTHES              //
//////////////////////////////	
function ShowZThesRec(lTgtId,lTermId) {
  lLink='../modals/ZThes.php?tgtId='+lTgtId+'&TermId='+lTermId;
  // alert(lLink);
  supramodaler(0,'ZThes',lLink,500,600);
}


////////////////////////////////
//      OBJECTS              //
//////////////////////////////	

function changeObjFocus(lTgtId,MtaId,lColumn) {
  window.location.href = '../main/ListObj.php?tgtId='+lTgtId+'&MtaId='+MtaId+'&ObjectFocus='+lColumn;
}

function loChangeColFocus(lFocus) {
  document.fColFocus.Collection.value = lFocus;
  document.fColFocus.submit();	
}

function loDeCircItem(tgtId,lObjId) { 	
  ASyncAjax('cbDecircItem','DecircItem',tgtId,lObjId,'','');
  // makeHiddenIFRAME('../background/bgFunctions.php?FuncName=DecircItem&Id='+lObjId);    	
  // setTimeout("document.fReload.submit();",2000);  	  
}

function cbDecircItem(JSON) { // callback
    document.fReload.submit();
}
    
function loChangeVolFocus(lFocus,lMtaId) {
  document.fVolumeFocus.MtaId.value = lMtaId;	  	
  document.fVolumeFocus.VolumeFocus.value = lFocus;
  document.fVolumeFocus.submit();
}

function loDeleteItems(lMessage) {
   if (confirm(lMessage)) {	
     document.fDeleteItems.FStage.value = 8;
     document.fDeleteItems.submit();	  	
  }   
}

function loDeleteObjToggle(thisChecked){
  for (var i=0; i<document.fDeleteItems.elements.length; i++){
    var this_element = document.fDeleteItems.elements[i];
    if (this_element.type == 'checkbox')
      this_element.checked = thisChecked;
  }
}

function loDeleteBlobDoc(lMessage,lId) {
   if (confirm(lMessage))
     ASyncAjax('cbDeleteBlobDoc','DeleteBlobDoc',0,lId,0,''); 
}

function cbDeleteBlobDoc(lJSON) { // callback
  var a = eval("("+lJSON+")");
  if (a['rId'])
    document.fReload.submit();
} 

function BlobDoc(lId,lExt) {
  document.fBlob.BlobId.value = lId;
  document.fBlob.Ext.value = lExt;
  document.fBlob.submit();
}   

function loSaveBlob(tgtId,lMtaId,lFile) {
  ASyncAjax('cbSaveBlobDoc','SaveBlobDoc',tgtId,lMtaId,lFile,'');
}	

function cbSaveBlobDoc(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rMtaId'])
    document.fReload.submit();
}    

function ReceiveOrder(lTgtId,lMtaId,lObjId) { // 181 :: Opens in new window...
   lLink = '../main/EditObj.php?tgtId='+lTgtId+'&MtaId='+lMtaId+'&ObjId='+lObjId+'&fStage=20';	
  wOrder = window.open(lLink,'Receive','location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,height=800,width=800,top=0,left=290');
}	

function PrntBarcode(tgtId,lObjId) {
  IFrameObj = undefined;
  IFrameObj = null;	
  lLink = '../background/bgPrintBarcode.php?F=Barcode&ObjId='+lObjId;
  makeHiddenIFRAME(lLink);

}
function PrntSpineLabel(tgtId,lObjId) {
  IFrameObj = undefined;
  IFrameObj = null;	
  lLink = '../background/bgPrintBarcode.php?F=Spine&ObjId='+lObjId;
  makeHiddenIFRAME(lLink);
}

function setNewslistDate(tgtId,ObjId,lChecked) {
	ASyncAjax(cbDummy,'NewslistDate',tgtId,ObjId,lChecked,'');
}	

function oResortVol(lMess,tgtId,lMtaId) {
  if (confirm(lMess)) {
  	ASyncAjax('cbResortVol','ResortVol',tgtId,lMtaId,0,'');
  }	
}

function cbResortVol(lJSON) { // callback
  var a = eval("("+lJSON+")");
  if (a['rMtaId'])
    document.fReload.submit();
}    
////////////////////////////////
//     PERIODICALS           //
//////////////////////////////	

function ChangeReceiveRow(lReceiveRowId) {
  window.location.href = '../main/Receive.php?Focus='+lReceiveRowId;
}

function ReceiveIncrement(lMode,lCrementer) {
  if (lMode == 'issue') {
    if (lCrementer == 0) // [END] == reset issuecounter
      document.fReceiveFocus.issuecount.value = 1;
    else  
      document.fReceiveFocus.issuecount.value = ((document.fReceiveFocus.issuecount.value-0)+lCrementer);
    document.fReceiveFocus.issue.value = document.fReceiveFocus.issuecount.value;    
  }
  if (lMode == 'volume') {
    // document.fReceiveFocus.volume.value = document.fReceiveFocus.volumefix.value+' '+((document.fReceiveFocus.volumecount.value-0)+lCrementer);
    document.fReceiveFocus.volumecount.value = ((document.fReceiveFocus.volumecount.value-0)+lCrementer);
    document.fReceiveFocus.volume.value = document.fReceiveFocus.volumecount.value;
  }
  if (lMode == 'abocount') {
    if ((document.fReceiveFocus.AboCount.value-0)+lCrementer > 0)	
      document.fReceiveFocus.AboCount.value = (document.fReceiveFocus.AboCount.value-0)+lCrementer;
  }    		
}

function bgIssueName(bgVolume,bgIssue,lUpdatePerCounter) { // cuming from ../background/bgIssueName.php
  // alert(bgVolume+' : '+bgIssue);	
  document.fReceiveFocus.volume.value = bgVolume;  
  document.fReceiveFocus.issue.value = bgIssue;
  document.fReceiveFocus.UpdatePerCounter.value = lUpdatePerCounter;
  document.fReceiveFocus.submit();
}	

function ReceiveWorkObject(lMode,lReceiveSessionId,lSubscriptionId) {
  document.fWorkObject.ReceiveSession.value = lReceiveSessionId;
  document.fWorkObject.Action.value = lMode;
  document.fWorkObject.UpdatePerCounter.value = 1;
  document.fWorkObject.Ordinary.value = eval('document.fReceiveOrd'+lReceiveSessionId+'.Ordinary'+lSubscriptionId+'.checked'); 
  // alert(document.fWorkObject.Ordinary.value); 
  document.fWorkObject.submit();
}

function PickSubscription(lSubscriptionId) { // one or group of selected subscriptions.... 	
  document.fPick.PickSubscription.value = lSubscriptionId;
  document.fPick.submit();
}	

function regReceiveBatch(lSubscriptionId,lState) {
  gGrpPick = 1;
  lLink = '../background/bgFunctions.php?FuncName=regReceiveBatch&Id='+lSubscriptionId+'&State='+TranslateCheck(lState);
  makeHiddenIFRAME(lLink);	
}	
function sCatSource(UseId,lValue) {
  ASyncAjax('cbDummy','CatSource','',UseId,lValue,'');
} 

////////////////////////////////
//    ORDERS & BUDGET         //
//////////////////////////////	

function viewOrderAction(lObjId,lMethod,lFocus) {
  if (lMethod == 1) { // email
    lLink = '../modals/Letters.php?NotificationMode=SingleOrder&ObjId='+lObjId+'&Method='+lMethod+'&Focus='+lFocus;  	
    supramodaler(1,'Order',lLink,800,900);  	
  }  	
  if (lMethod == 2) { // letter == pdf
    lLink = '../modals/Letters.php?NotificationMode=SingleOrder&ObjId='+lObjId+'&Method='+lMethod+'&Focus='+lFocus;
    window.location.href=lLink;
  } 
  if (lMethod == 3) { // contact
    lLink = '../modals/Letters.php?ObjId='+lObjId+'&Method='+lMethod+'&Focus='+lFocus;
    supramodaler(1,'Order',lLink,800,900);  	
  }  
}

function OrdChangeSort(lSort) { // mooved cause load-time..
   document.fSelections.pSort.value=lSort;
   document.fSelections.submit();
 }

function viewCollectedOrders(lSupplierId,lMethod,lFocus) {
  lLink = '../modals/Letters.php?NotificationMode=CollectedOrders&SupplierId='+lSupplierId+'&Method='+lMethod+'&Focus='+lFocus;
  if (lMethod == 2) // letter == pdf
   window.location.href=lLink;
  else {
    // alert(lLink);	 
    supramodaler(1,'Order',lLink,800,900);
  }  
}

function TransferCart(lMode,lFocus,lCollection) { // 154 :: Lists..
  lLink = '../background/bgFunctions.php?FuncName=TransferCart&Id='+lFocus+'&Collection='+lCollection+'&Mode='+lMode;
  // prompt('Debug', lLink);  
  makeHiddenIFRAME(lLink);	
}

function bgCBTransferCart(lCount) {
  if (lCount)	
   swapCart(lCount);   
}	

	
////////////////////////////////
//      USR ACCOUNT          //
//////////////////////////////	

function viewReservations() {
  document.fReservations.submit();
}

function viewSubscriptions() {
 document.fSubscriptions.submit();
}

function viewLoans() {
 document.fLoans.submit();
}
	
function deleteReservation(tgtId,lAccountId) {
 document.fReservations.AccountId.value = lAccountId;
 document.fReservations.tgtId.value = tgtId;
 document.fReservations.FStage.value = 11;
 document.fReservations.submit();
}

function FocusAccountType(lFocus) {
 document.fFocusAccoutType.FStage.value = lFocus;
 document.fFocusAccoutType.submit();	
}		

   function SetPageLoaded() {
     alert('Page is loaded');	
   }
   
////////////////////////////////
//       URL FUNCTIONS      //
//http://jeffhowden.com/code/javascript/url/?foo=bar&far=boo//
//////////////////////////////   

function getUrlParams(qs,lVar,lDefault) {
  // var qs = location.search.substring(1);
  var nv = qs.split('&');
  var url = new Object();
  for(i = 0; i < nv.length; i++) {
    eq = nv[i].indexOf('=');
    url[nv[i].substring(0,eq)] = unescape(nv[i].substring(eq + 1));
  }
  if (url[lVar])
    return url[lVar];
  else
    return lDefault;  
}


////////////////////////////////
//   BACKGROUND  IFRAME      //
//////////////////////////////

var IFrameObj; // our IFrame object
function makeHiddenIFRAME(lLocation) {
  if (!document.createElement) {return true};
  var IFrameDoc;
  var URL = lLocation;
  if (!IFrameObj && document.createElement) {
    // create the IFrame and assign a reference to the
    // object to our global variable IFrameObj.
    // this will only happen the first time 
    // callToServer() is called
    var tempIFrame=document.createElement('iframe');
    tempIFrame.setAttribute('id','RSIFrame');
    tempIFrame.style.border='0px';
    tempIFrame.style.width='0px';
    tempIFrame.style.height='0px';
    tempIFrame.src="./"; // heb added 111.sql : secure/nonsecure warning in IE 6.
    IFrameObj = document.body.appendChild(tempIFrame);
  
    if (document.frames) {
      // this is for IE5 Mac, because it will only
      // allow access to the document object
      // of the IFrame if we access it through
      // the document.frames array
      IFrameObj = document.frames['RSIFrame'];
    }
  }
  
  if (navigator.userAgent.indexOf('Gecko') !=-1 && !IFrameObj.contentDocument) {
    // we have to give NS6 a fraction of a second
    // to recognize the new IFrame
    setTimeout('callToServer()',10);
    return false;
  }
  if (!browser.isOpera && IFrameObj.contentDocument) {
    // For NS6
    IFrameDoc = IFrameObj.contentDocument; 
  } 
  else if (!browser.isOpera && IFrameObj.contentWindow) {
    // For IE5.5 and IE6
    IFrameDoc = IFrameObj.contentWindow.document;
  } 
  else if (!browser.isOpera && IFrameObj.document) {
    // For IE5  	   
    IFrameDoc = IFrameObj.document;
  } 
  else {
    return true;
  }
 IFrameDoc.location.replace(URL);
  // IFrameDoc.location = URL;
  return false;
} 

///////////////////////
//    TIME + DATE    //
////////////////////////

function getCurrentYear() {
  var now = new Date();
  var year = now.getFullYear();
  return(year);
}
function getCurrentYearPush(current_field) {
  current_field.value = getCurrentYear();
} 	

function getISO8601timestamp() {
  var lTimeString = '';	
  var now = new Date();
  var lTimestamp = lTimeString.concat(now.getFullYear(),padString(2,now.getMonth()+1,'0'),padString(2,now.getDate(),'0'),padString(2,now.getHours(),'0'),padString(2,now.getMinutes(),'0'),padString(2,now.getSeconds(),'0'),'.0');
  return(lTimestamp);
  // alert(lTimestamp);
}   

///////////////////////
//    BIBENTRY    //
////////////////////////

function showLinkedRecord(lMtaId) {  
  RecordWin = window.open('../main/Hits.php?MtaId='+lMtaId,"RxLinkedRecord","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0"); 	
}
function OpenLinkedURI(lURI) {  
  RecordWin = window.open(lURI,"RxLinkedRecord","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0"); 	
}

///////////////////////
//    NAVIGATION    //
////////////////////////
function editXE(lMtaId) {
  window.location.href = '../main/Ed.php?MtaId='+lMtaId;	
}	

///////////////////////
//    NOT USED    //
////////////////////////

function killBloodyWindow() {
  top.window.close();	
}	

////////////////////////////////////
//    GENERAL STRING-FUNCTIONs    //
////////////////////////////////////
function padString(lLength,lValue,lPadValue) {
  var lRetValue = '';
  lRetValue = lRetValue.concat(lValue);
  while (lRetValue.length < lLength) {
    lRetValue = lPadValue+lRetValue;
  }  
  return lRetValue;	
}

function PadFixString(lLength,lValue,lPadValue) {
  var lRetValue = '';
  lRetValue = lRetValue.concat(lValue);
  while (lRetValue.length < lLength) {
    lRetValue = lRetValue+lPadValue;
  }  
  return lRetValue;	
}

//////////////////////
//   PATRONS	    //
//////////////////////	

function ChangePtrGrp(lScan,lFocus) {	
  if (!lScan)
    document.fBrowse.ResetSession.value = 1;	
  document.fBrowse.PtrGrp.value = lFocus;
  document.fBrowse.Offset.value = 1;
  document.fBrowse.OffLetter.value = 'A';	
  document.fBrowse.submit(); 	
}

function bgDeletePatrons(lCount,lPtrGrp,lPtrIds) {
  IFrameObj = undefined;
  IFrameObj = null;	
   lLink = '../background/bgDeletePatrons.php?Mode=batchdelete'+lPtrIds;
   // prompt('Debug', lLink);
   makeHiddenIFRAME(lLink);
}	

function bgWorkDeleteMappedUsers(lPtrGrp,lMessage) {
  var ii = 0;	
  var parStr = '';
  if (confirm(lMessage)) { 	
    for (var i=0; i<document.fPatrons.elements.length; i++){
      var this_element = document.fPatrons.elements[i];
      if (this_element.type == 'checkbox' && this_element.checked) {
        parStr = parStr+'&aId['+ii+']='+this_element.name.substring(8);
        this_element.checked = false;
        ii++;
      }  
    }
    if (ii > 0) {
      bgDeletePatrons(ii,lPtrGrp,parStr); // doAction	
    }  
  }      	
}	

function bgWorkDeleteMap(lPtrId,lCheckValue) {
  // alert(lPtrId+' : '+TranslateCheck(lCheckValue));
  makeHiddenIFRAME('../background/bgFunctions.php?FuncName=WorkDeleteMap&Id='+lPtrId+'&Mark='+TranslateCheck(lCheckValue));	
}	

//////////////////////
// INACTIVITY TIMER  //
//////////////////////

// global vars :::
// 154 :: moved to JSenvironment 

function initInactivityTimer (time) {
  // alert('inactivitytimer starts');	
    setInactivityTimer(time,"window.location.replace('..\/rss\/Portal.php')",true);
}	

function setInactivityTimer (time, action, repeat) {
  window.time = time;
  window.action = action;
  window.repeat = repeat;
  if (tid) 
	clearTimeout(tid);
  if (document.layers)
	document.captureEvents(Event.MOUSEMOVE | Event.KEYUP);
  document.onmousemove = document.onkeyup =
	function (evt) {
	  setInactivityTimer(window.time, window.action, window.repeat);
	  return true;
	};
  if (repeat)
	action += '; setInactivityTimer(' 
			  + time + ', "' + action + '", ' + repeat + ');';
  else 
	action += '; clearEvents();';
  tid = setTimeout(action, time);
}


function clearEvents() {
  if (document.layers)
	document.releaseEvents(Event.MOUSEMOVE | Event.KEYUP);
  document.onmousemove = document.onkeyup = null;
}

function RedirectSelfDesk(lTarget,lNavAction) {
  document.fRedirect.action = lTarget;
  document.fRedirect.RC.value = 1;
  document.fRedirect.NavAction.value = lNavAction;
  document.fRedirect.submit();	
}

//////////////////////
//     BUILD PDF    //
//////////////////////

function BuildBgPdf(lLink) { // calling envirenment must have access to function PdfResonse..
  // prompt('debug',lLink+'&Format=pdf');
  makeHiddenIFRAME(lLink+'&Format=pdf');
}	

function PdfResponse(lPdfFile){
   setTimeout("window.open('"+lPdfFile+"','RxPage','Menubar=yes,Scrollbars=yes,width=600,Height=575,resizable,screenX=0,screenY=0')",1000);	
}		

////////////////////////////////
//      LENDING / LOAN       //
//         LendItem          //
//////////////////////////////	

function OpenPtrAccountDetails(lPtrId) {
  lLink = '../modals/PtrAccountDetails.php?PtrId='+lPtrId;	
  // prompt('debug',lLink);
  if (lPtrId)
    supramodaler(1,'PtrAccountDetails',lLink,450,475);
}

function runBgUpdatePtrAccount(lMode,lPtrId,lAmount) {
  lLink = '../background/bgFunctions.php?FuncName=UpdatePtrAccount&Mode='+lMode+'&Id='+lPtrId+'&Amount='+lAmount;
  // prompt('debug',lLink);	
  makeHiddenIFRAME(lLink);
}	

function cbSendLoanReceipt(lJSON) { // callback
  var a = eval("("+lJSON+")");
  if (a['Mail'])
    ShowMesBox(a['Mess'],3000); 
}  

////////////////////////////////
//                           //
//           FRBR            //
//                          //
//////////////////////////////	

  function ShowBrowseFormat(tgtId,tgtPos,q) {
    document.fBrowseFormat.tgtId.value = tgtId;  
    document.fBrowseFormat.tgtPos.value = tgtPos;	
    document.fBrowseFormat.qe.value = q;	
    document.fBrowseFormat.submit();
  }	
  
  function ManifestExpanded(tgtId,lMat,lLan,lFQ,lthisQ) {
    document.fManiFocus.tgtId.value = tgtId;  
    document.fManiFocus.Mat.value = lMat;	
    document.fManiFocus.Lan.value = lLan;	
    document.fManiFocus.FQ.value = lFQ;
    document.fManiFocus.thisQ.value = lthisQ;
    document.fManiFocus.submit();  		
  }	  	

  function ManifestExpand(lMat,lLan) {
    document.fManiFocus.Mat.value = lMat;	
    document.fManiFocus.Lan.value = lLan;	
    document.fManiFocus.submit();  	
  }

////////////////////////////////
//         SHOWHINT          //
//////////////////////////////	

function ShowHint(lHint) {
 alert(lHint);	
}	

////////////////////////////////
//         OpenUrl           //
//////////////////////////////	

function ResolveOpenUrl(lType,lId) {
  if (lType == 'object')
    ASyncAjax('cbOpenUrlObject','OpenUrlObject','',lId,lType,'');
}  

function cbOpenUrlObject(lJSON) { // callback
  var a = eval("("+lJSON+")");
  RecordWin = window.open(a['lLink'],"RxOpenUrl","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0"); 	
} 


////////////////////////////////
//      UserFunctions (ABA)  //
//////////////////////////////	
  
function MakeUserWindow(mypage,myname,w,h,scroll,pos) {
  var win=null;  	
  if(pos=="random"){
    LeftPosition=(screen.availWidth)?Math.floor(Math.random()*(screen.availWidth-w)):50;TopPosition=(screen.availHeight)?Math.floor(Math.random()*((screen.availHeight-h)-75)):50;
  }
  if(pos=="center") {
    LeftPosition=(screen.availWidth)?(screen.availWidth-w)/2:50;TopPosition=(screen.availHeight)?(screen.availHeight-h)/2:50;
  }
  if(pos=="default") {
    LeftPosition=50;TopPosition=50;
  }
  else if((pos!="center" && pos!="random" && pos!="default") ||   pos==null){
    LeftPosition=0;TopPosition=20;
  }
  settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
  win=window.open(mypage,myname,settings);
  if(win.focus){
   win.focus();
  } 
  // return false;
}


function MakeFullWindow(mypage,myname,w,h,scroll,pos) {
  var win=null;  	
  if(pos=="random"){
    LeftPosition=(screen.availWidth)?Math.floor(Math.random()*(screen.availWidth-w)):50;TopPosition=(screen.availHeight)?Math.floor(Math.random()*((screen.availHeight-h)-75)):50;
  }
  if(pos=="center") {
    LeftPosition=(screen.availWidth)?(screen.availWidth-w)/2:50;TopPosition=(screen.availHeight)?(screen.availHeight-h)/2:50;
  }
  if(pos=="default") {
    LeftPosition=50;TopPosition=50;
  }
  else if((pos!="center" && pos!="random" && pos!="default") ||   pos==null){
    LeftPosition=0;TopPosition=20;
  }
  settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=yes,directories=no,status=no,menubar=yes,toolbar=yes,resizable=yes';
  win=window.open(mypage,myname,settings);
  if(win.focus){
   win.focus();
  } 
  // return false;
}

////////////////////////////////
//       Global Search       //
//////////////////////////////	

function bgRemoveSearchSession() { // Mark selected records...
   ASyncAjax('cbMarkResponse','RemoveSearchSession','','','','');
}

function cbMarkResponse(lJSON) {
    var a = eval("("+lJSON+")");
    // alert(a['rCart']);
    var eDiv = document.getElementById(a['rId']);
    if (eDiv)	
      eDiv.checked = eval(a['rState']); 
    swapCart(a['rCart']); // mox.js   
  }  
 

function CheckThisInputField(e) {
  var keynum;
  var k;
  var numcheck;	
  if(window.event) // IE
    var keynum = e.keyCode;
  else if (e.which) // Netscape/Firefox/Opera
   keynum = e.which;
   // k = String.fromCharCode(keynum);
   //numcheck = /\d/;
   // k = !numcheck.test(k);
  // alert(keynum);
  if (keynum == 13 && document.fTSearch.qe.value.length > 1) {	
    document.fTSearch.qe.value = trimQuerry(document.fTSearch.qe.value);
    document.fTSearch.submit(); 
  }
}

function trimQuerry(lQe) {
  var vQuerry = trim(lQe);
  var pattern=new RegExp("\ - ","g")
  vQuerry=vQuerry.replace(pattern," ")  
  pattern=new RegExp("\- ","g")
  vQuerry=vQuerry.replace(pattern," ")
  pattern=new RegExp("\-\,","g")
  vQuerry=vQuerry.replace(pattern," ")
  vQuerry=vQuerry.replace(". "," ")
  pattern=new RegExp("\; ","g")
  vQuerry=vQuerry.replace(pattern," ")
  pattern=new RegExp("\: ","g")
  vQuerry=vQuerry.replace(pattern," ")      
  // 210 exit : test & use EAN
  // if (vQuerry.slice(0,3) == '978' && vQuerry.length == 13) {
  //   vQuerry = 'isbn='+MakeISBN(vQuerry);
  // }		
  return vQuerry;	
}

function IsUserInputEmpty(current_form) { // used by search.php
   if (IsTextThere(current_form) > 0) {
      if (IsBoxesSelected(current_form) > 0 || (current_form.PortalMode != null && current_form.PortalMode.type == 'hidden')) {
      	return true;  
      } 
      else {
            JRum(0,'notargetselection',0);
            // current_form[0].focus(); 
            return false;             
      }     
   }
   else {
         JRum(0,'nodatainput',0);
         // current_form[0].focus();
         return false;
   }
}

function FilterLayInput(lFunc,this_form) { // filter userinput for simple search	
  if (IsUserInputEmpty(this_form)) {	
    var vQuerry = trimQuerry(this_form.qe.value);
    this_form.qe.value = vQuerry;
    if (this_form.ckeepCart != null) {
      if (this_form.ckeepCart.checked) {
        this_form.keepCart.value = 1;
      }  
      else
        this_form.keepCart.value = 0;
    } 
    if (lFunc == 'form') // normal submit..
      this_form.submit();  
  }   
}

function FilterAdvInput(this_form) { // filter userinput for Advanced search	
  if (IsUserInputEmpty(this_form)) {
    if (this_form.ckeepCart != null) {
      if (this_form.ckeepCart.checked)
        this_form.keepCart.value = 1;
      else
        this_form.keepCart.value = 0;
    }    
    this_form.submit(); 
  }   
}


function SubmitSearch(lMode,current_form) {
  // alert('Mode = '+lMode);
  if (lMode == 'lay') {	
    FilterLayInput('form',current_form);
  }  
  if (lMode == 'Dropdown') {
   thisOperator = ' '+CheckRadioSelects(document.fSearch,'Operator')+' ';
    document.fSearch.qe.value = '';
    for (var i=0; i<document.fSearch.length; i++) {
      if (document.fSearch[i].name.slice(0,2) == "qe" && document.fSearch[i].name.length > 2 && document.fSearch[i].value.length > 0) {
        if (document.fSearch.qe.value == '')
          eval("document.fSearch.qe.value = document.fSearch.qe.value + document.fSearch.aSearch"+document.fSearch[i].name.slice(2)+".value+document.fSearch[i].value");
        else
          eval("document.fSearch.qe.value =  document.fSearch.qe.value+thisOperator+document.fSearch.aSearch"+document.fSearch[i].name.slice(2)+".value+document.fSearch[i].value");     
      }
    }
   FilterAdvInput(current_form);                   
  }   
  if (lMode == 'Schema') {	
    document.fSearch.qe.value = CollectSearchArguments(document.fSearch);
    FilterAdvInput(current_form);                   
  }
}

function PortalSearch(lMode,current_form) {
  if (lMode == 'lay') {	
    FilterLayInput('',current_form);
  }  	
  document.fSearch.Template.value = 'HitlistPanel';	
  document.fSearch.action = '../rss/Portal.php';
  document.fSearch.submit();
}

function cbRegisterSearch(lJSON) {
 var a = eval("("+lJSON+")");	
 document.fPortal.Qe.value = a['rQe'];
 document.fPortal.QStr.value = a['rQStr'];
 document.fPortal.Collection.value = a['rCollection'];
 document.fPortal.submit();
}	

function PortalAsPublic() {
  document.fPublicPortal.submit();
}	

function cbASyncLetter(lJSON) {
  var a = eval("("+lJSON+")");	
  setTimeout("window.open('"+a['File']+"','RxPage','Menubar=yes,Scrollbars=yes,width=600,Height=575,resizable,screenX=0,screenY=0')",1000);	
}

function cbASyncLetter2(lJSON) {
}

function EditRequestRights(lPicId) {
  // alert(lPicId.substring(4));
  document.fEdit.FFocus.value = 1;
  document.fEdit.Id.value = lPicId.substring(4);
  document.fEdit.submit();
}	

function RequestRightsSave() {
  document.fEdit.FFocus.value = 3;
  document.fEdit.submit();
}

function RequestRightsDelete() {
  document.fEdit.FFocus.value = 6;
  document.fEdit.submit();
}	

function FDownloadDelete(lPicId) {
  document.fEdit.FFocus.value = 6;
  document.fEdit.Id.value = lPicId.substring(4);
  document.fEdit.submit();	
}	

function FURIList(URIId) {
  window.location.href = '../main/Form.php?Ifm=URIList&Id='+URIId;
}

function FEdTitle(TagId) {
	lLink = '../main/Ed.php?TagId='+TagId.substr(4);
  wEd = window.open(lLink,'EditorLink','location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,height=800,width=800,top=0,left=190'); 
  // window.location.href = '../main/Ed.php?TagId='+TagId.substr(4);
}

function FCheckUrlErr(MtaId) {
  window.location.href = '../main/Ed.php?MtaId='+MtaId.substr(4);
}

function fRunBrokenLinks() {
    var aImg = document.images;
    for(var i=0;i<document.images.length;i++){
        // var filename = /^.*(\|\/|\:)/.exec(document.images[i].src)[1];
       // var filename = document.images[i].src;
       var filename = document.images[i].src.substring(document.images[i].src.lastIndexOf('/')+1);
       if (filename == 'Transparent.gif' && document.images[i].id.substring(0,5) == 'pTrns') {
         ASyncAjax('cbBrokenlink','Brokenlink',gTgtId,document.images[i].id.substring(5),null,null);
         return 0;
       }
    }
}

function cbBrokenlink(lJSON) {
  var a = eval("("+lJSON+")");
  // alert('hebheb');
  // alert(a['Target']+' :: '+a['SaveType']+' :: '+a['Success']);
 // return array('Code'=>$Code,'Txt'=>$E[$Code],'Class'=>$Class);
 // alert(a['Class']);
 var elm = document.getElementById('pTrns'+a['Id']);
  if (a['Class'] == 1) {
    MM_swapImage('pTrns'+a['Id'],'','/pics/NoWay.gif',1);
    elm.setAttribute('title',a['Code']+' : '+a['Txt']);
  }
  else {
    MM_swapImage('pTrns'+a['Id'],'','/pics/ThumbsUp.gif',1);
    elm.setAttribute('title','OK');
  }
  fRunBrokenLinks();
}	


function FDownloadNow(lSaveType,lPicId) {
  // alert(lPicId.substring(3));
  MM_swapImage(lPicId,'','/pics/Transparent.gif',1);
  ASyncMetaData('cbDownloadNow','Download',gTgtId,lPicId.substring(4),'',lSaveType,-1);
}	

function cbDownloadNow(lJSON) {
  var a = eval("("+lJSON+")");
  // alert(a['Target']+' :: '+a['SaveType']+' :: '+a['Success']);
  if (!a['Success']) {
    MM_swapImage('pDwn'+a['Id'],'','/pics/CartS.gif',1);
    alert('No records found');  
  }     
}	

function FDownloadLending(lId) {	
  ASyncMetaData('cbDummy','DwnLending',0,lId,'',0,-1);		
}

function cbDummy(lJSON) {
	var a = eval("("+lJSON+")");
}

function FAdd() {
  document.fEdit.Id.value = 0;	
  document.fEdit.FFocus.value = 1;	
  document.fEdit.submit();	
}	
function jsFilterstatus(lValue) {
  document.fFilter.submit();
}
function jsFilterInitiated(lValue) {
  document.fFilter.submit();
}
function jsFilterlevel(lValue) {
  document.fFilter.submit();
}
function jsFilterfinished(lValue) {
   document.fFilter.submit();	
}
function jsFiltersortfield(lValue) {
  document.fFilter.submit();
}

function jsFilterDTD(lValue) {
  document.fFilter.submit();
}

function FDownloadDelete(lPicId) {
  document.fEdit.FFocus.value = 6;
  document.fEdit.Id.value = lPicId.substring(4);
  document.fEdit.submit();	
}

function FLoginBan (lPicId) {
	MM_swapImage(lPicId,'','/pics/Transparent.gif',1);
  ASyncAjax('cbDummy','LoginBan','',gTgtId,lPicId.substring(4),null);  
}	


function RequestRightsViewPDF() {
    // lLink='../modals/Letters.php?NotificationMode=ViewPDFRequestLetter&Id='+document.fEdit.Id.value;
    ASyncNotice('cbASyncLetter','ViewPDFRequestLetter','',document.fEdit.Id.value,null,null); 
}
function UserRequestRightsViewPDF(lId) {
    // lLink='../modals/Letters.php?NotificationMode=ViewPDFRequestLetter&Id='+document.fEdit.Id.value;
    ASyncNotice('cbASyncLetter','ViewPDFRequestLetter','',lId,null,null); 
}
function RequestRightsSendPDF(lMessage) {
  if (confirm(lMessage)) {	
    // lLink='../modals/Letters.php?NotificationMode=SendPDFRequestLetter&Id='+document.fEdit.Id.value;
    // supramodaler(0,'RequestAccess1',lLink,500,600);
    ASyncNotice('cbASyncLetter','SendPDFRequestLetter','',document.fEdit.Id.value,null,null); 
    ASyncAjax('cbASyncLetter2','SetRqStatus','',document.fEdit.Id.value,5,null);
    setTimeout("SMNav(2)",3000);
  }  
}		

function RequestRightsSendNotification(lType,lMessage) { // lType == 0/NO 1/YES
  if (confirm(lMessage)) {	
    // lLink='../modals/Letters.php?NotificationMode=SendPDFRequestLetter&Id='+document.fEdit.Id.value;
    // supramodaler(0,'RequestAccess1',lLink,500,600);
    // ASyncNotice('cbASyncLetter','SendPDFRequestLetter','',document.fEdit.Id.value,null,null); 
    ASyncNotice('cbASyncLetter2','SendRequestNotification','',document.fEdit.Id.value,null,null);
    ASyncAjax('cbASyncLetter2','SetRqStatus','',document.fEdit.Id.value,5,null);
    setTimeout("SMNav(2)",3000);
  }  
}

function RequestObjects() {
   lLink='../modals/RequestObjects.php?Id='+document.fEdit.Id.value;
   supramodaler(0,'RequestObects',lLink,600,400);
}	

function CheckRequestObject(lObjId,lReqId,lState) {
  // alert(lObjId+'::'+lReqId+'::'+lState);	
  ASyncAjax('cbCheckRequestObject','CheckRequestObject','',lObjId,lReqId,lState);	
}

function cbCheckRequestObject() {
}

////////////////////////
//       TERMS        //
//      rev. 175      //
////////////////////////

function CheckPushSupscriptions(lPtrId,lTermId,lState) {
  // alert(lPtrId+' : '+lTermId+' : '+lState);	
  document.fChangePushSubscription.TermId.value = lTermId;
  document.fChangePushSubscription.CheckValue.value = TranslateCheck(lState);
  document.fChangePushSubscription.PtrGrp.value = lPtrId;
  document.fChangePushSubscription.FFocus.value = 50
  document.fChangePushSubscription.submit();   	
}

function RunAddTermPtrSubscription(lId) {
  document.fGotoPtrSubscription.UseId.value = lId;
  document.fGotoPtrSubscription.submit();
}		

function changeListFocus (lList) {
  document.fListFocus.ListType.value = lList;
  document.fListFocus.submit();	
}

function cbSubmitTermObj(lJSON) {
   var a = eval("("+lJSON+")");
   // alert(a['Mail']+'/ '+a['TermId']+' / '+a['MtaId']);
   document.fReload.submit();
}	

function CheckTermObjects(lMtaId,lTermId,lMes,lCount,lState) {
  document.fChangeTermObject.TermId.value = lTermId;
  document.fChangeTermObject.MtaId.value = lMtaId;     
  document.fChangeTermObject.CheckValue.value = TranslateCheck(lState);
  document.fChangeTermObject.FFocus.value = 90
  if (lState == true && lCount && confirm(lMes)) 
    lState = 2;
  else if (lState == true)
    lState = 1;
  else
    lState = 0
  ASyncNotice('cbSubmitTermObj','SendSDINotification','',lTermId,lMtaId,lState); 
}


function CheckTermList(lMtaId,lTermId,lState,lListType) {
  document.fChangeTermObject.TermId.value = lTermId;
  document.fChangeTermObject.MtaId.value = lMtaId;     
  document.fChangeTermObject.CheckValue.value = TranslateCheck(lState);
  document.fChangeTermObject.ListType.value = lListType;
  document.fChangeTermObject.FFocus.value = 90
  document.fChangeTermObject.submit();
}   

function TermCheckFocusBox(lMode,lId,lState) {
  // alert(lMode+' : '+lId+' : '+lState);	
  document.fChangePushPull.TermId.value = lId;
  document.fChangePushPull.CheckValue.value = TranslateCheck(lState);
  document.fChangePushPull.Mode.value = lMode;
  document.fChangePushPull.FFocus.value = 40
  document.fChangePushPull.submit();
}   	

function TermRunAdd() {
  document.fEdit.TermId.value = 0;
  document.fEdit.FFocus.value = 1;     
  document.fEdit.submit();   	 	
}

function TermRunEdit(lId) {
  document.fEdit.TermId.value = lId;
  document.fEdit.FFocus.value = 2;     
  document.fEdit.submit();	
}

function TermResetForm(this_form) {
  SetFormBlank(this_form);
  MM_swapImage('pState','','/pics/Transparent.gif',1);
}

function TermCheckPreSubmit(lFocus) { // garbage control ?
  if (IsTextThere(document.fFocus) > 0) {
    document.fFocus.FFocus.value = lFocus;	
    document.fFocus.submit();
  }
  else
    JRUM(0,'empty_form',0);
} 

function termSetQTab(lTermId,lQTab) {
	document.fTab.QTab.value = lQTab;
	document.fTab.TermId.value = lTermId;
	document.fTab.submit();
}	

////////////////////////
//       LOGIN        //
//      add. 177      //
////////////////////////   

function OPBlock() {
  alert('block');
  return false;
}	
   
  function setLoginLanguage() {
    document.fLang.submit();
  }
 
 function switchLoginField(lSeq,lPtrCode,lMess,Msupply_pincode,Mrepeat_pincode) {
    removeElement('dUid','tLogin');
    var Ebody = document.getElementById('dUid'); 
    Etable = createElm('table','tLogin','');
    Etablebody = document.createElement("tbody");
    Erow = document.createElement("tr");
    Ecell = document.createElement("td");
    Ecell.className = 'LLabel r';
    createTextElm(Ecell,Msupply_pincode);	 
    Erow.appendChild(Ecell);
    
    Ecell = document.createElement("td");
    Ecell.className = 'LLabel';
    // Form
    var oForm = DOMAddForm("fPincode",0,"#");
    setEvent(oForm, 'onsubmit','return false'); 
    var o3Input = DOMAddFormInput('hidden','Uid','','',lPtrCode);
    oForm.appendChild(o3Input);
    var oInput = DOMAddFormInput('password','Pincode','bxM',Msupply_pincode,'');
    oForm.appendChild(oInput);
    // alert('Setting code '+lPtrCode);
    Ecell.appendChild(oForm);
    Erow.appendChild(Ecell);
    Etablebody.appendChild(Erow);

    
    if (lSeq == 1) { // Ptr must supply new pincode...
      Erow = document.createElement("tr");
      Ecell = document.createElement("td");
      Ecell.className = 'LLabel r';
      createTextElm(Ecell,Mrepeat_pincode);	 
      Erow.appendChild(Ecell);
      Ecell = document.createElement("td");
      Ecell.className = 'LLabel';
      // Form
      var oForm = DOMAddForm("fPinRepeat",0,"#");
      setEvent(oForm, 'onsubmit','return false'); 
      var o2Input = DOMAddFormInput('password','Pincode','bxM',Mrepeat_pincode,'');
      oForm.appendChild(o2Input);
      Ecell.appendChild(oForm); 
      Erow.appendChild(Ecell);    
      Etablebody.appendChild(Erow);    	
    }

    // button block..
    Erow = document.createElement("tr");
    Ecell = document.createElement("td");
    Ecell.className = 'LLabel r';
    createTextElm(Ecell,' ');
    Erow.appendChild(Ecell);
    Ecell = document.createElement("td");
    Ecell.className = 'LLabel';
    var butt = document.createElement('button');
    butt.className = 'RxStd';
    var buttext = document.createTextNode('Login');
    butt.appendChild(buttext);
    setEvent(butt, 'onclick','keyLogin()');
    Ecell.appendChild(butt);
    Erow.appendChild(Ecell);
    Etablebody.appendChild(Erow);


    Etable.appendChild(Etablebody);
    Ebody.appendChild(Etable);
    // 215 : setTimeout("document.getElementById('Pincode').focus()",500);
    setTimeout("document.fPincode.Pincode.focus()",500);
    if (lSeq == 1) {
      DOMMess(lMess,'loginMess');	
      var p = document.getElementById('loginMess'); 
      p.style.visibility = 'hidden'; 
    }	
 }	 
     
 function cbLoginUid(lJSON) { // "knownUsr":"1","LoginPermit":"1","achievedRights":"201","HomeCol":"0","PrefLang":"dan","ErrorState":0,"ErrorMsg":""
   var a = eval("("+lJSON+")"); 
   removeElement('dLogin','PtrSelfReg'); // 188 :: removes elm if it is set... 
   // alert(a['Profile']+' :: '+a['knownUsr']+' :: '+a['achievedRights']+' :: '+a['LoginPermit']);
   if ((a['Profile'] == 12 || a['Profile'] == 13 || a['Profile'] == 23 || a['Profile'] == 25 || a['Profile'] == 35 || a['Profile'] == 45) && a['knownUsr'] == 1 && a['LoginPermit'] > 0 && a['achievedRights'] > 200) {
   	switchLoginField(0,a['Uid'],'',a['supply_pincode'],a['repeat_pincode']);
   }
   else if ((a['Profile'] == 12 || a['Profile'] == 13 || a['Profile'] == 23) && a['knownUsr'] == 1 && a['LoginPermit'] > 0 && a['achievedRights'] > 100) {
   	  // alert(a['achievedRights']);

    switchLoginField(1,a['Uid'],a['ErrorMsg'],a['supply_pincode'],a['repeat_pincode']);

   }   
   else if ((a['Profile'] == 12 || a['Profile'] == 23 || a['Profile'] == 35 || a['Profile'] == 45) && a['knownUsr'] == 1 && a['LoginPermit'] > 0 && a['achievedRights'] >= 3 && a['achievedRights'] <= 5)
     window.location.href = a['Location'];
   else if (a['Profile'] == 11 && a['knownUsr'] == 1 && a['LoginPermit'] > 0 && a['achievedRights'] > 0 && a['achievedRights'] <= 5)
     window.location.href = a['Location'];     
   else if (a['knownUsr'] == 0) 
     DOMErrorMess(a['ErrorMsg'],'loginError','#bf410f',3000);
 }
 
 function cbLoginPin(lJSON) {
   var a = eval("("+lJSON+")");
   // alert(a['knownUsr']+'::'+a['LoginPermit']+'::'+a['achievedRights']+'::'+a['Location']);
   if (a['knownUsr'] == 1 && a['LoginPermit'] > 0 && a['achievedRights'] > 0 && a['achievedRights'] <= 5) 
     window.location.href = a['Location']; 
   else { 	
   	DOMErrorMess(a['ErrorMsg'],'loginError','#bf410f',3000);
   	setTimeout("window.location.href = '../main/Login.php'",3100);
   }	
   
 }  
  
////////////////////////
//     Submodal       //
//     common.js      //
//      add. 177      //
////////////////////////

function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}

function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

/**
 * Code below taken from - http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
 *
 * Modified 4/22/04 to work with Opera/Moz (by webmaster at subimage dot com)
 *
 * Gets the full width/height because it's different for most browsers.
 */
function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 

	return window.undefined; 
}
function getViewportWidth() {
	var offset = 17;
	var width = null;
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
}

/**
 * Gets the real scroll top
 */
function getScrollTop() {
	if (self.pageYOffset) // all except Explorer
	{
		return self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollTop;
	}
}
function getScrollLeft() {
	if (self.pageXOffset) // all except Explorer
	{
		return self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollLeft)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollLeft;
	}
}
// public method for url decoding
    function decode(utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }
    
function SubmitPseudoForm(lForm,lField) { // 194 :: (repos)
	 // alert(lField);
      // alert(document.fDokumentsamling.searchstring.value);
      eval('var thisForm = document.f'+lForm);
      eval('var z = document.f'+lForm+'.'+lField+'.value');
      // 209 :: test f. BUF ::. thisForm.grsearch.value = z;
      thisForm.submit();
}

////////////////////////////////
//     C A L E N D A R       //
//////////////////////////////

function startFocusedCalendar(cbFunc,thisId,thisElement,withTime,lValue) {
  // alert(thisElement);
  gCalAction = thisId; // calendar calls bgUpdateExpire...
  var lElm = document.getElementById(thisElement);
  if (lValue.length > 0) {
    lElm.value = lValue 
  }		

  // alert(lElm);
  if (lElm != null)
    var cal1 = new calendar1(lElm);
  else 
  	var cal1 = eval('new calendar1('+thisElement+')'); 
  cal1.year_scroll = true;
  cal1.cbFunc= cbFunc;
  cal1.time_comp = withTime; 
  cal1.popup();       	
}
 
 function bgReservationExpire(lId,lNewDate) { // called from ../js/calendar.htm
    ASyncAjax('cbDummy','changeExpire','',lId,encodeURIComponent(lNewDate),'');
 } 
 
 function bgReceivePublishDate(lId,lNewDate) { // called from ../js/calendar.htm + Receive.php
   document.getElementById('h'+lId).innerHTML = document.fChangePublishDate.PublishDate.value;
   // alert(lId+' : '+lNewDate);
   ASyncAjax('cbDummy','changePublishDate','',lId,encodeURIComponent(lNewDate),'');
 }

 function bgChangeDueTime(lId,lNewDate) { // called from ../js/calendar.htm + Receive.php
   document.getElementById('h'+lId).innerHTML = document.fChangeDue.NewDue.value;
   ASyncAjax('cbDummy','changeDue','',lId,encodeURIComponent(lNewDate),'');
 } 
 
 ////////////////////////////////
//         ShelfList         //
//////////////////////////////
 
 function setBarcodeFocus(lObjId) {
   gShelfFocus=0;
   gObjId = lObjId;
 }  
 
 
  function RollStatusShelList(lObjId,lNewStatus,lPrompt) {
   if (confirm(lPrompt+'='+lNewStatus)) {
     ASyncAjax('cbRollStatus','RollStatus','',lObjId,lNewStatus,''); 
   }		
 }
 
  function C__cbRollStatus(lJSON) {
    var a = eval("("+lJSON+")");
    MM_swapImage('I'+a['rObjId'],'','/pics/ThumbsUp.gif',1);
    // alert(a['rNewStatus']);
    if (a['rNewStatus'] == '80') {
      MM_swapImage('S'+a['rObjId'],'','/pics/Home2.gif',1);
      $('#S'+a['rObjId']).unbind('click');
      // $('#S'+a['rObjId']).click(function() { alert('foo'); });
      $('#S'+a['rObjId']).bind("click",(function() { alert('foo'); }));
    }
    else if(a['rNewStatus'] == 0) {
      MM_swapImage('S'+a['rObjId'],'','/pics/RollStatus.gif',1);
     //  $('#S'+a['rObjId']).click(function() { alert('fooHHHH'); });
           $('#S'+a['rObjId']).unbind('click');
           // $('#S'+a['rObjId']).click(function() { alert('fooHHHH'); });
        $('#S'+a['rObjId']).bind("click",(function() { alert('fooHHHH'); }));
    }
 }

 function cbRollStatus(lJSON) {
    var a = eval("("+lJSON+")");
    MM_swapImage('I'+a['rObjId'],'','/pics/ThumbsUp.gif',1);
    if (a['rNewStatus'] == '80') {
      var lNextStatus = 0;
      var lImg = '/pics/Home2.gif'
    }
    else if(a['rNewStatus'] == 0) {
      var lNextStatus = 80;
      var lImg = '/pics/RollStatus.gif'
    }
    $('#S'+a['rObjId']).children().remove();
    $('<img />')
      .load(function () { // must define before actual load...
         $(this).fadeIn("slow");
         $('#S'+a['rObjId']).append($(this));
    }).attr('src',lImg).attr('title',a['rPrompt']+'='+lNextStatus).click(function() {RollStatusShelList(a['rObjId'],lNextStatus,a['rPrompt']); });
 }

 function deleteShelfListItem(lObjId,lPrompt) {
   if (confirm(lPrompt)) {
     ASyncAjax('cbDeleteHolding','DeleteHolding','',lObjId,'',''); 
   }		
 }
 
 function cbDeleteHolding(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rSQLState'] == '00000') {
     eval("var row = document.getElementById('tr"+a['rObjId']+"')");
     if (row)
       row.style.visibility = 'hidden';
  }   
  if (a['rMess'])  
    alert(a['rMess']);
 }   
 	
 
 function cbSwithBarcode(lJSON) {
  var a = eval("("+lJSON+")");
  if (a['rSQLState'] == '00000')
    MM_swapImage('I'+a['rObjId'],'','/pics/ThumbsUp.gif',1);
  if (a['rMess'])  
    alert(a['rMess']);
 }   

/*
 * JTip
 * By Cody Lindley (http://www.codylindley.com)
 * Under an Attribution, Share Alike License
 * JTip is built on top of the very light weight jquery library.
 */

//on page load (as soon as its ready) call JT_init
// $(document).ready(JT_init); this genereal init must reside on the page....


function JT_init(){ // original
	     $("a.jTip")
		   .hover(function(){JT_show(this.href,this.id,this.name)},function(){$('#JT').remove()})
          .click(function(){return false});	   
}

function JT_Close(){
 $('#JT, #JT_arrow_left, #JT_arrow_right').hide().remove();
} 
function JT_Tree(url,title,x,y){
	$('#JT, #JT_arrow_left, #JT_arrow_right').hide().remove();
	if(title == false)title="&nbsp;";
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - mousePos.x;
	var clickElementy = mousePos.y-10; //set y position
	
	var queryString = url.replace(/^[^\?]+\??/,'');
	var params = parseQuery( queryString );
	if(params['width'] === undefined){params['width'] = 440};
	
	if(hasArea>((params['width']*1)+75)){
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_left'></div><div id='JT_close_left'><span>"+title+"</span><img src='/pics/Close.gif' onclick='JT_Close()'/></div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
		var arrowOffset = mousePos.x + 11;
		var clickElementx = arrowOffset+180; //set x position
	}else{
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_right' style='left:"+((params['width']*1)+1)+"px'></div><div id='JT_close_right'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//left side
		var clickElementx = mousePos.x - ((params['width']*1) + 15); //set x position
	}
	// alert(clickElementx+'::'+clickElementy);
	
	// clickElementx= 100;
	if (x)
	  clickElementx=x;
	if (y)
	  clickElementy=y;
	
	$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
	$('#JT').show();
	$('#JT_copy').load(url);
}

function JT_show(url,linkId,title){
	$('#JT, #JT_arrow_left, #JT_arrow_right').hide().remove();
	if(title == false)title="&nbsp;";
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - getAbsoluteLeft(linkId);
	var clickElementy = getAbsoluteTop(linkId) - 3; //set y position
	
	var queryString = url.replace(/^[^\?]+\??/,'');
	var params = parseQuery( queryString );
	if(params['width'] === undefined){params['width'] = 250};
	if(params['link'] !== undefined){
	$('#' + linkId).bind('click',function(){window.location = params['link']});
	$('#' + linkId).css('cursor','pointer');
	}
	
	if(hasArea>((params['width']*1)+75)){
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_left'></div><div id='JT_close_left'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
		var arrowOffset = getElementWidth(linkId) + 11;
		var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
	}else{
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_right' style='left:"+((params['width']*1)+1)+"px'></div><div id='JT_close_right'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//left side
		var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position
	}
	
	$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
	$('#JT').show();
	$('#JT_copy').load(url);

}

function getElementWidth(objectId) {
	x = document.getElementById(objectId);
	return x.offsetWidth;
}

function getAbsoluteLeft(objectId) {
	// Get an object left position from the upper left viewport corner
	o = document.getElementById(objectId)
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	return oLeft
}

function getAbsoluteTop(objectId) {
	// Get an object top position from the upper left viewport corner
	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	return oTop
}

function parseQuery ( query ) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function blockEvents(evt) {
              if(evt.target){
              evt.preventDefault();
              }else{
              evt.returnValue = false;
              }
}

////////////////////////
//   MESSAGESYSTEM    //
//      add. 178      //
////////////////////////   
function chMessSiteId(lFocus) { // MessageSystem.php
  document.fChangeContext.SiteId.value = lFocus;
  document.fChangeContext.submit();
}		

function iRunDump(lMode,thisField) {
  APostAjax('cbRunDump','RunDump','',lMode,encodeURIComponent(thisField.value),''); // 209 :: Uses post
}	

function cbRunDump(lJSON) { // callback   	
   var a = eval("("+lJSON+")"); 
   document.fTitles.Titles.value = a['Titles'];
   document.fTitles.submit();
}

function iRunDumpImport(tgtId,lPrompt){
  if (confirm(lPrompt))
    ASyncMetaData('cbRunDumpImport','RunDumpImport',tgtId,0,'','','')
}	

function cbRunDumpImport(lJSON) { // callback   	
   var a = eval("("+lJSON+")");
   window.location.href = '../main/Main.php';
}    

// http://rex/Rx/main/MessageSystem.php?Caption=mod_text&Context=Portal&Language=dan&SiteId=0&FFocus=2
function sysEditTxt(lCaption,lContext,lFocus) {
	document.fEditTxt.Caption.value = lCaption;
	document.fEditTxt.Context.value = lContext;
	document.fEditTxt.FFocus.value = lFocus;
	document.fEditTxt.submit(); 
}	

function portalModified() {
  ASyncAjax('cbPortalModified','PortalModified','',0,0,0);
}
  
 function cbPortalModified(lJSON) { // callback
   var a = eval("("+lJSON+")");   	
   document.fContainSettings.Modified.value = a['Modified'];
}	

function XMLWriter()
{
    this.XML=[];
    this.Nodes=[];
    this.State="";
    this.FormatXML = function(Str)
    {
        if (Str)
            return Str.replace(/&/g, "&amp;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
        return ""
    }
    this.BeginNode = function(Name)
    {
        if (!Name) return;
        if (this.State=="beg") this.XML.push(">");
        this.State="beg";
        this.Nodes.push(Name);
        this.XML.push("<"+Name);
    }
    this.EndNode = function()
    {
        if (this.State=="beg")
        {
            this.XML.push("/>");
            this.Nodes.pop();
        }
        else if (this.Nodes.length>0)
            this.XML.push("</"+this.Nodes.pop()+">");
        this.State="";
    }
    this.Attrib = function(Name, Value)
    {
        if (this.State!="beg" || !Name) return;
        this.XML.push(" "+Name+"=\""+this.FormatXML(Value)+"\"");
    }
    this.WriteString = function(Value)
    {
        if (this.State=="beg") this.XML.push(">");
        this.XML.push(this.FormatXML(Value));
        this.State="";
    }
    this.Node = function(Name, Value)
    {
        if (!Name) return;
        if (this.State=="beg") this.XML.push(">");
        this.XML.push((Value=="" || !Value)?"<"+Name+"/>":"<"+Name+">"+this.FormatXML(Value)+"</"+Name+">");
        this.State="";
    }
    this.Close = function()
    {
        while (this.Nodes.length>0)
            this.EndNode();
        this.State="closed";
    }
    this.ToString = function(){return this.XML.join("");}
}

////////////////////////
//   BrowserDetect    //
//      add. 221      //
////////////////////////   

function BrowserDetect() {
   var ua = navigator.userAgent.toLowerCase();
   // browser engine name
   this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

   // browser name
   this.isKonqueror   = (ua.indexOf('konqueror') != -1);
   this.isSafari      = (ua.indexOf('safari') != - 1);
   this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
   this.isOpera       = (ua.indexOf('opera') != -1);
   this.isIcab        = (ua.indexOf('icab') != -1);
   this.isAol         = (ua.indexOf('aol') != -1);
   this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) );
   this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isFirebird    = (ua.indexOf('firebird/') != -1);
   this.isFirefox     = (ua.indexOf('firefox/') != -1);  // heb added 19.02.2005
   this.isIceweasel   = (ua.indexOf('iceweasel') != -1);  // heb added 14.04.2008
   this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );

   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);

   // rendering engine versions
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
   this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
   this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );

   // browser version
   this.versionMinor = parseFloat(navigator.appVersion);

   // correct version number
   if (this.isGecko && !this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
   }
   else if (this.isOmniweb) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
   }
   else if (this.isOpera) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
   }
   else if (this.isIcab) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
   }

   this.versionMajor = parseInt(this.versionMinor);

   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);

   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin    = (ua.indexOf('win') != -1);
   this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac    = (ua.indexOf('mac') != -1);
   this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux  = (ua.indexOf('linux') != -1);

   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);

   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);

   this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetect();

// Drop-in content box- By Dynamic Drive
// For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
// This credit MUST stay intact for use

var ie=document.all
var dom=document.getElementById
var ns4=document.layers
var calunits=document.layers? "" : "px"

var bouncelimit=32 //(must be divisible by 8)
var direction="up"

function initbox(){
if (!dom&&!ie&&!ns4)
return
crossobj=(dom)?document.getElementById("dropin").style : ie? document.all.dropin : document.dropin
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
crossobj.top=scroll_top-250+calunits
crossobj.visibility=(dom||ie)? "visible" : "show"
dropstart=setInterval("dropin()",50)
}

function dropin(){
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
if (parseInt(crossobj.top)<100+scroll_top)
crossobj.top=parseInt(crossobj.top)+40+calunits
else{
clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}
}

function bouncein(){
crossobj.top=parseInt(crossobj.top)-bouncelimit+calunits
if (bouncelimit<0)
bouncelimit+=8
bouncelimit=bouncelimit*-1
if (bouncelimit==0){
clearInterval(bouncestart)
}
}

function dismissbox(){
if (window.bouncestart) clearInterval(bouncestart)
crossobj.visibility="hidden"
}

function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ShowMesBox(lMes,lTimeout) {
  if (lMes)
    document.getElementById('InDrop').innerHTML = lMes;
  bouncelimit=8
  direction="up"
  initbox();
  if (lTimeout)
    setTimeout("dismissbox()",lTimeout);
}

/////////////////////////
//    DOM Functions    //
//      add. 221      //
//////////////////////// 

function createElm(lBox,lId,lClass) {
  var Elm = document.createElement(lBox);
  if (lId)
    Elm.setAttribute('id',lId);
  if (lClass) {
  	Elm.className = lClass;
    // var aClass = document.createAttribute('class');
    // aClass.nodeValue = lClass;
  }
  return Elm;
}

function createList(o,lId,lClass,aValue) {
  var Elm = document.createElement('ul');
  if (lId)
    Elm.setAttribute('id',lId);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
  }
  for (var x in aValue) {
    var lElm = document.createElement("li");
    // createTextElm(lElm,aValue[x]['TITLE']);
    if (!aValue[x]['TITLE'] && aValue[x]['TITLE'] != undefined)
       aValue[x]['TITLE'] = 'No entries';
    if (aValue[x]['TITLE'] != undefined) {
      createTextLink(0,'blank',lElm,aValue[x]['LINK'],aValue[x]['TITLE'],aValue[x]['DESCRIPTION'],lClass,'','')
      Elm.appendChild(lElm);
    }
    // alert(aValue);
  }
  if (lClass) {
    Elm.setAttributeNode(aClass);
  }
  if (o)
    o.appendChild(Elm);
}

function createImgGalery(o,lId,lClass,aValue) {
  var z = '';
  var dElm = document.createElement('div');
  var dClass = document.createAttribute('class');
  dClass.nodeValue = 'dPhotoGal';
  var Elm = document.createElement('ul');
  if (lId)
    Elm.setAttribute('id',lId);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
  }
  for (var x in aValue) {
    z = aValue[x]['MEDIA:THUMBNAIL'].substr(0,aValue[x]['MEDIA:THUMBNAIL'].indexOf('.JPG') + 4);
    if (z == 'htt')
      z = aValue[x]['MEDIA:THUMBNAIL'].substr(0,aValue[x]['MEDIA:THUMBNAIL'].indexOf('.jpg') + 4);
    var lElm = document.createElement("li");
    // createTextElm(lElm,aValue[x]['TITLE']);
    // alert(aValue[x]['MEDIA:DESCRIPTION']);
    var zz = aValue[x]['LINK'];
    CreateImgs(lElm,z,'',aValue[x]['MEDIA:DESCRIPTION'],'onclick',"OpenLinkedURI('"+zz+"')");
    // createTextLink(0,'blank',lElm,aValue[x]['LINK'],aValue[x]['TITLE'],aValue[x]['DESCRIPTION'],lClass,'','')

    Elm.appendChild(lElm);
    // alert(aValue);
  }
  if (lClass) {
    Elm.setAttributeNode(aClass);
  }
  dElm.appendChild(Elm);
  dElm.setAttributeNode(dClass);
  o.appendChild(dElm);
}

function __createCalendar(o,lId,lClass,aValue) {
  var dElm = document.createElement('div');
  var dClass = document.createAttribute('class');
  dClass.nodeValue = 'dCalendar';
  var Elm = document.createElement('ul');
  if (lId)
    Elm.setAttribute('id',lId);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
    Elm.setAttributeNode(aClass);
  }
  for (var x in aValue) {
    var lElm = document.createElement("li");
    // createTextElm(Elm,aValue[x]['TITLE']);
    createTextLink(0,0,Elm,'#',aValue[x]['TITLE'],aValue[x]['DESCRIPTION'],'','','');
    Elm.appendChild(lElm);
    // alert(aValue);
  }
  dElm.appendChild(Elm);
  dElm.setAttributeNode(dClass);
  o.appendChild(dElm);
}

function createCalendar(lId,lClass,aValue,lToday) {
   var z ='<div id="dCal">';
   for (var x in aValue) {
     if (aValue[x]['Title']) {
       if (lToday == aValue[x]['Date'])
         z = z+'<div class="dEntry">'
       else
         z = z+'<div class="yEntry">'
       z = z+'<ul><li><div class="dThisDay"><div class="dDay">'+aValue[x]['Day']+'</div><div class="dDate">'+aValue[x]['Date']+'</div><div class="dMonth">'+aValue[x]['Month']+'</div></div>';
       z = z+'</li></ul></div>';
       z = z+'<div class="'+lClass+'">'+aValue[x]['Title']+'</div>';
     }
   }
   z = z+'</div>';
   // alert(z);
  // alert('#'+lId);

 $('#feed12').append(z);
 // setTimeout("\$('#dCal').corner()",1000);
 if ($.browser.msie)
   $('#dCal').corner({tl: {radius: 8},tr: { radius: 8 },bl: { radius: 4},br: { radius: 4 },antiAlias: false,autoPad:false});
 else
   $('#dCal').Bcorner();
}


function createBoxElm(lBox,o,lId,lClass,lValue) {
  var Elm = document.createElement(lBox);
  if (lId)
    Elm.setAttribute('id',lId);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
  }
  createTextElm(Elm,lValue);
  if (lClass) {
    Elm.setAttributeNode(aClass);
  }
  o.appendChild(Elm);
}

function FrmRed() { // 0=action; 1=Target boo
  var argv = FrmRed.arguments;
  var argc = argv.length;
  var o = document.getElementsByTagName('body');
  var oForm = DOMAddForm("fSubmit",argv[1],argv[0]);
  setEvent(oForm, 'onsubmit','return false');
  for (var i = 2; i < argc; i++) { // offset = 1
    var oInput = DOMAddFormInput('hidden',argv[i].substring(0,argv[i].indexOf('#')),'','',argv[i].substring(argv[i].indexOf('#')+1));
    oForm.appendChild(oInput)
    o[0].appendChild(oForm);
  }
  document.fSubmit.submit();
}

function createFormElm(o,lType,lId,lClass,lChecked,lEvent,lAction) { // createFormElm('checkbox','i'+x,Int2Boolean(aHit[x][8]['data'],'onclick','CartAction('+tgtId+',"'+aHit[x][2]['id']+'",this.id,this.checked)');
  var Elm = document.createElement('input');
  Elm.setAttribute('id',lId);
  var attrElm = document.createAttribute('type');
  attrElm.nodeValue = lType;
  Elm.setAttributeNode(attrElm);
  if (lClass)
    Elm.className = lClass;
  if (lType == 'checkbox')
    Elm.checked = Elm.defaultChecked = lChecked;
  o.appendChild(Elm);
  if (lEvent && lAction)
    setEvent(Elm,lEvent,lAction);
}

function createTextElm(o,lTxt) {
  var EText = document.createTextNode(lTxt);
  o.appendChild(EText);
}

function createEmailLink(o,lEmail,lName,lTitle,lClass) {
 var Elm = document.createElement('a');
  var attrHREF = document.createAttribute('href');
  if (lTitle)
    Elm.setAttribute('title',lTitle);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
    Elm.setAttributeNode(aClass);
  }
  var nodeLinkText = document.createTextNode(lName);
  o.appendChild(Elm);
  attrHREF.nodeValue = 'mailto:'+lEmail;
  Elm.appendChild(nodeLinkText);
  Elm.setAttributeNode(attrHREF);
  o.appendChild(Elm);
}

function createTextLink(lRemove,lPostfix,o,lLink,lText,lTitle,lClass,lEvent,lAction) { // sister in Desk.js. Latter should use this in due time !!
  if (lRemove && o.getElementsByTagName('a').length > 0 )
    o.removeChild(o.getElementsByTagName('a')[0]);
  var Elm = document.createElement('a');
  var attrHREF = document.createAttribute('href');
  if (lTitle)
    Elm.setAttribute('title',lTitle);
  if (lClass) {
    var aClass = document.createAttribute('class');
    aClass.nodeValue = lClass;
    Elm.setAttributeNode(aClass);
  }
  var nodeLinkText = document.createTextNode(lText);
  o.appendChild(Elm);
  attrHREF.nodeValue = lLink;
  Elm.appendChild(nodeLinkText);
  Elm.setAttributeNode(attrHREF);
  if (lPostfix == 'blank') {
    var oAttr = document.createAttribute('target');
    oAttr.nodeValue = '_blank';
    Elm.setAttributeNode(oAttr);
  }
  o.appendChild(Elm);
  if (lEvent && lAction)
    setEvent(Elm,lEvent,lAction);

  if (lPostfix) {
    var oNode = document.createElement('br');
    o.appendChild(oNode); // SiteMap
  }
}

function CreateImgs(o,lImg,lClass,lTitle,lEvent,lAction) { // sister in Desk.js. Latter should use this in due time !!
  var Elm = document.createElement('img');
  var oAttr = document.createAttribute('src');
  oAttr.nodeValue = lImg;
  Elm.setAttributeNode(oAttr);
  if (lTitle)
    Elm.setAttribute('title',lTitle);
  if (lClass)
    Elm.className = lClass;
  o.appendChild(Elm);
  if (lEvent && lAction)
    setEvent(Elm, lEvent, lAction);
  return Elm;
}

function ImgEvent(ImgId,lEvent,lAction) {
	var o = document.getElementById(ImgId);
  setEvent(o,lEvent,lAction);
}

function removeElement(lContainer,lChild) { // Tree + Portal
  var d = document.getElementById(lContainer);
  var thisT = document.getElementById(lChild);
  if (thisT && d)
    d.removeChild(thisT);
}

function removeAllChildren(o) {
  // var len = o.childNodes.length;
  // for( var i=len - 1; i > -1; i--){
  	 // alert('Removing : '+o.childNodes[i]);
    // o.removeChild(o.childNodes[i]);
  // }
  while(o.hasChildNodes() == true) {
		o.removeChild(o.childNodes[0]);
	}

}


// register an event handler to an element
function setEvent( xmlNode, strName, strFunction ) {
    strName = strName.substr( 0, 2 ) == "on" ? strName.substr( 2, strName.length ) : strName;

    // w3c compatible style, not supported by internet explorer yet
    if( document.addEventListener )
        xmlNode.addEventListener( strName, new Function( "event", "event.preventDefault( ); " + strFunction ), true );
    // Internet Explorer
    else if( document.attachEvent )
        xmlNode.attachEvent( "on" + strName, new Function( "event", strFunction ) );
    // old style (tag.onclick)
    else
        xmlNode[ "on" + strName ] = new Function( "event", strFunction );
}

function HitGrid(aHit,tgtId,tgtPos,HitsPerPage,lHits,lqe,lColumns) {  // Portal
  // remove existing table - if any
  removeElement('HitlistPanel','pTable');

  var Ebody = document.getElementById('HitlistPanel');

  Etable = createElm('table','pTable','');
  Etablebody = document.createElement("tbody");

  var gi = 1; // tgtPos counter..
  var lMax = getUpperOffset(HitsPerPage,tgtPos,lHits);

  DOMHeaders('HitHeader',aHit['hitlist']['headers']);

  for (var x=tgtPos; x <= lMax; x++) {
    if (aHit[tgtPos]) {

      Erow = document.createElement("tr");
      for(var i = 0; i <= lColumns; i++) {
        // creates a <td> element
        Ecell = document.createElement("td");
        // creating all cells

        if (i == 0) {
          CreateImgs(Ecell,'/pics/'+aHit[x][6]['pic'],'Hit',aHit[x][6]['note'],'onclick','BrowsePanel("'+aHit['hitlist']['net']+'",'+aHit[x][2]['MtaId']+',"'+aHit[x][2]['link']+'")');
          if (aHit[x][7]['data'])
            CreateImgs(Ecell,'/pics/ThumbsUp.gif','Hit',FormTranslate('sta_aviable'),'','');
        }
        else if (i == 1) {
          createTextElm(Ecell,aHit[x][1]['data'].replace('&#x20;',' ').substr(0,15));
        }
        else if (i == 2) {
          createTextLink(0,0,Ecell,'#',aHit[x][2]['data'].replace('&#x20;',' '),aHit['hitlist']['view'],'','onclick','BrowsePanel("'+aHit['hitlist']['net']+'",'+aHit[x][2]['MtaId']+',"'+aHit[x][2]['link']+'")');
        }
        else if (i == 3) {
          createTextElm(Ecell,decodeHTMLEntities(aHit[x][4]['data']));
        }
        else if (i == 4) {  // Cart checkbox..
          createFormElm(Ecell,'checkbox','i'+x,'cCartCheck',Int2Boolean(aHit[x][8]['data']),'onclick','CartAction('+tgtId+',"'+aHit[x][2]['id']+'",this.id,this.checked)');
        }
        if (gi % 2 == 0)
          Ecell.className = 'cHitRow1'; // set bgColor...
        else
          Ecell.className = 'cHitRow2'; // set bgColor...
        Erow.appendChild(Ecell);

      }
      // appends the row <tr> into <tbody>
      Etablebody.appendChild(Erow);
    }
    gi++;
  }
   Etable.appendChild(Etablebody);
   Ebody.appendChild(Etable);
   // Etable.setAttribute("border","0"); is this nec..?
}

function DOMHeaders(lClass,a) {
    // for (var x=0); x <= a.length; x++) {
    // alert(a);
    i = 0;
    var thisClass = '';
    Erow = document.createElement("tr");
    for (var x in a) {
    	i++;
    	if (lClass == 'HitHeader')
    	  thisClass = lClass+i;
    	else
    	  thisClass	= lClass;
      createBoxElm('td',Erow,'',thisClass,decodeHTMLEntities(a[x]['Caption']));
      /*
      Ecell = document.createElement("td");
      var aClass = document.createAttribute('class');
      aClass.nodeValue = 'ItemHeader';
      createTextElm(Ecell,a[x]['Caption']);
      Ecell.setAttributeNode(aClass);
      Erow.appendChild(Ecell);
      */
    }
    Etablebody.appendChild(Erow);

}

function ItemsActionLinks(o,a) {
  for (var x in a) {
    CreateImgs(o,a[x]['pic'],'Hit',a[x]['rawtitle'],a[x]['event'],a[x]['action']);
  }
}

function DOMItems(a) {
  removeElement('BrowsePanel','iTable');
  var Ebody = document.getElementById('BrowsePanel');

  Etable = createElm('table','iTable','');
  Etablebody = document.createElement("tbody");

  var gi = 1; // tgtPos counter..

  if (a['list']['count'] > 0) {
    DOMHeaders('dItemHeader',a['list']['headers']);
  }

  for (var x=parseInt(a['list']['offset']); x <= a['list']['count']; x++) {
    // alert(a[x]['rBarcode']);
    // alert(parseInt(a[a['list']['offset']]['lCountRows']));
    Erow = document.createElement("tr");
    for (var header in a['list']['headers']) {
      // creates a <td> element
      Ecell = document.createElement("td");
      Ecell.setAttribute('id','TD'+a[x]['rObjId']);
      switch (a['list']['headers'][header]['raw']) {
      	// <div id=\"LD".$x['rObjId']."\">".$x['rLendingDate']."</div>
      	case 'collection' : createTextElm(Ecell,decodeHTMLEntities(a[x]['rCollection']));
      	  break;
      	case 'shelf' : createTextElm(Ecell,decodeHTMLEntities(a[x]['rShelf']));
      	  break;
      	case 'barcode' : createTextElm(Ecell,decodeHTMLEntities(a[x]['rBarcode']));
      	  break
      	case 'status' : createBoxElm('div',Ecell,'S'+a[x]['rObjId'],'',a[x]['rItemStatus']);// createTextElm(Ecell,decodeHTMLEntities(a[x]['rItemStatus']));
      	  break;
      	case 'patron' :
      	  if (decodeHTMLEntities(a[x]['rPatron'])) {
      	    Ediv = document.createElement("div");
      	    Ediv.setAttribute('id','P'+a[x]['rObjId']);
      	    if (a[x]['rEmail'].indexOf('@') > 0)
      	      createEmailLink(Ediv,a[x]['rEmail'],a[x]['rPatron'],'Email','');
      	    else
      	      createTextLink(0,0,Ediv,a[x]['rEmail'],a[x]['rPatron'],'Link','','','');
      	    Ecell.appendChild(Ediv);
      	  }
      	  break;
      	case 'duedate' :
      	  if (decodeHTMLEntities(a[x]['rDueDate'])) {
      	    createBoxElm('div',Ecell,'DD'+a[x]['rObjId'],'',a[x]['rDueDate']);// createTextElm(Ecell,decodeHTMLEntities(a[x]['rDueDate']));
      	  }
      	  break;
      	case 'lendingdate' :
      	  if (decodeHTMLEntities(a[x]['rLendingDate'])) {
      	    createBoxElm('div',Ecell,'LD'+a[x]['rObjId'],'',a[x]['rLendingDate']);// createTextElm(Ecell,decodeHTMLEntities(a[x]['rLendingDate']));
      	  }
      	  break;
      	case 'service' :
      	  Ediv = document.createElement("div");
      	  Ediv.id = 'L'+a[x]['rObjId'];
      	  if (a[x]['actions'] != null) {
      	    ItemsActionLinks(Ediv,a[x]['actions']);
      	    // createTextElm(Ecell,decodeHTMLEntities(a[x]['rLendingDate']));
      	  }
      	  Ecell.appendChild(Ediv);
      	  break;
      }
      Erow.appendChild(Ecell);
         if (gi % 2 == 0)
          Ecell.className = 'cHitRow2'; // set bgColor...
        else
          Ecell.className = 'cHitRow1'; // set bgColor...
        Erow.appendChild(Ecell);
      Etablebody.appendChild(Erow);
    }
    gi++;

  }

  Etable.appendChild(Etablebody);
  Ebody.appendChild(Etable);
  // alert('Clocing');
}

function DOMErrorMess(lMess,lClass,lColor,lTimeout) { // used by login via mox.js
  var Ebody = document.getElementById('dError');
  if (Ebody) {
   	removeElement('dError','iTable');

    Etable = createElm('table','iTable','');
    Etablebody = document.createElement("tbody");
    Erow = document.createElement("tr");
    Ecell = document.createElement("td");
    createTextElm(Ecell,lMess);
    Ecell.className = lClass;
    Erow.appendChild(Ecell);
    Etablebody.appendChild(Erow);
    Etable.appendChild(Etablebody);
    Ebody.appendChild(Etable);
    setTimeout('Ecell.style.backgroundColor ="'+lColor+'"',(lTimeout-500));
    setTimeout("removeElement('dError','iTable');",lTimeout);
  }
}

function DOMMess(lMess,lClass) { // used by login via mox.js
  var Ebody = document.getElementById('dError');
  if (Ebody) {
   	removeElement('dError','iTable');

    Etable = createElm('table','iTable','');
    Etablebody = document.createElement("tbody");
    Erow = document.createElement("tr");
    Ecell = document.createElement("td");
    createTextElm(Ecell,lMess);
    Ecell.className = lClass;
    Erow.appendChild(Ecell);
    Etablebody.appendChild(Erow);
    Etable.appendChild(Etablebody);
    Ebody.appendChild(Etable);
  }
}

function DOMAddForm(lName,lTarget,lAction) { // IE-bug :: http://javascript.about.com/library/bliebug2.htm
  /*@cc_on @if (@_jscript)
  if (lTarget)
    var newNode = document.createElement("<form name='"+lName+"' action='"+lAction+"' target='_blank'>");
  else
    var newNode = document.createElement("<form name='"+lName+"' action='"+lAction+"'>");
  @else */
  var newNode = document.createElement("form");
  newNode.setAttribute("name",lName);
  newNode.setAttribute("method",'post');
  newNode.setAttribute("action",lAction);
  if (lTarget)
    newNode.setAttribute("target",'_blank');

/* @end @*/
  return newNode;
}

function obs_DOMAddFormInput(lType,lName,lTitle,lValue) { // IE-bug :: http://javascript.about.com/library/bliebug2.htm
  /*@cc_on @if (@_jscript)
  var newNode = document.createElement("<input name='"+lName+"' value=''>");
  @else */
  var newNode = document.createElement("input");
  newNode.setAttribute("name",lName);
  newNode.setAttribute("type",lType);
/* @end @*/
  if (lTitle)
    newNode.setAttribute("title",lTitle);
  if (lValue)
    newNode.setAttribute("value",lValue);
  return newNode;
}

function DOMAddFormInput(lType,lName,lClass,lTitle,lValue) { // IE-bug :: http://javascript.about.com/library/bliebug2.htm
  /*@cc_on @if (@_jscript)
  var newNode = document.createElement("<input type='"+lType+"' name='"+lName+"' value=''>");
  @else
  */
  var newNode = document.createElement("input");
  newNode.name = lName;
  newNode.id = lName;
  newNode.type = lType;
 // @end
 if (lClass)
    newNode.className = lClass;
  if (lTitle)
    newNode.title = lTitle;
  if (lValue)
    newNode.value = lValue;
  return newNode;
}


