/**
 * jQuery Stepy - A Wizard Plugin - http://wbotelhos.com/stepy
 * 
 * @author  Washington Botelho
 * @twitter wbotelhos
 * @version 0.5.1
 * 
 * Licensed under The MIT License
 * http://opensource.org/licenses/mit-license.php
 * 
 */

(function(d){d.fn.stepy=function(w){if(this.length==0){a("Selector invalid or missing!");return;}else{if(this.length>1){return this.each(function(){d.fn.stepy.apply(d(this),[w]);});}}var f=d.extend({},d.fn.stepy.defaults,w),l=d(this),q=this.attr("id"),m=l.children("fieldset"),p=m.size(),x=d("<ul/>",{id:q+"-titles","class":"stepy-titles"}),t="",y="",j=null,o=true,h=l.is("form"),u="",k;if(f.titleTarget){d(f.titleTarget).html(x);}else{x.insertBefore(l);}if(q===undefined){q="stepy-"+l.index();l.attr("id",q);}l.data("options",f);if(f.validate){l.append('<div class="stepy-error"/>');}m.each(function(z){k=d(this);k.attr("id",q+"-step-"+z).addClass("step").append('<p id="'+q+"-buttons-"+z+'" class="'+q+'-buttons"/>');y=(k.attr("title")!="")?k.attr("title"):"--";j=k.children("legend");if(!f.legend){j.hide();}t="";if(f.description){if(j.length){t="<span>"+j.html()+"</span>";}else{a(q+": the legend element of the step "+(z+1)+" is required to set the description!");o=false;}}x.append('<li id="'+q+"-title-"+z+'">'+y+t+"</li>");if(z==0){if(p>1){n(z);}}else{v(z);k.hide();if(z<p-1){n(z);}}});var i=x.children(),r=l.children(".finish");i.first().addClass("current-step");if(f.finishButton){if(r.length){if(f.finish&&h){u=l.attr("onsubmit");l.attr("onsubmit","return false;");}r.click(function(z){var A=r.attr("type")=="submit";if(f.finish&&s(f.finish,p-1)){z.preventDefault();}else{if(h){if(u){l.attr("onsubmit",u);}else{l.removeAttr("onsubmit");}if(!A&&(!f.validate||e(l,p-1,f))){l.submit();}}}});if(p>1){r.hide();}r.appendTo(l.find("p:last"));}else{a(q+': element with class name "finish" missing!');}}if(f.titleClick){i.click(function(){var D=x.children(".current-step").attr("id").split("-"),C=parseInt(D[D.length-1]),A=d(this).index(),z=A;if(A>C){if(f.next&&s(f.next,A)){return;}z=g(l,f,A);}else{if(A<C){if(f.back&&s(f.back,A)){return;}}}var B=(z<=A);if(A!=C){b(l,z,B);if(f.finishButton&&z+1==p){r.show();}}});}else{i.css("cursor","default");}m.delegate('input[type="text"], input[type="password"]',"keypress",function(z){var B=(z.keyCode?z.keyCode:z.which);if(B==13){z.preventDefault();var D=d(this).parent().children("p."+q+"-buttons");if(D.length){var C=D.children("a.button-next");if(C.length){C.click();}else{var A=D.children("input.finish");if(A.length){A.click();}}}}});function s(B,z){var A=B.apply(l,[z+1]);return !(A||A===undefined);}function v(z){d("<a/>",{id:q+"-back-"+z,href:"javascript:void(0);","class":"button-back",html:f.backLabel}).click(function(){if(!f.back||!s(f.back,z-1)){b(l,z-1,false);if(z+1==p){r.hide();}}}).appendTo(d("p#"+q+"-buttons-"+z));}function n(z){d("<a/>",{id:q+"-next-"+z,href:"javascript:void(0);","class":"button-next",html:f.nextLabel}).click(function(){if(!f.next||!s(f.next,z+1)){var A=g(l,f,z+1),B=(A<=z);b(l,A,B);if(f.finishButton&&A+1==p){r.show();}}}).appendTo(d("p#"+q+"-buttons-"+z));}function g(D,C,B){var z=B,E=true;if(C.validate){for(var A=0;A<B;A++){E&=e(l,A,C);if(C.block&&!E){z=A;break;}}}return z;}return l;};function b(h,k,m){var g=h.attr("id"),l=h.children("fieldset"),n=l.size(),f=d("ul#"+g+"-titles").children(),i;if(k>n-1){k=n-1;}l.hide().eq(k).show();f.removeClass("current-step").eq(k).addClass("current-step");if(h.is("form")){var j=l.eq(k).find(":input:visible:enabled:first");if(!m){j.focus();}}}function e(i,g,h){if(!i.is("form")){return true;}var l=i.attr("id"),k=true,f=i.children("fieldset").eq(g),j=d("ul#"+l+"-titles").children().eq(g);d(f.find(":input").get().reverse()).each(function(){k&=i.validate().element(d(this));if(k===undefined){k=true;}if(k){if(h.errorImage){j.removeClass("error-image");}}else{if(h.block){b(i,g,true);}if(h.errorImage){j.addClass("error-image");}i.validate().focusInvalid();}});return k;}d.fn.stepy.step=function(g,f){var h=c(g,f,"step");if(f.indexOf(".")>=0){return;}b(h,g-1,false);d.fn.stepy;};function c(j,g,f){var h=undefined;if(g==undefined){a("Specify an ID or class to be the target of the action.");return;}if(g){if(g.indexOf(".")>=0){var i;return d(g).each(function(){i="#"+d(this).attr("id");if(f=="step"){d.fn.stepy.step(j,i);}});}h=d(g);if(!h.length){a('"'+g+'" is a invalid identifier for the public funtion $.fn.stepy.'+f+"().");return;}}return h;}function a(f){if(window.console&&window.console.log){window.console.log(f);}}d.fn.stepy.defaults={back:null,backLabel:"&lt; Zpět",block:false,description:true,errorImage:false,finish:null,finishButton:true,legend:true,next:null,nextLabel:"Pokračovat &gt;",titleClick:false,titleTarget:"",validate:false};})(jQuery);
