﻿Ext.BLANK_IMAGE_URL = '/v2resources/ext-2.0.2/resources/images/default/s.gif';

Ext.namespace('via2.wienerlab.laboral', 'LCombo.sexo', 'LCombo.estudios');

function showPostulation(id) {
    via2.wienerlab.laboral.app.showPostulation(id);
}

LCombo.sexo = [['F', 'Female'],['M', 'Male']];
LCombo.estudios = [['0', 'No posee'],['1', 'Secundario'],['2', 'Terciario'],['3', 'Universitario']];
LCombo_Paises = [
         ['1','Afganistán'],['2','Albania'],['3','Alemania'],['4','Andorra'],['5','Angola'],
         ['6','Anguilla'],['7','Antártida'],['8','Antigua y Barbuda'],['9','Antillas Holandesas'],
         ['10','Arabia Saudí'],['11','Argelia'],['12','Argentina'],['13','Armenia'],['14','Aruba'],
         ['15','Australia'],['16','Austria'], ['17','Azerbaiyán'], ['18','Bahamas'], ['19','Bahrein'], 
         ['20','Bangladesh'], ['21','Barbados'], ['22','Bélgica'], ['23','Belice'], ['24','Benin'], 
         ['25','Bermudas'], ['26','Bielorrusia'], ['27','Birmania'], ['28','Bolivia'], ['29','Bosnia y Herzegovina'], 
         ['30','Botswana'], ['31','Brasil'], ['32','Brunei'], ['33','Bulgaria'], ['34','Burkina Faso'], 
         ['35','Burundi'], ['36','Bután'], ['37','Cabo Verde'], ['38','Camboya'], ['39','Camerún'], 
         ['40','Canadá'], ['41','Chad'], ['42','Chile'], ['43','China'], ['44','Chipre'], 
         ['45','Ciudad del Vaticano (Santa Sede)'], ['46','Colombia'], ['47','Comores'], ['48','Congo'], ['49','Congo, República Democrática del'], 
         ['50','Corea'], ['51','Corea del Norte'], ['52','Costa de Marfíl'], ['53','Costa Rica'], ['54','Croacia (Hrvatska)'], 
         ['55','Cuba'], ['56','Dinamarca'], ['57','Djibouti'], ['58','Dominica'], ['59','Ecuador'], 
         ['60','Egipto'], ['61','El Salvador'], ['62','Emiratos Árabes Unidos'], ['63','Eritrea'], ['64','Eslovenia'], 
         ['65','España'], ['66','Estados Unidos'], ['67','Estonia'], ['68','Etiopía'], ['69','Fiji'], 
         ['70','Filipinas'], ['71','Finlandia'], ['72','Francia'], ['73','Gabón'], ['74','Gambia'], 
         ['75','Georgia'], ['76','Ghana'], ['77','Gibraltar'], ['78','Granada'], ['79','Grecia'], 
         ['80','Groenlandia'], ['81','Guadalupe'], ['82','Guam'], ['83','Guatemala'], ['84','Guayana'], 
         ['85','Guayana Francesa'], ['86','Guinea'], ['87','Guinea Ecuatorial'], ['88','Guinea-Bissau'], ['89','Haití'], 
         ['90','Honduras'], ['91','Hungría'], ['92','India'], ['93','Indonesia'], ['94','Irak'], 
         ['95','Irán'], ['96','Irlanda'], ['97','Isla Bouvet'], ['98','Isla de Christmas'], ['99','Islandia'], 
         ['100','Islas Caimán'], ['101','Islas Cook'], ['102','Islas de Cocos o Keeling'], ['103','Islas Faroe'], ['104','Islas Heard y McDonald'], 
         ['105','Islas Malvinas'], ['106','Islas Marianas del Norte'], ['107','Islas Marshall'], ['108','Islas menores de Estados Unidos'], ['109','Islas Palau'], 
         ['110','Islas Salomón'], ['111','Islas Svalbard y Jan Mayen'], ['112','Islas Tokelau'], ['113','Islas Turks y Caicos'], ['114','Islas Vírgenes (EE.UU.)'], 
         ['115','Islas Vírgenes (Reino Unido)'], ['116','Islas Wallis y Futuna'], ['117','Israel'], ['118','Italia'], ['119','Jamaica'], 
         ['120','Japón'], ['121','Jordania'], ['122','Kazajistán'], ['123','Kenia'], ['124','Kirguizistán'], 
         ['125','Kiribati'], ['126','Kuwait'], ['127','Laos'], ['128','Lesotho'], ['129','Letonia'], 
         ['130','Líbano'], ['131','Liberia'], ['132','Libia'], ['133','Liechtenstein'], ['134','Lituania'], 
         ['135','Luxemburgo'], ['136','Macedonia, Ex-República Yugoslava de'], ['137','Madagascar'], ['138','Malasia'], ['139','Malawi'], 
         ['140','Maldivas'], ['141','Malí'], ['142','Malta'], ['143','Marruecos'], ['144','Martinica'], 
         ['145','Mauricio'], ['146','Mauritania'], ['147','Mayotte'], ['148','México'], ['149','Micronesia'], 
         ['150','Moldavia'], ['151','Mónaco'], ['152','Mongolia'], ['153','Montserrat'], ['154','Mozambique'], 
         ['155','Namibia'], ['156','Nauru'], ['157','Nepal'], ['158','Nicaragua'], ['159','Níger'], 
         ['160','Nigeria'], ['161','Niue'], ['162','Norfolk'], ['163','Noruega'], ['164','Nueva Caledonia'], 
         ['165','Nueva Zelanda'], ['166','Omán'], ['167','Países Bajos'], ['168','Panamá'], ['169','Papúa Nueva Guinea'], 
         ['170','Paquistán'], ['171','Paraguay'], ['172','Perú'], ['173','Pitcairn'], ['174','Polinesia Francesa'], 
         ['175','Polonia'], ['176','Portugal'], ['177','Puerto Rico'], ['178','Qatar'], ['179','Reino Unido'], 
         ['180','República Centroafricana'], ['181','República Checa'], ['182','República de Sudáfrica'], ['183','República Dominicana'], ['184','República Eslovaca'], 
         ['185','Reunión'], ['186','Ruanda'], ['187','Rumania'], ['188','Rusia'], ['189','Sahara Occidental'], 
         ['190','Saint Kitts y Nevis'], ['191','Samoa'], ['192','Samoa Americana'], ['193','San Marino'], ['194','San Vicente y Granadinas'], 
         ['195','Santa Helena'], ['196','Santa Lucía'], ['197','Santo Tomé y Príncipe'], ['198','Senegal'], ['199','Seychelles'], 
         ['200','Sierra Leona'], ['201','Singapur'], ['202','Siria'], ['203','Somalia'], ['204','Sri Lanka'], 
         ['205','St. Pierre y Miquelon'], ['206','Suazilandia'], ['207','Sudán'], ['208','Suecia'], ['209','Suiza'], 
         ['210','Surinam'], ['211','Tailandia'], ['212','Taiwán'], ['213','Tanzania'], ['214','Tayikistán'], 
         ['215','Territorios franceses del Sur'], ['216','Timor Oriental'], ['217','Togo'], ['218','Tonga'], ['219','Trinidad y Tobago'], 
         ['220','Túnez'], ['221','Turkmenistán'], ['222','Turquía'], ['223','Tuvalu'], ['224','Ucrania'], 
         ['225','Uganda'], ['226','Uruguay'], ['227','Uzbekistán'], ['228','Vanuatu'], ['229','Venezuela'], 
         ['230','Vietnam'], ['231','Yemen'], ['232','Yugoslavia'], ['233','Zambia'], ['234','Zimbabue']
];


Ext.QuickTips.init();

via2.wienerlab.laboral.app = function() {
    
    var tp2 = new Ext.XTemplate(
    '<tpl for=".">',
    '<div class="notahome1">',
    '<tpl if=\'titulo_en &gt; \"\"\'>',
	'<h5 id="titavi{id}"><img src="/wiener/wl2008/imagen/flecha_nota.gif" style="margin-right:5px"/>{titulo_en}</h5>',
        '<h4><span id="descavi{id}">{descripcion_en}</span><br><input class="btnPostularme" onclick="showPostulation({id});" type="button" id="rw_{id}" value="Post for"/></h4>',
    '</tpl>',
    '</div>',
    '</tpl>'
);
    
    var proxy = new Ext.data.HttpProxy({
        url: '/wienerlab-laboral-admin/receptoria'
    });
    proxy.on('beforeload', function(p, params) {
        params.command = 'oportunidades';
        params.format = 'json';
    });
    
    var store = new Ext.data.Store({
        proxy: proxy,
        
        reader: new Ext.data.JsonReader({
            root: 'ResultSet.Result',
            totalProperty: 'ResultSet.totalRecords',
            id: 'id',
            fields: ['id', 'fecha', 'titulo', 'titulo_en', 'referencia_en', 'descripcion_en']
        }),
        
        remoteSort: false
    });
    store.setDefaultSort('id', 'asc');
    
    return {
        panel: '',
        init : function() {
            try {
                store.load({params:{start:0, limit:25}});
                var dvw = new Ext.DataView({
                    store: store,
                    tpl: tp2,
                    autoHeight:true,
                    multiSelect: false,
                    overClass:'x-view-over',
                    itemSelector:'div.thumb-wrap',
                    emptyText: ''
                });
                
                panel = new Ext.Panel({
                    width: '100%',
                    frame: false,
                    bodyBorder: false,
                    border: false,
                    autoHeight: true,
                    layout: 'fit',
                    items: dvw
                });
                panel.render('l_laboral');
            }
            catch(e) {
                alert('Error: "' + e.message + '" at line: ' + e.lineNumber);
            }
            
        },
        
        showPostulation : function(id) {
            panel.hide();
            var titdiv = document.getElementById('titavi'+id);
            var titulo = '';
            if(titdiv!=null) titulo = titdiv.innerHTML;
            var descripcion = document.getElementById('descavi'+id).innerHTML;
            var top = new Ext.FormPanel({
                id: 'frmPostulacion',
                frame: false,
                border: false,
                labelAlign: 'top',
                bodyStyle:'padding:5px 05px 0',
                width: '100%',
                fileUpload: true,
                url:'/wienerlab-laboral/receptoria-altapostulacion',
                monitorValid:true,
                items: [
                    new Ext.Panel({ border: false, html: '<div class="notahome1"><h5>'+titulo_en+'</h5><h4>'+descripcion_en+'</h4></div>' }),
                    { xtype:'hidden', name: 'avisoid', value: id },
                    { xtype:'hidden', name: 'command', value: 'savePostulacion' },
                    {
                        layout: 'column',
                        items:[
                            {
                                columnWidth:.5,layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'Name (*)', name: 'first', allowBlank: false, anchor: '95%' }
                                ]
                            },
                            {
                                columnWidth: .5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'Last Name (*)', name: 'last', allowBlank: false, anchor: '95%' }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column', items:[
                            {
                                columnWidth:.5, layout: 'form', items:[
                                    {
                                        xtype:'combo',
                                        hiddenName: 'sex',
                                        fieldLabel:'Sexo (*)',
                                        editable: false,
                                        allowBlank: false,
                                        displayField:'Gender',
                                        valueField:'sexid',
                                        store: new Ext.data.SimpleStore({
                                            fields:['sexid', 'sexo'],
                                            data: LCombo.sexo
                                        }),
                                        triggerAction:'all',
                                        mode:'local'
                                    }
                                ]
                            },
                            { 
                                columnWidth: .5, layout: 'form', items:[
                                    { xtype:'datefield', fieldLabel: 'Date of Birth (*)', name: 'fnac', allowBlank:false, format:'d-m-Y' }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column',
                        items:[
                            {
                                columnWidth: .5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'Street (*)', name: 'address', allowBlank: false, anchor:'90%'}
                                ]
                            },
                            {
                                columnWidth:.5, layout: 'form', items:[
                                    {
                                        layout: 'column', items:[
                                            {
                                                columnWidth: .3, layout: 'form', items:[
                                                    { xtype:'textfield', fieldLabel: '# (*)', name: 'nro', maxLength: 5, allowBlank: false, anchor:'95%'}
                                                ]
                                            },
                                            {
                                                columnWidth: .3, layout: 'form', items:[
                                                    { xtype:'textfield', fieldLabel: 'Floor', name: 'piso', maxLength: 3, anchor:'95%'}
                                                ]
                                            },
                                            {
                                                columnWidth: .3, layout: 'form', items:[
                                                    { xtype:'textfield', fieldLabel: 'Dpt.', name: 'depto', maxLength: 2, anchor:'95%'}
                                                ]
                                            }
                                        ] 
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column', items:[
                            { 
                                columnWidth:.5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'District', name: 'barrio', maxLength: 50, anchor:'95%'}
                                ]
                            },
                            {
                                columnWidth:.5, layout: 'form', items:[
                                    {
                                        layout: 'column', items:[
                                            {
                                                columnWidth: .6, layout: 'form', items:[
                                                    { xtype:'textfield', fieldLabel: 'City/Town (*)', name: 'city', allowBlank: false, anchor:'95%' }
                                                ]
                                            },
                                            {
                                                columnWidth: .3, layout: 'form', items:[
                                                    { xtype:'textfield', fieldLabel: 'Zip Code (*)', name: 'cp', allowBlank: false, maxLength: 10, anchor:'95%'}
                                                ]
                                            }
                                        ] 
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column', items:[
                            { 
                                columnWidth:.5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'State/Province (*)',name: 'prov', allowBlank: false, minLength: 3, maxLength: 50, anchor:'95%'}
                                ]
                            },
                            {
                                columnWidth: .5, layout: 'form', items:[
                                    {
                                        xtype: 'combo',
                                        hiddenName: 'pais',
                                        fieldLabel: 'Country',					
                                        allowBlank: false,
                                        editable: false,
                                        displayField: 'label',
                                        valueField: 'value',
                                        store: new Ext.data.SimpleStore({fields:['value','label'],data: LCombo_Paises}),
                                        triggerAction:'all',
                                        mode:'local',
                                        anchor:'95%' 
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column', items:[
                            { 
                                columnWidth:.5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'Phone Number', name: 'phone', anchor:'95%' }
                                ]
                            },
                            {
                                columnWidth: .5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'E-mail (*)', name: 'email', vtype:'email', allowBlank: false, anchor:'95%' }
                                ]
                            }
                        ]
                    },
                    {
                        layout: 'column',
                        items:[
                            {
                                columnWidth:.5, layout: 'form', items:[
                                    {
                                        xtype:'combo',
                                        hiddenName: 'nestudio',
                                        fieldLabel: 'Education (*)',
                                        allowBlank: false,
                                        emptyText : 'Elija una opción',
                                        editable: false,
                                        displayField:'estudio',
                                        valueField:'neid',
                                        store: new Ext.data.SimpleStore({
                                            fields:['neid', 'estudio']
                                            , data:LCombo.estudios
                                        }),
                                        triggerAction:'all',
                                        mode: 'local'
                                    }
                                ]
                            },
                            {
                                columnWidth: .5, layout: 'form', items:[
                                    { xtype:'textfield', fieldLabel: 'Degree', name: 'titulo', anchor:'95%' }
                                ]
                            }
                        ]
                    },
                    {
                        columnWidth: 1, layout: 'form', 
                        items: [{ xtype:'textfield', inputType:'file', fieldLabel: 'CV', name: 'cv', anchor:'95%' }]
                    },
                    {
                        columnWidth: 1, layout: 'form',
                        items: [{ xtype:'textarea', fieldLabel: 'Observations', name: 'obs', anchor:'98%' }]
                    }
                ],
                buttons: [{
                        text: 'Submit',
                        formBind: true,
                        handler: function(){ 
                            top.getForm().submit({ 
                                method:'POST', 
                                waitTitle:'Conectando', 
                                waitMsg:'Enviando datos...',
                                success:function(){ 
                                    Ext.Msg.alert(' ', 'Postulación ingresada', function(btn, text){
                                        if (btn == 'ok') {
                                            var redirect = 'extjs-publico.html';
                                            top.hide();
                                            panel.show();
                                        }
                                    });
                                },
                                failure:function(form, action){ 
                                    if(action.failureType == 'server') {
                                        obj = Ext.util.JSON.decode(action.response.responseText);
                                        Ext.Msg.alert('Postulación no ingresada', 'Revise los datos e intente nuevamente.', obj.errors.reason);
                                        form.markInvalid(action.result.errors);
                                    } 
                                    else {
                                        Ext.Msg.alert('Postulación no ingresada', 'Server inalcansable. Intente nuevamente.');
                                    } 
                                }
                            });
                        }
                    },
                    {
                        text: 'Cancel',
                        handler: function() {
                            top.hide();
                            panel.show();
                        }
                    }]
            });
            top.render('l_laboral');
        }
    }
}();
