thd/web/js/flexbox/js/.svn/text-base/jquery.flexbox.min.js.svn-base
author Gautier Thibault <gthibault@universcine.com>
Tue, 22 Sep 2009 16:40:38 +0200
changeset 35 94a1dc255022
permissions -rw-r--r--
Commit the all thd project created with the framework symfony
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     1
/*
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     2
* jQuery FlexBox $Version: 0.9.2.2 $
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     3
*
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     4
* Copyright (c) 2008 Noah Heldman and Fairway Technologies (http://www.fairwaytech.com/flexbox)
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     5
* Licensed under Ms-PL (http://www.codeplex.com/flexbox/license)
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     6
*
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     7
* $Date: 2008-12-17 03:07:04 PM $
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     8
* $Rev: 0.9.2.2 $
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
     9
*/
94a1dc255022 Commit the all thd project created with the framework symfony
Gautier Thibault <gthibault@universcine.com>
parents:
diff changeset
    10
(function(A){A.flexbox=function(U,Y){var Q=false,V=[],i=[],S=0,h="\u25CA",T=false,f=Y.paging.pageSize,g=A(U).css("position","relative").css("z-index",0);var X=A(document.createElement("input")).attr("type","hidden").attr("id",g.attr("id")+"_hidden").attr("name",g.attr("id")).val(Y.initialValue).appendTo(g);var E=A(document.createElement("input")).attr("id",g.attr("id")+"_input").attr("autocomplete","off").addClass(Y.inputClass).css("width",Y.width+"px").appendTo(g).click(function(k){if(Y.watermark!==""&&this.value===Y.watermark){this.value=""}else{this.select()}}).focus(function(k){A(this).removeClass("watermark")}).blur(function(k){setTimeout(function(){if(!E.attr("active")){Z()}},200)}).keypress(O);if(Y.initialValue!==""){E.val(Y.initialValue).removeClass("watermark")}else{E.val(Y.watermark).addClass("watermark")}if(A.browser.msie){E.keydown(O)}var b=0;if(Y.showArrow&&Y.showResults){var c=function(){if(G.is(":visible")){Z()}else{E.focus();if(Y.watermark!==""&&E.val()===Y.watermark){E.val("")}else{E.select()}if(Q){clearTimeout(Q)}Q=setTimeout(function(){L(1,true,Y.arrowQuery)},Y.queryDelay)}};var a=A(document.createElement("span")).attr("id",g.attr("id")+"_arrow").addClass(Y.arrowClass).addClass("out").hover(function(){A(this).removeClass("out").addClass("over")},function(){A(this).removeClass("over").addClass("out")}).mousedown(function(){A(this).removeClass("over").addClass("active")}).mouseup(function(){A(this).removeClass("active").addClass("over")}).click(c).appendTo(g);b=a.outerWidth();E.css("width",(Y.width-a.width())+"px")}if(!Y.allowInput){E.click(c)}var I=(A.browser.msie&&A.browser.version.substr(0,1)==="6")?-(E.outerWidth()+b):0;var G=A(document.createElement("div")).attr("id",g.attr("id")+"_ctr").css("width",(E.outerWidth()+b-2)+"px").css("top",E.outerHeight()).css("left",I).addClass(Y.containerClass).appendTo(g).hide();var H=A(document.createElement("div")).addClass(Y.contentClass).appendTo(G).scroll(function(){T=true});var R=A(document.createElement("div")).appendTo(G);function O(o){var m=0;if(typeof (o.ctrlKey)!=="undefined"){if(o.ctrlKey){m|=1}if(o.shiftKey){m|=2}}else{if(o.modifiers&Event.CONTROL_MASK){m|=1}if(o.modifiers&Event.SHIFT_MASK){m|=2}}if(/16$|17$/.test(o.keyCode)){return }var n=o.keyCode===9;var l=o.keyCode===9&&m>0;var k=o.keyCode===8;if(n){if(N()){K()}}if((/27$|38$|39$|37$/.test(o.keyCode)&&G.is(":visible"))||(/13$|40$/.test(o.keyCode))||!Y.allowInput){if(o.preventDefault){o.preventDefault()}if(o.stopPropagation){o.stopPropagation()}o.cancelBubble=true;o.returnValue=false;switch(o.keyCode){case 38:M();break;case 40:if(G.is(":visible")){e()}else{C(true)}break;case 13:if(N()){K()}else{C(true)}break;case 27:Z();break;case 39:A("#"+g.attr("id")+"n").click();break;case 37:A("#"+g.attr("id")+"p").click();break;default:if(!Y.allowInput){return }}}else{if(!n&&!l){C(false,k)}}}function C(k,m){if(Q){clearTimeout(Q)}var l=m?Y.queryDelay*5:Y.queryDelay;Q=setTimeout(function(){L(1,k,"")},l)}function L(o,l,n){var m=n&&n.length>0?n:A.trim(E.val());if(m.length>=Y.minChars||l){H.html("").attr("scrollTop",0);var k=j(m,o);if(k){J(k.data,m);B(o,k.t)}else{f=f===undefined?0:f;var r={q:m,p:o,s:f,contentType:"application/json; charset=utf-8"};var s=function(x,u){if(u===true){m=u}var q=parseInt(x[Y.totalProperty]);if(isNaN(q)&&Y.paging){if(Y.maxCacheBytes<=0){alert('The "maxCacheBytes" configuration option must be greater\nthan zero when implementing client-side paging.')}q=x.results.length;var p=q/f;if(q%f>0){p=parseInt(++p)}for(var w=1;w<=p;w++){var v={};v[Y.totalProperty]=q;v[Y.resultsProperty]=x.results.splice(0,f);if(w===1){t=J(v,m)}P(m,w,f,q,v,t)}}else{var t=J(x,m);P(m,o,f,q,x,t)}B(o,q)};if(typeof (Y.source)==="object"){s(Y.source,"")}else{if(Y.method.toUpperCase()=="POST"){A.post(Y.source,r,s,"json")}else{A.getJSON(Y.source,r,s)}}}}else{Z()}}function B(m,l){R.html("").removeClass(Y.paging.cssClass);H.css("height","auto");if(Y.showResults&&Y.paging&&l>f){var k=l/f;if(l%f>0){k=parseInt(++k)}F(k,m,l)}}function D(m,l,k){if(/^13$|^39$|^37$/.test(m.keyCode)){if(m.preventDefault){m.preventDefault()}if(m.stopPropagation){m.stopPropagation()}m.cancelBubble=true;m.returnValue=false;switch(m.keyCode){case 13:if(/^\d+$/.test(l)&&l<=k){L(l,true)}else{alert("Please enter a page number less than or equal to "+k)}break;case 39:A("#"+g.attr("id")+"n").click();break;case 37:A("#"+g.attr("id")+"p").click();break}}}function W(k){E.attr("active",true);L(parseInt(A(this).attr("page")),true,E.attr("pq"));return false}function F(AC,y,q){var n="&lt;&lt;",v="&lt;",w="&gt;",p="&gt;&gt;",m="...";R.addClass(Y.paging.cssClass);var t=A(document.createElement("a")).attr("href","#").addClass("page").click(W),AB=A(document.createElement("span")).addClass("page"),o=g.attr("id");if(y>1){t.clone(true).attr("id",o+"f").attr("page",1).html(n).appendTo(R);t.clone(true).attr("id",o+"p").attr("page",y-1).html(v).appendTo(R)}else{AB.clone(true).html(n).appendTo(R);AB.clone(true).html(v).appendTo(R)}if(Y.paging.style==="links"){var k=Y.paging.maxPageLinks;if(AC<=k){for(var z=1;z<=AC;z++){if(z===y){AB.clone(true).html(y).appendTo(R)}else{t.clone(true).attr("page",z).html(z).appendTo(R)}}}else{if((y+parseInt(k/2))>AC){startPage=AC-k+1}else{startPage=y-parseInt(k/2)}if(startPage>1){t.clone(true).attr("page",startPage-1).html(m).appendTo(R)}else{startPage=1}for(var z=startPage;z<startPage+k;z++){if(z===y){AB.clone(true).html(z).appendTo(R)}else{t.clone(true).attr("page",z).html(z).appendTo(R)}}if(AC>(startPage+k)){t.clone(true).attr("page",z).html(m).appendTo(R)}}}else{if(Y.paging.style==="input"){var x=A(document.createElement("input")).addClass("box").click(function(AD){E.attr("active",true);this.select()}).keypress(function(AD){return D(AD,this.value,AC)}).val(y).appendTo(R)}}if(y<AC){var l=t.clone(true).attr("id",o+"n").attr("page",+y+1).html(w).appendTo(R);t.clone(true).attr("id",o+"l").attr("page",AC).html(p).appendTo(R);H.css("height",($row.outerHeight()*f)+"px")}else{AB.clone(true).html(w).appendTo(R);AB.clone(true).html(p).appendTo(R);H.css("height","auto")}var s=(y-1)*f+1;var u=(s>(q-f))?q:s+f-1;if(Y.paging.showSummary){var AA={start:s,end:u,total:q,page:y,pages:AC};var r=Y.paging.summaryTemplate.applyTemplate(AA);A(document.createElement("span")).addClass(Y.paging.summaryClass).html(r).appendTo(R)}}function j(m,n){var l=m+h+n;if(i[l]){for(var k=0;k<V.length;k++){if(V[k]===l){V.unshift(V.splice(k,1)[0]);return i[l]}}}return false}function P(u,v,o,m,r,l){if(Y.maxCacheBytes>0){while(V.length&&(S+l>Y.maxCacheBytes)){var n=V.pop();S-=n.size}var k=u+h+v;i[k]={q:u,p:v,s:o,t:m,size:l,data:r};V.push(k);S+=l}}function J(s,k){var t=0;if(!s){return }if(parseInt(s[Y.totalProperty])===0&&Y.noResultsText&&Y.noResultsText.length>0){H.addClass(Y.noResultsClass).html(Y.noResultsText);G.show();return }else{H.removeClass(Y.noResultsClass)}for(var o=0;o<s[Y.resultsProperty].length;o++){var m=s[Y.resultsProperty][o],x=Y.resultTemplate.applyTemplate(m),n=k===x,l=false,v=false;if(!n&&Y.highlightMatches&&k!==""){var r=k,p='<span class="'+Y.matchClass+'">'+k+"</span>";if(x.match("<(.|\n)*?>")){v=true;r="(>)([^<]*?)("+k+")((.|\n)*?)(<)";p='$1$2<span class="'+Y.matchClass+'">$3</span>$4$6'}x=x.replace(new RegExp(r,Y.highlightMatchesRegExModifier),p)}if(Y.autoCompleteFirstMatch&&!v&&o===0){var w=m[Y.displayValue];if(k.length>0&&w.indexOf(k)===0){E.attr("pq",k);E.val(w);l=d(k.length,E.val().length)}}if(!Y.showResults){return }$row=A(document.createElement("div")).attr("id",m[Y.displayValue]).attr("val",m[Y.hiddenValue]).addClass("row").html(x).click(function(q){E.attr("active",true)}).appendTo(H);if((!Y.paging||(Y.paging&&f>s[Y.totalProperty]))&&o===s[Y.resultsProperty].length-1){$row.css("border-bottom","none")}if(n||l){$row.addClass(Y.selectClass)}t+=x.length}if(t===0){Z();return }G.parent().css("z-index",11000);G.show();H.children("div").mouseover(function(){H.children("div").removeClass(Y.selectClass);A(this).addClass(Y.selectClass)}).click(function(q){q.preventDefault();q.stopPropagation();K()});if(Y.maxVisibleRows>0){var u=Math.round($row.parent()[0].scrollHeight/s[Y.totalProperty])*Y.maxVisibleRows;H.css("maxHeight",u)}else{H.css("height","auto")}return t}function d(n,m){var k=E[0];if(k.createTextRange){var o=k.createTextRange();o.moveStart("character",n);o.moveEnd("character",m-k.value.length);o.select()}else{if(k.setSelectionRange){k.setSelectionRange(n,m)}}k.focus();return true}String.prototype.applyTemplate=function(l){try{if(l===""){return this}return this.replace(/{([^{}]*)}/g,function(n,m){var q;if(m.indexOf(".")!==-1){var p=m.split(".");var s=l;for(var o=0;o<p.length;o++){s=s[p[o]]}q=s}else{q=l[m]}if(typeof q==="string"||typeof q==="number"){return q}else{throw (n)}})}catch(k){alert("Invalid JSON property "+k+" found when trying to apply resultTemplate or paging.summaryTemplate.\nPlease check your spelling and try again.")}};function Z(){E.attr("active",false);g.css("z-index",0);G.hide()}function N(){if(!G.is(":visible")){return false}var k=H.children("div."+Y.selectClass);if(!k.length){k=false}return k}function K(){$curr=N();if($curr){E.val($curr.attr("id")).focus();X.val($curr.attr("val"));Z();if(Y.onSelect){E.attr("hiddenValue",X.val());Y.onSelect.apply(E[0])}}}function e(){$curr=N();if($curr&&$curr.next().length>0){$curr.removeClass(Y.selectClass).next().addClass(Y.selectClass);var p=H.attr("scrollTop"),o=$curr[0],n,l,k;if(A.browser.mozilla&&parseInt(A.browser.version)<=2){n=document.getBoxObjectFor(H[0]).y+H.attr("offsetHeight");l=document.getBoxObjectFor(o).y+$curr.attr("offsetHeight");k=document.getBoxObjectFor(o).height}else{n=H[0].getBoundingClientRect().bottom;var m=o.getBoundingClientRect();l=m.bottom;k=l-m.top}if(l>=n){H.attr("scrollTop",p+k)}}else{if(!$curr){H.children("div:first-child").addClass(Y.selectClass)}}}function M(){$curr=N();if($curr&&$curr.prev().length>0){$curr.removeClass(Y.selectClass).prev().addClass(Y.selectClass);var q=H.attr("scrollTop"),p=$curr[0],l=$curr.parent()[0],n,o,k;if(A.browser.mozilla&&parseInt(A.browser.version)<=2){k=document.getBoxObjectFor(p).height;n=document.getBoxObjectFor(H[0]).y-(k*2);o=document.getBoxObjectFor(p).y-document.getBoxObjectFor(H[0]).y}else{n=l.getBoundingClientRect().top;var m=p.getBoundingClientRect();o=m.top;k=m.bottom-o}if(o<=n){H.attr("scrollTop",q-k)}}else{if(!$curr){H.children("div:last-child").addClass(Y.selectClass)}}}};A.fn.flexbox=function(D,B){if(!D){return }try{var E=A.fn.flexbox.defaults;var F=A.extend({},E,B);for(var G in F){if(E[G]===undefined){throw ("Invalid option specified: "+G+"\nPlease check your spelling and try again.")}}F.source=D;if(B){F.paging=(B.paging||B.paging==null)?A.extend({},E.paging,B.paging):false;for(var G in F.paging){if(E.paging[G]===undefined){throw ("Invalid option specified: "+G+"\nPlease check your spelling and try again.")}}if(B.displayValue&&!B.hiddenValue){F.hiddenValue=B.displayValue}}this.each(function(){new A.flexbox(this,F)});return this}catch(C){if(typeof C==="object"){alert(C.message)}else{alert(C)}}};A.fn.flexbox.defaults={method:"GET",queryDelay:100,allowInput:true,containerClass:"ffb",contentClass:"content",selectClass:"ffb-sel",inputClass:"ffb-input",arrowClass:"ffb-arrow",matchClass:"ffb-match",noResultsText:"No matching results",noResultsClass:"ffb-no-results",showResults:true,autoCompleteFirstMatch:true,highlightMatches:true,highlightMatchesRegExModifier:"i",minChars:1,showArrow:true,arrowQuery:"",onSelect:false,maxCacheBytes:32768,resultTemplate:"{name}",displayValue:"name",hiddenValue:"id",initialValue:"",watermark:"",width:200,resultsProperty:"results",totalProperty:"total",maxVisibleRows:0,paging:{style:"input",cssClass:"paging",pageSize:10,maxPageLinks:5,showSummary:true,summaryClass:"summary",summaryTemplate:"Displaying {start}-{end} of {total} results"}};A.fn.setValue=function(B){var C="#"+this.attr("id");A(C+"_hidden,"+C+"_input").val(B).removeClass("watermark")}})(jQuery);