/*
*
* jqTransform
* by mathieu vilaplana mvilaplana@dfc-e.com
* Designer ghyslain armand garmand@dfc-e.com
*
*
* Version 1.0 25.09.08
* Version 1.1 06.08.09
* Add event click on Checkbox and Radio
* Auto calculate the size of a select element
* Can now, disabled the elements
* Correct bug in ff if click on select (overflow=hidden)
* No need any more preloading !!
*
******************************************** */
(function(a){var k={preloadImg:true},f=function(b){var d=a(b.get(0).form),c=b.next();if(!c.is("label")){c=b.prev();if(c.is("label"))if(b=b.attr("id"))c=d.find('label[for="'+b+'"]')}if(c.is("label"))return c.css("cursor","pointer");return false},i=function(b){a(".jqTransformSelectWrapper ul:visible").each(function(){var d=a(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);b&&d.oLabel&&d.oLabel.get(0)==b.get(0)||a(this).hide()})},l=function(b){a(b.target).parents(".jqTransformSelectWrapper").length=== 0&&i(a(b.target))},m=function(b){var d;a(".jqTransformSelectWrapper select",b).each(function(){d=this.selectedIndex<0?0:this.selectedIndex;a("ul",a(this).parent()).each(function(){a("a:eq("+d+")",this).click()})});a("a.jqTransformCheckbox, a.jqTransformRadio",b).removeClass("jqTransformChecked");a("input:checkbox, input:radio",b).each(function(){this.checked&&a("a",a(this).parent()).addClass("jqTransformChecked")})};a.fn.jqTransInputButton=function(){return this.each(function(){var b=a('<button id="'+ this.id+'" name="'+this.name+'" type="'+this.type+'" class="'+this.className+' jqTransformButton"><span><span>'+a(this).attr("value")+"</span></span>").hover(function(){b.addClass("jqTransformButton_hover")},function(){b.removeClass("jqTransformButton_hover")}).mousedown(function(){b.addClass("jqTransformButton_click")}).mouseup(function(){b.removeClass("jqTransformButton_click")});a(this).replaceWith(b)})};a.fn.jqTransInputText=function(){return this.each(function(){var b=a(this);if(!(b.hasClass("jqtranformdone")|| !b.is("input"))){b.addClass("jqtranformdone");var d=f(a(this));d&&d.bind("click",function(){b.focus()});b.css("width");b.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');var c=b.parent().parent().parent();b.focus(function(){c.addClass("jqTransformInputWrapper_focus")}).blur(function(){c.removeClass("jqTransformInputWrapper_focus")}).hover(function(){c.addClass("jqTransformInputWrapper_hover")},function(){c.removeClass("jqTransformInputWrapper_hover")}); a.browser.safari&&c.addClass("jqTransformSafari");this.wrapper=c}})};a.fn.jqTransCheckBox=function(){return this.each(function(){if(!a(this).hasClass("jqTransformHidden")){var b=a(this),d=this,c=f(b);c&&c.click(function(){e.trigger("click")});var e=a('<a href="#" class="jqTransformCheckbox"></a>');b.addClass("jqTransformHidden").wrap('<span class="jqTransformCheckboxWrapper"></span>').parent().prepend(e);b.change(function(){this.checked&&e.addClass("jqTransformChecked")|| e.removeClass("jqTransformChecked");return true});e.click(function(){if(b.attr("disabled"))return false;firstONE=d.checked;b.trigger("click").trigger("change");secondOne=d.checked;firstONE==secondOne&&navigator.userAgent.indexOf("MSIE")!=-1&&d.click();a(this).attr("class")=="jqTransformCheckbox jqTransformChecked"?a(this).parent().next().next().next().attr("value",a(this).parent().next().next().attr("value")):a(this).parent().next().next().next().attr("value","");return false});this.checked&&e.addClass("jqTransformChecked")}})}; a.fn.jqTransRadio=function(){return this.each(function(){if(!a(this).hasClass("jqTransformHidden")){var b=a(this),d=this;(oLabel=f(b))&&oLabel.click(function(){c.trigger("click")});var c=a('<a href="#" class="jqTransformRadio" rel="'+this.name+'"></a>');b.addClass("jqTransformHidden").wrap('<span class="jqTransformRadioWrapper"></span>').parent().prepend(c);b.change(function(){d.checked&&c.addClass("jqTransformChecked")||c.removeClass("jqTransformChecked");return true});c.click(function(){if(b.attr("disabled"))return false; b.trigger("click").trigger("change");a('input[name="'+b.attr("name")+'"]',d.form).not(b).each(function(){a(this).attr("type")=="radio"&&a(this).trigger("change")});return false});d.checked&&c.addClass("jqTransformChecked")}})};a.fn.jqTransTextarea=function(){return this.each(function(){var b=a(this);if(!b.hasClass("jqtransformdone")){b.addClass("jqtransformdone");(oLabel=f(b))&&oLabel.click(function(){b.focus()});var d='<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">'; d+='<tr><td id="jqTransformTextarea-tl"></td><td id="jqTransformTextarea-tm"></td><td id="jqTransformTextarea-tr"></td></tr>';d+='<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>';d+='<tr><td id="jqTransformTextarea-bl"></td><td id="jqTransformTextarea-bm"></td><td id="jqTransformTextarea-br"></td></tr>';d+="</table>";var c=a(d).insertAfter(b).hover(function(){!c.hasClass("jqTransformTextarea-focus")&&c.addClass("jqTransformTextarea-hover")}, function(){c.removeClass("jqTransformTextarea-hover")});b.focus(function(){c.removeClass("jqTransformTextarea-hover").addClass("jqTransformTextarea-focus")}).blur(function(){c.removeClass("jqTransformTextarea-focus")}).appendTo(a("#jqTransformTextarea-mm div",c));this.oTable=c;a.browser.safari&&a("#jqTransformTextarea-mm",c).addClass("jqTransformSafariTextarea").find("div").css("height",b.height()).css("width",b.width())}})};a.fn.jqTransSelect=function(){return this.each(function(){var b=a(this); if(!b.hasClass("jqTransformHidden"))if(!b.attr("multiple")){var d=f(b),c=b.addClass("jqTransformHidden").wrap('<div class="jqTransformSelectWrapper"></div>').parent();c.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>');var e=a("ul",c).css("width",b.css("width")).hide();a("option",this).each(function(g){g=a('<li><a href="#" index="'+g+'">'+a(this).html()+"</a></li>");e.append(g)});e.find("a").click(function(){a("a.selected",c).removeClass("selected");a(this).addClass("selected"); if(b[0].selectedIndex!=a(this).attr("index")&&b[0].onchange){b[0].selectedIndex=a(this).attr("index");b[0].onchange()}b[0].selectedIndex=a(this).attr("index");a("span:eq(0)",c).html(a(this).html());e.hide();return false});a("a:eq("+this.selectedIndex+")",e).click();a("span:first",c).click(function(){a("a.jqTransformSelectOpen",c).trigger("click")});d&&d.click(function(){a("a.jqTransformSelectOpen",c).trigger("click")});this.oLabel=d;var h=a("a.jqTransformSelectOpen",c).click(function(){e.css("display")== "none"&&i();if(b.attr("disabled"))return false;e.slideToggle("fast",function(){var g=a("a.selected",e).offset().top-e.offset().top;e.animate({scrollTop:g})});return false});d=b.outerWidth();var j=a("span:first",c);h=d>j.innerWidth()?d+h.outerWidth():c.width();c.css("width",h);e.css("width",h-2);j.css({width:d});e.css({display:"block",visibility:"hidden"});a("li",e);a("li:first",e).height();e.height();e.css({display:"none",visibility:"visible"})}})};a.fn.jqTransform=function(b){a.extend({},k,b);return this.each(function(){var d= a(this);if(!d.hasClass("jqtransformdone")){d.addClass("jqtransformdone");a('input:submit, input:reset, input[type="button"]',this).jqTransInputButton();a("input:text, input:password",this).jqTransInputText();a("input:checkbox",this).jqTransCheckBox();a("input:radio",this).jqTransRadio();a("textarea",this).jqTransTextarea();a("select",this).jqTransSelect().length>0&&a(document).mousedown(l);d.bind("reset",function(){window.setTimeout(function(){m(this)},10)})}})}})(jQuery);
