/**
 * @author Michiel
 */

function gotoVacaturePage()
	{
	var functiecategorie 	= "";		
	var vestigingsplaats 	= "";
	var searchterm 			= "";
	
	var functiecategorie 	= Ext.get('functiecategorie').getValue();		
	var vestigingsplaats 	= Ext.get('vestigingsplaats').getValue();
	var searchterm 			= Ext.get('functienaam').getValue();

	if (searchterm == "Zoek naar functienaam of omschrijving")
		var searchterm = "";
				
	window.location.href = 'http://www.veluwewerkt.nl/index.php?id=3&functiecategorie='+functiecategorie+'&vestigingsplaats='+vestigingsplaats+'&functienaam='+searchterm;	
	}


function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function resetgrid(targetgrid){
    var grid = Ext.getCmp(targetgrid);
    if(grid.rendered ){  //may not be rendered yet.
       grid.getStore().clearFilter(); 
    }
}


function filterGridNEW(targetgrid, ignoreUrl) {
newVacaturegrid();
	var currentplaats = $('#vestigingsplaats').val();
	
var grid = Ext.getCmp('vacaturegrid');
grid.getStore().load({params:{plaats:currentplaats}});	
}

function filterGrid(targetgrid, ignoreUrl) {

	// Ignore flag is triggered from onChange of the selectboxes.
	// if ignore = true, do not use the URL params.
	
	if (targetgrid == "bedrijvengrid" )
	{
		// create a new grid (or shown of hidden)
		newBedrijvengrid();
		// What's the grid?
		var grid = Ext.getCmp(targetgrid);
		// Filter the grid with these values:
		var bedrijfbranche = Ext.get('bedrijfbranche').getValue();		
		var bedrijfomvang =  Ext.get('bedrijfomvang').getValue();
		var searchterm = Ext.get('functienaam').getValue();
		
		// Define filters
		if (searchterm != "Zoek naar bedrijf") {
			grid.getStore().filterBy(function(record) {
				return (record.get("vestigingsplaats") == searchterm || record.get("bedrijfsnaam") == searchterm);		
			});
			document.getElementById('functienaam').value = 'Zoek naar bedrijf';
			return;
		}
				
		else if (bedrijfbranche.length == 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("medewerkers") == bedrijfomvang);
			});
		}
		else if (bedrijfomvang.length == 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("branche") == bedrijfbranche);
			});
		}
		else if (bedrijfbranche.length == 0 && bedrijfomvang.length == 0) {
			grid.getStore().clearFilter();
			}
				
		else if (bedrijfbranche.length != 0 && bedrijfomvang.length != 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("branche") == bedrijfbranche && record.get("medewerkers") == bedrijfomvang);
			});
		}
	}
	
	else if (targetgrid == "vacaturegrid" )
	{
		// create a new grid (or shown of hidden)
		newVacaturegrid();
		// What's the grid?
		var grid = Ext.getCmp('vacaturegrid');
		
		// Filter the grid with these values:
		// First check if any URL params are passed, if so --> use these. Otherwise read params from page.
		// ignore the url params
		if (ignoreUrl)
		 {
		 	
		 var functiecategorieValue = Ext.get('functiecategorie').getValue();
		 var plaatsValue = Ext.get('vestigingsplaats').getValue();
		 var searchterm = Ext.get('functienaam').getValue();	
		 }
		 
		// do not ignore the url params 
		else 
		{ 
		if (URLcategorie = getUrlVars()["functiecategorie"]) 	{ var functiecategorieValue = URLcategorie; }
		else var functiecategorieValue = Ext.get('functiecategorie').getValue();
		
		if (URLplaats = getUrlVars()["vestigingsplaats"] ) 		{ var plaatsValue = URLplaats;}
		else var plaatsValue = Ext.get('vestigingsplaats').getValue();
		
		if (URLterm = getUrlVars()["functienaam"] )				{ var searchterm = URLterm; }
		else var searchterm = Ext.get('functienaam').getValue();
		}
		
		// Define filters:
		if (searchterm != "Zoek naar functienaam of omschrijving") {
			grid.getStore().filterBy(function(record) {
				return (record.get("plaats") == searchterm || record.get("beschrijving") == searchterm || record.get("omschrijving") == searchterm || record.get("categorie") == searchterm);		
			});
			document.getElementById('functienaam').value = 'Zoek naar functienaam of omschrijving';
			return;
		}
					
		else if (functiecategorieValue.length == 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("plaats") == plaatsValue);
			});
		}
		else if (plaatsValue.length == 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("categorie") == functiecategorieValue);
			});
		}
		
		if (functiecategorieValue.length == 0 && plaatsValue.length == 0) {
			
			grid.getStore().clearFilter();
		}
				
		else if (functiecategorieValue.length != 0 && plaatsValue.length != 0) {
			grid.getStore().filterBy(function(record) {
				return (record.get("categorie") == functiecategorieValue && record.get("plaats") == plaatsValue);
			});
		}
		
	}			
}


function renderBtn(val, p, record) { 
		var contentId = Ext.id();
        createGridButton.defer(1, this, [val, contentId, record]);
        return('<div id="' + contentId + '"></div>');
    }
    
function createGridButton(value, contentid, record) {
		var label = "Details";
        new Ext.Button({text: label, handler : function(btn, e) {
            //alert("record data="+record.data.id);
            showWindow(record.data.id);
            //location.href='index.php?id=13&cid=' +record.data.id; 
        }}).render(document.body, contentid);
}



function showWindow(cid) {

	var win = new Ext.Window({
		width : 600,
		id : 'autoload-win',
		height : 400,
		autoScroll : true,
		autoLoad : {
			url : 'index.php?id=13&cid='+cid
		},
		title : 'Detailpagina',
		tbar : [{
			text : 'Print',
			handler : function() {
				print();//win.load(win.autoLoad.url + '?' + (new Date).getTime());
			}
		}],
		listeners : {
			show : function() {
				this.loadMask = new Ext.LoadMask(this.body, {
					msg : 'Loading. Please wait...'
				});
			}
		}
	});
	win.show();
}




/******** Create new bedrijvengrid ******/
function newBedrijvengrid()
{
	if (Ext.getCmp('vacaturegrid'))
		Ext.getCmp('vacaturegrid').hide();
	if (Ext.getCmp('bedrijvengrid'))
		{
		Ext.getCmp('bedrijvengrid').show();
		return;
		}		
	var proxy = new Ext.data.HttpProxy({
		url : 'index.php?id=9'
	});
	var reader = new Ext.data.JsonReader({
		root: 'bedrijven',
		totalProperty: 'totalCount',
	}, [{
		name : 'bedrijfsnaam'
	}, {
		name : 'vestigingsadres'
	}, {
		name : 'vestigingspostcode'
	}, {
		name : 'vestigingsplaats'
	}, {
		name : 'postadres'
	}, {
		name : 'postadrespostcode'
	}, {
		name : 'postadresplaats'
	}, {
		name : 'omschrijving'
	}, {
		name : 'logo'
	}, {
		name : 'telefoon'
	}, {
		name : 'fax'
	}, {
		name : 'email'
	}, {						
		name : 'website'										
	}, {
		name : 'branche'										
	}, {			
		name : 'medewerkers'
	}, {			
		name : 'id'
	}]);

	//Store
	var store = new Ext.data.Store({
		proxy : proxy,
		reader : reader
	});

	
	var grid = new Ext.grid.GridPanel({
		store : store,
		id : 'bedrijvengrid',
		autoExpandColumn : 'bedrijfsnaam',
		loadMask: true,
		columns : [{
			header : 'Bedrijfsnaam',
			sortable : true,
			id : 'bedrijfsnaam',
			dataIndex : 'bedrijfsnaam'
		}, {
			header : 'Adres',
			width : 170,
			sortable : true,
			dataIndex : 'vestigingsadres'
		}, {
			header : 'Postcode',
			width : 70,
			sortable : true,
			dataIndex : 'vestigingspostcode'
		}, {
			header : 'Plaats',
			width : 100,
			sortable : true,
			dataIndex : 'vestigingsplaats'
		}, {
			header : 'Telefoon',
			width : 100,
			sortable : true,
			dataIndex : 'telefoon'
		}, {
			header : 'Branche',
			width : 100,
			sortable : true,
			dataIndex : 'branche'
		}, {
			header : 'Omvang',
			width : 50,
			sortable : true,
			dataIndex : 'medewerkers'
		}, {
			header : 'Details',
			width : 50,
			sortable : true,
			dataIndex : 'id',
			renderer: renderBtn
		}],
		
	  	
	  	// add bottombar	
		bbar: new Ext.PagingToolbar({
                pageSize: 15,
                store: store,
                displayInfo: true,
                displayMsg: 'Bedrijven {0} - {1} van {2}',
            	emptyMsg: 'Geen bedrijven'
            }),  			
  						
		//renderTo : 'content',
		//title: 'Vacatures',
		width : 900,
		height: 505,
		//autoLoad: true,
		frame : false
	});

	grid.render('content');
	store.load({params:{start:0, limit:15}});	
	store.on('load', function() {
		store.clearFilter();
	});	
	
}

function newVacaturegrid()
 {
 	if (Ext.getCmp('bedrijvengrid'))
		Ext.getCmp('bedrijvengrid').hide();		
 	if (Ext.getCmp('vacaturegrid'))
 		{
		Ext.getCmp('vacaturegrid').show();
		return;
		}
	

	var proxy = new Ext.data.HttpProxy({
		url : 'index.php?id=7',
		
	});
	var reader = new Ext.data.JsonReader({
		root: 'vacatures',
		totalProperty: 'totalCount',
	}, [{
		name : 'beschrijving'
	}, {
		name : 'begindatum'
	}, {
		name : 'omschrijving'
	}, {
		name : 'type'
	}, {
		name : 'plaats'
	}, {
		name : 'categorie'
	}, {
		name : 'id'
	}]);

	//Store
	var store = new Ext.data.Store({
		proxy : proxy,
		reader : reader
	});
	//
	var currentplaats = $('#vestigingsplaats').val();
	store.load({params:{start:0, limit:10, plaats:currentplaats}});

	var grid = new Ext.grid.GridPanel({
		store : store,
		id : 'vacaturegrid',
		columns : [{
			header : 'beschrijving',
			width : 350,
			sortable : true,
			dataIndex : 'beschrijving'
		}, {
			header : 'categorie',
			width : 200,
			sortable : true,
			dataIndex : 'categorie'
		}, {
			header : 'plaats',
			width : 100,
			sortable : true,
			dataIndex : 'plaats'
		}, {
			header : 'type',
			width : 100,
			sortable : true,
			dataIndex : 'type'
		}, {
			header : 'begindatum',
			width : 100,
			sortable : true,
			dataIndex : 'begindatum'
		}, {
			header : 'id',
			width : 50,
			sortable : true,
			dataIndex : 'id'
		}],
		
	  	// add bottombar	
		bbar: new Ext.PagingToolbar({
                pageSize: 10,
                store: store,
                displayInfo: true,
                displayMsg: 'Vacatures {0} - {1} van {2}',
            	emptyMsg: "Geen vacatures"
            }), 
            		
		renderTo : 'content',
		//title: 'Vacatures',
		width : 900,
		autoHeight : true,
		//autoLoad: true,
		frame : false
	});

Ext.getCmp('vacaturegrid').on('rowdblclick', function(grid, rowIndex, e) {
	var rec = grid.store.getAt(rowIndex);
	window.location.href = 'http://www.veluwewerkt.nl/index.php?id=47&cid='+rec.id;
	//alert(rec.id);
});

	store.on('load', function() {
		store.clearFilter();
		filterGrid('vacaturegrid');

 
	});
}
