////////////////////////
// INIT FUNCTIONS  //
////////////////////////

////////////////////////
// Global FUNCTIONS  //

////////////////////////

// global
var gAnchor = ''; // help details in portal..
var tid, time, action;
var gPtrId = 0;
var gMtaId = 0;
var gObjId = 0;
var gTgtId = 0;
var gWymLenght = 0;
var gCal = 0;
var mousePos = '';
window.status='reindex.net';


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 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 basename(lDoc) {
  var z = lDoc.substr(lDoc.lastIndexOf('\\') + 1);
  z = z.substr(z.lastIndexOf('/') + 1);
  return z;
}

function nullfixint(i) {
	if (i == undefined || i == 'null' || i == null)
	  return 0;
	else
		return i;  
}	

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 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 checkKey(e) {
  if (!e)
    e=window.event;
  var code;
  if ((e.charCode) && (e.keyCode==0))
    code = e.charCode
  else
    code = e.keyCode;
  return code;
}
 
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+'&Mode=0';
  // 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;
}

////////////////////////
// AJAX - Transformed from zxml.js - should be wrappend into a getJSON container   //
////////////////////////

function ASyncAjax(CallBackFunc,lFunc,lLabel,lId,lVar1,lVar2) { // Usage : ASyncAjax('displayResult','GetTermId','Islam',0);
	// prompt('debug','deshut/KAM/background/AjaxFunctions.php?F='+lFunc+'&Label='+lLabel+'&Id='+lId+'&Var1='+lVar1+'&Var2='+lVar2);
	$.ajax({
		type: "GET",
		url: "../background/AjaxFunctions.php",
		data: "F="+lFunc+"&Label="+lLabel+"&Id="+lId+"&Var1="+lVar1+"&Var2="+lVar2, 
		success: function(json){ 
			  eval(CallBackFunc+"(json)");   
			  }, 
		error : function(json) { 
			 alert('Error i ASyncAjax. Params are: ../background/AjaxFunctions.php?F='+lFunc+'&Label='+lLabel+'&Id='+lId+'&Var1='+lVar1+'&Var2='+lVar2+'  Please report to heb@reindex.dk'); 
			 }			  
  });
}

function APostAjax(CallBackFunc,lFunc,lLabel,lId,lVar1,lVar2) { // 232 :: moved from jxml.js
	// alert(lVar1);
  var lLink  = "F="+lFunc+"&Label="+lLabel+"&Id="+lId+"&Var1="+lVar1+"&Var2="+lVar2;
  // prompt('debug',document.fPost.action+'?'+lLink);
 
  $('#fEdit').submit(function(event) { // prevent submit....
    event.preventDefault();
  }); 
 
	$.ajax({
		type: "POST",
		dataType : "json", 
		url: document.fPost.action,
		data: lLink,
		cache: false,
		success: function(json){ 
			  eval(CallBackFunc+"(json)"); 
	  }, 
		error : function(json) { 
			 alert('Error i APostAjax. Params are: '+document.fPost.action+'?'+lLink+'. Please report to heb@reindex.dk'); 
			 }
  });
}

function JRum(Mode,Caption,Wait) { // Usage : JRum(0,'empty_form',0) for a simple alert or JRum(1,'empty_form',1000) for a styled messagebox delay=1sec;
	 jQuery.getJSON('../background/AjaxFunctions.php?F=JRum&tgtId=0&Mode='+Mode+'&C='+Caption+'&Wait='+Wait, function(json) {
     if (json.M == 0 && json.T)
    alert(json.T);
  if (json.M == 1 && json.T)
     ShowMesBox(json.T,5000);
  if (json.M == 2 && json.T && confirm(json.T))
    return false;
   });
}

function JRumVar(Caption) { // Usage : JRumVar('empty_form');
	var z = ''; // ? must reside outside function...
	jQuery.ajax({
		cache: false,
		async: false,		
		type: "POST",
		dataType : "json", 
		url: "../background/AjaxFunctions.php",
		data: "F=JRum&tgtId=0&Mode=2&C="+Caption,
		success: function(json){ 
			z = json.T;
	  },
	  error: function(json){ 
			  alert('Error in JRumVar. Please report to heb@reindex.dk');
	  }
  });
  return z;
	// jQuery.getJSON('../background/AjaxFunctions.php?F=JRum&tgtId=0&Mode=2&C='+Caption, function(json) {
	 // 	 return json.T;
  //  });
  
}
////////////////////////
// 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) {
  showPopWin(lLink,lTitle,lHeight,lWidth,eval(cbFunc));
}

function showMtaHistory(lMtaId) {
  supramodaler(1,'History','../modals/History.php?Context=2&MtaId='+lMtaId,700,800);
}	

function viewHistory(lContext,tgtId,LokNo) {
  supramodaler(1,'History','../modals/History.php?Context=1&tgtId='+tgtId+'&LokNo='+LokNo,700,800);
} 

function OpenMtaDocumentation(MtaDialect,AttrId,lCtrlField) { // 177 :: CSys.php
  supramodaler(1,'DTD','../modals/MtaDocumentation.php?MtaDialect='+MtaDialect+'&AttrId='+AttrId+'&CtrlField='+lCtrlField,700,800);
}  


//////////////////////////////
//      NOTIFICATIONS       //
//////////////////////////////

function XX_viewNotifictionList(tgtId,RSessionId,lObjId) { // SubscriptionId=26
  supramodaler(1,'Circulation','../modals/Letters.php?RSessionId='+RSessionId+'&ObjId='+lObjId,850,680);
}
function viewNotifictionList(tgtId,Sid,MtaId,UseId,ObjId,lSessionId) { // Rev 232
	// prompt('debug','modals/Notification.php?tgtId='+tgtId+'&F=mtCirculationNotify&Sid='+Sid+'&MtaId='+MtaId+'&UseId='+UseId+'&ObjId='+ObjId);
  supramodaler(1,'Circulation','../modals/Notification.php?tgtId='+tgtId+'&F=mtCirculationNotify&Sid='+Sid+'&MtaId='+MtaId+'&UseId='+UseId+'&ObjId='+ObjId+'&SessionId='+lSessionId+'&Mode=view',850,680);
}

function SendTestNotifictionList(tgtId,Sid,MtaId,UseId,ObjId,lSessionId,lMessage) { // Rev 232
	// prompt('debug','../background/Ajax.php?N=mtCirculationNotify&tgtId='+tgtId+'&Sid='+Sid+'&MtaId='+MtaId+'&UseId='+UseId+'&ObjId='+ObjId+'&Mode=sendtest');
	if (confirm(lMessage)) { 
    jQuery.getJSON('../background/Ajax.php?N=mtCirculationNotify&tgtId='+tgtId+'&Sid='+Sid+'&MtaId='+MtaId+'&UseId='+UseId+'&ObjId='+ObjId+'&SessionId='+lSessionId+'&Mode=sendtest', function(json) {
	  });  
	}   
}

function viewDueCircList(lObjId,lSubscriptionId) { // SubscriptionId=26
  supramodaler(1,'Circulation','../modals/Letters.php?NotificationMode=DueList&ObjId='+lObjId+'&Subscription='+lSubscriptionId,850,680);
}

function RunNotificationDeCirc(lMtaId,lObjId,lPtrId)	{ // Handles reservation... called from modal Receive.php
   supramodaler(1,'Circulation','../modals/Letters.php?MtaId='+lMtaId+'&ObjId='+lObjId+'&PtrId='+lPtrId+'&NotificationMode=reservation',950,600);
}
function viewLog(lLogId,lSort,lDescending,lYear) {
  supramodaler(1,'LOG','../modals/Syslog.php?LogId='+lLogId+'&SortColumn='+lSort+'&Descending='+lDescending+'&Year='+lYear,800,800);
}
function viewReport(lLogId,lSort,lDescending,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) {
  supramodaler(1,'RemindLog','../modals/Syslog.php?LogId=13&SortColumn=service&Descending=1&Subscription='+lSubscriptionId,800,800);
}

function viewCirculationList(tgtId,ReceiveId,SessionId,TitleCirc,Offset) { // 232 : SubscriptionId=26&ObjId=22059
  // prompt('debug','../modals/Notification.php?F=mtCirculationLists&RSessionId='+SessionId+'&tgtId='+tgtId+'&ReceiveId='+ReceiveId+'&TitleCirc='+TitleCirc);
  window.open('../modals/Notification.php?F=mtCirculationLists&RSessionId='+SessionId+'&tgtId='+tgtId+'&ReceiveId='+ReceiveId+'&TitleCirc='+TitleCirc+'&Offset='+Offset,'Circlist','toolbar=yes, Scrollbars=yes, menubar=yes,height=1000,width=1000,top=0,left=290');
}

function SaveNotificationProps() { // SetNotifications.php
  if (isInteger(document.fFocus.OwnHeader.value)) {
    document.fFocus.FFocus.value = 3;
    document.fFocus.submit();
  }
}

function getCity(lZip) {
  lCountryCode = 'dk';	
  if (MtaDialect == 3)
    lCountryCode = 'no'
  ASyncAjax('cbGetCity','getCity','',lZip,lCountryCode,'');			
}

function cbGetCity(a) {
  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...)
  jQuery.getJSON('../background/AjaxFunctions.php?F=UpdateBarcode&tgtId=0&Id='+lObjId+'&Var1='+lBarcode, function(json) {
     if (json.rMess)
       alert(json.rMess);
     document.fReload.submit();
    });
}	

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) {
  IFrameObj = undefined;
  IFrameObj = null;	
  lLink = '../background/bgFunctions.php?FuncName=RollReservationStatus&Id='+lAccountId+'&ObjId='+lObjId+'&NewStatus='+lNewStatus;
  // prompt('x',lLink);
  makeHiddenIFRAME(lLink);
}
   
//////////////////////////////
// GENERAL FORM VALIDATION  //
//////////////////////////////
// CheckDataTypes('UserNote',document.fItem.UserNote,'notnull','that the field must be filled out'));
function CheckDataTypes(cbField,thisField,lType,lErrorMess,lPlaceholder) { // remember :: hidden fields cannot have validity CHECK !!
  var lMess = '';
  var Mfield = JRumVar('field');
  var Mtypeflaw = JRumVar('typeflaw');
  // alert(thisField.value+' :: '+lPlaceholder);
  if (lType == 'notnull') {
    if (thisField.value.length == 0 || (lPlaceholder == thisField.value && lPlaceholder != '')) {
      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'; 
    }  
  }  
  if (lType == 'date') { // 232
    // alert(ValidateDBDate(thisField.value));
    thisField.value = ValidateDBDate(thisField.value);
  }    
  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 ValidateDBDate(txtDate) { 
  var delimiter = '-';
  var objDate;
  var mSeconds;
  var day;
  var month;
  var year;
  // date length should be 10 characters (no more no less)
  if (txtDate.length !== 10) {
    return 'null';
  }
  // third and sixth character should be '-'
  if (txtDate.substring(2, 3) !== delimiter || txtDate.substring(5, 6) !== delimiter) {
    return 'null';
  } 
  // extract month, day and year from the txtDate (expected format is mm/dd/yyyy) 
  // subtraction will cast variables to integer implicitly (needed 
  // for !== comparing) 
  day = txtDate.substring(0, 2) - 1; // because months in JS start from 0 
  month = txtDate.substring(3, 5) - 0; 
  year = txtDate.substring(6, 10) - 0; 
  // test year range 
  if (year < 1000 || year > 3000) { 
    return 'null';
  } 
  // convert txtDate t'o milliseconds 
  mSeconds = (new Date(year, month, day)).getTime(); 
  // initialize Date() object from calculated milliseconds 
  objDate = new Date(); 
  objDate.setTime(mSeconds); 
  // compare input date and parts from Date() object 
  // if difference exists then date isn't valid 
  if (objDate.getFullYear() !== year || objDate.getMonth() !== month || objDate.getDate() !== day) { 
    return 'null';
  } 
  // otherwise return true 
  return year+delimiter+month+delimiter+day; 
}


function CheckRadioSelects(currentForm, currentElement) {
	  if (currentForm != null) {
      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;
    }  
    return null;  
 }

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();
}

  // PtrSelf
  function checkEmailSyntax(lValue) { // 224
    if (lValue.length < 5 || lValue.indexOf('@') == -1 || lValue.indexOf('.') == -1) // no valid email-account
      return false;
    else
      return true;
  }

  function checkUsrCodeSyntax(lValue) { // 224
    if (lValue.length < 2)   // no valid UsrCode...
      return false;
    else
      return true;
  }

////////////////////////////////
//        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 Full = 0;
   var maxWidth = $('div.sCover').innerWidth();
   // alert(maxWidth);
   var minWidth = $('div.sCover').css('min-width');
   if (!maxWidth && maxWidth != null) { // full Browseformat
     $('#'+lId).addClass('imgCoverBrowse');
     maxWidth = $('#'+lId).innerWidth();
     minWidth = $('div.imgCoverBrowse').css('min-width');
     $('#'+lId).children().remove();
    Full = 1;
   }
   else { // 233 : experimental Editor...
     //  alert('hebheb');
     $('#'+lId).addClass('imgCoverBrowse');
     maxWidth = $('#'+lId).innerWidth();
     minWidth = $('div.imgCoverBrowse').css('min-width');
     $('#'+lId).children().remove();
     $('#iCardCov').css('border','0');
     Full = 1;
   }
   // 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
         }
	if (Full && thisWidth < maxWidth) 
	  $('div.imgCoverBrowse').css({width: thisWidth+10});
      }).attr('src',lImg);
}


////////////////////////////////
// SPECIFIC PAGE FUNCTIONS   //
//////////////////////////////
 
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 pFilebrowse(tgtId,Focus,w,Id) {	// 232 :: rev
  subModal('../modals/DocUpload.php?fId='+tgtId+'&Focus='+Focus+'&Id='+Id,'GetFile',w,290,'cbDummy');
}
	
function eFilebrowse(lTgtId) { // Ed+Portal
	// prompt('debug','http://deshut/KAM/modals/FileBrowse.php?uId='+document.fRepository.uField.value+'&yId='+document.fRepository.yField.value+'&xId='+document.fRepository.xField.value);
  subModal('../modals/FileBrowse.php?uId='+document.fRepository.uField.value+'&yId='+document.fRepository.yField.value+'&xId='+document.fRepository.xField.value,'FileBrowse',680,290,'cbFileBrowse');
}

function cbFileBrowse(returnVal) { // Ed+Portal
	// alert(returnVal['yId']);
  var rDoc = returnVal['rDoc'];
  var rLabel = returnVal['rLabel'];
  var rCover = returnVal['rCover'];
  // alert('DOC : '+rDoc+' Label : '+rLabel);
  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'] && rCover != undefined) {
  	var yValue = eval('document.fXML.'+document.fRepository.yField.value+'.value');
  	if (yValue.length < 2)
      eval('document.fXML.'+document.fRepository.yField.value+'.value = rCover');
  } 
}	

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) { // Filebrowse.php
  if (lDoc)
    ASyncAjax('cbAliasResolvedDoc','AliasResolvedDoc',lTgtId,lSelected,basename(lDoc),'');
}	

function cbAliasResolvedDoc(lJSON) { // 232 :: check
	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'];
}  

 //** -----------------------------------**//
 //**              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 Baddcomments(BlogId,PtrId,EntryId) {
   subModal('../main/Form.php?Ifm=fsBlogComment&EntryId='+EntryId+'&PtrId='+PtrId,'Blog Edit',500,350,'cbAddBlogEntry');
}

function Beditcomment(PtrId,EntryId,Id) {
  subModal('../main/Form.php?Ifm=fsBlogComment&EntryId='+EntryId+'&PtrId='+PtrId+'&Id='+Id,'Blog Edit',500,350,'cbAddBlogEntry');
}

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('+json[x].PtrId+','+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(BlogId,PtrId) {
   subModal('../main/Form.php?Ifm=fsBlogEntry&BlogId='+BlogId+'&PtrId='+PtrId,'Blog Edit',500,350,'cbAddBlogEntry');
}

function cbAddBlogEntry(r) {
    alert(r);
}

function BViewArch(lBlogId) {
 FrmRed('../rss/Portal.php',0,'Template#BlogArchPanel','BlogId#'+lBlogId);

}

function RemoveDeleteButton() {
  var o = document.getElementById('wDelete');
  o.style.visibility = 'hidden';
}

function Beditentry(BlogId,PtrId,EntryId) {
   subModal('../main/Form.php?Ifm=fsBlogEntry&BlogId='+BlogId+'&Id='+EntryId+'&PtrId='+PtrId,'Blog Edit',500,350,'cbAddBlogEntry');
}

function fPostSave() { // 232 : fPostSave('".$a['table']."','".$a['pretrig']['post']."',".getUrlParam($a['workid'],0).",".phpArray2jsArg($a['pretrig']['fields']).");
	var pm = {};
  for( var i = 0; i < arguments.length; i++ ) {
  	switch(i) {
      case 0:
        pm.Table=arguments[i];
        break;
      case 1:
        pm.F=arguments[i];
        break;
      case 2:
        pm.Id=arguments[i];
        break;
      default:
        eval('pm.'+arguments[i]+'=document.fEdit.'+arguments[i]+'.value');
    }                           
	}	
	// alert(pm.AddedResource);
  $.post("../background/AjaxXML.php", pm,
   function(data) { 
     alert("Data Loaded: " + data); 
   });	
  // window.top.hidePopWin(false);
  window.close();
	return false;
}	

function FieldValidate(lMode,lXML,lSource) { // 232 :: rev
  APostAjax('cbFieldValidate','FieldValidate','',lMode,encodeURIComponent(lXML),lSource); // 193 :: Uses post
}

function cbFieldValidate(a) { // callback
   if (a['rError'])
     alert(decodeURIComponent(a['rError']));
   else if (a['rMode'] != '0')
     alert('Document validates OK..');
   else if (a['rMode'] == '0') {
     // eval('document.fEdit.'+a['rField']+'.value = "'+a['rXML']+'"');
     if (a['rSource'] == 'portaldoc') {
       document.fEdit.Txt.value = a['rXML'];
       document.fEdit.submit();
     }
     else if (a['rSource'] == 'blogentry') { // blogentry from FormTemplate.site
       document.fEdit.FFocus.value = 3;
       document.fEdit.Text.value = a['rXML'];
       document.fEdit.submit();
     }
     else if (a['rSource'] == 'blogcomment') { // blogcomment from FormTemplate.site
       document.fEdit.FFocus.value = 3;
       document.fEdit.Comments.value = a['rXML'];
       document.fEdit.submit();
     }
   }
   else
     alert('Unknown state');
 }

function addPrivUsers(lId) {
    wOrder = window.open('../main/PtrSubscription.php?Focus=PrivUsers&UseId='+lId,'PrivUsers','location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,height=800,width=1000,top=0,left=290');
}


function addERMUsers(lId) { // 232 : add
    MakeFullWindow('../main/Form.php?Ifm=ERMUserInsert&UseId='+lId,'ERMUsers',800,500,'yes','default');
}
	
function ERMResolveUser(lSubscriptionId,lPtrId) { // tests a specific patron
  MakeFullWindow('../main/Resolve.php?ErmId='+lSubscriptionId+'&PtrId='+lPtrId,'ERMUsers',1000,500,'yes','center');
}	

function BreakOutFrame() {
window.close();
}

	
function HideReload() { // finishes blogentry..
  window.top.hidePopWin(false);
  top.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(lMode,lSelected) { // NameSister in Portal.js
  if (lMode && 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); 
  }
  else if (!lMode && lSelected)
    window.location.href='../main/Hits.php?List=ReferenceList&ListId='+lSelected;
}

 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 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)	{ // Export.php
   	document.fExport.Format.value = lSelected;
   	document.fExport.Stage.value = 1;
    document.fExport.submit();
  }	
 	 
////////////////////////////////
//  RESERVATION + ITEMORDER  //
////////////////////////////// 
 
 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) {
  RecordWin = window.open('../modals/ShelfList.php?Mode=Reservation&StatusId='+lStatusId,"ShelfList","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0");
}
 
function cbUserCanGet(lJSON) { // Reservation.php via AsyncNotice
  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) { // Letters.php via AsyncNotice
  var a = eval("("+lJSON+")");
  if (a['Mail'])
    window.close();
}  

function MakeRISOrder(tgtId) {
  var i = 0;
  var XML=new XMLWriter();
  XML.BeginNode("rx");
  $('form input:checkbox:checked').each(function() {   
  	   $(this).attr('checked', false);
  	   if ($(this).attr('id') != 'allbox') {
  	     XML.BeginNode("id");
  	     XML.WriteString($(this).attr('id').substring(8));
         XML.EndNode();
         i++;
       }  
     });
     XML.EndNode(); 
     XML.Close();   	 

    if (i) {
  	  // prompt('xml',XML.ToString());
  	  jQuery.getJSON('../background/Ajax.php?F=mtSaveRIS&tgtId='+tgtId+'&Mode=KBOrder&XML='+XML.ToString(), function(json) {
	       // W = window.open('../background/bgDownload.php?CT=application/octet-stream&Display=RIS.txt&File='+json.File,"LocalFile","location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,screenX=0,screenY=0"); 	
	       document.location = '../background/bgDownload.php?CT=application/octet-stream&Display=RIS.txt&File='+json.File;
	    });   
    }	
 }
 
 function QDeleteReservations(tgtId,lMode,lMessage) {
 var i = 0;
 if (confirm(lMessage)) { 
   var XML=new XMLWriter();
   XML.BeginNode("rx");
   $('form input:checkbox:checked').each(function() {   
  	   $(this).attr('checked', false);
  	   if ($(this).attr('id') != 'allbox') {
  	     XML.BeginNode("id");
  	     XML.WriteString($(this).attr('id').substring(8));
         XML.EndNode();
         i++;
       }  
     });
     XML.EndNode(); 
     XML.Close();   	 

    if (i) {
  	  // prompt('debug','http://deshut/RCT/background/Ajax.php?F='+lMode+'&tgtId='+tgtId+'&XML='+XML.ToString());
  	  jQuery.getJSON('../background/Ajax.php?F='+lMode+'&tgtId='+tgtId+'&XML='+XML.ToString(), function(json) {
	      document.fSelections.submit();
	    });   
    }
   } 
 }
 
 function QDelListReservation(tgtId,AccountId,lMessage) { // from ../main/Reservation.php
   if (confirm(lMessage)) {
    var XML=new XMLWriter();
    XML.BeginNode("rx");
    XML.BeginNode("id");
    XML.WriteString(AccountId+''); // convert to string.
    XML.EndNode();   
    XML.EndNode(); 
    XML.Close();
    jQuery.getJSON('../background/Ajax.php?F=mtDeleteReservations&tgtId='+tgtId+'&XML='+XML.ToString(), function(json) {
       document.fSelections.submit();
    });
  }   
} 	   

function addItemOrderUser(OrderItemId) {
   jQuery.getJSON('../background/AjaxDesk.php?Mode=ItemOrderPatron&tgtId=0&Id='+OrderItemId, function(json) {
      document.fSelections.submit();
    });  
}
function QDelItemOrder(tgtId,OrderItemId) {
   jQuery.getJSON('../background/AjaxDesk.php?Mode=DelItemOrder&tgtId='+tgtId+'&Id='+OrderItemId, function(json) {
      document.fSelections.submit();
    });  
}
function ItemOrderStatusChange(tgtId,OrderItemId,lStatus) {
   jQuery.getJSON('../background/AjaxDesk.php?Mode=ItemOrderStatusChange&tgtId='+tgtId+'&Id='+OrderItemId+'&Status='+lStatus, function(json) {
      document.fSelections.submit();
    }); 
}
function viewItemRecord(tgtId,lFormat,OrderItemId) { 
  subModal('../modals/Xml.php?tgtId='+tgtId+'&Mode=ItemOrder&Id='+OrderItemId+'&Format='+lFormat,'Record',680,290,'cbDummy');
}
function saveItemRecord(tgtId,lFormat,OrderItemId) { 
  jQuery.getJSON('../background/Ajax.php?F=mtSaveMarcXML&tgtId='+tgtId+'&Source=ItemOrder&Id='+OrderItemId+'&Format='+lFormat, function(json) {
  	 $('#bSave'+OrderItemId).hide();
    });
}
function orderItemRecord(tgtId,lFormat,OrderItemId) { 
	// prompt('debug','http://deshut/OTICON/modals/Xml.php?tgtId='+tgtId+'&Mode=EmailOrder&Id='+OrderItemId+'&Format='+lFormat);
  subModal('../modals/Xml.php?tgtId='+tgtId+'&Mode=EmailOrder&Id='+OrderItemId+'&Format='+lFormat,'Record',680,290,'cbDummy');
}
////////////////////////////////
//        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(a) { // 232 :: Check
  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(a) {
  if (a['rCount'] > 0)
    alert(a['rCount']+' OK!');
  else
    alert('Error');  
} 

function CheckBgStatus() {
  supramodaler(1,'bgStatus','../modals/Syslog.php?LogId=18&SortColumn=1&Descending=1',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,UseId,lColumn) { // rev 232
	if (lColumn == 'ERM')
	  window.location.href = '../main/Form.php?Ifm=ERMAccess&UseId='+UseId;
	else
    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,'','');
 	  
}

function cbDecircItem(a) { // 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(a) { // callback
  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(a) {
  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(a) { // callback
  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();
}	

// ReceiveWorkObject(".$this->mtgetDiffusionType($x['rUseId']).",".$x['rId'].",".$x['rUseId'].")
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(lId,lColId,lTitleCirc) { // 232 : one or group of selected subscriptions.... 
  document.fPick.ColId.value = lColId;  
  document.fPick.TitleCirc.value = lTitleCirc;  
  document.fPick.PickSubscription.value = lId; // can be 3.MtaId else UseId.
  document.fPick.submit();
}	

function regReceiveBatch(lSubscriptionId,lState) { // 232
  gGrpPick = 1;
  jQuery.ajax({
		cache: false,
		async: false,		
		type: "POST",
		dataType : "json", 
		url: "../background/AjaxFunctions.php",
		data: "F=regReceiveBatch&tgtId=0&Id="+lSubscriptionId+'&State='+TranslateCheck(lState)
  });  
}	
function sCatSource(UseId,lValue) {
  ASyncAjax('cbDummy','CatSource','',UseId,lValue,'');
} 

function cbAddedResource(r) { // 232
    alert(r);
}

////////////////////////////////
//    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) {
  // prompt('debug','deshut/KRK/background/Ajax.php?F=mtBatchDeletePatrons&aId[]=2059');
  $.ajax({type: "GET",
     url: "../background/Ajax.php",
     data: "F=mtBatchDeletePatrons"+lPtrIds,
     success: function(json){
	   handleDeleteResResponse();
     }
   });
}	

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) { // CAccount.php via ASyncNotice
  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(a) { // callback
  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=="top") {
    LeftPosition=0;TopPosition=0;
  }
  if(pos=="default") {
    LeftPosition=50;TopPosition=50;
  }
  else if((pos!="center" && pos!="random" && pos!="default" && pos!="top") ||   pos==null){
    LeftPosition=0;TopPosition=20;
  }
  settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=0,directories=0,status=0,menubar=0,toolbar=0,resizable=0';
  win=window.open(mypage,myname,settings);
  if(win.focus) {
    win.blur();
    setTimeout(win.focus, 0);
  }
  // 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() { // 232 : Rev : Mark selected records...
   ASyncAjax('cbMarkResponse','RemoveSearchSession','','','','');
}

function cbMarkResponse(a) { // 232 : rev
    // alert(a['rCart']);
    var eDiv = document.getElementById(a['rId']);
    if (eDiv)	
      eDiv.checked = eval(a['rState']); 
    swapCart(a['rCart']); // mox.js   
  }  
 
function SubmitTopSearch() {
	document.fTSearch.Q.value = trimQuerry(document.fTSearch.Q.value);
  document.fTSearch.submit(); 
}	

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;
  if (keynum == 13 && document.fTSearch.Q.value.length > 1) {	
    SubmitTopSearch();
  }
}

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 PortalAsPublic() {
  document.fPublicPortal.submit();
}	

function cbASyncLetter(lJSON) { // 232r
  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(a) {
}

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 FormTemplateSave(lType,lMode) { // 232 :: type var not used pt. Mode = eg. modal type
	document.fEdit.FFocus.value = 3;
	document.fEdit.Mode.value = lMode;
	document.fEdit.submit();
}

function FormTemplateDelete(lMode) { // 232 :: Mode = eg. modal type || clear=deletes not a row, but nulls the values...
	document.fEdit.FFocus.value = 6;
	document.fEdit.Mode.value = lMode;
	document.fEdit.submit();
}

function FormReload() { // 232 : emulate modal mode on FormTemplate
  document.fNavigation.submit();
}				

function RequestRightsDelete() { // 232 :: checked...
  // alert('Submitting for delete');
  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(a) {
  // 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) { // 230 : fix
  MM_swapImage(lPicId,'','/pics/Transparent.gif',1);
  // prompt('debug','../background/AjaxMetadata.php?F=Download&tgtId='+gTgtId+'&Id='+lPicId.substring(4)+'&SaveType='+lSaveType+'&Status=-1');
  jQuery.getJSON('../background/AjaxMetadata.php?F=Download&tgtId='+gTgtId+'&Id='+lPicId.substring(4)+'&SaveType='+lSaveType+'&Status=-1'), function(json) {
     if (!json.Succes) {
       MM_swapImage(json.Id,'','/pics/CartS.gif',1);
       alert('No records found');  
    }   
  }
}	

function FDownloadLending(lId) {	
  ASyncMetaData('cbDummy','DwnLending',0,lId,'',0,-1);		
}

function cbDummy(a) {
}

function FAdd() { // 232 : Rev
  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 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
  if (document.fChangeTermObject.Flag.value == '0') { // prevent doubleclick firing onclick twice..
    jQuery.getJSON('../background/AjaxNotification.php?F=SendSDINotification&tgtId=0&Id='+lTermId+'&PtrId='+lMtaId+'&Alert='+lState, function(json) {
	document.fChangeTermObject.Flag.value = 1;
	document.fReload.submit();
    });
  }
    // ASyncNotice('cbSubmitTermObj','SendSDINotification','',lTermId,lMtaId,lState);
   // document.fChangeTermObject.Flag.value = 1;
}


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) { // Used in Terms.php not in Portal.php
	document.fTab.QTab.value = lQTab;
	document.fTab.TermId.value = lTermId;
	document.fTab.submit();
}	

////////////////////////
//       LOGIN        //
//      add. 177      //
//      rev. 227      //
////////////////////////   
function prepareLoginForm(lSeq,lPtrCode,lMess,Msupply_pincode,Mrepeat_pincode) {
    // removeElement('dLoginSet','dUid');
    // $('#vLanguage').parent().remove();
    // $('#Uid').parent().remove();
    if (lSeq == 1)  // Ptr must supply new pincode...
      $('#dLoginSet').replaceWith('<fieldset id="dLoginSet" class="Pr"><legend>* P I N C O D E *</legend><div class="rField"><input type="hidden" name="Uid" id="Uid" value="'+lPtrCode+'" /><label for="Pincode">'+Msupply_pincode+'</label><input type="password" class="boxL" name="Pincode" id="Pincode" value="" /><label for="PinRepeat">'+Mrepeat_pincode+'</label><input type="password" class="boxL" name="PinRepeat" id="PinRepeat" value="" /><br /><button type="submit" class="cBut" name="Login" title="login_cx" onclick="keyLogin()"><img src="/pics/Img/check-blue.gif" alt=""/>&nbsp;Login</button></div></fieldset>');
    else
      $('#dLoginSet').replaceWith('<fieldset id="dLoginSet" class="Pr"><legend>* P I N C O D E *</legend><div class="rField"><input type="hidden" name="Uid" id="Uid" value="'+lPtrCode+'" /><label for="Pincode">'+Msupply_pincode+'</label><input type="password" class="boxL" name="Pincode" id="Pincode" value="" /><div class="rBut"><button type="submit" class="cBut" name="Login" title="login_cx" onclick="keyLogin()"><img src="/pics/Img/check-blue.gif" alt=""/>&nbsp;Login</button></div></div></fieldset>');

    // 215 : setTimeout("document.getElementById('Pincode').focus()",500);
    setTimeout("document.fLogin.Pincode.focus()",500);
    if (lSeq == 1) {
      DOMMess(lMess,'loginMess');
      var p = document.getElementById('loginMess');
      p.style.visibility = 'hidden';
      $(function(){ $(".loginMess").Bcorner("rounded 30px");});
    }
 }

function keyLogin() {
 // alert(document.getElementById('Uid').type);
  if (document.fLogin != null && document.getElementById('Uid').type != 'hidden' && document.fLogin.Uid.value.length > 1) { // just login form...
    if (document.getElementById('dLogin')) { // 177 : fork
    	jQuery.getJSON('../background/AjaxFunctions.php?F=LoginUid&tgtId=0&Var1='+document.fLogin.Uid.value, function(json) {
        // alert(json.Profile+' :: '+json.knownUsr+' :: '+json.achievedRights+' :: '+json.LoginPermit);
    	 removeElement('dLogin','PtrSelfReg'); // 188 :: removes elm if it is set...
    	 // removeElement('dLogin','loginMess2');
    	 document.getElementById('loginMess2').innerHTML = ' ';
    	 if (jQuery.inArray(parseInt(json.Profile),[12,13,23,25,35,45]) > -1 && json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights > 200) {
	   prepareLoginForm(0,json.Uid,'',json.supply_pincode,json.repeat_pincode);
         }
    	 else if (jQuery.inArray(parseInt(json.Profile),[12,13,23]) > -1 && json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights > 100) {
	   prepareLoginForm(1,json.Uid,json.ErrorMsg,json.supply_pincode,json.repeat_pincode);
         }
    	 else if (jQuery.inArray(parseInt(json.Profile),[12,23,35,45]) > -1 && json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights >= 3 && json.achievedRights <= 5) {
	   if (json.Location && document.fLogin.Mode.value == 'initlogin')
	     window.location.href = json.Location;
	   else
	     window.location.href = document.location.href;
         }
    	 else if (jQuery.inArray(parseInt(json.Profile),[11]) > -1 && json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights > 0 && json.achievedRights <= 5) {
	   if (json.Location && document.fLogin.Mode.value == 'initlogin')
	     window.location.href = json.Location;
	   else
	     window.location.href = document.location.href;

         }
	 else if (json.knownUsr == 0)
           DOMErrorMess(json.ErrorMsg,'loginError','#bf410f',3000);

      })
    }

    else {
      alert('Submiitting?????');
      document.fLogin.submit();
    }
   }

   if (document.fLogin != null && document.getElementById('Uid').type == 'hidden' && document.fLogin.Pincode.value.length == 4) { // usr must state pincode..
       // alert('Pincode stated');
    if (document.fLogin.PinRepeat != null) { // usr has not got a pincode...
      if (document.fLogin.Pincode.value.length == 4 && document.fLogin.Pincode.value == document.fLogin.PinRepeat.value && isInteger(document.fLogin.Pincode.value))
        jQuery.getJSON('../background/AjaxFunctions.php?F=LoginPinRepeat&tgtId=0&Var1='+document.fLogin.Uid.value+'&Var2='+document.fLogin.Pincode.value, function(json) {
	if (json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights > 0 && json.achievedRights <= 5)  {
	   if (json.Location && document.fLogin.Mode.value == 'initlogin')
             window.location.href = json.Location;
	 }
         else {
   	   DOMErrorMess(json.ErrorMsg,'loginError','#bf410f',3000);
   	   setTimeout("window.location.href = '../main/Login.php'",3100);
         }
      })
    }
    else {
      jQuery.getJSON('../background/AjaxFunctions.php?F=LoginPin&tgtId=0&Var1='+document.fLogin.Uid.value+'&Var2='+document.fLogin.Pincode.value, function(json) {
	 if (json.knownUsr == 1 && json.LoginPermit > 0 && json.achievedRights > 0 && json.achievedRights <= 5) {
           if (json.Location && document.fLogin.Mode.value == 'initlogin')
	     window.location.href = json.Location;
	   else
	     window.location.href = document.location.href;
	 }
         else {
   	   DOMErrorMess(json.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  II   //
//////////////////////////////
function initCal() {
	var els = getElementsByClassName(document, '*','fsCalendar');
	var label = document.createElement('label');
	label.appendChild(document.createTextNode('Date of Birth'));
	label.setAttribute('for','dob');
	
	removeAllChildren(els[0]); // mox
	els[0].appendChild(label);
	els[0].appendChild(document.createTextNode(' '));

	var dateSel = document.createElement('input');
	dateSel.type='text';
	dateSel.id='dob';
	dateSel.name='dob';
	dateSel.defaultValue='YYYY/MM/DD'; dateSel.value='YYYY/MM/DD';
	dateSel.className+=' default';

	els[0].appendChild(dateSel);

	date = new calendarInput(dateSel);

}
////////////////////////////////
//     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 
  }	
  else 
  	lElm.value = '';	// 232 :: Placeholder tweek

  // 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 bgItemOrderExpire(lId,lNewDate) { // called from ../js/calendar.htm
    ASyncAjax('cbDummy','changeItemOrderExpire','',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 cbRollStatus(a) {
    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(a) {
  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(a) {
  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(a) { // callback   	
   document.fTitles.Titles.value = a['Titles'];
   document.fTitles.submit();
}

function iRunDumpImport(tgtId,lPrompt){
  if (confirm(lPrompt))
    ASyncMetaData('cbRunDumpImport','RunDumpImport',tgtId,0,'','','')
}	

function cbRunDumpImport(a) { // callback   	
   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(a) { // callback   	
   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(lId,lClass,aValue,lToday) {
   var z ='<div id="dCal">';
   for (var x in aValue) {
   	 // alert(aValue[x]['Date']+aValue[x]['Month']+aValue[x]['Title']);
     if (aValue[x]['Title']) {
       z = z+'<div class="calEntry">'
       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>'
     }
   }
   z = z+'</div>';
   // alert(z);
  // alert('#'+lId);

 $('#dCal').css('height:100%;');
 
 $('#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 - 232 :: trans to JQuery
  var argv = FrmRed.arguments;
  var argc = argv.length;
  var oForm='<div><form name="fSubmit" id="fSubmit" method="post" action="'+argv[0]+'"';
  if (argv[1])
    oForm +=' target="_blank"';
  oForm +='>';  
  for (var i = 2; i < argc; i++) { // offset = 1
  	oForm +='<input type="hidden" name="'+argv[i].substring(0,argv[i].indexOf('#'))+'" value="'+argv[i].substring(argv[i].indexOf('#')+1)+'" />';
  } 
  oForm +='</form></div>';
  $(oForm).appendTo('body');
  $('#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;
    if (xmlNode != null) {
      // 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 CartAction(tgtId,localNumber,lId,lState) {
  if (!browser.isIE)
    setTimeout("document.getElementById('"+lId+"').checked = "+lState,500);
  ASyncAjax('cbCartAction','CartAction','',tgtId,localNumber,lState);
}

function cbCartAction(a) {
  swapCart(a['rCount']);
}

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 hstResort(OrderBy) { // cannot use FrmRed !??
    document.fReload.OrderBy.value = OrderBy;
    document.fReload.submit();
}

function PrHelper(Page) {
  if (Page) {
    // alert(Page);
    JT_Tree('../background/AjaxTree.php?F=HelpPage&Page='+Page+'&Anchor='+gAnchor,Page,1000,100);
  }
// return false;
  // $(e).css({'background-color' : 'yellow'});
      
}

   function lEdit(Id) {
   	 MakeFullWindow('../main/Form.php?Ifm=ERMAccess&UseId='+Id,'ERM',800,1000,'yes','default');
   }
   function lEditUser(Id) {
   	 MakeFullWindow('../main/Form.php?Ifm=ERMUsers&Id='+Id,'ERM',800,500,'yes','default');
   }
function fShowSubscriptions(lUseId) {
	document.fNav.UseId.value=lUseId;
	document.fNav.submit();
}
function ReindexDatabase(tgtId,lPatron,lId) { // 232 :
  if (lPatron == '1hebheb') {
    $("button.cBut").toggle();
    $("#fEdit").submit(function() {
      $.ajax({type: "GET",url:"../background/Ajax.php?F=mtWorkZebraService&tgtId="+tgtId+"Id="+lId,async:true,cache: false,success:function(z) { 
      $("div.rBut").text("Indexing process OK ").show().fadeOut(10000);
      
    }});
      $("div.rBut").html('<img src="/pics/Throbber.gif" />&nbsp;Indexing process running. Please wait').show();  
      return false;
    });
    
  }
  else
    alert('Not implementet');

}

