/*
Script Name: 	Step Wizard (http://jastegg.it/eggs/stepwizard/ )
Author:			Diego La Monica 
version: 		1.2 beta
version date:	2008-07-20
Plugin for:		JAST ( http://jastegg.it )
--------------------------------

Change log:

1.1 (2008-01-20):
	Primo rilascio
	
1.2 (2008-07-20): 
	aggiunto metodo che preleva dal primo nodo figlio il titolo dello step nel caso in cui
	l'elemento che fa da container per lo step wizard non disponga di un suo titolo (attributo title)

--------------------------------
*/
JASTEggIt.extend('StepWizard',{options:{formId:'',startFrom:0,nextButton:true,prevButton:true,replaceSubmit:true,stepListClassName:'step-list',stepListCurrentClassName:'current',buttonContainerClassName:'',buttonClassName:'',buttonPreviousClassName:'',buttonPreviousText:'Previous',buttonNextClassName:'',buttonNextText:'Next',isStepClickable:false},setup:function(elementsId,options){options=JASTEggIt.mergeOptions(options,this.options);var ul=JASTEggIt.DOM.createOnDocument('ol',elementsId[0],null);options._ulId=ul.id;options._elementsId=elementsId;JASTEggIt.DOM.appendClass(ul,options.stepListClassName);for(var i=0;i<elementsId.length;i++){var e=JASTEggIt._id(elementsId[i]);var t=e.title;if(t==''||t==null)t=e.childNodes[0].innerText;var li=JASTEggIt.DOM.createChild('li',ul);if(options.isStepClickable){li.innerHTML='<a href="javascript:JASTEggIt.StepWizard.goTo(\''+options.formId+'\', '+i+');">'+t+'</a>';}else{li.innerHTML=t;}if(i!=options.startFrom){JASTEggIt.DOM.setStyle(e,{display:'none'});}else{JASTEggIt.DOM.appendClass(li,options.stepListCurrentClassName);}}var last=elementsId[elementsId.length-1];var div=JASTEggIt.DOM.createOnDocument('div',null,last);if(options.buttonContainerClassName!=''){JASTEggIt.DOM.appendClass(div,options.buttonContainerClassName);}var linkPrev=JASTEggIt.DOM.createChild('a',div);var linkNext=JASTEggIt.DOM.createChild('a',div);if(options.buttonClassName!=''){JASTEggIt.DOM.appendClass(linkPrev,options.buttonClassName);JASTEggIt.DOM.appendClass(linkNext,options.buttonClassName);}if(options.buttonPreviousClassName!=''){JASTEggIt.DOM.appendClass(linkPrev,options.buttonPreviousClassName);}if(options.buttonNextClassName!=''){JASTEggIt.DOM.appendClass(linkNext,options.buttonNextClassName);}linkPrev.href='javascript:JASTEggIt.StepWizard.goPrevious("'+options.formId+'")';linkNext.href='javascript:JASTEggIt.StepWizard.goNext("'+options.formId+'")';linkPrev.innerHTML=options.buttonPreviousText;linkNext.innerHTML=options.buttonNextText;var f=JASTEggIt._id(options.formId);if(options.replaceSubmit){var inputs=JASTEggIt._name('input',f);for(var i=0;i<inputs.length;i++){if(inputs[i].type=='submit'){JASTEggIt.DOM.setStyle(inputs[i],{display:'none'});inputs[i].onclick=function(){return false;}}}}f.options=options;},goTo:function(formId,index){var f=JASTEggIt._id(formId);var o=f.options;var ul=JASTEggIt._id(o._ulId);var li=JASTEggIt._name('li',ul);JASTEggIt.DOM.removeClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'none'});o.startFrom=index;JASTEggIt.DOM.appendClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'block'});},goNext:function(formId){var f=JASTEggIt._id(formId);var o=f.options;if(o.startFrom==o._elementsId.length-1&&o.replaceSubmit){f.submit();}else{var ul=JASTEggIt._id(o._ulId);var li=JASTEggIt._name('li',ul);JASTEggIt.DOM.removeClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'none'});o.startFrom+=1;JASTEggIt.DOM.appendClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'block'});}},goPrevious:function(formId){var f=JASTEggIt._id(formId);var o=f.options;if(o.startFrom!=0){var ul=JASTEggIt._id(o._ulId);var li=JASTEggIt._name('li',ul);JASTEggIt.DOM.removeClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'none'});o.startFrom-=1;JASTEggIt.DOM.appendClass(li[o.startFrom],o.stepListCurrentClassName);JASTEggIt.DOM.setStyle(o._elementsId[o.startFrom],{display:'block'});}}});