
YAHOO.namespace("Scramble");YAHOO.Scramble.baseurl='';var non_modals=[];var login_action='';var logout_action='';var confirmationCallback={scope:null,message:'',callback:null,argument:[]}
function confirmOK()
{this.hide();var cbFn=confirmationCallback.callback;var cbArgs=[];for(var i=0;i<confirmationCallback.argument.length;i++)
{cbArgs[i]=confirmationCallback.argument[i];}
cbArgs[cbArgs.length]=true;cbFn.apply(confirmationCallback.scope,cbArgs);}
function getConfirmation()
{var divConfirmMsg=document.getElementById('dlgConfirmText');divConfirmMsg.innerHTML=confirmationCallback.message
dlgConfirm.show();}
function alertDlg(msg,ttl)
{if(dlgMessage&&dlgMessage.show)
{document.getElementById('dlgMessageText').innerHTML=msg;if(ttl)
{dlgMessage.setHeader(ttl)}
else
{dlgMessage.setHeader('WhatCouldIt.Be?');}
dlgMessage.show();}
else
{alert(msg);}}
function formatTime(milliseconds)
{var seconds=parseInt(milliseconds/1000)%60;var minutes=parseInt(milliseconds/60000)%60;var hours=parseInt(milliseconds/3600000)%24;var s=seconds.toString();var m=minutes.toString();var h=hours.toString();if(s.length<2)s="0"+s;if(m.length<2)m="0"+m;if(h.length<2)h="0"+h;return m+':'+s;}
function validChars(txt,mask)
{var result=true;for(var i=0;i<txt.length;i++)
{if(mask.indexOf(txt.substr(i,1))<0)
{result=false;break;}}
return result;}
function checkComError(xml)
{var err=xml.documentElement.attributes.getNamedItem("error").value;if(err=="")return false;alertDlg('Sorry, there was an error: <br><br>'+err);return true;}
function comFailure(o)
{var errType=o.argument['errType'];if(!errType)errType='Sorry, there was an error: <br><br>';alertDlg(errType+o.status+'\n'+o.statusText);}
function hideNonModals()
{for(var i=0;i<non_modals.length;i++)
{non_modals[i].hide();}}
var charMaskEmail="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ._-0123456789@";var charMaskUser="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ._-0123456789@$#!{}[]():;+=";var MSG_EmailRequired="Please provide an e-mail address. Your e-mail address will be used as your login.";var MSG_InvalidEmail="The e-mail address you provided does not appear to be valid";var MSG_UserNameRequired="Please select a user name. The user name you select will be used to create a URL for your profile page.";var MSG_InvalidUserName="Sorry- that is not a valid user name. Your user name can contain only numbers, letters and these characters: ._@$#!{}[]():;+-=, but no spaces.";var MSG_UserNameNotAvailable="Sorry- that user name is not available. Please try another one.";var MSG_PasswordRequired="Please provide a password that is at least 5 characters long.";var MSG_PasswordConfirmRequired="Please confirm your password.";var MSG_PasswordMismatch="Your passwords do not match. Please try again.";var MSG_LoginWelcome="Welcome Back @NAME!";var MSG_RegisterWelcome="Thank you for registering @NAME!";var MSG_QuickLinks='<ul id="qlinks">Quick Links:';MSG_QuickLinks+='<li><a href="@BASE@NAME">My Profile</a>';MSG_QuickLinks+='<li><a href="@BASE@NAME/messages">My Messages (@MESSAGES unread)</a>';MSG_QuickLinks+='<li><a href="@BASE@NAME/friends/pending">My Friend Requests (@REQUESTS pending)</a>';MSG_QuickLinks+='</ul>';var user={name:'Anonymous',auth:false}
function login()
{pnlLogin.hide();pnlLoading.show();var callback={success:loginSuccess,failure:loginFailure,argument:[]};YAHOO.util.Connect.setForm("frmLogin");var request=YAHOO.util.Connect.asyncRequest("POST",YAHOO.Scramble.baseurl+"scramble_server.aspx?do=lgn",callback,null);}
function loginSuccess(o)
{pnlLoading.hide();if(checkComError(o.responseXML))return false;var xmlUser=o.responseXML.documentElement.childNodes[0];var userName=xmlUser.attributes.getNamedItem("name").value;var requests=xmlUser.attributes.getNamedItem("pendingFriendRequests").value;var messages=xmlUser.attributes.getNamedItem("unreadMessages").value;user.name=userName;user.auth=true;if(_onLoginCallback)_onLoginCallback(userName,messages,requests);}
function loginFailure(o)
{pnlLoading.hide();alertDlg(o.status+'\n'+o.statusText);}
function register()
{if(validateReg())
{pnlRegister.hide();pnlLoading.show();var callback={success:registerSuccess,failure:registerFailure,argument:[]};YAHOO.util.Connect.setForm("frmReg");var request=YAHOO.util.Connect.asyncRequest("POST",YAHOO.Scramble.baseurl+"scramble_server.aspx?do=reg",callback,null);}}
function registerSuccess(o)
{pnlLoading.hide();if(checkComError(o.responseXML))return false;var xmlUser=o.responseXML.documentElement.childNodes[0];var userName=xmlUser.attributes.getNamedItem("name").value;var requests=xmlUser.attributes.getNamedItem("pendingFriendRequests").value;var messages=xmlUser.attributes.getNamedItem("unreadMessages").value;user.name=userName;user.auth=true;if(_onRegisterCallback)_onRegisterCallback(userName,messages,requests);}
function registerFailure(o)
{pnlLoading.hide();alert(o.status+'\n'+o.statusText);}
function logout()
{var request=YAHOO.util.Connect.asyncRequest("GET",YAHOO.Scramble.baseurl+"scramble_server.aspx?do=lgo",null,null);var username=user.name;user.name='Anonymous'
user.auth=false;if(_onLogoutCallback)_onLogoutCallback(username);}
function validateReg()
{var valid=true;var email=document.getElementById("txtEmail2");var pwd1=document.getElementById("txtPassword2");var pwd2=document.getElementById("txtPwdConfirm");var usr=document.getElementById("txtUserName");email.style["backgroundColor"]="#ffffff";pwd1.style["backgroundColor"]="#ffffff";pwd2.style["backgroundColor"]="#ffffff";usr.style["backgroundColor"]="#ffffff";var msg=[];var ctl=[];var validationErr=validateEmail(email.value);if(validationErr!='')
{msg[msg.length]=validationErr;ctl[ctl.length]=email;}
validationErr=validateName(usr.value);if(validationErr!='')
{msg[msg.length]=validationErr;ctl[ctl.length]=usr;}
if(!pwd1.value)
{msg[msg.length]=MSG_PasswordRequired;ctl[ctl.length]=pwd1;}
else if(!pwd2.value)
{msg[msg.length]=MSG_PasswordConfirmRequired;ctl[ctl.length]=pwd2;}
else if(pwd1.value!=pwd2.value)
{msg[msg.length]=MSG_PasswordMismatch;ctl[ctl.length]=pwd2;}
if(msg.length>0)
{for(var c in ctl)
{ctl[c].style["backgroundColor"]="yellow";}
var msg="** "+msg.join("\n\n** ");alert(msg);valid=false;}
return valid;}
function validateEmail(email)
{var result='';if(!email)
{result=MSG_EmailRequired;}
else if(email.length<8)
{result=MSG_InvalidEmail;}
else
{var at=email.indexOf("@");if(at<1)
{result=MSG_InvalidEmail;}
else if(email.indexOf("@",at+1)>0)
{result=MSG_InvalidEmail;}
else if(email.lastIndexOf(".")<at+4)
{result=MSG_InvalidEmail;}
else if(email.lastIndexOf(".")>email.length-3)
{result=MSG_InvalidEmail;}
else if(!validChars(email,charMaskEmail))
{result=MSG_InvalidEmail;}}
return result;}
function validateName(name)
{var result='';if(!name)
{result=MSG_UserNameRequired;}
else if(!validChars(name,charMaskUser))
{result=MSG_InvalidUserName;}
return result;}
YAHOO.namespace("Uploader");YAHOO.Uploader.upldInit=function()
{YAHOO.Uploader.dlgUpld=new YAHOO.widget.Dialog("dlgUpld",{modal:true,visible:false,width:"350px",fixedcenter:true,constraintoviewport:true,draggable:true});var upldListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:YAHOO.Uploader.cancelUpload});YAHOO.Uploader.dlgUpld.cfg.queueProperty("keylisteners",upldListeners);YAHOO.Uploader.dlgUpld.cfg.queueProperty("buttons",[{text:'Upload',handler:YAHOO.Uploader.sendFile},{text:'Cancel',handler:YAHOO.Uploader.cancelUpload}]);YAHOO.Uploader.dlgUpld.hideMaskEvent.subscribe(YAHOO.Uploader.cancelUpload);YAHOO.Uploader.dlgUpld.render();document.getElementById('dlgUpld').style["display"]='';}
YAHOO.Uploader.cancelUpload=function()
{YAHOO.Uploader.dlgUpld.hide();if(typeof(_onSendFileCancel)=='function')_onSendFileCancel();}
YAHOO.Uploader.sendFile=function()
{this.hide();if(_onSendFileStart)_onSendFileStart();var formObj=document.getElementById('frmUpload');YAHOO.util.Connect.setForm(formObj,true,true)
var callback={upload:YAHOO.Uploader.sendFileCallback,argument:[]};var cObj=YAHOO.util.Connect.asyncRequest('POST',YAHOO.Scramble.baseurl+'upload.aspx',callback);}
YAHOO.Uploader.sendFileCallback=function(o)
{var xml=o.responseXML;var err=xml.documentElement.attributes.getNamedItem("error").value;if(err!="")
{alert(err);return false;}
var file=xml.documentElement.childNodes[0];var fileId=file.attributes.getNamedItem("id").value;if(typeof(_onSendFileSuccess)=='function')_onSendFileSuccess(xml);}
function uploadFile()
{document.getElementById('fileUpload').value='';document.getElementById('fileCap1').value='';YAHOO.Uploader.dlgUpld.show();}
YAHOO.util.Event.onDOMReady(YAHOO.Uploader.upldInit);var pnlTerms;var pnlLogin;var pnlRegister;var pnlPreview;var dlgSignout;var dlgMessageTimeout;var dlgReport;var dlgConfirm;var dlgMessage;var pnlLoading;var dlgRtrPwd;function initDialogs()
{pnlLogin=new YAHOO.widget.Panel("pnlLogin",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:320});var pnlLoginListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){pnlLogin.hide();}});pnlLogin.cfg.queueProperty("keylisteners",pnlLoginListeners);pnlLogin.render();document.getElementById('pnlLogin').style['display']='';pnlTerms=new YAHOO.widget.Panel("pnlTerms",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:320});var pnlTermsListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){pnlTerms.hide();}});pnlTerms.cfg.queueProperty("keylisteners",pnlTermsListeners);pnlTerms.render();document.getElementById('pnlTerms').style['display']='';pnlRegister=new YAHOO.widget.Panel("pnlRegister",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:320});var pnlRegisterListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){pnlRegister.hide();}});pnlRegister.cfg.queueProperty("keylisteners",pnlRegisterListeners);pnlRegister.render();document.getElementById('pnlRegister').style['display']='';pnlPreview=new YAHOO.widget.Panel("pnlPreview",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:300});var pnlPreviewListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){pnlPreview.hide();}});pnlPreview.cfg.queueProperty("keylisteners",pnlPreviewListeners);pnlPreview.render();document.getElementById('pnlPreview').style['display']='';dlgSignout=new YAHOO.widget.Dialog("dlgSignout",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,zIndex:9999});var dlgSignoutListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){dlgSignout.hide();}});dlgSignout.cfg.queueProperty("keylisteners",dlgSignoutListeners);dlgSignout.cfg.queueProperty("buttons",[{text:'Sign-Out',handler:logout},{text:'Cancel',handler:dlgSignout.hide}]);dlgSignout.render();document.getElementById('dlgSignout').style['display']='';dlgReport=new YAHOO.widget.Dialog("dlgReport",{modal:false,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:300,zIndex:9999});var dlgReportListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){dlgReport.hide();}});dlgReport.cfg.queueProperty("keylisteners",dlgReportListeners);dlgReport.cfg.queueProperty("buttons",[{text:'send',handler:flagImage},{text:'cancel',handler:dlgReport.hide}]);dlgReport.render();document.getElementById('dlgReport').style['display']='';non_modals[non_modals.length]=dlgReport;pnlLoading=new YAHOO.widget.Panel("pnlLoading",{modal:true,close:false,visible:false,draggable:false,fixedcenter:true,constraintoviewport:true,width:250,height:250});pnlLoading.render();document.getElementById('pnlLoading').style['display']='';dlgConfirm=new YAHOO.widget.Dialog("dlgConfirm",{modal:true,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:300,zIndex:9999});var dlgConfirmListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){dlgConfirm.hide();}});dlgConfirm.cfg.queueProperty("keylisteners",dlgConfirmListeners);dlgConfirm.cfg.queueProperty("buttons",[{text:'ok',handler:confirmOK},{text:'cancel',handler:dlgConfirm.hide}]);dlgConfirm.render();document.getElementById('dlgConfirm').style['display']='';dlgMessage=new YAHOO.widget.Dialog("dlgMessage",{modal:false,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:300,zIndex:9999});var dlgMessageListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){dlgMessage.hide();}});dlgMessage.cfg.queueProperty("keylisteners",dlgMessageListeners);dlgMessage.cfg.queueProperty("buttons",[{text:'close',handler:dlgMessage.hide}]);dlgMessage.render();document.getElementById('dlgMessage').style['display']='';non_modals[non_modals.length]=dlgMessage;dlgRtrPwd=new YAHOO.widget.Dialog("dlgRtrPwd",{modal:false,close:true,visible:false,draggable:true,fixedcenter:true,constraintoviewport:true,width:300,zIndex:9999});var dlgRtrPwdListeners=new YAHOO.util.KeyListener(document,{keys:27},{fn:function(){dlgRtrPwd.hide();}});dlgRtrPwd.cfg.queueProperty("keylisteners",dlgRtrPwdListeners);dlgRtrPwd.cfg.queueProperty("buttons",[{text:'submit',handler:resetPassword},{text:'cancel',handler:dlgRtrPwd.hide}]);dlgRtrPwd.render();document.getElementById('dlgRtrPwd').style['display']='';non_modals[non_modals.length]=dlgRtrPwd;setMenus();}
function report(e)
{if(e)YAHOO.util.Event.preventDefault(e);hideNonModals();document.getElementById('reportcategory').selectedIndex=0;document.getElementById('reportcomment').value='';dlgReport.show();}
function flagImage()
{dlgReport.hide();pnlLoading.show();document.getElementById('reportid').value=pdata.id;var callback={success:flagImageSuccess,failure:flagImageFailure,argument:[]};YAHOO.util.Connect.setForm('frmreport');var request=YAHOO.util.Connect.asyncRequest('POST',YAHOO.Scramble.baseurl+'scramble_server.aspx?do=flag',callback,null);}
function flagImageSuccess(o)
{pnlLoading.hide();if(checkComError(o.responseXML))return false;showMessage('This picture has now been flagged for review. Thank you for helping keep WhatCouldIt.Be fun for everyone!');}
function flagImageFailure(o)
{pnlLoading.hide();alert('Error reporting picture: '+o.status+'\n'+o.statusText);}
function showMessage(message,timeout)
{hideNonModals();document.getElementById('dlgMessageText').innerHTML=message;dlgMessage.show();if(timeout==null)timeout=5000;if(timeout>0)dlgMessageTimeout=setTimeout('dlgMessage.hide()',timeout);}
function signin(e)
{if(e)YAHOO.util.Event.preventDefault(e);hideNonModals();pnlLogin.show();}
function signup(e)
{if(e)YAHOO.util.Event.preventDefault(e);hideNonModals();document.getElementById('chkTerms').checked=false;setRegTerms();pnlRegister.show();}
function signout(e)
{if(e)YAHOO.util.Event.preventDefault(e);hideNonModals();dlgSignout.show();}
function regTerms(e)
{if(e)YAHOO.util.Event.preventDefault(e);document.getElementById('rdoTermsY').checked=false;document.getElementById('rdoTermsN').checked=false;pnlRegister.hide();pnlTerms.reference='reg';pnlTerms.show();}
function uplTerms()
{document.getElementById('rdoTermsY').checked=false;document.getElementById('rdoTermsN').checked=false;pnlTerms.reference='upl';pnlTerms.show();}
function closeTerms(e)
{if(e)YAHOO.util.Event.preventDefault(e);pnlTerms.hide();var t=document.getElementById('rdoTermsY')
switch(pnlTerms.reference)
{case'upl':if(t.checked==true)
{uploadFile();}
break;case'reg':document.getElementById('chkTerms').checked=t.checked;setRegTerms();pnlRegister.show();break;}}
function setRegTerms()
{var btn=document.getElementById("btnRegister");var frm=document.getElementById('frmReg');var chk=frm.chkTerms;if(chk.checked==true)
{btn.style["color"]="black";YAHOO.util.Event.addListener(btn,"click",register);}
else
{btn.style["color"]="#666666";YAHOO.util.Event.removeListener(btn,"click");}}
function upload(e)
{if(e)YAHOO.util.Event.preventDefault(e);hideNonModals();pnlPreview.hide();if(user.auth==false)
{document.getElementById('fileSharing').style["display"]="none";document.getElementById('anonMessage').style["display"]="block";document.getElementById('rdoSharePublic').checked=true;uplTerms();}
else
{document.getElementById('fileSharing').style["display"]="block";document.getElementById('anonMessage').style["display"]="none";uploadFile();}}
function _onSendFileStart()
{var img=document.getElementById('imgPreview');var divpreview=document.getElementById('pvwback');YAHOO.util.Dom.addClass(divpreview,'previewLoading');img.setAttribute('src',YAHOO.Scramble.baseurl+'img/blank.gif');pnlPreview.setHeader('Upload File');pnlPreview.show();}
function _onSendFileSuccess(xml)
{var image=xml.documentElement.childNodes[0];var id=image.attributes.getNamedItem('id').value;var name=image.attributes.getNamedItem('fileName').value;var shortKey=image.attributes.getNamedItem('shortKey').value;var divpreview=document.getElementById('pvwback');YAHOO.util.Dom.removeClass(divpreview,'previewLoading');document.getElementById('imgPreview').setAttribute('src',YAHOO.Scramble.baseurl+'img.aspx?s=s&id='+id);document.getElementById('txtPreview').value=YAHOO.Scramble.baseurl+'?'+shortKey;document.getElementById('hdnUploadKey').value=shortKey;document.getElementById('lnkPreview').setAttribute('href',YAHOO.Scramble.baseurl+'?'+shortKey);pnlPreview.setHeader(name);}
function _onSendFileCancel()
{pnlPreview.hide();}
function _onLoginCallback(username,messages,requests)
{var message=MSG_LoginWelcome+'<br>'+MSG_QuickLinks;var rxpName=new RegExp('@NAME','gi');var rxpBase=new RegExp('@BASE','gi');message=message.replace(rxpName,username);message=message.replace(rxpBase,YAHOO.Scramble.baseurl);message=message.replace('@MESSAGES',messages);message=message.replace('@REQUESTS',requests);document.getElementById('mnuPrfl').href=YAHOO.Scramble.baseurl+username;if(login_action!='')
{dlgMessage.hideEvent.subscribe(_loginreload);}
else
{setMenus();}
showMessage(message,0);}
function _onRegisterCallback(username,messages,requests)
{var message=MSG_RegisterWelcome+'<br>'+MSG_QuickLinks;var rxpName=new RegExp('@NAME','gi');var rxpBase=new RegExp('@BASE','gi');message=message.replace(rxpName,username);message=message.replace(rxpBase,YAHOO.Scramble.baseurl);message=message.replace('@MESSAGES',messages);message=message.replace('@REQUESTS',requests);document.getElementById('mnuPrfl').href=YAHOO.Scramble.baseurl+username;setMenus();showMessage(message,0);}
function _onLogoutCallback(username)
{var message='Goodbye '+username+'!';dlgSignout.hide();if(logout_action!='')
{dlgMessage.hideEvent.subscribe(_logoutreload);}
else
{setMenus();}
showMessage(message);}
function _loginreload()
{pnlLoading.show();if(login_action=='reload')
{document.location.reload();}
else
{document.location.href=login_action;}}
function _logoutreload()
{pnlLoading.show();if(logout_action=='reload')
{document.location.reload();}
else
{document.location.href=logout_action;}}
function retrievePassword(e)
{if(e)YAHOO.util.Event.preventDefault(e);pnlLogin.hide();dlgRtrPwd.show();}
function resetPassword()
{var callback={success:resetPasswordSuccess,failure:resetPasswordFailure,argument:[]};YAHOO.util.Connect.setForm("frmRtrPwd");var request=YAHOO.util.Connect.asyncRequest("POST",YAHOO.Scramble.baseurl+"scramble_server.aspx?do=rtrpwd",callback,null);}
function resetPasswordSuccess(o)
{if(checkComError(o.responseXML))return false;dlgRtrPwd.hide();alertDlg('Your password has been reset. You should receive an email with your new password shortly.');}
function resetPasswordFailure(o)
{alertDlg('Sorry, there was a problem retrieving your password:<br><br> '+o.status+'\n'+o.statusText);}
function setMenus()
{if(user.auth==true)
{document.getElementById('mnuSgni').style["display"]="none";document.getElementById('mnuSgnu').style["display"]="none";document.getElementById('mnuSgno').style["display"]="inline";document.getElementById('mnuPrfl').style["display"]="inline";}
else
{document.getElementById('mnuSgni').style["display"]="inline";document.getElementById('mnuSgnu').style["display"]="inline";document.getElementById('mnuSgno').style["display"]="none";document.getElementById('mnuPrfl').style["display"]="none";}}
YAHOO.util.Event.onDOMReady(initDialogs);
