/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
/*!
 * Copyright (C) 2009 SUN Area Technical Institute
 */
Ext.ns('Sun.District');

Sun.District.Store = function(config)
{
	Sun.District.Store.superclass.constructor.call(this, Ext.apply({
		root			: 'data',
		totalProperty	: 'count',
		fields		: [
		    'district_name', 'district_id'    		   
	    ],
		url			: '/services/district/read/',
		baseParams  : { format : 'json' },
		mode		: 'remote',
		remoteSort 	: true
	}, config));
};
Ext.extend(Sun.District.Store, Ext.data.JsonStore);Ext.ns('Sun.District.Field');

Sun.District.Field = function(config)
{
	Sun.District.Field.superclass.constructor.call(this, Ext.apply({
		typeAhead: true,
		triggerAction: 'all',
		lazyRender:true,
		mode: 'remote',
		store: new Sun.District.Store(),
		valueField: 'district_id',
		displayField: 'district_name'
	}, config));
};
Ext.extend(Sun.District.Field, Ext.form.ComboBox);

Ext.reg('sun-districtfield', Sun.District.Field);/**
 * This file contains The Sun.GradeConversion.Panel class.
 * 
 * SUN Area Technical Institute
 * PHP 5.2.11, Zend Framework 1.9.2, ExtJS 3.0, MySQL 5
 * 
 * @author    Brian Reich <breich@sun-tech.org>
 * @copyright 2009 (C) SUN Area Technical Institute http://www.sun-tech.org/
 * @category  JavaScript
 * @package   Sun.GradeConversion
 */

/**
 * Namespace for all classes related the GradeConversion app.
 */
Ext.namespace('Sun.GradeConversion');

/**
 * 
 */
Sun.GradeConversion.Panel = function(config)
{
	this.submitButton = new Ext.Button({
		text : 'Submit',
		listeners : {
			click : {
				scope : this,
				fn : function() {
					this.getForm().submit({
						clientValidation: true,
						url : '/services/conversion/?format=json',
						success : function(f, a) {
							Ext.Msg.alert('Grade Conversion', a.result.message);
						},
						failure : function(f, a) {
							Ext.Msg.alert('Grade Conversion', a.result.message);
						},
						scope : this
					});
				}
			}
		}
	});
	
	this.getSubmitButton = function() { return this.submitButton; }
	
	Sun.GradeConversion.Panel.superclass.constructor.call(this, Ext.apply({
	    "shim"          : true,
		bodyStyle		: 'padding: 20px;',
		title			: 'Grade Conversion Tool',
		formId			: 'conversion-tool',
		autoHeight	 	: true,
		width			: 300,
		buttonAlign 	: 'right',
		fbar 		    : {
		    "shim"      : true,
		    "items"     : [ this.getSubmitButton() ]
		},
		defaultType 	: 'textfield',
		labelAlign 		: 'left',
		labelSeparator 	: ':',
		defaults 		: {
			allowBlank	: false,
			msgTarget 	: 'under'
		},
		items : [
		    
		    {
		    	xtype		: 'sun-districtfield',
		    	name 		: 'district',
		    	id 			: 'district',
		    	allowBlank	: false,
		    	hiddenName  : 'district_id',
		    	fieldLabel  : 'School District'
		    },
		    {
		    	name 		: 'sun_grade',
		    	id 			: 'sun_grade',
		    	regex		: /^\d{0,3}(?:\.\d{0,2})?$/i,
		    	regexText	: 'The grade must be a number.',
		        fieldLabel 	: 'SUN Tech Grade'
		    }
		]  
	}, config));
}
Ext.extend(Sun.GradeConversion.Panel, Ext.FormPanel);
