var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var winW;
var winH;

var objs = '';
var openedits = '';
var grouptagpopupstate = false;
var comfacgrouppopupstate = false;
var filtercompanytimer;

function callAjax(method, target, urlparams) {
  if ($('#'+target).length) {
    var xmlrequest = $.ajax({
      //type: 'POST',
      url         : '/ajax-xml.php',
      cache       : false,
      data        : urlparams,
      context     : target,
      async       : true,
      success     : function(data) {
        thedata = data.getElementsByTagName('content')[0];
        $('#' + target).html(thedata.firstChild.nodeValue);
        jscodetoexec = data.getElementsByTagName('jscode')[0];
      },
      complete    : function () {
        try {
          eval(jscodetoexec.firstChild.data);
        } catch(merr) {
          //alert(merr);
        }
      }
    });
    ;
  }
}

function dofade(el) {
  var i = 10;
  (function f() {
    i=i+2;
    document.getElementById(el).style.opacity = i/100;
    document.getElementById(el).style.filter = 'alpha(opacity='+i+')';
    if (i < 100) {
      var tt = setTimeout(f, 1);
    } else {
      clearTimeout(tt);
    }
  })();
}

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

function AjaxRequest()
{
  var req;
  var method = "GET";
  var nocache = true;

  this.loadXMLDoc = function(url, params)
  {
    if(window.XMLHttpRequest) {
      try {
        req = new XMLHttpRequest();
      } catch(e) {
        req = false;
      }
    } else if(window.ActiveXObject) {
      try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch(e) {
        try {
          req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
          req = false;
        }
      }
    }
    if(req) {
      req.onreadystatechange = processReqChange;
      if(nocache) {
        params += (params != '') ? '&' + (new Date()).getTime() : (new Date()).getTime();
      }
      if(method == "POST") {
        req.open("POST", url, true);
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(params);
      } else {
        req.open(method, url + '?' + params, true);
        req.send(null);
      }
      return true;
    }
    return false;
  }

  this.setMethod = function(newmethod) { method = newmethod.toUpperCase(); }
  this.nocache = function() { nocache = true; }

  // define private methods

  var getNodeValue = function(parent, tagName)
  {
    var node = parent.getElementsByTagName(tagName)[0];
    return (node && node.firstChild) ? node.firstChild.nodeValue : '';
  }

  var processReqChange = function() 
  {
    if(req.readyState == 4 && req.status == 200) {
      if(!req.responseXML) return;
      var response  = req.responseXML.documentElement;
      var commands = response.getElementsByTagName('command');

      for(var i=0; i < commands.length; i++) {
        method = commands[i].getAttribute('method');
        switch(method) {
          case 'setheadercontent':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              parent.document.getElementById(target).innerHTML = content;
            }
            break;

          case 'setcontent':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              document.getElementById(target).innerHTML = content;
            }
            break;
          case 'appendcontent':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              document.getElementById(target).innerHTML += content;
            }
          case 'prependcontent':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              document.getElementById(target).innerHTML = content + document.getElementById(target).innerHTML;
            }
            break;
            
          case 'updateformtextfield':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              document.getElementById(target).value = content;
            }
            break;

          case 'updateaddressformtextfield':
            var target = getNodeValue(commands[i], 'target');
            var content = getNodeValue(commands[i], 'content');
            if(target && content != null) {
              var bits = content.split("||");
              document.getElementById(target).innerHTML = '(' + bits[0] + ')';
              document.getElementById('attn_name').value = bits[1];
              document.getElementById('phone').value = bits[2];
              document.getElementById('shipaddress').value = bits[3];
            }
            break;

          default:
            window.console.log("Error: unrecognised method '" + method + "' in processReqChange()");
        }
        var toeval = response.getElementsByTagName('jscode');
        var doeval = toeval[0].getAttribute('attr');
        if(doeval == 1) {
          //document.onreadystatechange = function() {
          //  if (document.readyState != 'complete') return ;
              eval(toeval[0].firstChild.data);
          //}
        }
      }
    }
  }
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function togglediv(obj) {
  if(document.getElementById(obj).style.display == 'block') {
    document.getElementById(obj).style.display = 'none';
  } else {
    document.getElementById(obj).style.display = 'block';
  }
}

function hiderows(rowname) {
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('name') == rowname){
      tr[i].style.display = tr[i].style.display == 'none' ? '' : 'none';
    }
  }
}

var categorytogglestates = new Array();
function hidecategoryrows(categoryid, rowname, flag) {
  if(grouptagpopupstate == true || comfacgrouppopupstate == true) {
   cClick();
  }
  var categoryids = rowname.split("|");  
  tr = document.getElementsByTagName('tr');
  categorytogglestates[categoryid] = categorytogglestates[categoryid] == 'none' ? '' : 'none';
  for (i=0;i < tr.length;i++){
    for (k=0;k < categoryids.length;k++){      
      if(flag == 'all') {
        if(tr[i].getAttribute('name') == 'row_' +categoryid + '_f') {
          tr[i].style.display = categorytogglestates[categoryid];
        }
        if (tr[i].getAttribute('name') == 'row_' + categoryids[k] + '_d' || tr[i].getAttribute('name') == 'row_' + categoryids[k] + '_f'){
          tr[i].style.display = categorytogglestates[categoryid];
          if(tr[i].getAttribute('name') == 'row_' + categoryids[k] + '_d') {
            categorytogglestates[categoryids[k]] = categorytogglestates[categoryid];
          }
        }
      } else {
        if (tr[i].getAttribute('name') == 'row_' + categoryids[k] + '_f'){
          tr[i].style.display = tr[i].style.display == 'none' ? '' : 'none';
        }
      }
    }
  }
}

var togglefilestate;
function togglefilerows() {
  if(grouptagpopupstate == true) {
   cClick();
  }
  togglefilestate = togglefilestate == 'none' ? '' : 'none';
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('rowtype') == 'folder'){
      var categoryrowname = tr[i].getAttribute('name');
      var categorysplit = categoryrowname.split("_");
      categorytogglestates[categorysplit[1]] = '';
      tr[i].style.display = '';
    }
    if (tr[i].getAttribute('rowtype') == 'file'){
      tr[i].style.display = togglefilestate;
    }
  }
}

function collapsetotop() {
  if(grouptagpopupstate == true) {
   cClick();
  }
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('rowlevel') == 'top'){
      var categoryrowname = tr[i].getAttribute('name');
      var categorysplit = categoryrowname.split("_");
      categorytogglestates[categorysplit[1]] = '';
      tr[i].style.display = '';
    } else if(tr[i].getAttribute('rowtype') == 'folder' || tr[i].getAttribute('rowtype') == 'file') {
      var categoryrowname = tr[i].getAttribute('name');
      var categorysplit = categoryrowname.split("_");
      categorytogglestates[categorysplit[1]] = 'none';
      tr[i].style.display = 'none';
    }
  }
}

function expandall() {
  if(grouptagpopupstate == true) {
   cClick();
  }
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('rowlevel') == 'top'){
      var categoryrowname = tr[i].getAttribute('name');
      var categorysplit = categoryrowname.split("_");
      categorytogglestates[categorysplit[1]] = '';
      tr[i].style.display = '';
    } else if(tr[i].getAttribute('rowtype') == 'folder' || tr[i].getAttribute('rowtype') == 'file') {
      var categoryrowname = tr[i].getAttribute('name');
      var categorysplit = categoryrowname.split("_");
      categorytogglestates[categorysplit[1]] = '';
      tr[i].style.display = '';
    }
  }
}

function expandfacilityselector(wizard) {
  $('#header-usermenu-all').show();
  $('#header-usermenu-company').hide();
  $('#pageobj').animate({ opacity: 0.1 });

  if(globalcompanyid > 0) {
    $('#facilityselectorlist').scrollTo('#companyid_' + globalcompanyid, 100, {offset:{left: 0, top: -2}, axis: 'y'});
    //$('#companylinks_'+globalcompanyid).slideDown();
  }
  
  usercompanylist = 'all-companies';
  return false;
}

function expandcompanyselector(userid, companyid) {
  $('#header-usermenu-all').hide();
  $('#header-usermenu-company').show();
  $('#pageobj').animate({ opacity: 0.1 });

  if(globalfacilityid > 0) {
    $('#facilityselectorlist').scrollTo('#facilityid_' + globalfacilityid, 100, {offset:{left: 0, top: -2}});
  }

  usercompanylist = 'single-company';
  return false;
}

function closefacilityselector() {
  $('#header-usermenu-all').hide();
  $('#header-usermenu-company').hide();
  $('#pageobj').animate({ opacity: 1 });
  
  return false;
}

function filtercompanylist() {
  clearTimeout(filtercompanytimer);
  filtercompanytimer = setTimeout(function(){
    var filterval = $('#companylistfilter').val();
    if(filterval.length > 0) {
      callAjax('setcontent', 'header-usermenu-all', 'display=getusercompaniesfiltered&filterval='+encode64(filterval));
    }
  }, 1000);
  
  return false;
}

function getwindowsize() {
  if (parseInt(navigator.appVersion)>3) {
    if (navigator.appName=="Netscape") {
      winW = window.innerWidth-16;
      winH = window.innerHeight-16;
    }
    if (navigator.appName.indexOf("Microsoft")!=-1) {
      winW = document.body.offsetWidth-20;
      winH = document.body.offsetHeight-20;
    }
  }
  
  getfileviewerpanelsize();
  winH = viewerheight - 45;
  winW = viewerwidth;
} 

function hiliterows(rowname) {
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('name') == rowname){
      tr[i].style.backgroundColor = '#DDFFF0';
    }
  }
}

var toggleeditstates = new Array();
var toggleeditstates_fc = new Array();
var posY;
var posX;
var lastX;
var lastY;
var intervaltimer;
var fileviewer;
var xfileid;
var newwidth;
var newheight;

function getpos() {
  posY = document.body.scrollTop;
  posX = document.body.scrollLeft;

  if(lastX!=posX || lastY!=posY) {
    lastX = posX;
    lastY = posY;
    updateuploaderregion();
  }

  fileviewer.style.top = 50;
  fileviewer.style.left = posX + 50;

  //resetviewerwindow();
}

function updateuploaderregion() {
  document.body.scrollTop = 0;
}

function startPolling(){
  //intervaltimer = setInterval("getpos()", 1000);
}

function closeimageviewer() {
  var onionskin = document.getElementById('onionskin');
  onionskin.className = 'onionskin_off';
  fileviewer = document.getElementById('fileviewerdiv');
  fileviewer.style.display = 'none';
  clearInterval(intervaltimer);
}

function viewimage(fileid, companyid, facilityid, returnids) {
  clearInterval(intervaltimer);
  xfileid = fileid;
  /*
  var onionskin = document.getElementById('onionskin');
  var pagecontent = document.getElementById('everything');
  var everythingsheight = document.body.offsetHeight;
  onionskin.className = 'onionskin_on';
  onionskin.style.height = everythingsheight;
  
  fileviewer = document.getElementById('fileviewerdiv');
  fileviewer.style.display = '';
  //resetviewerwindow();
  startPolling();
  callAjax('setcontent', 'fileviewerdiv', 'display=fileviewer&companyid='+companyid+'&facilityid='+facilityid+'&fileid='+xfileid+'&winH='+newheight+'&winW='+winW+'&returnids='+returnids);
  */

  try {
    $.fancybox("<div id='messageviewer'></div>",{
      'transitionIn'	  :	'fade',
    	'modal'           : false,
    	'speedIn'		      :	100,
    	'speedOut'		    :	100,
    	'overlayShow'	    :	true,
    	'type'				    : 'iframe',
    	'href'			      : '/images/spacer.gif',
    	'width'				    : '85%',
    	'height'			    : '85%',
    	'autoScale'       : true,
    	'centerOnScroll'  : true,
    	'showCloseButton' : true,
    	'scrolling'       : 'auto',
    	'hideOnOverlayClick': true,
    	'onStart'         : function() {
    	  try {
      	  tabs.setActiveTab(0);
      	} catch(ef) {
      	  
      	}
    	},
    	'onComplete'      : function() {
    	  callAjax('setcontent', 'fancybox-content', 'display=fileviewer&companyid='+companyid+'&facilityid='+facilityid+'&fileid='+xfileid+'&returnids='+returnids);
    	}
  	});
  } catch(e) {
    //alert(e);
  }
}

function viewnewimage(fileid, page, height) {
  var iframeviewerobj = document.getElementById('imageinviewer');
  iframeviewerobj.src = '/images/?type=file&fileid='+fileid+'&page='+page+'&height='+height;
}

function image_rotate(fileid, rotation) {
  callAjax('setcontent', 'blank', 'display=image_rotate&fileid='+fileid+'&rotation='+rotation);
}

function image_rotate2(fileid, rotation) {
  callAjax('setcontent', 'blank', 'display=image_rotate2&fileid='+fileid+'&rotation='+rotation);
}

function uploader(categoryid, companyid, facilityid) {
  /*
  var onionskin = document.getElementById('onionskin');
  var pagecontent = document.getElementById('everything');
  var everythingsheight = document.body.offsetHeight;
  onionskin.className = 'onionskin_on';
  onionskin.style.height = everythingsheight;
  
  fileviewer = document.getElementById('fileviewerdiv');
  fileviewer.style.display = '';
  resetviewerwindow();
  startPolling();
  callAjax('setcontent', 'fileviewerdiv', 'display=uploader&companyid='+companyid+'&facilityid='+facilityid+'&categoryid='+categoryid+'&winH='+newheight+'&winW='+winW);
  */
  try {
    $.fancybox("<div id='messageviewer'></div>",{
      'transitionIn'	  :	'fade',
    	'modal'           : false,
    	'speedIn'		      :	100,
    	'speedOut'		    :	100,
    	'overlayShow'	    :	true,
    	'type'				    : 'iframe',
    	'href'			      : '/images/spacer.gif',
    	'width'				    : '85%',
    	'height'			    : '85%',
    	'autoScale'       : true,
    	'centerOnScroll'  : true,
    	'showCloseButton' : true,
    	'scrolling'       : 'auto',
    	'hideOnOverlayClick': true,
    	'onStart'         : function() {
    	  try {
      	  tabs.setActiveTab(0);
      	} catch(ef) {
      	  
      	}
    	},
    	'onComplete'      : function() {
    	  callAjax('setcontent', 'fancybox-content', 'display=uploader&companyid='+companyid+'&facilityid='+facilityid+'&categoryid='+categoryid);
    	}
  	});
  } catch(e) {
    //alert(e);
  }
}

function fileedit(fileids) {
  clearInterval(intervaltimer);
  /*
  var onionskin = document.getElementById('onionskin');
  var pagecontent = document.getElementById('everything');
  var everythingsheight = document.body.offsetHeight;
  onionskin.className = 'onionskin_on';
  onionskin.style.height = everythingsheight;
  
  fileviewer = document.getElementById('fileviewerdiv');
  fileviewer.style.display = '';
  resetviewerwindow();
  startPolling();
  callAjax('setcontent', 'fileviewerdiv', 'display=multi_file_edit&fileids='+fileids+'&winH='+newheight+'&winW='+winW);
  */

  try {
    $.fancybox("<div id='messageviewer'></div>",{
      'transitionIn'	  :	'fade',
    	'modal'           : false,
    	'speedIn'		      :	100,
    	'speedOut'		    :	100,
    	'overlayShow'	    :	true,
    	'type'				    : 'iframe',
    	'href'			      : '/images/spacer.gif',
    	'width'				    : '85%',
    	'height'			    : '85%',
    	'autoScale'       : true,
    	'centerOnScroll'  : true,
    	'showCloseButton' : true,
    	'scrolling'       : 'auto',
    	'hideOnOverlayClick': true,
    	'onStart'         : function() {
    	  try {
      	  tabs.setActiveTab(0);
      	} catch(ef) {
      	  
      	}
    	},
    	'onComplete'      : function() {
    	  callAjax('setcontent', 'fancybox-content', 'display=multi_file_edit&fileids='+fileids);
    	}
  	});
  } catch(e) {
    //alert(e);
  }
}

function delete_file(fileid) {
  var confirmation = prompt("Type 'delete' in this box to confirm you want to delete this file.", '');
  if(confirmation == 'delete') {
    callAjax('setcontent', 'blank', 'display=delete_file&fileid='+fileid);
    return false;
  }
  return false;
}

function delete_file2(fileid) {
  var confirmation = prompt("Type 'delete' in this box to confirm you want to delete this file.", '');
  if(confirmation == 'delete') {
  	diplaystatus(9, 'working...');
  	tabs.remove(fileid, true);
    callAjax('setcontent', 'blank', 'display=delete_file2&fileid='+fileid);
    return false;
  }
  return false;
}

function multi_file_edit_js(fileid, fileids) {
  callAjax('setcontent', 'fileditlist', 'display=multi_file_edit_list&fileid='+fileid+'&fileids='+fileids);
  callAjax('setcontent', 'fileeditdata', 'display=edit_file_form&fileid='+fileid+'&fileids='+fileids);
  callAjax('setcontent', 'fileeditname', 'display=multi_file_edit_filename&fileid='+fileid);
}

function multi_file_edit_grouptags(fileid, file_categoryid) {
  callAjax('setcontent', 'file_edit_grouptags', 'display=multi_file_edit_grouptags&fileid='+fileid+'&file_categoryid='+file_categoryid);
}

function resetviewerwindow() {
  //getwindowsize();
  var padding = 50;
  newwidth = winW - (50 * 2);
  newheight = winH - (50 * 2);
  fileviewer.style.width = newwidth;
  fileviewer.style.height = newheight;
}

function closeviewertable() {
  fileviewer.style.display = '';
}

function togglemsdslabel(obj, labelobj) {
  var checkboxobj = document.getElementById(obj);
  var labeltextobj = document.getElementById(labelobj);
  
  if(checkboxobj.checked) {
    //labeltextobj.innerHTML = 'yes';
    hiderows('msdsrow');
  } else {
    //labeltextobj.innerHTML = 'no';
    hiderows('msdsrow');
  }
}

var dp_cal;      
function init_calendar(obj) {
  dp_cal  = new Epoch('epoch_popup','popup',obj);
};

function CheckIsIE() {
  if (navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER') { return true;}
  else { return false; }
} 

function printimage() {
  if (CheckIsIE() == true) {
    document.imageinviewer.focus();
    document.imageinviewer.print();
  } else {
    window.frames['imageinviewer'].focus();
    window.frames['imageinviewer'].print();
  }
}

function imagezoom(amount) {
  if (CheckIsIE() == true) {
    document.imageinviewer.shiftzoom._downKey(36);
    document.imageinviewer.shiftzoom._downKey(36);
  } else {
    window.frames['imageinviewer'].shiftzoom._downKey(36);
    window.frames['imageinviewer'].shiftzoom._downKey(36);
  }
}

function highlightfolderrow(rowid) {
  var highlightrow = 'row_'+rowid+'_d';
  tr = document.getElementsByTagName('tr');
  for (i=0;i < tr.length;i++){
    if (tr[i].getAttribute('rowtype') == 'folder'){
      if(tr[i].getAttribute('name') == highlightrow) {
        tr[i].className = 'highlightfolderrow';
      } else {
        tr[i].className = '';
      }
    }
  }
}

function help_popup(topic, location) {
  overlib('<div id=\'helppopup\'><img src=/images/spinner.png></div>', WRAP, STICKY, FULLHTML, WIDTH, 550, HEIGHT, 300, ANCHOR, location, ANCHORALIGN, '0','ul', ANCHORX, 10);
  callAjax('setcontent', 'helppopup', 'display=helppopup&topic='+topic);
}

function help_popup_close() {
  cClick();
}

function blinkdiv(divname) {
  var oldcolor = document.getElementById(divname).className;
  document.getElementById(divname).className = 'divwarning';
  setTimeout("document.getElementById('"+divname+"').className = '"+oldcolor+"'", 2000);
}

function blinkdiv2(divname) {
  var oldcolor = document.getElementById(divname).className;
  document.getElementById(divname).className = 'divwarning2';
  setTimeout("document.getElementById('"+divname+"').className = '"+oldcolor+"'", 2000);
}

function openmessagepopup2(messageid, box) {
  try {
    box = box == null || box == 'undefined' ? 'inbox' : box;
    overlib("<div style='z-index: 10000' id='messageviewer' align='center'></div>", FULLHTML, CENTERPOPUP, CENTEROFFSET, -267, -40);
    callAjax('setcontent', 'messageviewer', 'display=messagepopup&messageid='+messageid+'&box='+box);
    setTimeout('getscrollpos();', 600);
  } catch(e) {
    
  }
}

function openmessagepopup(messageid, box) {
  try {
    $.fancybox("<div id='messageviewer'></div>",{
      'transitionIn'	  :	'fade',
    	'modal'           : false,
    	'speedIn'		      :	100,
    	'speedOut'		    :	100,
    	'overlayShow'	    :	true,
    	'type'				    : 'iframe',
    	'href'			      : '/images/spacer.gif',
    	'width'				    : '85%',
    	'height'			    : '85%',
    	'autoScale'       : true,
    	'centerOnScroll'  : true,
    	'showCloseButton' : true,
    	'scrolling'       : 'auto',
    	'hideOnOverlayClick': true,
    	'onStart'         : function() {
    	  try {
      	  tabs.setActiveTab(0);
      	} catch(ef) {
      	  
      	}
    	},
    	'onComplete'      : function() {
    	  callAjax('setcontent', 'fancybox-content', 'display=messagepopup&box='+box);
    	}
  	});
  } catch(e) {
    //alert(e);
  }
}

function openhelpsupportpopup() {
  try {
    $.fancybox({
    	'transitionIn'	:	'fade',
    	'transitionOut'	:	'fade',
    	'modal'         : true,
    	'speedIn'		    :	600, 
    	'speedOut'		  :	200, 
    	'overlayShow'	  :	true,
    	'type'				  : 'iframe',
    	'href'			    : '/helpdesk',
    	'width'				  : '85%',
    	'height'			  : '85%',
    	'autoScale'     : true,
    	'centerOnScroll': true,
    	'showCloseButton': true,
    	'scrolling'     : 'auto'
    });
  } catch(e) {
    //alert(e);
  }
}

function closemessagespopup() {
  try {
    cClick();
    if (document.getElementById("widget_usermessages")) {
      callAjax('setcontent', 'widget_usermessages', 'display=widget_usermessages');
      callAjax('setcontent', 'messages_navcounter', 'display=message_messagecounter');
    }
  } catch(e) {
    
  }
  
  try {
    $.fancybox.close();
  } catch(e) {
    
  }
}

function getscrollpos() {
  var strCook = document.cookie;  
  if(strCook.indexOf('!~')!=0){  
    var intS = strCook.indexOf('!~');  
    var intE = strCook.indexOf('~!');  
    var strPos = strCook.substring(intS+2,intE);  
    document.getElementById('message_list').scrollTop = strPos;  
  }
}

function setscrollpos(){
  var intY = document.getElementById('message_list').scrollTop;
  document.cookie = 'yPos=!~' + intY + '~!';  
}

function getscrollpos_main_companyselector() {
  var strCook = document.cookie;
  if(strCook.indexOf('|~')!=0){
    var intS = strCook.indexOf('|~');
    var intE = strCook.indexOf('~|');
    var strPos = strCook.substring(intS+2,intE);
    document.getElementById('facilityselectorlist').scrollTop = strPos;  
  }
}

function setscrollpos_main_companyselector(){
  var intY = document.getElementById('facilityselectorlist').scrollTop;
  document.cookie = 'yPos=|~' + intY + '~|';
}

var draggableOptions = {
    onStart:function()
    {
      this.el.setOpacity(.5);
    },
    onComplete:function()
    {
      // put the element back where it belongs
      this.el.setOpacity(1);
      this.el.style.left = 0;
      this.el.style.top = 0;
    }
};

var droppableOptions = {
    onOver:function(){
      //this.addClassName('dragover');
    },
    onLeave:function(){
      //this.removeClassName('dragover');
    },
    onDrop:function(objid, targetobject){
      //alert('dropped: '+objid.id+' into: '+this.id);
      switch(this.id) {
        case 'message_trashbox':
          movetotrash(objid.id);
        break;
        case 'message_inbox':
          movetoinbox(objid.id);
        break;
        default:
      }
    }
}

var messagedisplayed = 0;
var locationdisplayed = 'inbox';

function updatemailcounters() {
  callAjax('setcontent', 'widget_usermessages', 'display=widget_usermessages');
  callAjax('setcontent', 'messages_navcounter', 'display=message_messagecounter');
  callAjax('setcontent', 'messages_navcounter_footer', 'display=message_messagecounter');
  callAjax('setcontent', 'leftnavmessages', 'display=messageinleftnav');
}

function setpref(callback, name, value) {
  callAjax('setcontent', 'blank', 'display=setpreference&callback='+callback+'&name='+name+'&value='+value);
}

$('.datepicker_f')
  .livequery('click', function(){
    try {
    $(this).datepicker({
    		changeMonth: true,
    		changeYear: true,
    		dateFormat: 'mm-dd-yy',
    		showButtonPanel: true
    		});
    } catch(e) {
      
    }
  });

$(function() {
		$('.datepicker_f').datepicker({
		changeMonth: true,
		changeYear: true,
		dateFormat: 'mm-dd-yy',
		showButtonPanel: true
		});
});

Ext.example = function(){
  var msgCt;
  	
  function createBox(t, s) {
      return ["<div class=\"msg\">", "<div class=\"x-box-tl\"><div class=\"x-box-tr\"><div class=\"x-box-tc\"></div></div></div>", "<div class=\"x-box-ml\"><div class=\"x-box-mr\"><div class=\"x-box-mc\"><h3>", t, "</h3>", s, "</div></div></div>", "<div class=\"x-box-bl\"><div class=\"x-box-br\"><div class=\"x-box-bc\"></div></div></div>", "</div>"].join("");
  }

  return {
  	msg: function(title, format){
  		if (!msgCt) {
  			msgCt = Ext.DomHelper.insertFirst(document.body, {
  				id: "msg-div"
  			}, true);
  		}
  		msgCt.alignTo(document, "t-t");
  		var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
  		var m = Ext.DomHelper.append(msgCt, {
  			html: createBox(title, s)
  		}, true);
  		m.slideIn("t").pause(3).ghost("t", {
  			remove: true
  		});
  	}
  };
}();

tinyMCE_GZ.init({
  plugins : 'advimage, preview, spellchecker, table, fullscreen',
  themes : 'advanced',
  languages : 'en',
  disk_cache : true,
  debug : false
});

var grid;
var store;

var printpagepage = 1;
function printwindowopen(url) {
  printwindow = window.open(url+'&page='+printpagepage, 'printwindow', 'location=0,menubar=1,status=1,height=800,width=1200');
  setTimeout('printwindow.print();', 1000);
}

function extmessage(title, message) {
  Ext.onReady(function(){
    Ext.example.msg(title, message);
  });
}
/*
$('#slidemarginleft button').click(function() {
  var $marginLefty = $(this).next();
  $marginLefty.animate({
    marginLeft: parseInt($marginLefty.css('marginLeft'),10) == 0 ? $marginLefty.outerWidth() : 0 
  });
});
*/
var fileinfotoggletimer;



function hidefileinfo_delayed(fileid) {
  $('#fileinfopopup_' + fileid).slideUp();
}

var udpr;
function update_detail_panel_response(text, icon, alertlevel) {
	$(document).ready(function() {

		callAjax('setcontent', 'detail_panel_response', 'display=response_message&text=' + encode64(text) + '&icon=' + icon + '&alertlevel=' + alertlevel);
    clearTimeout(udpr);
		udpr = setTimeout("$('#detail_panel_response').slideDown();", 1000);
		
  });
}

function close_response_panel() {
	$('#detail_panel_response').slideUp();
}


var viewerheight;
var viewerwidth;
var resizetimer;
var outlinebordersize;
var searchresultssize;

function getfileviewerpanelsize() {
  viewerheight = $('#filesbeingviewed').height();
  viewerwidth = $('#filesbeingviewed').width();

  var offsetforbrowser;
  if (navigator.appName=="Netscape") {
    offsetforbrowser = 125;
    outlinebordersize = viewerheight - offsetforbrowser + 35;
  }
  if(navigator.appName.indexOf("Microsoft")!=-1) {
    // ie.
    offsetforbrowser = 125;
    outlinebordersize = viewerheight - offsetforbrowser + 45;
  }
  viewerheight = viewerheight - offsetforbrowser;
  
  searchresultssize = viewerheight - 304;
}

function windowresizefunction() {
  //clearTimeout(resizetimer);
  //resizetimer = setTimeout('resizeimageviwers();', 1000);
}


function resizeimageviwers_xx() {
  clearTimeout(resizetimer_d);
  resizetimer_d = setTimeout("doatfinishofresize();", 500);
}

function resizeimageviwers() {
  getfileviewerpanelsize();
  
  winheight = $(window).height();
  winwidth = $(window).width();

  $('#show-btn').height(winheight);
  $('#show-btn').width(winwidth);

  $('.mainpanelcontainer').height(outlinebordersize);
  $('.pdfobject').height(viewerheight);
  //$('#searchresults').height(searchresultssize);
  
  $('#searchresults').css({height: function() { return viewerheight - 304; }});

  $('.presetrowsdiv').css('height', function() {
    return winheight - 467;
  });

  $('.presetdropzonecontainer, .presetdropzone_trash').css('height', function() {
    return winheight - 200;
  });
}

function joindefaultcompany() {
  callAjax('setcontent', 'joindefaultcobutton', 'display=joindefaultcompany');
}

function requesttojoincompany() {
  var companytojoin = $('#companytojoin').val();
  callAjax('setcontent', 'blank', 'display=requesttojoin&companyname='+encode64(companytojoin));
  return false;
}

function changestatus(joinrequestid, statuscode) {
  var confirmdelete = confirm('Are you sure?');
  if(confirmdelete == true) {
    callAjax('setcontent', 'blank', 'display=changestatus&joinrequestid='+joinrequestid+'&statuscode='+statuscode);
  }
}


var Url = {
	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},
	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (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 toggleactive(togglegroup, companyid) {
  if(togglegroup == "facility-admin") {
    var togglestate = $('#fac-admins-include').is(':checked');
    if(togglestate == true) {
      $('.alert-'+companyid+'-facility').each(function(index) {
        $(this).addClass('td-disabled');
        $('.alert-'+companyid+'-facility input[type=checkbox]').attr('disabled', '');
      });
    } else {
      $('.alert-'+companyid+'-facility').each(function(index) {
        $(this).removeClass('td-disabled');
        $('.alert-'+companyid+'-facility input[type=checkbox]').attr('disabled', 'disabled');
      });
    }
  } else if(togglegroup == "company-admin") {
    var togglestate = $('#co-admins-include').is(':checked');
    if(togglestate == true) {
      $('.alert-'+companyid+'-company').each(function(index) {
        $(this).addClass('td-disabled');
        $('.alert-'+companyid+'-company input[type=checkbox]').attr('disabled', '');
      });
    } else {
      $('.alert-'+companyid+'-company').each(function(index) {
        $(this).removeClass('td-disabled');
        $('.alert-'+companyid+'-company input[type=checkbox]').attr('disabled', 'disabled');
      });
    }
  }
}

function addtodlqueue(fileid, f_c, facilityid, companyid) {
	$('.dlqueue_'+fileid).html("<a href='javascript:void(0);' onclick=\"dlqueueremove("+fileid+", '"+f_c+"', "+facilityid+", "+companyid+");\" title='Remove File from Download Queue'><img src='/images/icons/basket_delete.png' width='16' height='16'></a>");

  $('#dlqueuediv').html("<div class='loading'><img src='/images/spinner.gif'><br>Loading... Please wait.</div>");

	ajaxcall = 'display=addtodlqueue&fileid='+fileid+'&f_c='+f_c+'&facilityid='+facilityid+'&companyid='+companyid+'&fulllinks='+globaldlqueue;
	callAjax('setcontent', 'blank', ajaxcall);
}

function dlqueueremove(fileid, f_c, facilityid, companyid) {
	$('.dlqueue_'+fileid).html("<a href='javascript:void(0);' onclick=\"addtodlqueue("+fileid+", '"+f_c+"', "+facilityid+", "+companyid+");\" title='Add File to Download Queue'><img src='/images/icons/basket_add.png' width='16' height='16'></a>");

  $('#dlqueuediv').html("<div class='loading'><img src='/images/spinner.gif'><br>Loading... Please wait.</div>");

	ajaxcall = 'display=dlqueueremove&fileid='+fileid+'&fulllinks='+globaldlqueue;
	callAjax('setcontent', 'blank', ajaxcall);
}

function dlqueueempty() {
	$('#detailspanelcontainer').html('');
	$('#filedetails').html("<div style='padding: 5px;'>Your download queue has been emptied.</div>");
	
  $('#dlqueuediv').html("<div class='loading'><img src='/images/spinner.gif'><br>Loading... Please wait.</div>");

	ajaxcall = 'display=dlqueueempty&fulllinks='+globaldlqueue;
	callAjax('setcontent', 'blank', ajaxcall);
	$('.draggablehandle').removeClass('detailfocus');
}
