/* mSelect 1.4.5 par Samuel Mandonnaud www.le-pret-a-surfer.com */
(function(a){a.fn.mSelect=function(l,g){switch(l){case"activate":var b;a(this).each(function(){b=a(this);if(!b.hasClass("mSelect")){a.fn.mSelect.debug("Seul les éléments mSelect sont accepté pour la méthode disable : "+this)}else{b.removeClass("mDisable")}});break;case"disable":var b;a(this).each(function(){b=a(this);if(!b.hasClass("mSelect")){a.fn.mSelect.debug("Seul les éléments mSelect sont accepté pour la méthode disable : "+this)}else{b.addClass("mDisable")}});break;case"add":case"options":var b;var j="";var h="";var f=null;a(this).each(function(){b=a(this);if(!b.hasClass("mSelect")){a.fn.mSelect.debug("Seul les éléments mSelect sont accepté pour la méthode disable : "+this)}else{j=String(b.children(".mOptions").children(".mOption").children("input[type=radio]").attr("name"));if(j==""||j=="undefined"){j="mSelect"+Math.floor(Math.random()*100000)}if(l=="options"){b.children(".mOptions").html("")}for(var m=0;g.length>m;m++){if(!g[m].cssClass){g[m].cssClass=""}h="";if(g[m].selected){a(".mCurrentTemp").removeClass("mCurrentTemp");g[m].cssClass+=" mCurrentTemp"}b.children(".mOptions").append('<div class="mOption '+g[m].cssClass+'"><input type="radio" value="'+g[m].value+'" class="mRadio" name="'+j+'" />'+g[m].html+"</div>")}b.children(".mSelected").html(a(".mCurrentTemp").html()).children(".mRadio").remove();b.children(".mOptions").children(".mOption").css({cursor:"pointer"}).children(".mRadio").hide();if(b.children(".mOptions").children(".mCurrent").size()!=0){b.children(".mOptions").children(".mCurrent").removeClass("mCurrent").children(".mRadio")[0].checked=false}b.children(".mOptions").children(".mCurrentTemp").removeClass("mCurrentTemp").addClass("mCurrent").children(".mRadio")[0].checked=true}});break;case"selected":var b;a(this).each(function(){b=a(this);if(!b.hasClass("mSelect")){a.fn.mSelect.debug("Seul les éléments mSelect sont accepté pour la méthode disable : "+this)}else{if(b.children(".mOptions").children(".mCurrent").size()!=0){b.children(".mOptions").children(".mCurrent").removeClass("mCurrent").children(".mRadio")[0].checked=false}b.children(".mSelected").html(b.children(".mOptions").children(".mOption").eq(g).html()).children(".mRadio").remove();b.children(".mOptions").children(".mOption").eq(g).addClass("mCurrent").children(".mRadio")[0].checked=true}});break;default:var c=a.extend({},a.fn.mSelect.defaults,l);var b;var e="";var i;var d;var k;a(this).each(function(){b=a(this);if(b.is("select")){e="select"}else{if(b.is("ul")){e="ul"}else{a.fn.mSelect.debug('Seul les éléments "select" et "ul" sont accepté : '+this);return}}var n="";if(e=="select"){n=String(b.attr("name"))}else{n=String(b.children("li").children("input[type=radio]").attr("name"))}if(n==""||n=="undefined"){n="mSelect"+Math.floor(Math.random()*100000)}var p="";if(b.attr("id")){var p='id = "'+b.attr("id")+'" '}b.wrap('<div class="mSelect" '+p+' style="display:inline-block;" />');var o=b.parent().append('<div class="mFleche"></div><div class="mSelected">'+c.defaut+'</div><div class="mOptions"></div>');if(e=="select"){b.children("option").each(function(){i=a(this);var s="";if(i.attr("value")){s=i.attr("value")}else{s=i.html()}var r="";if(i.attr("class")){r+=" "+i.attr("class")}var q="";if(i.attr("selected")){r+=" mCurrent";q='checked="checked" ';o.children(".mSelected").html(i.html())}o.children(".mOptions").append('<div class="mOption'+r+'"><input type="radio" '+q+'value="'+s+'" class="mRadio" name="'+n+'" />'+i.html()+"</div>")});i=null}else{b.children("li").each(function(){i=a(this);d=i.children("input[type=radio]");k=i.children("label");if(!d){a.fn.mSelect.debug("Input Radio manquand");return}if(!k){a.fn.mSelect.debug("Label manquand");return}var s=String(d.attr("value"));if(s=="undefined"||s=="on"||s==""){s=k.text()}var r="";if(i.attr("class")){r+=" "+i.attr("class")}var q="";if(d.attr("checked")){r+=" mCurrent";q='checked="checked" ';o.children(".mSelected").html(k.html())}o.children(".mOptions").append('<div class="mOption'+r+'"><input type="radio" '+q+'value="'+s+'" class="mRadio" name="'+n+'" />'+k.html()+"</div>")});i=null;d=null;k=null}var m=o.children(".mOptions").children(".mOption");if(c.radioHide){m.children(".mRadio").hide()}c.scrollBar=false;if(c.nbVisible!=0&&m.size()>c.nbVisible){c.scrollBar=true;c.hauteur=a.fn.mSelect.addEventScroll(o,m,c)}a.fn.mSelect.addEvent(o,c);b.remove();b=null;e=null});break}};a.fn.mSelect.addEventScroll=function(f,c,g){g.hauteur=g.nbVisible*f.children(".mOptions").children(".mOption").outerHeight();if(g.scrollBarMin>e){e=g.scrollBarMin}f.append('<div class="mScrallBar"><div class="mScrollHaut"></div><div class="mScrollZone"><div class="mBarre"></div></div><div class="mScrollBas"></div></div>').children(".mOptions").addClass("mScrollConteneur").css({overflow:"auto"}).height(g.hauteur);var i=g.hauteur-f.children(".mScrallBar").children(".mScrollHaut").outerHeight()-f.children(".mScrallBar").children(".mScrollBas").outerHeight();var d=c.size()*f.children(".mOptions").children(".mOption").outerHeight();var e=g.hauteur*i/d;var b=(d-g.hauteur)/(i-e);var h=(d-g.hauteur)/(i);f.children(".mScrallBar").css({position:"absolute"}).hide().unbind("click").bind("click",function(j){j.stopPropagation()});f.children(".mScrallBar").children(".mScrollZone").height(i);f.children(".mScrallBar").children(".mScrollZone").children(".mBarre").css({position:"absolute"}).height(e);if(navigator.appName!="Opera"){f.children(".mScrallBar").children(".mScrollZone").unbind("click").bind("click",function(j){var k=f.children(".mScrallBar").children(".mScrollZone").offset();f.children(".mOptions").scrollTop((j.pageY-k.top)*h)}).children(".mBarre").unbind("mousedown").bind("mousedown",function(j){j.stopPropagation();var k=f.children(".mScrallBar").children(".mScrollZone").offset();k=k.top+j.layerY;a(document).bind("mousemove",function(l){f.children(".mOptions").scrollTop((l.pageY-k)*b)}).one("mouseup",function(l){a(document).unbind("mousemove")})});f.children(".mScrallBar").children(".mScrollHaut").unbind("mousedown").bind("mousedown",function(j){f.children(".mOptions").scrollTop(f.children(".mOptions").scrollTop()-g.scrollVitesse);a.fn.mSelect.$scrollEnCours=f.children(".mOptions");window.setTimeout("$.fn.mSelect.scollAuto("+(-g.scrollVitesse)+")",700);j.stopPropagation();a(document).one("mouseup",function(k){a.fn.mSelect.$scrollEnCours=null})});f.children(".mScrallBar").children(".mScrollBas").unbind("mousedown").bind("mousedown",function(j){f.children(".mOptions").scrollTop(f.children(".mOptions").scrollTop()+g.scrollVitesse);a.fn.mSelect.$scrollEnCours=f.children(".mOptions");window.setTimeout("$.fn.mSelect.scollAuto("+g.scrollVitesse+")",700);j.stopPropagation();a(document).one("mouseup",function(k){a.fn.mSelect.$scrollEnCours=null})})}f.children(".mOptions").unbind("scroll").bind("scroll",function(j){f.children(".mScrallBar").children(".mScrollZone").children(".mBarre").css({top:f.children(".mScrallBar").children(".mScrollHaut").outerHeight()+(f.children(".mOptions").scrollTop()/(d-g.hauteur)*(i-e))})});return g.hauteur};a.fn.mSelect.addEvent=function(b,c){b.children(".mOptions").hide().css({position:"absolute"}).children(".mOption").css({cursor:"pointer"});b.children(".mOptions").click(function(d){var f=a(d.target);while(!f.is(".mOption")&&!f.is(".mOptions")){if(f.is(".mOption")){mOption=true}f=f.parent()}if(f.is(".mOption")){if(b.children(".mOptions").children(".mCurrent").size()!=0){b.children(".mOptions").children(".mCurrent").removeClass("mCurrent").children(".mRadio")[0].checked=false}f.addClass("mCurrent").children(".mRadio")[0].checked=true;b.children(".mSelected").html(f.html()).children(".mRadio").remove();if(c.eventClick){c.eventClick.apply(d.target,[f.children(".mRadio").val(),b.children(".mSelected").html()])}}});b.one("click",function(){a.fn.mSelect.clickOuvert(b,c)})};a.fn.mSelect.$scrollEnCours=null;a.fn.mSelect.scollAuto=function(b){if(a.fn.mSelect.$scrollEnCours!=null){a.fn.mSelect.$scrollEnCours.scrollTop(a.fn.mSelect.$scrollEnCours.scrollTop()+b);window.setTimeout("$.fn.mSelect.scollAuto("+b+")",100)}};a.fn.mSelect.clickOuvert=function(c,d){if(c.hasClass("mDisable")){c.one("click",function(){a.fn.mSelect.clickOuvert(c,d)});return}var e=c.position();var b=e.left;var g=e.top+c.outerHeight();var f="";c.children(".mOptions").css({top:g,left:b}).fadeIn();if(d.scrollBar){if(d.nbVisible*c.children(".mOptions").children(".mOption").outerHeight()!=d.hauteur){d.hauteur=a.fn.mSelect.addEventScroll(c,c.children(".mOptions").children(".mOption"),d)}c.children(".mScrallBar").css({top:g,left:b+c.children(".mOptions").outerWidth()-c.children(".mScrallBar").outerWidth()}).fadeIn()}c.children(".mOptions").children(".mOption").each(function(){g+=a(this).outerHeight();if(a(this).children("input")[0].checked){f=a(this).children("input").val()}});if(d.eventOpen){d.eventOpen.apply(c[0],[f,c.children(".mSelected").html()])}a(document).delay(1).queue(function(){a(this).clearQueue();a(this).one("click",function(){var h="";c.children(".mOptions").fadeOut().children(".mOption").each(function(){if(a(this).children("input")[0].checked){h=a(this).children("input").val()}});if(d.scrollBar){c.children(".mScrallBar").fadeOut()}if(d.eventClose){d.eventClose.apply(c[0],[h,c.children(".mSelected").html()])}c.one("click",function(){a.fn.mSelect.clickOuvert(c,d)})})})};a.fn.mSelect.debug=function(b){if(window.console&&window.console.firebug){console.error("mSelect : "+b)}else{alert("mSelect : "+b)}};a.fn.mSelect.defaults={defaut:"",radioHide:true,nbVisible:6,scrollBarMin:3,scrollVitesse:10,eventClick:null,eventOpen:null,eventClose:null}})(jQuery);
