{// Pagesheet
	var header=document.getElementById('header');
	Jade.DOM.Add(header,'div','logo');
	Jade.DOM.Add(header,'div','texto',null,Jade.Lang.Get('install_of'));
	Jade.DOM.Add(header,'div','wizard',null,Jade.Lang.Get('config_wizard'));

	var gpBody=Jade.Objects.Container();
	gpBody.Location(0,0,600,400);
	gpBody.Add();
	
	var lblTitle=Jade.Objects.Text();
	lblTitle.Location(10,10,570,20);
	lblTitle.style.fontWeight='bold';
	lblTitle.style.fontSize='12px';
	lblTitle.Add(gpBody);
	
	var lblInfo=Jade.Objects.Text();
	lblInfo.Location(15,30,570,300);
	lblInfo.Add(gpBody);

	var lblStatus=Jade.Objects.Text(Jade.Lang.Get('install_press_next'));
	lblStatus.Location(15,305,570,30);
	lblStatus.className+=' legend';
	lblStatus.text.style.bottom='0';
	lblStatus.Add(gpBody);
	
	Jade.DOM.Add(gpBody,'div','divisor');
	
	var cmdPrevius=Jade.Objects.Button('« '+Jade.Lang.Get('previus'));
	cmdPrevius.Location(10,345,180,20);
	cmdPrevius.Add(gpBody);	
	
	var cmdNext=Jade.Objects.Button(Jade.Lang.Get('next')+' »');
	cmdNext.Location(195,345,180,20);
	cmdNext.Add(gpBody);

	var cmdFinish=Jade.Objects.Button(Jade.Lang.Get('finish'));
	cmdFinish.Location(410,345,180,20);
	cmdFinish.Add(gpBody);
	Jade.FX.Hide(cmdFinish);
	
	var cmdTry=Jade.Objects.Button(Jade.Lang.Get('try_again'));
	cmdTry.Location(410,345,180,20);
	cmdTry.SetStyle('special');
	cmdTry.Add(gpBody);
	
	var lblFoot=Jade.Objects.Text('Copyright © 2011 · PSD Software · '+Jade.Lang.Get("copyright"));
	lblFoot.Location(15,380,570,20);
	lblFoot.SetTextAlign('center');
	lblFoot.Add(gpBody);

	var secciones=[];
}//
{// Step 1
	var step1=Jade.Wizzard.CreateStep(1);
	
	step1.add('lng',165,45,240,20,'combo');
	step1.lng.SetStyle('lng');
	
	for(var i=0,iLen=Jade.Lang.languages.length;i<iLen;i++){
		var item=Jade.Lang.languages[i];
		step1.lng.AddItem(item.name, item.code, item.code);
		if(Jade.Lang.language==item.code){ step1.lng.SetSelectedIndex(i); }
	}
	
	step1.lng.onchange = function() {
		Jade.Lang.SetLanguage(this.selectedKey);
		Jade.Redirect(window.location);
	}
	
	step1.inicial = function() {
		cmdPrevius.SetEnabled(false);
		var type=window.location.search.substr(1);
		if(type=='error'){
			cmdNext.SetEnabled(false);
			Jade.FX.Hide(lblStatus);
			Jade.FX.Hide(cmdPrevius);
			Jade.FX.Hide(cmdNext);
			
			step1.lng.Position(165,140);
			lblTitle.SetText(('<font color="#CC4400">'+Jade.Lang.Get('step_3_error')+'</font>').toUpperCase());
			lblInfo.SetText(Jade.Lang.Get('licence_step_error'));
		}
		
	}
}//
{// Step 2
	var step2=Jade.Wizzard.CreateStep(2);
	
	step2.add('lbl_user',100,125,180,20,'text',Jade.Lang.Get('user')+':');
	step2.add('user',240,120,200,20,'textbox');
	step2.add('lbl_pass',100,155,180,20,'text',Jade.Lang.Get('pass')+':');
	step2.add('pass',240,150,200,20,'password');
	
	step2.add('status',0,180,570,45,'message');
	
	step2.inicial=function(){
		step2.error=true;
		step2.status.hide();
		cmdNext.onclick=function(){
			step2.accion();
			if(!step2.error){ Jade.Wizzard.MoveNext(); }
		}
	}
	step2.accion=function(){
		var ajax=Jade.Ajax();
		ajax.AddParam('user',Jade.Encrypt.MD5(step2.user.GetText()));
		ajax.AddParam('pass',Jade.Encrypt.MD5(step2.pass.GetText()));
		ajax.Run('ajax.admin_login.php');
		
		switch(ajax.json.exists){
			case 0:
				step2.status.set_style('red');
				step2.status.set_text(Jade.Lang.Get('error_login_nomatch'));
				step2.status.show();
				break;
			case 1:
				step2.error = false
				step2.db={type: ajax.json.DB_TYPE, ip: ajax.json.DB_IP, name: ajax.json.DB_NAME, user: ajax.json.DB_USER, pass: ajax.json.DB_PASS};
				
				break;
		}
	}
}//
{// Step 3
	var step3=Jade.Wizzard.CreateStep(3);
	
	step3.inicial = function() {
		Jade.FX.Show(cmdTry);
		step3.accion();
	}
	step3.accion = function() {
		var ajax=Jade.Ajax();
		ajax.Run('../install/ajax.check_enviroment.php');
		
		var text='';
		//PHP
		text+='<li class="'+Jade.iif(ajax.json.php,'ok','error')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.php,'ok','error'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_php'),ajax.json.php_version)+'. ';
		if(!ajax.json.php){ text+=Jade.Strings.Format(Jade.Lang.Get('step_3_php_error'),ajax.json.php_minor)+'. '; }
		text+='</li>';
		//Mysql
		text+='<li class="'+Jade.iif(ajax.json.mysql,'ok','warn')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.mysql,'ok','warn'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_extension_'+ajax.json.mysql),'\'mysql\'')+'. ';
		if(!ajax.json.mysql){ text+=' ('+Jade.Lang.Get('step_3_mysql')+')'; }
		text+='</li>';
		//Mssql
		text+='<li class="'+Jade.iif((ajax.json.mssql||ajax.json.sqlsrv),'ok','warn')+'">';
		text+=Jade.Lang.Get('step_3_'+((ajax.json.mssql||ajax.json.sqlsrv)?'ok':'warn'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_extension_'+(ajax.json.mssql||ajax.json.sqlsrv)),'\'mssql\'')+'. ';
		if(!(ajax.json.mssql||ajax.json.sqlsrv)){ text+=' ('+Jade.Lang.Get('step_3_mssql')+')'; }
		text+='</li>';
		//Oracle
		text+='<li class="'+Jade.iif(ajax.json.oci,'ok','warn')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.oci,'ok','warn'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_extension_'+ajax.json.oci),'\'oci8\'')+'. ';
		if(!ajax.json.oci){ text+=' ('+Jade.Lang.Get('step_3_oci')+')'; }
		text+='</li>';		
		//Memory
		text+='<li class="'+Jade.iif(ajax.json.memory,'ok','error')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.memory,'ok','error'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_php_var'),'\'memory_limit\'',ajax.json.memory_limit)+'. ';
		if(!ajax.json.memory){ text+=Jade.Strings.Format(Jade.Lang.Get('step_3_php_var_fail'),'\'memory_limit\'',ajax.json.memory_suggested)+'. '; }
		text+='</li>';
		//Zend
		text+='<li class="'+Jade.iif(ajax.json.zend,'error','ok')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.zend,'error','ok'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_php_var'),'\'zend.ze1_compatibility_mode\'',ajax.json.zend)+'. ';
		if(ajax.json.zend){ text+=Jade.Strings.Format(Jade.Lang.Get('step_3_php_var_fail'),'\'zend.ze1_compatibility_mode\'','1')+'. '; }
		text+='</li>';	
		//Dirs
		//text+='<li class="'+Jade.iif(ajax.json.dir_main,'ok','error')+'">';
		//text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.dir_main,'ok','error'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_dir_'+ajax.json.dir_main),Jade.Lang.Get('step_3_main_dir'))+'. ';
		text+='<li class="'+Jade.iif(ajax.json.dir_config,'ok','error')+'">';
		text+=Jade.Lang.Get('step_3_'+Jade.iif(ajax.json.dir_config,'ok','error'))+': '+Jade.Strings.Format(Jade.Lang.Get('step_3_dir_'+ajax.json.dir_config),'\'/config\'')+'. ';
		//
		step3.innerHTML=text;
		cmdNext.SetEnabled(Jade.iif(ajax.json.error_all, false, true));
		lblStatus.SetText(Jade.iif(ajax.json.error_all,Jade.Lang.Get('install_step_error'),Jade.Lang.Get('install_press_next')));
	}
}
{// Step 4
	var step4=Jade.Wizzard.CreateStep(4);
	
	step4.add('lbl_type',80,55,180,20,'text',Jade.Lang.Get('db_type')+':');
	step4.add('type',260,50,200,20,'combo');

	step4.add('lbl_path',80,80,180,20,'text',Jade.Lang.Get('db_path')+':');
	step4.add('path',260,75,200,20,'textbox');
	
	step4.add('lbl_user',80,105,180,20,'text',Jade.Lang.Get('db_user')+':');
	step4.add('user',260,100,200,20,'textbox');
	
	step4.add('lbl_pass',80,130,180,20,'text',Jade.Lang.Get('db_pass')+':');
	step4.add('pass',260,125,200,20,'password');
	
	step4.add('lbl_name',80,155,180,20,'text',Jade.Lang.Get('db_name')+':');
	step4.add('name',260,150,200,20,'textbox');
	
	step4.add('status',0,175,570,45,'message');
	step4.error=false;
	
	step4.type.AddItem('MySQL Server','0');
	step4.type.AddItem('Microsoft SQL Server','1');
	step4.type.AddItem('Oracle Server','2');
	
	step4.inicial = function() {
		Jade.FX.Show(cmdTry);
		step4.status.hide();
		
		cmdNext.onclick=function(){
			step4.accion();
			if(!step4.error) { Jade.Wizzard.MoveNext(); }
		}
		step4.type.SetSelectedKey(step2.db.type);
		step4.path.SetText(step2.db.ip);
		step4.user.SetText(step2.db.user);
		step4.pass.SetText(step2.db.pass);
		step4.name.SetText(step2.db.name);
	}
	
	step4.accion = function(){
		var ajax=new Jade.Ajax();
		ajax.AddParam('type',step4.type.selectedKey);
		ajax.AddParam('path',step4.path.GetText());
		ajax.AddParam('name',step4.name.GetText());
		ajax.AddParam('user',step4.user.GetText());
		ajax.AddParam('pass',step4.pass.GetText());
		ajax.Run('ajax.check_db.php');
		if(ajax.json.error){
			step4.status.set_style('red');
			step4.status.show();
			step4.status.set_text(Jade.Strings.Format(Jade.Lang.Get('db_error_'+ajax.json.error_id),"'"+step4.name.GetText()+"'")+":<br>"+ajax.json.message);
			lblStatus.SetText(Jade.Lang.Get('install_step_error'));
			step4.error = true;
		}
		else{
			step4.status.set_style('green');
			step4.status.show();
			step4.status.set_text(Jade.Lang.Get('db_ok'));
			lblStatus.SetText(Jade.Lang.Get('install_press_next'));
			step4.error = false;
		}
	}
}
{// Step 5
	var step5=Jade.Wizzard.CreateStep(5);
	step5.add('lbl_language',30,0,480,20,'text',Jade.Lang.Get('step_6_language')+':');
	step5.add('lng',150,25,240,20,'combo');
	step5.add('lbl_company',30,55,480,20,'text',Jade.Lang.Get('step_6_company')+':');
	step5.add('company',150,80,240,20,'combo');
	step5.add('lbl_show_company',30,110,480,60,'text',Jade.Lang.Get('step_6_show_company_msg')+':');
	step5.add('show_company',150,170,420,60,'checkbox',Jade.Lang.Get('step_6_show_company'));
	
	step5.lng.SetStyle('lng');
	for(var i=0; i<Jade.Lang.languages.length; i++){
		var item=Jade.Lang.languages[i];
		step5.lng.AddItem(item.name,item.code,item.code);
		if(Jade.Lang.lng==item.code){ step5.lng.SetSelectedIndex(i); }
	}
	step5.show_company.SetCheck(true);
	
	step5.inicial=function(){
		var ajax=Jade.Ajax();
		ajax.AddParam('type',step4.type.selectedKey);
		ajax.AddParam('path',step4.path.GetText());
		ajax.AddParam('name',step4.name.GetText());
		ajax.AddParam('user',step4.user.GetText());
		ajax.AddParam('pass',step4.pass.GetText());
		
		ajax.AddParam('query', "SELECT Codigo,Descripcion FROM EMPRESA_CONFIGURACION WHERE LOWER(Nombre)=LOWER('Descripction') ORDER BY Codigo");
		ajax.Run('ajax.db_query.php');
		step5.company.Clear();
		for(var i=0,iLen=ajax.json.row.length;i<iLen;i++){
			var item=ajax.json.row[i];
			if(step4.type.selectedKey=="2"){
				step5.company.AddItem(item.CODIGO+' - '+item.VALOR, item.CODIGO);
			}
			else{
				step5.company.AddItem(item.Codigo+' - '+item.Valor, item.Codigo);
			}
		}
	}
}
{// Step 6
	var step6=Jade.Wizzard.CreateStep(6);
	step6.inicial=function(){
		Jade.FX.Show(cmdFinish);
		cmdPrevius.SetEnabled(false);
		cmdNext.SetEnabled(false);
		Jade.FX.Hide(lblStatus);
		
		var ajaxIni=new Jade.Ajax();
		ajaxIni.AddParam('file','../config/config.ini');
		var values=['PATH=','CSS_STYLE=default'];
		values.push('DB_TYPE='+step4.type.selectedKey);
		values.push('DB_IP='+step4.path.GetText());
		values.push('DB_NAME='+step4.name.GetText());
		values.push('DB_USER='+step4.user.GetText());
		values.push('DB_PASS='+step4.pass.GetText());
		
		values.push('ADMIN_USER='+Jade.Encrypt.MD5(step2.user.GetText()));
		values.push('ADMIN_PASS='+Jade.Encrypt.MD5(step2.pass.GetText()));
		
		values.push('LANGUAGE_DEFAULT='+step5.lng.selectedKey);
		values.push('COMPANY_SHOW='+Jade.iif(step5.show_company.GetCheck(),1,0));
		values.push('COMPANY_DEFAULT='+step5.company.selectedKey);
		values.push('DEBUG_MODE=0');
		
		ajaxIni.AddParamArray('values',values);
		ajaxIni.Run('ajax.write_ini.php')
	}
}
{// Change step
	Jade.Wizzard.SetPosition(15, 80);
	cmdPrevius.onclick=Jade.Wizzard.MovePrevius;
	
	cmdTry.onclick=function(){
		if(typeof(Jade.Wizzard.steps[Jade.Wizzard.currentStep].accion)!="undefined"){ Jade.Wizzard.steps[Jade.Wizzard.currentStep].accion(); };
	}
	
	cmdFinish.onclick=function(){
		Jade.Redirect('../');
	}
	
	Jade.Wizzard.onChangeStep=function(){
		var step=Jade.Wizzard.currentStep;
		cmdPrevius.SetEnabled(true);
		cmdNext.SetEnabled(true);
		cmdNext.onclick=Jade.Wizzard.MoveNext;	
		Jade.FX.Hide(cmdTry);
		
		var strTitle='';
		var strInfo='';
		switch(step){
			case 1:
				strTitle='install_title_step_1';
				strInfo='config_step_1';
				break;
			case 2:
				strTitle='config_title_step_2';
				strInfo='config_step_2';
				break;
			case 3:
				strTitle='install_title_step_3';
				strInfo='install_step_3';
				break;
			case 4:
				strTitle='install_title_step_5';
				strInfo='install_step_5';
				break;
			case 5:
				strTitle='install_title_step_6';
				strInfo='install_step_6';
				break;
			case 6:
				strTitle='install_title_step_7';
				strInfo='config_step_7';
				break;				
		}
		lblTitle.SetText((Jade.Lang.Get('step')+' '+step+': <font color="#0077FF">'+Jade.Lang.Get(strTitle)+'</font>').toUpperCase());
		lblInfo.SetText(Jade.Lang.Get(strInfo));
	}
	Jade.Wizzard.Start();
}