Files
leanote/public/js/common-min.js
2015-01-08 23:27:13 +08:00

1 line
18 KiB
JavaScript

var LEA={};var Notebook={cache:{}};var Note={cache:{}};var Tag={};var Notebook={};var Share={};var Mobile={};var LeaAce={};var Converter;var MarkdownEditor;var ScrollLink;var MD;function trimLeft(str,substr){if(!substr||substr==" "){return $.trim(str)}while(str.indexOf(substr)==0){str=str.substring(substr.length)}return str}function json(str){return eval("("+str+")")}function t(){var args=arguments;if(args.length<=1){return args[0]}var text=args[0];if(!text){return text}var pattern="LEAAEL";text=text.replace(/\?/g,pattern);for(var i=1;i<=args.length;++i){text=text.replace(pattern,args[i])}return text}var tt=t;function arrayEqual(a,b){a=a||[];b=b||[];return a.join(",")==b.join(",")}function isArray(obj){return Object.prototype.toString.call(obj)==="[object Array]"}function isEmpty(obj){if(!obj){return true}if(isArray(obj)){if(obj.length==0){return true}}return false}function getFormJsonData(formId){var data=formArrDataToJson($("#"+formId).serializeArray());return data}function formArrDataToJson(arrData){var datas={};var arrObj={};for(var i in arrData){var attr=arrData[i].name;var value=arrData[i].value;if(attr.substring(attr.length-2,attr.length)=="[]"){attr=attr.substring(0,attr.length-2);if(arrObj[attr]==undefined){arrObj[attr]=[value]}else{arrObj[attr].push(value)}continue}datas[attr]=value}return $.extend(datas,arrObj)}function formSerializeDataToJson(formSerializeData){var arr=formSerializeData.split("&");var datas={};var arrObj={};for(var i=0;i<arr.length;++i){var each=arr[i].split("=");var attr=decodeURI(each[0]);var value=decodeURI(each[1]);if(attr.substring(attr.length-2,attr.length)=="[]"){attr=attr.substring(0,attr.length-2);if(arrObj[attr]==undefined){arrObj[attr]=[value]}else{arrObj[attr].push(value)}continue}datas[attr]=value}return $.extend(datas,arrObj)}function _ajaxCallback(ret,successFunc,failureFunc){if(ret===true||ret=="true"||typeof ret=="object"){if(ret&&typeof ret=="object"){if(ret.Msg=="NOTLOGIN"){alert("你还没有登录, 请先登录!");return}}if(typeof successFunc=="function"){successFunc(ret)}}else{if(typeof failureFunc=="function"){failureFunc(ret)}else{alert("error!")}}}function _ajax(type,url,param,successFunc,failureFunc,async){log("-------------------ajax:");log(url);log(param);if(typeof async=="undefined"){async=true}else{async=false}return $.ajax({type:type,url:url,data:param,async:async,success:function(ret){_ajaxCallback(ret,successFunc,failureFunc)},error:function(ret){_ajaxCallback(ret,successFunc,failureFunc)}})}function ajaxGet(url,param,successFunc,failureFunc,async){return _ajax("GET",url,param,successFunc,failureFunc,async)}function ajaxPost(url,param,successFunc,failureFunc,async){_ajax("POST",url,param,successFunc,failureFunc,async)}function ajaxPostJson(url,param,successFunc,failureFunc,async){log("-------------------ajaxPostJson:");log(url);log(param);if(typeof async=="undefined"){async=true}else{async=false}$.ajax({url:url,type:"POST",contentType:"application/json; charset=utf-8",datatype:"json",async:async,data:JSON.stringify(param),success:function(ret,stats){_ajaxCallback(ret,successFunc,failureFunc)},error:function(ret){_ajaxCallback(ret,successFunc,failureFunc)}})}function findParents(target,selector){if($(target).is(selector)){return $(target)}var parents=$(target).parents();for(var i=0;i<parents.length;++i){log(parents.eq(i));if(parents.eq(i).is(selector)){return parents.seq(i)}}return null}function getVendorPrefix(){var body=document.body||document.documentElement,style=body.style,vendor=["webkit","khtml","moz","ms","o"],i=0;while(i<vendor.length){if(typeof style[vendor[i]+"Transition"]==="string"){return vendor[i]}i++}}function editorIframeTabindex(index){var $i=$("#editorContent");$i.attr("tabindex",index);setTimeout(function(){$i.attr("tabindex",index)},500);setTimeout(function(){$i.attr("tabindex",index)},1e3)}LEA.isM=false;LEA.isMarkdownEditor=function(){return LEA.isM};function switchEditor(isMarkdown){LEA.isM=isMarkdown;if(!isMarkdown){$("#editor").show();$("#mdEditor").css("z-index",1).hide();editorIframeTabindex(2);$("#wmd-input").attr("tabindex",3);$("#leanoteNav").show()}else{$("#mdEditor").css("z-index",3).show();editorIframeTabindex(3);$("#wmd-input").attr("tabindex",2);$("#leanoteNav").hide()}}var previewToken="<div style='display: none'>FORTOKEN</div>";var clearIntervalForSetContent;function setEditorContent(content,isMarkdown,preview){if(!content){content=""}if(clearIntervalForSetContent){clearInterval(clearIntervalForSetContent)}if(!isMarkdown){$("#editorContent").html(content);if(typeof tinymce!="undefined"&&tinymce.activeEditor){var editor=tinymce.activeEditor;editor.setContent(content);editor.undoManager.clear()}else{clearIntervalForSetContent=setTimeout(function(){setEditorContent(content,false)},100)}}else{if(MD){MD.setContent(content)}else{clearIntervalForSetContent=setTimeout(function(){setEditorContent(content,true)},100)}}}function previewIsEmpty(preview){if(!preview||preview.substr(0,previewToken.length)==previewToken){return true}return false}function getEditorContent(isMarkdown){if(!isMarkdown){var editor=tinymce.activeEditor;if(editor){var content=$(editor.getBody()).clone();content.find(".toggle-raw").remove();var pres=content.find("pre");for(var i=0;i<pres.length;++i){var pre=pres.eq(i);var id=pre.attr("id");var aceEditor=LeaAce.getAce(id);if(aceEditor){var val=aceEditor.getValue();val=val.replace(/</g,"&lt").replace(/>/g,"&gt");pre.removeAttr("style","").removeAttr("contenteditable").removeClass("ace_editor");pre.html(val)}}content.find("pinit").remove();content.find(".thunderpin").remove();content.find(".pin").parent().remove();content=$(content).html();if(content){while(true){var lastEndScriptPos=content.lastIndexOf("</script>");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("<script ");if(lastScriptPos==-1){lastScriptPos=content.lastIndexOf("<script>")}if(lastScriptPos!=-1){content=content.substring(0,lastScriptPos)}else{return content}}else{return content}}}return content}}else{return[MD.getContent(),"<div>"+$("#preview-contents").html()+"</div>"]}}LEA.editorStatus=true;function disableEditor(){var editor=tinymce.activeEditor;if(editor){editor.hide();LEA.editorStatus=false;$("#mceTollbarMark").show().css("z-index",1e3)}}function enableEditor(){if(LEA.editorStatus){return}$("#mceTollbarMark").css("z-index",-1).hide();var editor=tinymce.activeEditor;if(editor){editor.show()}}function showDialog(id,options){$("#leanoteDialog #modalTitle").html(options.title);$("#leanoteDialog .modal-body").html($("#"+id+" .modal-body").html());$("#leanoteDialog .modal-footer").html($("#"+id+" .modal-footer").html());delete options.title;options.show=true;$("#leanoteDialog").modal(options)}function hideDialog(timeout){if(!timeout){timeout=0}setTimeout(function(){$("#leanoteDialog").modal("hide")},timeout)}function closeDialog(){$(".modal").modal("hide")}function showDialog2(id,options){options=options||{};options.show=true;$(id).modal(options)}function hideDialog2(id,timeout){if(!timeout){timeout=0}setTimeout(function(){$(id).modal("hide")},timeout)}function showDialogRemote(url,data){data=data||{};url+="?";for(var i in data){url+=i+"="+data[i]+"&"}$("#leanoteDialogRemote").modal({remote:url})}function hideDialogRemote(timeout){if(timeout){setTimeout(function(){$("#leanoteDialogRemote").modal("hide")},timeout)}else{$("#leanoteDialogRemote").modal("hide")}}$(function(){if($.pnotify){$.pnotify.defaults.delay=1e3}});function notifyInfo(text){$.pnotify({title:"通知",text:text,type:"info",styling:"bootstrap"})}function notifyError(text){$.pnotify.defaults.delay=2e3;$.pnotify({title:"通知",text:text,type:"error",styling:"bootstrap"})}function notifySuccess(text){$.pnotify({title:"通知",text:text,type:"success",styling:"bootstrap"})}Date.prototype.format=function(fmt){var o={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};if(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(var k in o)if(new RegExp("("+k+")").test(fmt))fmt=fmt.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));return fmt};function goNowToDatetime(goNow){if(!goNow){return""}return goNow.substr(0,10)+" "+goNow.substr(11,8)}function getCurDate(){return(new Date).format("yyyy-M-d")}function enter(parent,children,func){if(!parent){parent="body"}$(parent).on("keydown",children,function(e){if(e.keyCode==13){func.call(this)}})}function enterBlur(parent,children){if(!parent){parent="body"}if(!children){children=parent;parent="body"}$(parent).on("keydown",children,function(e){if(e.keyCode==13){$(this).trigger("blur")}})}function getObjectId(){return ObjectId()}function resizeEditor(second){var ifrParent=$("#editorContent_ifr").parent();ifrParent.css("overflow","auto");var height=$("#editorContent").height();ifrParent.height(height);$("#editorContent_ifr").height(height);$("#editorContent").css("top",$("#mceToolbar").height())}function showMsg(msg,timeout){$("#msg").html(msg);if(timeout){setTimeout(function(){$("#msg").html("")},timeout)}}function showMsg2(id,msg,timeout){$(id).html(msg);if(timeout){setTimeout(function(){$(id).html("")},timeout)}}function showAlert(id,msg,type,id2Focus){$(id).html(msg).removeClass("alert-danger").removeClass("alert-success").removeClass("alert-warning").addClass("alert-"+type).show();if(id2Focus){$(id2Focus).focus()}}function hideAlert(id,timeout){if(timeout){setTimeout(function(){$(id).hide()},timeout)}else{$(id).hide()}}function post(url,param,func,btnId){var btnPreText;if(btnId){$(btnId).button("loading")}ajaxPost(url,param,function(ret){if(btnId){$(btnId).button("reset")}if(typeof ret=="object"){if(typeof func=="function"){func(ret)}}else{alert("leanote出现了错误!")}})}function isEmail(email){var myreg=/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[0-9a-zA-Z]{2,3}$/;return myreg.test(email)}function isEmailFromInput(inputId,msgId,selfBlankMsg,selfInvalidMsg){var val=$(inputId).val();var msg=function(){};if(msgId){msg=function(msgId,msg){showAlert(msgId,msg,"danger",inputId)}}if(!val){msg(msgId,selfBlankMsg||getMsg("inputEmail"))}else if(!isEmail(val)){msg(msgId,selfInvalidMsg||getMsg("errorEmail"))}else{return val}}function initCopy(aId,postFunc){var clip=new ZeroClipboard(document.getElementById(aId),{moviePath:"/js/ZeroClipboard/ZeroClipboard.swf"});clip.on("complete",function(client,args){postFunc(args)})}function showLoading(){$("#loading").css("visibility","visible")}function hideLoading(){$("#loading").css("visibility","hidden")}function setCookie(c_name,value,expiredays){var exdate=new Date;exdate.setDate(exdate.getDate()+expiredays);document.cookie=c_name+"="+escape(value)+(expiredays==null?"":";expires="+exdate.toGMTString())}function logout(){setCookie("LEANOTE_SESSION","",-1);location.href=UrlPrefix+"/logout?id=1"}function getImageSize(url,callback){var img=document.createElement("img");function done(width,height){img.parentNode.removeChild(img);callback({width:width,height:height})}img.onload=function(){done(img.clientWidth,img.clientHeight)};img.onerror=function(){done()};img.src=url;var style=img.style;style.visibility="hidden";style.position="fixed";style.bottom=style.left=0;style.width=style.height="auto";document.body.appendChild(img)}function hiddenIframeBorder(){$(".mce-window iframe").attr("frameborder","no").attr("scrolling","no")}var email2LoginAddress={"qq.com":"http://mail.qq.com","gmail.com":"http://mail.google.com","sina.com":"http://mail.sina.com.cn","163.com":"http://mail.163.com","126.com":"http://mail.126.com","yeah.net":"http://www.yeah.net/","sohu.com":"http://mail.sohu.com/","tom.com":"http://mail.tom.com/","sogou.com":"http://mail.sogou.com/","139.com":"http://mail.10086.cn/","hotmail.com":"http://www.hotmail.com","live.com":"http://login.live.com/","live.cn":"http://login.live.cn/","live.com.cn":"http://login.live.com.cn","189.com":"http://webmail16.189.cn/webmail/","yahoo.com.cn":"http://mail.cn.yahoo.com/","yahoo.cn":"http://mail.cn.yahoo.com/","eyou.com":"http://www.eyou.com/","21cn.com":"http://mail.21cn.com/","188.com":"http://www.188.com/","foxmail.coom":"http://www.foxmail.com"};function getEmailLoginAddress(email){if(!email){return}var arr=email.split("@");if(!arr||arr.length<2){return}var addr=arr[1];return email2LoginAddress[addr]||"http://mail."+addr}function reIsOk(re){return re&&typeof re=="object"&&re.Ok}LEA.bookmark=null;LEA.hasBookmark=false;function saveBookmark(){try{LEA.bookmark=tinymce.activeEditor.selection.getBookmark();if(LEA.bookmark&&LEA.bookmark.id){var $ic=$($("#editorContent_ifr").contents());var $body=$ic.find("body");var $p=$body.children().eq(0);if($p.is("span")){var $children=$p;var $c=$children.eq(0);if($c.attr("id")==LEA.bookmark.id+"_start"){LEA.hasBookmark=false;$c.remove()}else{LEA.hasBookmark=true}}else if($p.is("p")){var $children=$p.children();if($children.length==1&&$.trim($p.text())==""){var $c=$children.eq(0);if($c.attr("id")==LEA.bookmark.id+"_start"){LEA.hasBookmark=false;$p.remove()}else{LEA.hasBookmark=true}}else{LEA.hasBookmark=true}}}}catch(e){}}function restoreBookmark(){try{if(LEA.hasBookmark){var editor=tinymce.activeEditor;editor.focus();editor.selection.moveToBookmark(LEA.bookmark)}}catch(e){}}var vd={isInt:function(o){var intPattern=/^0$|^[1-9]\d*$/;result=intPattern.test(o);return result},isNumeric:function(o){return $.isNumeric(o)},isFloat:function(floatValue){var floatPattern=/^0(\.\d+)?$|^[1-9]\d*(\.\d+)?$/;result=floatPattern.test(floatValue);return result},isEmail:function(emailValue){var emailPattern=/^[^@.]+@([^@.]+\.)+[^@.]+$/;result=emailPattern.test(emailValue);return result},isBlank:function(o){return!$.trim(o)},has_special_chars:function(o){return/['"#$%&\^<>\?*]/.test(o)},init:function(form,rule_funcs){var get_val=function(target){if(target.is(":checkbox")){var name=target.attr("name");var val=$('input[name="'+name+'"]:checked').length;return val}else if(target.is(":radio")){}else{return target.val()}};var default_rule_funcs={required:function(target){return get_val(target)},min:function(target,rule){var val=get_val(target);if(val===""&&!is_required(target)){return true}if(val<rule.data){return false}return true},minLength:function(target,rule){var val=get_val(target);if(val===""&&!is_required(target)){return true}if(val.length<rule.data){return false}return true},email:function(target,rule){var val=get_val(target);if(val===""&&!is_required(target)){return true}return isEmail(val)},noSpecialChars:function(target){var val=get_val(target);if(!val){return true}if(/[^0-9a-zzA-Z_\-]/.test(val)){return false}return true},password:function(target,rule){var val=get_val(target);if(val===""&&!is_required(target)){return true}return val.length>=6},equalTo:function(target,rule){var val=get_val(target);if(val===""&&!is_required(target)){return true}return $(rule.data).val()==val}};rule_funcs=rule_funcs||{};rule_funcs=$.extend(default_rule_funcs,rule_funcs);var rules={};var msg_targets={};function is_required(target){var name=get_name(target);var rules=get_rules(target,name);var required_rule=rules[0];if(required_rule["rule"]=="required"){return true}return false}function get_rules(target,name){if(!rules[name]){rules[name]=eval("("+target.data("rules")+")")}return rules[name]}function get_msg_target(target,name){if(!msg_targets[name]){var t=target.data("msg_target");if(!t){var msg_o=$('<div class="help-block alert alert-warning" style="display: block;"></div>');target.parent().append(msg_o);msg_targets[name]=msg_o}else{msg_targets[name]=$(t)}}return msg_targets[name]}function hide_msg(target,name){var msgT=get_msg_target(target,name);if(!msgT.hasClass("alert-success")){msgT.hide()}}function show_msg(target,name,msg,msgData){var t=get_msg_target(target,name);t.html(getMsg(msg,msgData)).removeClass("hide alert-success").addClass("alert-danger").show()}function pre_fix(target){var fix_name=target.data("pre_fix");if(!fix_name){return}switch(fix_name){case"int":int_fix(target);break;case"price":price_fix(target);break;case"decimal":decimal_fix(target);break}}function apply_rules(target,name){var rules=get_rules(target,name);pre_fix(target);if(!rules){return true}for(var i=0;i<rules.length;++i){var rule=rules[i];var rule_func_name=rule.rule;var msg=rule.msg;var msgData=rule.msgData;if(!rule_funcs[rule_func_name](target,rule)){show_msg(target,name,msg,msgData);return false}}hide_msg(target,name);var post_rule=target.data("post_rule");if(post_rule){setTimeout(function(){var post_target=$(post_rule);apply_rules(post_target,get_name(post_target))},0)}return true}function focus_func(e){var target=$(e.target);var name=get_name(target);hide_msg(target,name);pre_fix(target)}function unfocus_func(e){var target=$(e.target);var name=get_name(target);apply_rules(target,name)}function get_name(target){return target.data("u_name")||target.attr("name")||target.attr("id")}var $allElems=$(form).find("[data-rules]");var $form=$(form);$form.on({keyup:function(e){if(e.keyCode!=13){focus_func(e)}},blur:unfocus_func},'input[type="text"], input[type="password"]');$form.on({change:function(e){if($(this).val()){focus_func(e)}else{unfocus_func(e)}}},"select");$form.on({change:function(e){unfocus_func(e)}},'input[type="checkbox"]');this.valid=function(){var $ts=$allElems;var is_valid=true;for(var i=0;i<$ts.length;++i){var target=$ts.eq(i);var name=get_name(target);if(!apply_rules(target,name)){is_valid=false;target.focus();return false}else{}}return is_valid};this.validElement=function(targets){var targets=$(targets);var ok=true;for(var i=0;i<targets.length;++i){var target=targets.eq(i);var name=get_name(target);if(!apply_rules(target,name)){ok=false}}return ok}}};function getHashObject(){var hash=location.hash;if(!hash){return{}}var hashKV=hash.substr(1);var kvs=hashKV.split("&");var kvsObj={};for(var i=0;i<kvs.length;++i){var kv=kvs[i].split("=");if(kv.length==2){kvsObj[kv[0]]=kv[1]}}return kvsObj}function getHash(key,value){var kvs=getHashObject();return kvs[key]}function setHash(key,value){var hash=location.hash;if(!hash){location.href="#"+key+"="+value;return}var kvs=getHashObject();kvs[key]=value;var str="";for(var i in kvs){if(kvs[i]){if(str){str+="&"}str+=i+"="+kvs[i]}}location.href="#"+str}