

function killWindow(win) {
      unDim();
      $(win).hide();
  }


  function showWindow(win) {
      dim();
      $(win).show();
$$('body')[0].scrollTo(0);
  }

  WOFailCode = "<html><body><strong>The requested application was not found on this server.</strong></body></html>\n";
  reqType = "post";

  function WOValid(transporter) {
	var transporty = transporter;
      if (200 == transporty.status && transporty.responseText != WOFailCode) {
          return true;
      } else {
          return false;
      }
  }


  function showXHRWindow(win, xhr, abid, ab) {
	var pack = new Object();
	pack.panel = win;
	pack.file = curContext;
	pack.reset = Math.random()*100000000;
      var xhrshow = new Ajax.Updater(win, xhr, {method:reqType, parameters: pack, onComplete:function (transporta) {if ((200 == transporta.status && transporta.responseText != WOFailCode)) {dim();$(win).show();if (abid) {new Ajax.Updater(abid, abSource, {parameters: pack, method:reqType, onComplete:function (transport) {openABMain = ab;openAB = abid;curPanel=win;if ((200 == transport.status && transport.responseText != WOFailCode)) {initAB(openAB);} 
else if(transporta.status == 500){alert(transporta.responseText);unDim(); $(win).hide();}
else {$(abid).innerHTML = "Your Address Book is temporarily unavailable.";alert("We're sorry, but your address book is temporarily unavailable.\nYou can still specify recipients using the \"to\" field.");}}});}} 
else if(transport.status == 500){alert(transport.responseText);unDim(); $(win).hide();}
else {alert("We're sorry, this feature is unavailable at this time. Please try again.");unDim(); $(win).hide();}}});
  }


  function regChecks(abid) {
      var allUIDs = $$("#" + abid + " .UID");
      for (v = 0; v < allUIDs.length; v++) {
          allUIDs[v].test = allUIDs[v].checked;
          Element.extend(allUIDs[v]);
          allUIDs[v].observe("click", onRegClick);
      }
  }


  function onRegClick(event) {
      var element = $(Event.element(event));
      toggleChecked(element);
  }


  function getChecked(abid) {
      var allUIDs = $$("#" + abid + " .UID");
      var checkedlist = new Array;
      for (w = 0; w < allUIDs.length; w++) {
          if (allUIDs[w].checked) {
              checkedlist.push(allUIDs[w].id);
          }
      }
      return checkedlist;
  }


  function setHighlight(abid) {
      var allUIDs = $$("#" + abid + " .UID");
      for (g = 0; g < allUIDs.length; g++) {
          toggleChecked(allUIDs[g]);
      }
  }


  function toggleChecked(item) {
      var par = Element.extend(item.parentNode);
      if (item.checked) {
          par.addClassName("selected");
      } else {
          par.removeClassName("selected");
      }
  }


  function cancelAdd(abref) {
      var kill = $(abref);
      kill.removeClassName("addressOpen");
  }


  function showAdd(abref, editcode) {
      curEdit = editcode;
      var show = $(abref);
      var itemer = $(editcode);
      curNameField = $$("#" + abref + " .name")[0];
      curUserField = $$("#" + abref + " .email")[0];
      show.addClassName("addressOpen");
      if (editcode == "0") {
          $$("#" + abref + " .addhead")[0].show();
          $$("#" + abref + " .edithead")[0].hide();
	
		  		  		  curNameField.focus();

          curNameField.value = "";
          curUserField.value = "";
      } else {
          $$("#" + abref + " .addhead")[0].hide();
          $$("#" + abref + " .edithead")[0].show();
          var par = Element.extend(itemer.parentNode);
          var username = par.getElementsByClassName("d1");
          var useremail = par.getElementsByClassName("d2");
		  		  curNameField.focus();
			if(username[0].innerHTML != "&nbsp;"){
         			 curNameField.value = username[0].innerHTML.unescapeHTML();
			} else {
				     curNameField.value = "";

			}
          curUserField.value = useremail[0].innerHTML;
      }
  }


  function submitUser() {
	  if(ValidateForm(curUserField)){
	  
      var pack = new Object;
      pack.contact = curEdit;
	  pack.file = curContext;
      pack.name = curNameField.value;
      pack.email = curUserField.value;

      pack[curEdit] = true;
		var allUIDs = $$("#" + curPanel + " .UID");
	    for (w = 0; w < allUIDs.length; w++) {
	        pack[allUIDs[w].id] = allUIDs[w].checked;
	    }
      new Ajax.Updater(openAB, abModContact, {parameters:pack, method:reqType, onComplete:function (transport) {if (WOValid(transport)) {initAB(openAB);cancelAdd(openABMain);} 
		else if(transport.status == 500){initAB(openAB);cancelAdd(openABMain);alert(unescape(transport.getResponseHeader("X-Livescribe-Alert")));}
		else {$(openAB).innerHTML = "Your Address Book is temporarily unavailable.";alert("Sorry! We're unable to make changes to your address book at this time. Please try again.");}}});
	  }
}


	function submitEmail(){
		
		var pack = new Object;
			  pack.file = curContext;
      pack.to = $$("#"+curPanel+" .frombox INPUT")[0].getValue();
pack.message = $$("#"+curPanel+" TEXTAREA")[0].getValue();
	var allUIDs = $$("#" + curPanel + " .UID");
    for (w = 0; w < allUIDs.length; w++) {
        pack[allUIDs[w].id] = allUIDs[w].checked;
    }

	new Ajax.Request(emailSubmit, {parameters:pack, method:reqType, onComplete:function (transport) {if (WOValid(transport)) {killWindow(curPanel);} 
	else if(transport.status == 500){alert(transport.responseText);}
	else {alert("Sorry! We're unable to send this message right now. Please try again.");}}});
    
	}
	
	
		function submitAccess(){
		var pack = new Object;
		pack.file = curContext;
	  
		var allUIDs = $$("#" + curPanel + " .UID");
	    for (w = 0; w < allUIDs.length; w++) {
	        pack[allUIDs[w].id] = allUIDs[w].checked;
	    }

		new Ajax.Request(accessSubmit, {parameters:pack, method:reqType, onComplete:function (transport) {if (WOValid(transport)) {
																													  			var sharingfire3 = new Ajax.Updater('topNotice', topNotice, {evalScripts: true});

																													  killWindow(curPanel);} 
		else if(transport.status == 500){alert(transport.responseText);}
		else {alert("Sorry! We're unable to make changes to this file's access list. Please try again.");}}});

		}


  function regControls(abid) {
      var allDeletes = $$("#" + abid + " .delete");
      var allEdits = $$("#" + abid + " .edit");
      for (a = 0; a < allDeletes.length; a++) {
          Element.extend(allDeletes[a]);
          Element.extend(allEdits[a]);
          allDeletes[a].observe("click", onDelClick);
          allEdits[a].observe("click", onEditClick);
      }
  }


  function onDelClick(event) {
      var element = $(Event.element(event));
      var par = Element.extend(element.parentNode);
      var check = par.getElementsByClassName("UID");

		var pack = new Object;
		pack.file = curContext;
	  	pack.contact = check[0].id;
		pack.file = curContext;
		var allUIDs = $$("#" + curPanel + " .UID");
	    for (w = 0; w < allUIDs.length; w++) {
	        pack[allUIDs[w].id] = allUIDs[w].checked;
	    }

    var conf = confirm('Are you sure you want to delete this contact?');
if(conf){  
	new Ajax.Updater(openAB, abDelete, {parameters:pack, method:reqType, onComplete:function (transport) {if (WOValid(transport)) {initAB(openAB);} 
	else if(transport.status == 500){alert(transport.responseText);}
	else {$(openAB).innerHTML = "Your Address Book is temporarily unavailable.";alert("Sorry! We're unable to make changes to your address book at this time. Please try again.");}}});
}  
}


  function onEditClick(event) {
      var element = $(Event.element(event));
      var par = Element.extend(element.parentNode);
      var check = par.getElementsByClassName("UID");
      showAdd(openABMain, check[0].id);
  }


  function initAB(id) {
      regChecks(id);
      regControls(id);
      setHighlight(id);
  }


  function flagger() {
      $("btnFlag").hide();
      $("btnFlagOff").show();
  }



function fireSharing(url){
updateSidebar();
	var sharingfire = new Ajax.Updater('sharingUpdate', url, 
	{method:reqType, onComplete:function (transportx) {
		if ((200 == transportx.status && transportx.responseText != WOFailCode)) {
			var sharingfire2 = new Ajax.Updater('topNotice', topNotice, {evalScripts: true});
			updateSidebar();
			$('iEmail').observe('click', function(){
				showXHRWindow('specificEmailModal', emailPanel,'ablist0', 'ab0');
			});
			$('iList').observe('click', function(){
				showXHRWindow('accessModal', accessPanel, 'ablist1', 'ab1');
			});	
	} 
	
	else if(transportx.status == 500){alert(transportx.responseText);}
	else {alert("We're sorry, this feature is unavailable at this time. Please try again.");}}});
	
}

function showTool(tool){
	$(tool).show();
	$(tool).setStyle("z-index", "9999");
}

function hideTool(tool){
	$(tool).hide();
}

function updateSidebar(){
	
var sidebar2 = new Ajax.Updater('selectedTitle', sidebarUpdate);

}

function positionRightSide(){
	var myfiles = $$('#fileList LI');
	var count = 0;
	for (a = 0; a < myfiles.length; a++) {
		
		if(myfiles[a].id != "selectedFile"){
		count += myfiles[a].getHeight();
	} else {
		break;
	}

		
	}
	$('fileList').scrollTop = count;

}

function echeck(emailx) {
emaily = emailx;
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(emaily.value)) {
alert('This Email address is not valid');
return false;

}					
}
	
function ValidateForm(emailID){
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter an Email Address")
		return false
	}
	if (echeck(emailID)==false){
		return false
	}
	return true
}
 
function updateEmbedCode() {
	pattern = /[a-z\-]+\.livescribe\.com/i;
	server = location.href.match(pattern);
	swf = 'http://' + server + '/media/swf/embedPlayer.swf';
	width = 228;
	height = 316;
	embedversion = 1;
	
	embedString = '<div class="pencast"><a href="' + embedLinkDA + '" target="_blank">' + $('divEmbedCode').innerHTML + '</a><br /><small>brought to you by <a href="http://www.livescribe.com/" target="_blank">Livescribe</a></small><br /><object width="' + width + '" height="' + height + '"><param name="movie" value="' + swf + '"></param><param name="FlashVars" value="path=' + escape(embedXMLDA) + '&amp;embedversion=' + embedversion + '"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="' + swf + '?path=' + escape(embedXMLDA) + '&amp;embedversion=' + embedversion + '" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="' + width + '" height="' + height + '"></embed></object></div>';
	$('txtEmbedCode').value = embedString;
}