function UNDEF(a){ return 'undefined' == typeof(a); }
var tv_register = {};

tv_register.init = function(){
	//Ext.getBody().addListener("specialkey", function(){alert("escape");});

	tv_school.init();
    var fileField = new Ext.form.FileUploadField({
	xtype:"fileuploadfield",
	emptyText:'select an image to upload',
	fieldLabel:'ID Photo',
	name:"filedata",
	buttonCfg: {
		text: 'Browse...'}
    });

	tv_register.registerHandler = function(){

	    var form = tv_register.registerFP.getForm();
		//tv_register.XX = form.getValues();
	    var params = {};
		if (TWINEDU){params.twinedu = true}
		if (TWINEDU && !tv_school.school_selected){
			Ext.Msg.alert("Failure","School field is mandatory");
			tv_register.registerFP.activate(1);
			}
	    var filename = fileField.getValue();
	    if (!UNDEF(filename)) { params.filename = filename; }
	    tv_util_login.progress = Ext.Msg.progress("Creating account...",
					    "Please wait while registering",
					    "Sending profile data"
					    );
		var chain = null;
	    if (!UNDEF(filename) && filename) {
			chain = tv_util_login.loopProgress(0.1,"uploading picture","still uploading picture - please wait" );
		}
		//Ext.getBody().addKeyListener(Ext.EventObject.ESC, function(){alert("escape");});
		if(TWINEDU){setCookie(TWINEDU_COOKIE_KEY,"edu",null,'/','.twinverse.com');
		} else { setCookie(TWINEDU_COOKIE_KEY,"twi",null,'/','.twinverse.com'); }
	    form.submit({
			timeout:30.0,
			clientValidation:false,
			params:params,
			success:function(fp,response){
				tv_register.XXX = response;
				if(chain){chain.abort();}
				tv_util_login.progress.updateProgress(0.7,"Registration OK");
				//window.location = '/';
				// redirect to enter
				
				//response = response.responseText;
				//response = Ext.decode(response);
				if(!response.result.success){
					Ext.Msg.alert("Failure",response.data.msg);
					return
				}
				
				if(TWINEDU || /twinedu/.test(response.result.data)){Ext.Msg.alert("Registration succeeded",
						'We just sent you a message, <br/> please check your mailbox!');
						return;}

				window.location = 'http://dispatch2.twinverse.com/';
				//console.log("success: "+response.result);
			},
			failure:function(fp,failed){
				tv_register.XXX = failed;
				if(chain){chain.abort();}
				tv_util_login.progress.hide();
				Ext.Msg.alert("Failure while registering",failed.result.data.msg);
				//console.log("failure");
			}
	    });
			
	}
	
	
	if(TWINEDU){
		var personalProfile = [{
	            xtype:'textfield',
                fieldLabel: 'first name',
                name: 'first_name'
            },{
	            xtype:'textfield',
                fieldLabel: 'last name',
                name: 'last_name'
            },{
	            xtype:'textfield',
                fieldLabel: 'email(*)',
                name: 'email',
                allowBlank:false
            },{
	            xtype:'textfield',
                fieldLabel: 'password',
				inputType:'password',
                name: 'password'
            },
            {
	            xtype:'textfield',
                fieldLabel: 'web page',
                name: 'webpage'
            },
            fileField
			//,{html:"<i>(*) mandatory</i>"}
        ];
		var school = new Ext.form.TriggerField({
	            xtype:'textfield',
                fieldLabel: 'school ref(*)',
                name: 'school_id',
				readOnly:true,
				//disabled:true,
				emptyText:"Select or add school",
				triggerClass:'x-form-search-trigger',
                allowBlank:false
            });
		school.onTriggerClick = function(){tv_school.formwindow.show();};
		school.on('focus', function(){tv_school.formwindow.show();});
		var educationalProfile = [school,
			{
	            xtype:'textfield',
                fieldLabel: 'registration key',
				value:"key-beta-000",
				readOnly:true,
				//disabled:true,
                name: 'key'
            },
			{
	            xtype:'textfield',
                fieldLabel: 'teacher of',
				emptyText:"course name",
                name: 'course'
            },
			{
				xtype:"combo",
				store: new Ext.data.SimpleStore({
					fields:['agei','age_level'],
					data:[['0 to 5',0],['5 to 11',1],['11 to 15',2],['15+',3]]
				}),
				emptyText:'0 to 5',
				//allowBlank:false,
				editable:false,
				displayField:'agei',
			
				forceSelection:true,
				typeAhead: true,
				mode: 'local',
				triggerAction: 'all',
				//emptyText:'M or F',
				selectOnFocus:true,
				fieldLabel: "pupils' age",
				name:'age_level' // 0,1,2,3
			}
			,{
	            xtype:'textarea',
				disableKeyFilter:true,
                fieldLabel: 'additional info',
				height:70, //118
                name: 'info'
            }
			]

		tv_register.registerFP = new Ext.FormPanel({
			url:'/register/',
			fileUpload: true,
			labelWidth: 75, // label settings here cascade unless overridden
			title:'Create your Twinedu account',
			//defaults: {width: 230},
			//defaultType: 'textfield',
			labelAlign: 'top',
			items: {
            xtype:'tabpanel',
            activeTab: 0,
			//deferredRender: false,
			layoutOnTabChange:true, 


            defaults:{autoHeight:true, bodyStyle:'padding:10px 15px 20px'}, 
            //defaults:{autoHeight:true, bodyStyle:'padding:10px 15px 20px'}, 
            //defaults:{autoHeight:true, bodyStyle:'padding:10px'}, 
            items:[
				{title:'personal profile',
				//layout:'fit',
				frame:true,
				hideBorders:true,
				border:false,
				//height:500,
				//labelWidth: 75, // label settings here cascade unless overridden
				//labelAlign:'top',
                layout:'form',
                defaults: {width: 230},
				items:personalProfile},
				{title:'educational profile',
				//layout:'fit',
				frame:true,
				hideBorders:true,
				border:false,
                layout:'form',
                defaults: {width: 230},
                //defaultType: 'textfield',
				items:educationalProfile}
			]},
			//keys: [{
			//	key: Ext.EventObject.ENTER,  
			//	fn: tv_register.registerHandler
			//}],
			//buttons: [{text: 'Enter Decatur', handler:function(){
			frame:true,
			border:false,
			hideBorders:true,
			buttons: [{text: 'Join the beta', handler:tv_register.registerHandler}]
		});


	} else {

		var fields =  [{
                fieldLabel: 'email(*)',
                name: 'email',
                allowBlank:false
            },{
                fieldLabel: 'password',
				inputType:'password',
                name: 'password'
            },{
                fieldLabel: 'first name',
                name: 'first_name'
            },{
                fieldLabel: 'last name',
                name: 'last_name'
            },
            {
                fieldLabel: 'web page',
                name: 'webpage'
            },
            fileField
			//,{xtype:'html',html:"(*)mandatory"}
        ];
	
	
		tv_register.registerFP = new Ext.FormPanel({
			url:'/register/',
			fileUpload: true,
			labelWidth: 75, // label settings here cascade unless overridden
			//url:'save-form.php',
			frame:true,
			title: 'Create your '+TWINNAME+' account',
			//title: 'Create your Decatur account',
			//border:false,
			bodyStyle:'padding:10px 15px 20px',
			//width: 350,
			defaults: {width: 230},
			defaultType: 'textfield',
			labelAlign: 'top',
			items: fields,
			keys: [{
				key: Ext.EventObject.ENTER,  
				fn: tv_register.registerHandler
			}],
			//buttons: [{text: 'Enter Decatur', handler:function(){
			buttons: [{text: "Enter Twinverse", handler:tv_register.registerHandler}]
		});
	}



}