 
YAHOO.widgets.Notes=function(elIds,params)
{this.elIds=elIds;this.notes=YAHOO.util.Dom.get(this.elIds.notes);this.notesCount=YAHOO.util.Dom.get(this.elIds.notesCount);this.hiddenNotes=YAHOO.util.Dom.get(this.elIds.hiddenNotes);this.moreNotesLink=YAHOO.util.Dom.get(this.elIds.moreNotesLink);this.noteAddForm=YAHOO.util.Dom.get(this.elIds.noteAddForm);this.noteAddPending=YAHOO.util.Dom.get(this.elIds.noteAddPending);this.noteMessage=YAHOO.util.Dom.get(this.elIds.noteMessage);this.noteRecipientId=YAHOO.util.Dom.get(this.elIds.noteRecipientId);this.pendingNotes=YAHOO.util.Dom.get(this.elIds.pendingNotes);this.noteSubmitButton=YAHOO.util.Dom.get(this.elIds.noteSubmitButton);this.recipientType=params.recipientType||'user';this.recipientName=params.recipientName;this.defaultText=params.defaultText;this.displayMode=params.displayMode||'clipped';this.clipNum=params.clipNum||'5';this.onSetNoteStatus=new YAHOO.util.CustomEvent("onSetNoteStatus",this);this.onNoteAdd=new YAHOO.util.CustomEvent("onNoteAdd",this);this.deleteDialog;this.recording={filename:null,length:null};this.recordingReadyToSubmit=false;this.myInterval=new YAHOO.midomi.Interval(200,5);YAHOO.util.Event.addListener(window,"resize",this.showFlashRecorder,this,true);YAHOO.widget.Module.textResizeEvent.subscribe(this.showFlashRecorder,this,true);};YAHOO.widgets.Notes.prototype={toggleAddForm:function(forceState)
{if(forceState!='close'&&(forceState=='open'||YAHOO.util.Dom.hasClass(this.noteAddForm,'hidden'))){YAHOO.util.Dom.removeClass(this.noteAddForm,'hidden');YAHOO.util.Dom.addClass(this.noteAddPending,'hidden');this.noteMessage.focus();this.showFlashRecorder();}
else{YAHOO.util.Dom.addClass(this.noteAddForm,'hidden');}},openAddForm:function()
{this.toggleAddForm('open');},resetAddForm:function()
{this.noteMessage.value=this.defaultText;YAHOO.util.Dom.addClass(this.noteMessage,'grey');var els=this.noteAddForm.getElementsByTagName('INPUT');for(var i=0;i<els.length;i++){els[i].disabled=false;}
var flashMovie=getFlashMovieObject("voiceNoteRecorderMovie");if(flashMovie){flashMovie.TGotoLabel('/','reset');}
this.unsetRecording();},submitAddForm:function()
{var message=this.noteMessage.value.replace(/^\s*|\s*$/g,"");if(message==this.defaultText){message='';}
var recipientId=this.noteRecipientId.value;if(this.recordingReadyToSubmit!==true&&message.length==0){alert(JS_MSG.translate('Please record or type a note.'));return;}
if(message.length>1000){alert(JS_MSG.translate('Please limit your message to 1000 characters.'));return;}
var flashMovie=getFlashMovieObject("voiceNoteRecorderMovie");if(flashMovie){flashMovie.TGotoLabel('/','submitting');}
var els=this.noteAddForm.getElementsByTagName('INPUT');for(var i=0;i<els.length;i++){els[i].disabled=true;}
var handleSuccess=function(obj){var myObj=obj.argument[0];var responseData=eval('('+obj.responseText+')');if(responseData['login_status']=='FAIL'){myAccess.showLoginModal(responseData['post_id'],responseData['login_salt'],myObj.submitAddForm,myObj,null)
return;}
else if(responseData['post_id_status']=='FAIL'){myAccess.update_pids(responseData['post_id']);myObj.submitAddForm();return;}
if(responseData['status']=='pending'){YAHOO.util.Dom.removeClass(myObj.noteAddPending,'hidden');myObj.toggleAddForm('close');myObj.hideFlashRecorder();}
myStatus.setMessage(responseData.statusMessage);myObj.resetAddForm();var data={blinkId:responseData['blinkId']}
myObj.onNoteAdd.fire(data);};var handleFailure=function(obj)
{alert('We were unable to perform the selected action. Please try again.');};var callback={success:handleSuccess,failure:handleFailure,argument:[this]};var b64=new YAHOO.Crypto.Base64();var url="index.php?action=main.submit_note";var postData="&recipientType="+this.recipientType+"&to="+recipientId+"&message="+encodeURIComponent(b64.encode(message))+"&post_id="+YAHOO.util.Dom.get('post_id').value;if(this.recordingReadyToSubmit){postData+="&recording_filename="+this.recording.filename+"&recording_length="+this.recording.length;}
YAHOO.util.Connect.resetFormState();var request=YAHOO.util.Connect.asyncRequest('POST',url,callback,postData);YAHOO.util.Connect.resetFormState();},closeAddPendingBox:function()
{YAHOO.util.Dom.addClass(this.noteAddPending,'hidden');this.toggleAddForm('open');},setStatus:function(toStatus,fromStatus,noteId)
{var handleSuccess=function(obj){var myObj=obj.argument[0];var responseData=eval('('+obj.responseText+')');var fxn=function()
{myObj.setStatus(toStatus,fromStatus,noteId);}
if(responseData['login_status']=='FAIL'){myAccess.showLoginModal(responseData['post_id'],responseData['login_salt'],fxn,myObj,null)
return;}
else if(responseData['post_id_status']=='FAIL'){myAccess.update_pids(responseData['post_id']);fxn();return;}
if(responseData['status']=='PASS'){var blinkId=null;if(fromStatus=='pending'&&toStatus=='approved'){blinkId=responseData['blinkId'];}
var data={blinkId:responseData['blinkId']}
myObj.onSetNoteStatus.fire(data);}
myStatus.setMessage(responseData.statusMessage);};var handleFailure=function(obj)
{alert('We were unable to perform the selected action. Please try again.');};var callback={success:handleSuccess,failure:handleFailure,argument:[this]};var url="index.php?action=main.set_status_note";var postData="&note_id="+noteId+"&status="+toStatus+"&post_id="+YAHOO.util.Dom.get('post_id').value;var request=YAHOO.util.Connect.asyncRequest('POST',url,callback,postData);},openDeleteDialog:function(fxn)
{var myObj=this;myObj.hideFlashRecorder();var handleCancel=function(){this.hide();el=document.getElementById("noteDeleteDialog");el.parentNode.removeChild(el);myObj.showFlashRecorder();};var handleOk=function(){this.hide();el=document.getElementById("noteDeleteDialog");el.parentNode.removeChild(el);fxn();myObj.showFlashRecorder();};this.deleteDialog=new YAHOO.widget.SimpleDialog("noteDeleteDialog",{width:"300px",fixedcenter:true,visible:false,draggable:false,close:true,text:JS_MSG.translate('Are you sure you want to permanently delete this item?'),icon:YAHOO.widget.SimpleDialog.ICON_WARN,constraintoviewport:true,buttons:[{text:JS_MSG.translate('Ok'),handler:handleOk,isDefault:true},{text:JS_MSG.translate('Cancel'),handler:handleCancel}]});this.deleteDialog.setHeader(JS_MSG.translate('Warning!'));this.deleteDialog.render(document.body);this.deleteDialog.show();},scrollToAddForm:function()
{this.noteMessage.focus();var posX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var posY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;var region=YAHOO.util.Region.getRegion(this.noteAddForm);if(region.left>posX)posX=region.left-40;if(region.top>posY)posY=region.top-40;if(posX<0)posX=0;if(posY<0)posY=0;window.scrollTo(posX,posY);var myAnim=new YAHOO.util.ColorAnim(this.noteMessage,{backgroundColor:{from:'#FFFF00',to:'#FFFFFF'}},0.5,YAHOO.util.Easing.easeOut);myAnim.animate();},scrollToSelectedNote:function()
{var posX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var posY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;var el=YAHOO.util.Dom.get('selectedNote');var region=YAHOO.util.Region.getRegion(el);if(region.left>posX)posX=region.left-40;if(region.top>posY)posY=region.top-100;if(posX<0)posX=0;if(posY<0)posY=0;window.scrollTo(posX,posY);},enableSubmitButton:function()
{this.noteSubmitButton.disabled=false;YAHOO.util.Dom.removeClass(this.noteSubmitButton,'disabled');},disableSubmitButton:function()
{this.noteSubmitButton.disabled=true;YAHOO.util.Dom.addClass(this.noteSubmitButton,'disabled');},showFlashRecorder:function()
{var fxn=function()
{var flash_space=YAHOO.util.Dom.get('voiceNoteRecorderFlashMovieSpace');var region=YAHOO.util.Region.getRegion(flash_space);if(!flash_space.scrollWidth||flash_space.scrollWidth==0){this.hideFlashRecorder();return;}
var flash_module=YAHOO.util.Dom.get('voiceNoteRecorderModule');YAHOO.util.Dom.setX(flash_module,region.left+1);YAHOO.util.Dom.setY(flash_module,region.top+1);var voiceRecorder=YAHOO.util.Dom.get("voiceNoteRecorderMovie");YAHOO.util.Dom.setStyle(voiceRecorder,'width','215px');YAHOO.util.Dom.setStyle(voiceRecorder,'height','138px');}
YAHOO.util.Event.onContentReady('voiceNoteRecorderFlashMovieSpace',fxn,this,true);this.myInterval.stop();this.myInterval.iEvent.unsubscribeAll();this.myInterval.iEvent.subscribe(fxn,this,true);YAHOO.util.Event.onContentReady('voiceNoteRecorderFlashMovieSpace',this.myInterval.activate,this.myInterval,true);},hideFlashRecorder:function()
{var voiceRecorder=YAHOO.util.Dom.get("voiceNoteRecorderMovie");YAHOO.util.Dom.setStyle(voiceRecorder,'width','1px');YAHOO.util.Dom.setStyle(voiceRecorder,'height','1px');var flash_module=YAHOO.util.Dom.get('voiceNoteRecorderModule');YAHOO.util.Dom.setX(flash_module,1);YAHOO.util.Dom.setY(flash_module,1);},setRecording:function(filename,length)
{this.recording.filename=filename;this.recording.length=length;this.recordingReadyToSubmit=true;},unsetRecording:function(filename,length)
{this.recording.filename=null;this.recording.length=null;this.recordingReadyToSubmit=false;}};if(navigator.appName&&navigator.appName.indexOf("Microsoft")!=-1&&navigator.userAgent.indexOf("Windows")!=-1&&navigator.userAgent.indexOf("Windows 3.1")==-1){document.write('<SCRIPT LANGUAGE=VBScript\> \n');document.write('on error resume next \n');document.write('Sub VoiceNoteRecorderMovie_FSCommand(ByVal command, ByVal args)\n');document.write(' call VoiceNoteRecorderMovie_DoFSCommand(command, args)\n');document.write('end sub\n');document.write('</SCRIPT\> \n');};function voiceNoteRecorderMovie_DoFSCommand(command,msg)
{var data=eval('('+msg+')');switch(data.type)
{case'stateChange':switch(data.state){case'RecordStart':notes.unsetRecording();notes.disableSubmitButton();break;case'RecordComplete':notes.setRecording(data.filename,data.length);notes.enableSubmitButton();break;default:break;}
break;case'release':switch(data.target){case'record_btn':notes.disableSubmitButton();break;case'reset_btn':notes.unsetRecording();break;default:break;}
default:break;}
var handleSuccess_flash_log=function(o){}
var handleFailure_flash_log=function(o){}
var callback_flash_log={success:handleSuccess_flash_log,failure:handleFailure_flash_log};var d=new Date();var postData="action=main.flash_log&time="+d.getTime();for(var item in data){postData+="&"+item+"="+data[item];}
var logReq=YAHOO.util.Connect.asyncRequest('GET',"index.php?"+postData,callback_flash_log);};
