/** * * @author Bernardo Rufino * @license Creative Commons Developing Nations: http://creativecommons.org/licenses/devnations/2.0/ * @version 1.1.070307 * @description jRuf, a javascript library * * !Não retire essas informações! */ //-----------------------------------------------------------------------------------// // CC: jRuf | Prod Module: Productivity in Javascript //-----------------------------------------------------------------------------------// var bmr_extend_batch=new Array(); //-----------------------------------------------------------------------------------// var DomMethods = { list: [], add: function(ename, method) {this.list.push([ename, method]);}, remove: function() {var args=arguments; for(var i=0; i1) {for(var i=0; i1) {for(var i=0; i1) {for(var i=0; i false, Capturing => true results=true;} else if(obj.attachEvent) {results=obj.attachEvent("on"+type, fn);} else{if(obj["on"+type]) {var old_ev=(obj["on"+type])?obj["on"+type]:function(){}; obj["on"+type]=function(e){old_ev(e); fn(e);} results=true}} return results;} function Event(e) {if(!e && window.event){var e=window.event;} if(e) {var source=(e.target)?e.target:e.srcElement; this.source=(source.nodeType==3)?source.parentNode:source; this.event=e; this.type=e.type; this.button=(e.button)?e.button:(e.which)?e.which-1:null; var x=0; var y=0; var doc=document; var abody=objDom("body", "tag"); if(e.pageX && e.pageY) {x=e.pageX; y=e.pageY;} else if(e.clientX && e.clientY) {x=e.clientX; y=e.clientY; if(Browser.ie) {x+=(doc.documentElement)?doc.documentElement.scrollLeft:abody.scrollLeft; y+=(doc.documentElement)?doc.documentElement.scrollTop:abody.scrollTop;}} this.x=x; this.y=y; this.key={}; this.key.code=(e.keyCode)?e.keyCode:(e.which)?e.which:(e.charCode)?e.charCode:null; this.key.character=(this.key.code && String.fromCharCode(this.key.code) && String.fromCharCode(this.key.code)!="")?String.fromCharCode(this.key.code):null; if(e.modifiers) {this.key.alt=Event.ALT_MASK; this.key.ctrl=Event.CONTROL_MASK; this.key.shift=Event.SHIFT_MASK;} else{this.key.alt=e.altKey; this.key.ctrl=e.ctrlKey; this.key.shift=e.shiftKey;}}} Event.prototype.preventDefault=function() {if(this.event.preventDefault){this.event.preventDefault();} else{this.event.returnValue=false;}} function link2event(findWhat, fnc, id, attr) {var container=(id)?objDom(id):objDom("body", "tag"); var links=objDom("a", "tag", container); var attr=(attr)?attr:"href"; var results=false; for(var i=0;i]+>/gi, "");} String.prototype.stripTags=function(){return stripTags(this);}; function trimAnds(query) {var last=query.charAt(query.length-1); if(last=="&"){query=query.substring(0, query.length-1);} if(query[0]=="&"){query=query.substring(1, query.length);} return query;} String.prototype.trimAnds=function(){return trimAnds(this);}; function html2entities(str) {var keys=new Array("&", " ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "\"", "<", ">", ""); var values=new Array("&", " ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", """, "<", ">", ""); for(var i=0; i0) {begin=document.cookie.indexOf(name+"="); if(begin!=-1) {begin+=name.length+1; end=document.cookie.indexOf(";",begin); if(end==-1){end=document.cookie.length;} cookie=unescape(document.cookie.substring(begin, end));}} return cookie;} function setCookie(name, value, days, root) {var date=new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); document.cookie=name+"="+escape(value)+ ((!days)?"":"; expires="+date.toGMTString())+ ((!root)?"":"; path=/");} var Cookie = { set: setCookie, get: getCookie, unset: function(n){return setCookie(n, "", -1);} } //-----------------------------------------------------------------------------------// var bmr_nav=navigator.userAgent.toLowerCase(); var Browser = { name: navigator.appName, ie: bmr_nav.find("msie") && !bmr_nav.find("opera"), moz: bmr_nav.find("mozilla"), mozilla: bmr_nav.find("mozilla") && !bmr_nav.find(/(compatible|webkit)/), opera: bmr_nav.find("opera"), safari: bmr_nav.find("safari") } //-----------------------------------------------------------------------------------// function necessaryImages() {preloadImages( "", "", "", "", "", "" );} addEvent(window, "load", function(){necessaryImages();}) addEvent(window, "load", extendDomBatch); //-----------------------------------------------------------------------------------// // CC: jRuf | Effects Module: User Interface Effects //-----------------------------------------------------------------------------------// var loading_text="Carregando... Aguarde"; var bmr_global_alert=false; //-----------------------------------------------------------------------------------// //False->Down, True->Up function Counter(id, secs, type) {this.id=Math.random().toString().replace(".","").substr(0,3)+""+(new Date()).getTime().toString(); this.control=createObj({tag: "input", id: this.id, content: "stopped"}); this.time=createObj({tag: "input", id: this.id+"secs", content: secs}); this.control.setStyle("display", "none"); this.time.setStyle("display", "none"); this.alvo=objDom(id); this.type=(!type)?"down":"up";} Counter.prototype.destroy=function() {setContent(this.control, "stopped"); remove(this.control); remove(this.time); this.type=null; this.id=null;} Counter.prototype.startStop=function() {if(getContent(this.control)=="running") {setContent(this.control, "stopped");} else if(getContent(this.control)=="stopped") {setContent(this.control, "running"); if(this.type=="down") {if(!parseInt(getContent(this.alvo))){setContent(this.alvo, getContent(this.time));} decreaseCounter(this.control, getContent(this.alvo), this.alvo);} else{if(!parseInt(getContent(this.alvo))){setContent(this.alvo, "0");} increaseCounter(this.control, this.time, this.alvo);}}} function decreaseCounter(control, time, alvo) {var secs=parseInt(time); if(getContent(control)=="running") {setContent(alvo, --secs); if(secs<=0){setContent(control, "stopped");} else{setTimeout(function(){decreaseCounter(control, secs, alvo);},1000);}}} function increaseCounter(control, time, alvo) {var limit=parseInt(getContent(time)); var secs=parseInt(getContent(alvo)); if(getContent(control)=="running") {setContent(alvo, ++secs); if(secs>=limit) {setContent(control, "stopped");} else{setTimeout(function(){increaseCounter(control, time, alvo);},1000);}}} //-----------------------------------------------------------------------------------// function showHideDelay(id, delay) {var alvo=objDom(id); bmr_old=getContent(alvo); if(alvo.getStyle("display")=="none") {setContent(alvo, loading_text); alvo.setStyle("display", ""); setTimeout(function(){setContent(alvo, bmr_old);}, delay)} else{alvo.setStyle("display", "none");}} extendDomOnload("showHideDelay", function(d){return showHideDelay(this,d);}) function showHide(id) {var alvo=objDom(id); var first=alvo.getFirst("display"); alvo.setFirst("display"); alvo.setStyle("display",((alvo.getStyle("display")=="none")?(first!="none")?first:"":"none"));} extendDomOnload("showHide", function(){return showHide(this);}) extendDomOnload("toggle", function(){return showHide(this);}) function show(id){objDom(id).setStyle("display",(((first=objDom(id).getFirst("display")) && first!="none")?first:""));} extendDomOnload("show", function(){return show(this);}) function hide(id){objDom(id).setFirst("display"); objDom(id).setStyle("display", "none");} extendDomOnload("hide", function(){return hide(this);}) var Display = { showHideDelay: showHideDelay, toggleDelay: showHideDelay, showHide: showHide, toggle: showHide, show: show, hide: hide } //-----------------------------------------------------------------------------------// function getPageLimits() {var w="Width"; var h="Height"; var iw="inner"+w; var ih="inner"+h; var ow="offset"+w; var oh="offset"+h; var cw="client"+w; var ch="client"+h; var sw="scroll"+w; var sh="scroll"+h; var px="pageXOffset"; var py="pageYOffset"; var doc=document.documentElement; var abody=objDom("body", "tag"); var sizes={width:0, height:0}; this.pushSizes=function(w, h) {if(w>sizes.width){sizes.width=w;} if(h>sizes.height){sizes.height=h;}} if(window[iw] && window[ih]){this.pushSizes(window[iw], window[ih]);} if(window[px] && window[py]){this.pushSizes(window[px], window[py]);} if(abody[ow] && abody[oh]){this.pushSizes(abody[ow], abody[oh]);} if(abody[cw] && abody[ch]){this.pushSizes(abody[cw], abody[ch]);} if(abody[sw] && abody[sh]){this.pushSizes(abody[sw], abody[sh]);} if(doc[cw] && doc[ch]){this.pushSizes(doc[cw], doc[ch]);} return sizes;} //-----------------------------------------------------------------------------------// function getFirst(id, attr) {var alvo=objDom(id); var results=false; if(alvo["orig_"+attr]){results=alvo["orig_"+attr];} return results;} extendDomOnload("getFirst", function(s){return getFirst(this,s);}) function setFirst(id, attr) {var alvo=objDom(id); var results=true; if(!alvo["orig_"+attr]){alvo["orig_"+attr]=alvo.getStyle(attr);} return results;} extendDomOnload("setFirst", function(s){return setFirst(this,s);}) function makeClipping(id) {var alvo=objDom(id); var results=null; if(!alvo.orig_overflow) {alvo.orig_overflow=alvo.getStyle("overflow") || "auto"; alvo.setStyle("overflow", "hidden"); results=alvo;} return results;} extendDomOnload("makeClipping", function(){return makeClipping(this);}) function undoClipping(id) {var alvo=objDom(id); var results=null; if(alvo.orig_overflow) {alvo.setStyle("overflow", alvo.orig_overflow); alvo.orig_overflow=null; results=alvo;} return results;} extendDomOnload("undoClipping", function(){return undoClipping(this);}) function Timeline(opts) {this.setup(opts); if(!document.timeline){document.timeline=new Array();} this.id=document.timeline.length; document.timeline.push({id:this.id,run:true});} Timeline.prototype.setup=function(provided) {var provided=json(provided); this.fps=(provided.fps)?provided.fps:30; this.duration=(provided.duration)?parseInt(provided.duration):1000; this.oninitialize=(provided.oninitialize)?provided.oninitialize:function(){}; this.oncomplete=(provided.oncomplete)?provided.oncomplete:function(){}; this.onframes=(provided.onframes)?provided.onframes:function(){}; this.nframes=parseInt(this.duration*this.fps/1000); this.frame=((pfr=provided.frame) && pfr instanceof Array)?pfr:new Array(); this.interval=parseInt(1000/this.fps); this.frame[0]=(this.oninitialize)?this.oninitialize:function(){}; this.frame[this.nframes+=1]=(this.oncomplete)?this.oncomplete:function(){};} Timeline.prototype.setDelay=function(f,n){setTimeout(f,n);} Timeline.prototype.play=function() {for(var frame=0; frame<=this.nframes; frame++) {this.frame[frame]=(this.frame[frame])?this.frame[frame]:this.onframes; this.setDelay(this.frame[frame],this.interval*frame);}} //-----------------------------------------------------------------------------------// function getOpacity(id) {var alvo=objDom(id); var opacity=1.0; if(alvo.getStyle("filter")) {opacity=alvo.getStyle("filter").match(/alpha\(opacity=(.*)\)/)[1]; if(opacity){opacity=parseFloat(opacity)/100;}} else if(alvo.getStyle("opacity")){opacity=parseFloat(alvo.getStyle("opacity"));} return opacity*10;} extendDomOnload("getOpacity", function(){return getOpacity(this);}) function setOpacity(id, opacity) {var alvo=objDom(id); opacity=parseFloat(opacity); alvo.style.filter="alpha(opacity="+opacity*10+")"; alvo.style.KhtmlOpacity=opacity/10; alvo.style.MozOpacity=opacity/10; alvo.style.opacity=opacity/10; return alvo;} extendDomOnload("setOpacity", function(n){return setOpacity(this,n);}) //-----------------------------------------------------------------------------------// function calculeIncrease(frames, from, to) {var increase=(Math.abs(to-from)/frames).toString(); increase=parseFloat(increase.substring(0, increase.indexOf(".")+3)); increase=(increase==0)?0.1:increase; increase=(from>to)?-increase:(from==to)?0:increase; return increase;} //-----------------------------------------------------------------------------------// var Slide = { down: function(id, opts) {return this.slide(id, opts, true);}, up: function(id, opts) {return this.slide(id, opts, false);}, downUp: function(id, opts) {if(objDom(id).offsetHeight<6){return this.down(id, opts);} else{return this.up(id, opts);}}, toggle: function(id, opts) {return this.downUp(id, opts);}, slide: function(id, opts, down) {var alvo=objDom(id); var opts=json(opts); makeClipping(alvo); var timeline=new Timeline(opts); var from=(opts.from || opts.from==0)?opts.from:(down)?0:alvo.offsetHeight; var to=(opts.to || opts.to==0)?opts.to:(down)?Size.getMax(alvo).height:0; var increase=calculeIncrease(timeline.nframes, from, to); opts.onframes=function() {from=from+increase; setStyle(alvo, "height", from+"px");} var oncomplete=opts.oncomplete || function(){}; opts.oncomplete=function(){setStyle(alvo, "height", to+"px"); oncomplete();} timeline.setup(opts); timeline.play(); return alvo;} } extendDomOnload("slideDown", function(j){return Slide.down(this,j);}) extendDomOnload("slideUp", function(j){return Slide.up(this,j);}) extendDomOnload("slideDownUp", function(j){return Slide.downUp(this,j);}) extendDomOnload("slideToggle", function(j){return Slide.downUp(this,j);}) extendDomOnload("slide", function(j){return Slide.slide(this,j);}) //-----------------------------------------------------------------------------------// function pulsate(id, opts) {var alvo=objDom(id); var dr=300; var opts=json(opts); opts.oncomplete=opts.oncomplete || function(){}; this.fadeAll=function(fn){alvo.fadeOut({duration:dr,oncomplete:function(){alvo.fadeIn({duration:dr,oncomplete:fn})} })} this.fadeAll(function(){this.fadeAll(opts.oncomplete)}); return alvo;} extendDomOnload("pulsate", function(j){return pulsate(this,j);}) //-----------------------------------------------------------------------------------// var Size = { getExtra: function(id, count_px) {var alvo=objDom(id); var extra={}; if(count_px)//Só se o objeto tiver altura e largura em pixels {extra.width=alvo.offsetWidth-parseInt(getStyle(alvo,"width")); extra.height=alvo.offsetHeight-parseInt(getStyle(alvo,"height"));} else //Se não... {var pd="padding-"; var br="border-"; var mg="margin-" //Borders var bt=parseInt(getStyle(alvo, br+"top-width")); var bb=parseInt(getStyle(alvo, br+"bottom-width")); var bl=parseInt(getStyle(alvo, br+"left-width")); var br=parseInt(getStyle(alvo, br+"right-width")); //Paddings now var pt=parseInt(getStyle(alvo, pd+"top")); var pb=parseInt(getStyle(alvo, pd+"bottom")); var pl=parseInt(getStyle(alvo, pd+"left")); var pr=parseInt(getStyle(alvo, pd+"right")); //Margins now var mt=parseInt(getStyle(alvo, mg+"top")); var mb=parseInt(getStyle(alvo, mg+"bottom")); var ml=parseInt(getStyle(alvo, mg+"left")); var mr=parseInt(getStyle(alvo, mg+"right")); extra.top=bt+pt; extra.bottom=bb+pb; extra.left=bl+pl; extra.right=br+pr; extra.total={top: extra.top+mt, bottom: extra.bottom+mb, left: extra.left+ml, right: extra.right+mr}; extra.width=extra.left+extra.right; extra.height=extra.top+extra.bottom;} return extra;}, getMax: function(id) {var alvo=objDom(id); var results={}; var height=getStyle(alvo, "height"); setStyle(alvo, "height", "auto"); results.height=alvo.offsetHeight; setStyle(alvo, "height", height); var width=getStyle(alvo, "width"); setStyle(alvo, "width", "auto"); results.width=alvo.offsetWidth; setStyle(alvo, "height", width); return results;}, shrink: function(id, opts) {return this.change(id, opts, false);}, grow: function(id, opts) {return this.change(id, opts, true);}, growShrink: function(id, opts) {var alvo=objDom(id); if(alvo.offsetHeight<6 && alvo.offsetWidth<6){return this.grow(id, opts);} else{return this.shrink(id, opts);}}, toggle: function(id, opts) {return this.growShrink(id, opts);}, change: function(id, opts, grow) {var alvo=objDom(id); var opts=json(opts); makeClipping(alvo); var max_sizes=this.getMax(id); var increase={}; var timeline=new Timeline(opts); var to={}; var from={}; opts.to=opts.to || {}; opts.from=opts.from || {}; to.height=(opts.to.height || opts.to.height==0)?opts.to.height:(grow)?max_sizes.height:0; to.width=(opts.to.width || opts.to.width==0)?opts.to.width:(grow)?max_sizes.width:0; from.height=(opts.from.height || opts.from.height==0)?opts.from.height:(grow)?0:alvo.offsetHeight; from.width=(opts.from.width || opts.from.width==0)?opts.from.width:(grow)?0:alvo.offsetWidth; increase.height=calculeIncrease(timeline.nframes, from.height, to.height); increase.width=calculeIncrease(timeline.nframes, from.width, to.width); opts.onframes=function() {from.height=from.height+increase.height; from.width=from.width+increase.width; setStyle(alvo, "height", from.height+"px"); setStyle(alvo, "width", from.width+"px");} var oncomplete=opts.oncomplete || function(){}; opts.oncomplete=function() {setStyle(alvo, "height", to.height+"px"); setStyle(alvo, "width", to.width+"px"); oncomplete();} timeline.setup(opts); timeline.play(); return alvo;} } extendDomOnload("getMaxSize", function(){return Size.getMax(this);}) extendDomOnload("shrink", function(j){return Size.shrink(this,j);}) extendDomOnload("grow", function(j,b){return Size.grow(this,j,b);}) extendDomOnload("growShrink", function(j){return Size.growShrink(this,j);}) extendDomOnload("sizeToggle", function(j){return Size.toggle(this,j);}) extendDomOnload("changeSize", function(j){return Size.change(this,j);}) //-----------------------------------------------------------------------------------// var Fade = { into: function(id, opts) {return this.fade(id, opts, false);}, out: function(id, opts) {return this.fade(id, opts, true);}, inOut: function(id, opts) {if(objDom(id).getOpacity()>8){return this.out(id, opts);} else{return this.into(id, opts);}}, toggle: function(id, opts) {return this.inOut(id, opts);}, fade: function(id, opts, out) {var alvo=objDom(id); var opts=json(opts); var from=(opts.from || opts.from==0)?opts.from:(out)?alvo.getOpacity():0; var to=(opts.to || opts.to==0)?opts.to:(out)?0:10; var timeline=new Timeline(opts); var increase=calculeIncrease(timeline.nframes, from, to); opts.onframes=function() {from=from+increase; setOpacity(alvo, from);} var oncomplete=opts.oncomplete || function(){}; opts.oncomplete=function(){setOpacity(alvo, to); oncomplete();} timeline.setup(opts); timeline.play(); return alvo;} } extendDomOnload("fadeIn", function(j){return Fade.into(this,j);}) extendDomOnload("fadeOut", function(j){return Fade.out(this,j);}) extendDomOnload("fade", function(j){return Fade.fade(this,j);}) extendDomOnload("fadeInOut", function(j){return Fade.fadeInOut(this,j);}) extendDomOnload("fadeToggle", function(j){return Fade.toggle(this,j);}) //-----------------------------------------------------------------------------------// function Dialog(content, opts) {this.setup(opts, content); this.createBlur(); var box=createObj({tag:"div", className: this.classname, content: this.content}); if(this.append){box.appendChild(this.append);} var bgcolor=box.css("background-color"); this.box=box; box.dialog={width:this.width,height:this.height}; this.bgcolor=(bgcolor.toLowerCase()=="transparent")?this.bgcolor:bgcolor; css(box, { visibility: this.visibility, overflow: "auto", position: "absolute", backgroundColor: this.bgcolor, zIndex: this.zindex }); css(box, this.style); this.resize(this.width, this.height);} Dialog.prototype.setup=function(provided, content) {var provided=json(provided); try{this.opacity=parseInt(provided.opacity);}catch(e){this.opacity=5} this.style=json(provided.style); this.blur_style=json(provided.blur_style); this.zindex=(provided.zindex)?parseInt(provided.zindex):1001; this.blurbox=(provided.blurbox===false)?provided.blurbox:true; var autosize=(provided.autosize || provided.autosize===false)?provided.autosize:true; this.content=(!content)?"":content; this.append=(isDom(this.content))?this.content:false; if(isDom(this.content)){this.content="";} if(autosize)//Getting the minimun size for the provided content {var temp=createObj({tag:"div", content:this.content}); temp.setAttribute("style","float:left;"); setOpacity(temp, 0); var sizes=Size.getMax(temp); remove(temp);} //I get the size! or if you dont want, default! else{var sizes={width:400,height:350};} //Autosize done. this.width=(provided.width)?parseInt(provided.width):parseInt(sizes.width); this.height=(provided.height)?parseInt(provided.height):parseInt(sizes.height); this.bgcolor=(provided.bgcolor)?provided.bgcolor:"#FFFFFF"; this.opacity=(provided.opacity)?parseInt(provided.opacity):5; this.classname=(provided.classname)?provided.classname:"dialog-box"; this.blur_classname=(provided.blur_classname)?provided.blur_classname:"dialog-blur"; this.blur_bgcolor=(provided.blur_bgcolor)?provided.blur_bgcolor:"#000000"; this.visible=(provided.visible===false)?provided.visible:true; this.visibility=(provided.visibility)?provided.visibility:(this.visible)?"visible":"hidden";} Dialog.prototype.createBlur=function() {if(this.blurbox) {var page=getPageLimits(); var blur_box=createObj({tag: "div", className: this.blur_classname}); var bgcolor=blur_box.css("background-color"); this.blur_bgcolor=(bgcolor.toLowerCase()=="transparent")?this.blur_bgcolor:bgcolor; setOpacity(blur_box, this.opacity); css(blur_box, { visibility: this.visibility, position: "absolute", zIndex: "1", width: page.width+"px", height: page.height+"px", backgroundColor: this.blur_bgcolor, left: "0px", top: "0px" }); css(blur_box, this.blur_style); this.blur_box=blur_box; return blur_box;}} Dialog.prototype.resize=function(width, height, free_resize) {this.width=parseInt(width); this.height=parseInt(height); var extra=Size.getExtra(this.box, true); //The margins must be ugly because the browser has to render it fast var margin_left=(!free_resize)?"-"+parseInt((width+extra.width)/2)+"px":css(this.box, "margin-left"); var margin_top=(!free_resize)?"-"+parseInt((height+extra.height)/2)+"px":css(this.box, "margin-top"); css(this.box, { width: this.width+"px", height: this.height+"px", marginLeft: margin_left, marginTop: margin_top, left: "50%", top: "50%" }); return this.box;} Dialog.prototype.resizeEffect=function(width, height, opts) {var opts=json(opts); var increase={}; var timeline=new Timeline(opts); var box=this.box; box.dialog.height=parseInt(css(box, "height")); box.dialog.width=parseInt(css(box, "width")); increase.height=calculeIncrease(timeline.nframes, box.dialog.height, height); increase.width=calculeIncrease(timeline.nframes, box.dialog.width, width); var free_resize=(opts.free_resize)?opts.free_resize:false; var dialog=this; opts.onframes=function() {box.dialog.height=box.dialog.height+increase.height; box.dialog.width=box.dialog.width+increase.width; dialog.resize(box.dialog.width, box.dialog.height, free_resize);} var oncomplete=opts.oncomplete || function(){}; opts.oncomplete=function(){dialog.resize(width, height, free_resize); oncomplete();} timeline.setup(opts); timeline.play();} Dialog.prototype.show=function() {setStyle(this.box, "visibility", "visible"); setStyle(this.blur_box, "visibility", "visible"); return this.box;} Dialog.prototype.close=function() {setStyle(this.box, "visibility", "hidden"); setStyle(this.blur_box, "visibility", "hidden"); return this.box;} Dialog.prototype.remove=function() {remove(this.box); remove(this.blur_box); return this.box;} //-----------------------------------------------------------------------------------// // CC: jRuf | Dynamic Module: Dynamism (Ajax, Drag and Drop) //-----------------------------------------------------------------------------------// var ajax_loading_text=""; //-----------------------------------------------------------------------------------// function requestAjax(url, opts) {var results=false; opts=executeOptions(opts, "get"); var com=setUrlParams(url, opts, false); opts.params=com.params; url=com.url; var xmlhttp=getTransfer(); if(xmlhttp) {xmlhttp.onreadystatechange=function(){treatRequest(xmlhttp, opts);} xmlhttp.open(opts.method, url, true); setRequestHeaders(xmlhttp, opts); xmlhttp.send(opts.params); results=true;} return results;} function getAjax(url, opts) {var results=false; opts=executeOptions(opts, "get"); var com=setUrlParams(url, opts, false); opts.params=com.params; url=com.url; var xmlhttp=getTransfer(); if(xmlhttp) {xmlhttp.onreadystatechange=function(){treatRequest(xmlhttp, opts);} xmlhttp.open("get", url, true); setRequestHeaders(xmlhttp, opts); xmlhttp.send(null); results=true;} return results;} function postAjax(url, opts) {var results=false; opts=executeOptions(opts, "post"); var com=setUrlParams(url, opts, false); opts.params=com.params; url=com.url; var xmlhttp=getTransfer(); if(xmlhttp) {xmlhttp.open("post", url, true); setRequestHeaders(xmlhttp, opts); xmlhttp.send(opts.params); xmlhttp.onreadystatechange=function(){treatRequest(xmlhttp, opts);} results=true;} return results;} function getTransfer() {var xmlhttp=null; //Ou coloque false if(typeof(XMLHttpRequest)!="undefined"){xmlhttp=new XMLHttpRequest();} var opts=new Array('Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'); for(var i=0;ifilters.maxleft)){move.left=false;} if(filters.maxright && !(x+parseInt(this.drag.offsetWidth)filters.maxtop)){move.top=false;} if(filters.maxbottom && !(y+parseInt(this.drag.offsetHeight)0) {this.observers.each(function(observer, index) {fnc(observer, index);});}}, oninitialize: function(drag, e) //Just used inside the framework! Don't use it! {this.iterate(function(observer){observer.oninitialize(drag, e);});}, ondrag: function(drag, e) //Just used inside the framework! Don't use it! {this.iterate(function(observer){observer.ondrag(drag, e);});}, ondrop: function(drag, e) //Just used inside the framework! Don't use it! {this.iterate(function(observer){observer.ondrop(drag, e);});} } //-----------------------------------------------------------------------------------// var Droppables = { objects: [], drops: [], hover_buffer: null, add: function(drop, opts) {opts=this.setup(opts); drop=objDom(drop); var pos=getPosition(drop); var x={}; var y={}; //Coordenadas do lado direito e esquerdo do objeto x.end=pos.x+parseInt(drop.offsetWidth); x.begin=pos.x; //Coordenadas do lado de baixo e de cima do objeto y.end=pos.y+parseInt(drop.offsetHeight); y.begin=pos.y; this.objects.push(drop); this.drops.push({drop:drop,opts:opts,coords:{x:x,y:y}}); }, setup: function(provided) {var opts={}; provided=json(provided); opts.onhover=(provided.onhover)?provided.onhover:function(){}; opts.ondrop=(provided.ondrop)?provided.ondrop:function(){}; opts.onout=(provided.onout)?provided.onout:function(){}; return opts;}, iterate: function(fnc) {if(this.drops.length>0) {this.drops.each(function(drop, index) {fnc(drop, index);});}}, onhover: function(drag, e) //Just used inside the framework! Don't use it! {this.iterate(function(drop) {var x=drop.coords.x; var y=drop.coords.y; if(e.x > x.begin && e.x < x.end && e.y > y.begin && e.y < y.end) {drop.opts.onhover(drag, e.event); Droppables.hover_buffer=drop;}});}, onout: function(drag, e) //Just used inside the framework! Don't use it! {if(this.hover_buffer) {var drop=this.hover_buffer; var x=drop.coords.x; var y=drop.coords.y; if(e.x < x.begin || e.x > x.end || e.y < y.begin || e.y > y.end) {drop.opts.onout(drag, e.event); Droppables.hover_buffer=null;}}}, ondrop: function(drag, e) //Just used inside the framework! Don't use it! {this.iterate(function(drop) {var x=drop.coords.x; var y=drop.coords.y; if(e.x > x.begin && e.x < x.end && e.y > y.begin && e.y < y.end) {drop.opts.ondrop(drag, e.event);}});} } //-----------------------------------------------------------------------------------// var Draggables = { objects: [], drags: [], active: {drag: null, offset: {x:0,y:0}, opts: {}, ok: false}, inactivate: function() {this.active={drag: null, offset: {x:0,y:0}, opts: {}, ok: false};}, add: function(drag, down, opts) {return new Draggable(drag, down, opts);} } //-----------------------------------------------------------------------------------// //-----------------------------------------------------------------------------------// // CC: jRuf | A Javascript Library made by Bernardo Rufino //-----------------------------------------------------------------------------------//