// <![CDATA[
/****************************************************************************
	Agestis - Content Management System - http://www.agestis.com
	by ARICIA http://www.aricia.fr
*****************************************************************************
			Version:		20090120.1447
			Coder:		Damien
*****************************************************************************
		Convertisseur de formulaire.
		
		Le script convertit le formulaire pour qu'il soit basé sur le 
		framework Ext;js 2.0

****************************************************************************/

function ConvertToExtForm( formId , options ){

	if( Ext.get( formId )==null ){
		return false;
	}

	Ext.applyIf( options , {
		ajaxSubmit : false
		, dateformat : "d/m/Y"
		,TextField: {
			allowBlank: false 
			}
	} , {} );
	
	
	if(options.ajaxSubmit==false){
		options.standardSubmit= true;
	};

	var frm			= new Ext.form.BasicForm(formId, options );

	var myInputs	= Ext.DomQuery.select("input[type=text],input[type=password]" , formId );
	var myTextareas	= Ext.DomQuery.select("textarea" , formId );
	var myRadios	= Ext.DomQuery.select("input[type=radio]" , formId );
	var myCheckboxs	= Ext.DomQuery.select("input[type=checkbox]" , formId );
	var mySelects	= Ext.DomQuery.select("select" , formId );
	var elem;

	// text fields
	for (var i=0; i<myInputs.length; i++) {
		//item = myInputs[i];
		elem = Ext.get(myInputs[i]);
		RedrawParent( elem );

		
		if( elem.hasClass("date-picker")){
			// date picker field
			var df = new Ext.form.DateField({
				format: options.dateformat,
				width: elem.getWidth()
			});
			df.applyToMarkup(elem);
		}else{
			// simple text field
			var tf= new Ext.form.TextField({
				width: elem.getWidth(),
				allowBlank : !elem.hasClass("required")
			});
			tf.applyToMarkup(elem);
		}
	}
	// text areas
	for (var i=0; i<myTextareas.length; i++) {
		elem = Ext.get(myTextareas[i]);
		RedrawParent( elem );

		if( elem.hasClass("resizeable") ){
			var dwrapped = new Ext.Resizable(elem, {
				wrap: true,
				pinned: true,
				width: elem.getWidth(),
				height: elem.getHeight(),
				minWidth: elem.getWidth(),
				minHeight: elem.getHeight(),
				dynamic: true
			});
		}else{

			if( elem.hasClass("HtmlEditor") ){
				var HtmlEditor = new Ext.form.HtmlEditor({
					alignment:"tl-tl?"
					//,applyTo: elem
				});
				HtmlEditor.applyToMarkup(elem);
				HtmlEditor.realign();
			}else{
				var taf= new Ext.form.TextArea({
					width: elem.getWidth(),
					height: elem.getHeight()
				});
				taf.applyToMarkup(elem);	
			}
		}
	};
	// radios
	for (var i=0; i<myRadios.length; i++) {
		elem = Ext.get( myRadios[i] );
		RedrawParent( elem );
		var rf = new Ext.form.Radio({
			id: elem.dom.id||Ext.id()
			,checked: elem.dom.checked
		})
		rf.applyToMarkup(elem);	
	};
	// checkbox
	for (var i=0; i<myCheckboxs.length; i++) {
		elem = Ext.get(myCheckboxs[i]);
		//RedrawParent( elem );
		var cbf = new Ext.form.Checkbox({
			id: elem.dom.id||Ext.id()
			,checked: elem.dom.checked			
		})
		cbf.applyToMarkup(elem);
	};
	// combo-box
	for (var i=0; i<mySelects.length; i++) {
		elem = Ext.get(mySelects[i]);
		//RedrawParent( elem );
		var cb = new Ext.form.ComboBox({
			transform: elem,
			typeAhead: true,
			triggerAction: 'all',
			width: elem.getWidth(),
			forceSelection: true
		});	
	};
};


function RedrawParent( elem ){

	var ParentEl = elem.parent( "div.x-form-element" , 10, true );
	if (ParentEl == null ){
		elem.wrap( { tag: 'div', cls: 'x-form-element'} );
	}
}