﻿// JScript File
// Created By : Imran Bashir
// Date : August 12, 2007
// Purpose : Definition File for RunningMaryland.js



function getStates()
{
var dsStates = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetStates',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [     
            {name: 'StateID'},    
            {name: 'State'}            
        ]),
        remoteSort: true
    });
        dsStates.setDefaultSort('State', 'ASC');
    return dsStates;    
}

function getStudents()
{
 var dsStudents = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetStudents',
            method: 'POST'
        }),
        
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [     
            {name: 'StudentID'},    
            {name: 'Name'}            
        ]),
        remoteSort: true
    });
        dsStudents.setDefaultSort('Name', 'ASC');
    return dsStudents;
}
function getSex()
{
 var myData = [        
		['M','Male'],
		['W','Female']	];
		
		var dssex = new Ext.data.Store({
		proxy: new Ext.data.MemoryProxy(myData),
		reader: new Ext.data.ArrayReader({id: 0}, [
			{name: 'SEXID'},
			{name: 'Sex'}
		])
	});
	return dssex;
}
function getGrades()
{
 var AgeData = [
        ['9','9'],
		['10','10'],
		['11','11'],
		['12','12']	];
		
		var dsAge = new Ext.data.Store({
		proxy: new Ext.data.MemoryProxy(AgeData),
		reader: new Ext.data.ArrayReader({id: 0}, [
			{name: 'AgeID'},
			{name: 'Age'}
		])
	});
	return dsAge;
}
function getRegions()
{
 var dsRegions = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetRegions',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [     
            {name: 'RegionID'},    
            {name: 'Name'}            
        ]),
        remoteSort: true
    });
    dsRegions.setDefaultSort('State', 'ASC');

    return dsRegions;
}
function getCounties()
{
  var dsCounties = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetCounties',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
            {name: 'CountyID'},
            {name: 'County'}
        ]),
        remoteSort: true
    });
     dsCounties.setDefaultSort('County', 'ASC');
    return dsCounties;
}

function getGroups()
{
   var dsGroups = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetGroups',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
            {name: 'GroupID'},
            {name: 'Group'}            
        ]),
        remoteSort: true
    });
    dsGroups.setDefaultSort('Group', 'ASC');
    return dsGroups;
}

function getMeets()
{
var dsMeets = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetMeets',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [
            {name: 'MeetID'},
            {name: 'MeetName'},           
            {name: 'Location'},
            {name: 'Date'}
        ]),
        remoteSort: true
    });
    dsMeets.setDefaultSort('MeetName', 'ASC');
    return dsMeets;
}

function getSchools(params)
{
var dsSchools = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetSchools',
            method: 'POST'
        }),
        baseParams: params,
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [
            {name: 'SchoolID'},
            {name: 'Name'}          
        ]),
        remoteSort: true
    });
    dsSchools.setDefaultSort('Name', 'ASC');  
    return dsSchools;
}

function getEvents()
{

     var dsEvents = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetEvents',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [    
        {name: 'EventID'},
            {name: 'Event'}
        ]),
        remoteSort: true
    });
    dsEvents.setDefaultSort('Event', 'ASC');
   // dsEvents.reload();
    return dsEvents;
}

function getSports()
{
      var dsSports = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetSeasons',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [    
            {name: 'Sport'},
            {name: 'SportID'},
        ]),
        remoteSort: true
    });
    dsSports.setDefaultSort('Sport', 'ASC');
    dsSports.reload(); 
    return dsSports;   
}

function getYears()
{
var dsYears = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetYears',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
            {name: 'Year'}            
        ]),
        remoteSort: true
    });
    dsYears.setDefaultSort('Years', 'ASC');
    dsYears.reload();
    return dsYears;
}
function getResults()
{
       var ds = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=GetResults',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [
            {name: 'Name'},
            {name: 'Year'} ,           
             {name: 'Position'},            
              {name: 'School'},      
              {name: 'Event'},
              {name: 'Mark'},
              {name: 'Time'},
              {name: 'Season'},
              {name: 'Meet'},
              {name: 'Sex'},
              {name: 'County'},
              {name: 'Group'},              
              {name: 'Region'},   
               {name: 'State'},
               {name: 'Age'}
        ])
         , remoteSort: true
    });
    ds.setDefaultSort('', 'ASC');
    var conn = ds.proxy.getConnection();
    conn.on('requestexception', function(c, r, op) {
        
        if (r.status == 504 || r.status == -1) 
        {
                //gateway timeout
                Ext.MessageBox.alert('Timeout Occured', "Please refine your search it is too broad");
                return false;
        }
        //Ext.MessageBox.alert('Exception Occured', "Unexpected Exception Occured: </br>Error Code: " + r.status + "</br>Error Detail: " + r.responseText + "</br>Please refresh the browser as this fixes most issues");
        return false; 
    });
    
return ds;
}
////////////////////////////// SAVE RESULT METHODS /////////////////

function getTempResults()
{
    var dsTemp = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({         
           url:  'ajaxpro/RMLib.Manager,RMLib.ashx?X-AjaxPro-Method=getTempResults',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
           root: 'results',
           totalProperty: 'total',
            id: 'id'
        }, [        
        
           {name: 'ResultID'},                
           {name: 'pos'},
           {name: 'student'},  // student ID
           {name: 'school'},  // school name
           {name: 'school_id'},
           {name: 'Name'},
           {name: 'sp_event'},  // event ID
           {name: 'Event'},
           {name: 'grade'},
           {name: 'result'},
           {name: 'notes'},
           {name: 'meetID'},                           
           {name: 'meet'}  
           
        ])
        , remoteSort: true
    });
    dsTemp.setDefaultSort('pos', 'ASC');
    var conn = dsTemp.proxy.getConnection();
    conn.on('requestexception', function(c, r, op) {                
        Ext.MessageBox.alert('Exception Occured', "Unexpected Exception Occured: </br>Error Code: " + r.status + "</br>Error Detail: " + r.responseText + "</br>Please refresh the browser as this fixes most issues");
        return false; 
    });
    return dsTemp;    
    
}

function addNewMeet()
{
  dsSaveMeet = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
        url:  'ajaxpro/RMLib.Manager,RMLib.ashx?X-AjaxPro-Method=saveMeet',
        method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
            {name: 'Status'}            
        ]),
        remoteSort: true
    });       
    return dsSaveMeet;  
}
function getLiveMeets()
{
 dsMeets = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.Manager,RMLib.ashx?X-AjaxPro-Method=getLiveMeets',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
           {name: 'MeetID'},
           {name: 'MeetName'},
           {name: 'Location'},
           {name: 'Date'}
                 
        ]),
        remoteSort: true
    });       

    return dsMeets;    
}

function getLiveStudents()
{
 dsStd = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.Manager,RMLib.ashx?X-AjaxPro-Method=getLiveStudents',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
           {name: 'StudentID'},
           {name: 'Name'},
           {name: 'Sex'},
           {name: 'School'}           
        ]),
        remoteSort: true
        
    });       
    dsStd.setDefaultSort('StudentID', 'ASC');
    return dsStd;    
}
function getSchoolInfo()
{
 dsSchoolInfo = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url:  'ajaxpro/RMLib.ResultsCalculator,RMLib.ashx?X-AjaxPro-Method=getCountyID',
            method: 'POST'
        }),
        reader: new Ext.data.JsonReader({
            root: 'results',
            totalProperty: 'total',
            id: 'id'
        }, [          
            {name: 'CountyID'}            
        ]),
        remoteSort: true
    });       

    return dsSchoolInfo;    
}



////////////////////////////////////////////////
//////////// DESIGN ELEMENTS 
function getComboBox(fldLabel,dataSource,disField,valField,DefaultVal,LoadMode,LoadText,cmbWidth,emptText,IsResizable,IsEditable, IsEmpty )
{
 var Combo = new Ext.form.ComboBox({
        fieldLabel: fldLabel,
        store: dataSource,
        displayField: disField,
        valueField: valField,
        value: DefaultVal,
        mode: LoadMode,
        loadingText: LoadText,
        width: cmbWidth,
        typeAhead: true,
        forceSelection: true,
        triggerAction: 'all',
        emptyText:emptText,
        resizable: IsResizable,
        editable: IsEditable,
        maxHeight: 200,
        allowBlank:IsEmpty        
    });  
    return Combo;
}
//////////////////// OPEN POPUP WINDOW //////////////////////////////
function OpenPopUp(url,title,w,h)
{
           var chasm = screen.availWidth;
           var mount = screen.availHeight;        
           var lft = ((chasm - w - 10) * .5) 
           var tp = ((mount - h - 30) * .5)
           var win = window.open(url,title,'width='+w+',height='+h+',top='+tp+',left='+lft+',resizable=no,scrollbars=no,status=no,location=no,toolbar=no,menubar=no');
           if(!win.opener)
           {
                win.opener = this.window;
           }
}
function OpenScrollablePopUp(url,title,w,h)
{
           var chasm = screen.availWidth;
           var mount = screen.availHeight;        
           var lft = ((chasm - w - 10) * .5) 
           var tp = ((mount - h - 30) * .5)
           window.open(url,title,'width='+w+',height='+h+',top='+tp+',left='+lft+',resizable=yes,scrollbars=yes,status=no,location=no,toolbar=no,menubar=no');
}


