var url = '';

function gridReload(){
	var id = $("input[@name=search-type]:checked").attr('id');
	
	console.log(id);
	
	if (id == 'search_api') {
		var api_mask = jQuery("#api").val();
		url = 'library/code/php/dbgetby_api.php';
		$("#list").jqGrid('setGridParam',{url:url+"?api_mask="+api_mask+'&forgrid=1',page:1}).trigger("reloadGrid");
	}
	else {
		var county_state = jQuery("#county").val();
		var county_state_array = county_state.split(', ');			
		var county_mask = county_state_array[0];
		var state_mask = county_state_array[1];
		url = 'library/code/php/dbgetby_county.php';
		$("#list").jqGrid('setGridParam',{url:url+"?county_mask="+county_mask+"&state_mask="+state_mask+'&forgrid=1',page:1}).trigger("reloadGrid");
	}		
}
function userdataReload(company_mask){
	url = 'library/code/php/dbgetby_company.php';
	$("#userData").jqGrid('setGridParam',{url:url+"?company_mask="+company_mask,page:1}).trigger("reloadGrid");
}
function dirsrvReload(api_mask){
	url = 'library/code/php/dbget_dirsrv.php';
	$("#dirsrvPopUp").jqGrid('setGridParam',{url:url+"?api_mask="+api_mask,page:1}).trigger("reloadGrid");
}

function addAPIsToAccount(tid, mtype) {
	var apis = {},
		seldAPIs = (mtype ? $('#' + tid + ' input[type="checkbox"]:checked') : $('#' + tid + ' input[type="checkbox"][value]:checked'));

	if (seldAPIs.length < 1) {
		alert("You must first select the data type you want to add from the list of APIs.")
		return;
	}
	
	if (!confirm("Are you sure you want to add these APIs to your account?")) { return; }


	if (mtype) {
		for(var i=0; i<seldAPIs.length; i++) {
			var regx = new RegExp('^jqg_' + tid + '_(\\d+)$'),
				api = (seldAPIs[i].id).replace(regx, "$1");

			apis[api] = {};
			apis[api][mtype] = 1;
		}
	} else {
		for(var i=0; i<seldAPIs.length; i++) {
			var api = (seldAPIs[i].name).replace(/^cb_|_srv\[\]$/g, ''),
			wtype = seldAPIs[i].value;
			
			if (apis[api] == null) {
				apis[api] = {};
			}
			apis[api][wtype] = 1;
		}
	}

	$('#fuzz').css('display','block');

	$.ajax({
		type: 'post',
		data: 'apis=' + encodeURIComponent(JSON.stringify(apis)),
	    url:'library/code/php/dbset_apitoaccount.php',
	    error: function() {
	    	$('#fuzz').css('display','none');
	    	alert('There is a problem accessing that file, please contact site administrator.');
	    },
	    success: function(data) {
	    	$('#fuzz').css('display','none');
	    	var json = JSON.parse(data);

	    	if (json['error'] != null) {
	    		alert('There is a problem accessing that file, please contact site administrator.');
	    	} else {
	    		alert("Your APIs have been added to your account and you will receive an email receipt.");
	    		$('#' + tid + ' input[type="checkbox"]').attr("checked", false);
	    	}
	    }
	});
}


function exportExcel($id){
  var keys=[], ii=0, rows="";
  var ids=$id.getDataIDs();  // Get All IDs
  var row=$id.getRowData(ids[0]);     // Get First row to get the labels
  for (var k in row) {
    keys[ii++]=k;    // capture col names
    rows=rows+k+"\t";     // output each Column as tab delimited
  }
  rows=rows+"\n";   // Output header with end of line
  for(i=0;i<ids.length;i++) {
    row=$id.getRowData(ids[i]); // get each row
    for(j=0;j<keys.length;j++) rows=rows+row[keys[j]]+"\t"; // output each Row as tab delimited
    rows=rows+"\n";  // output each row with end of line
  }
  rows=rows+"\n";  // end of line at the end
  var form = "<form name='csvexportform' action='library/code/csvExport.php' method='post'>";
  form = form + "<input type='hidden' name='csvBuffer' value='"+rows+"'>";
  form = form + "</form><script>document.csvexportform.submit();</script>";
  OpenWindow=window.open('', '');
  OpenWindow.document.write(form);
  OpenWindow.document.close();
}

$(document).ready(function() {
	$("#userData").jqGrid({        
	   	url: url,
		datatype: "json",
		mtype: "POST",
		colNames:['Vel','Dir','Curves','API', 'State', 'Area', 'Operator', 'WellNum', 'TVD', 'LeaseFee'],
	   	colModel:[
	   	    {name:'velsrv',index:'velsrv',align:'center'},
			{name:'dirsrv',index:'dirsrv',align:'center'},
			{name:'wellcurve',index:'wellcurve',align:'center'},
	   		{name:'api',index:'api'},
	   		{name:'state',index:'state',align:'center'},
	   		{name:'area',index:'area',align:'center'},
	   		{name:'operator',index:'operator'},
	   		{name:'wellnum',index:'wellnum',align:'center'},
	   		{name:'tvd',index:'tvd',align:'center'},
	   		{name:'leasefee',index:'leasefee'}
	   	],
	   	pager: '#pager',
	    pagerpos: 'center',
	    altRows: true,
	    rowNum:50,
	    rowList:[50,100,200],
	    sortname: 'api',
	    sortorder: 'desc',
	    viewrecords: true,
	    gridview: true,
	    width: 898,
	    height: 300,
	    caption: 'Available Data',
	    gridComplete: function() {
	    	var recs = $('#userData').jqGrid('getGridParam','reccount');
	        if (recs == 0) {
	        	$('.ui-jqgrid').hide()
	        }
	        else {
	        	$('.ui-jqgrid').show()
	        }
	    }
	}).jqGrid('navGrid','#pager',{add:false,edit:false,del:false});


	// add custom button to export the data to excel
	jQuery("#userData").jqGrid('navButtonAdd','#pager',{
		caption:'',
	    title:'Export',
	    buttonicon:'ui-icon-newwin',
	    position:'last',
	    onClickButton:function (){
	      //exportExcel($(this));
	    	jQuery("#userData").jqGrid('excelExport', { url: 'dataExport.xls' });
	    }
	});
	
	$("#dirsrvPopUp").jqGrid({        
	   	url: url,
		datatype: "json",
		mtype: "POST",
		colNames:['API','dY','dX','MD','TVD','Inclination','Azimuth'],
	   	colModel:[
	   	    {name:'api',index:'api'},
	   	    {name:'dy',index:'dy'},
	   	    {name:'dx',index:'dx'},
	   	    {name:'md',index:'md'},
	   	    {name:'tvd',index:'tvd'},
	   	    {name:'inclination',index:'inclination'},
	   	    {name:'azimuth',index:'azimuth'}
	   	],
	   	pager: '#pager-popup',
	    pagerpos: 'center',
	    altRows: true,
	    rowNum:50,
	    rowList:[50,100,200],
	    sortname: 'api',
	    sortorder: 'desc',
	    viewrecords: true,
	    gridview: true,
	    width: 898,
	    height: 300,
	    gridComplete: function() {
	    	gridpopup();
	    }
	}).jqGrid('navGrid','#pager-popup',{add:false,edit:false,del:false});
	// add custom button to export the data to excel
	jQuery("#dirsrvPopUp").jqGrid('navButtonAdd','#pager-popup',{
	       caption:"Export to Excel", 
	       onClickButton : function () { 
	           jQuery("#dirsrvPopUp").excelExport();
	       } 
	});
	
	
	$("#list").jqGrid({        
	   	url: url,
		datatype: "json",
		mtype: "POST",
		colNames:['API', 'State', 'Area', 'Operator', 'Well', 'TVD', 'Lease', 'Directional', 'Velocity', 'Curves', 'Logs'],
	   	colModel:[
			{name:'api',index:'api'},
	   		{name:'state',index:'state'},
	   		{name:'area',index:'area'},
	   		{name:'operator',index:'operator'},
	   		{name:'wellnum',index:'wellnum'},
	   		{name:'tvd',index:'tvd'},
	   		{name:'leasefee',index:'leasefee'},
	   		{name:'dirsrv',index:'dirsrv',align:"center"},
	   		{name:'velsrv',index:'velsrv',align:"center"},
	   		{name:'wellcurve',index:'wellcurve',align:"center"},
	   		{name:'welllog',index:'welllog',align:"center"}
	   	],	   	
	   	pager: '#pager',
	    pagerpos: 'left',
	    altRows: true,
	    rowNum:50,
	    rowList:[50,100,200],
	    sortname: 'api',
	    sortorder: 'desc',
	    viewrecords: true,
	    multiselect: (grantAccess ? true : false),
	    toolbar: [true, 'top'],
	    gridview: true,
	    width: 898,
	    height: 300,
	    caption: 'Search Results',
	    gridComplete: function(data) {
	    	var recs = $('#list').jqGrid('getGridParam','reccount');
	        if (recs == 0) {
	        	$('.ui-jqgrid').hide()
	        }
	        else {
	        	$('.ui-jqgrid').show();
	        	
	        	if (grantAccess) {
	        		$('#t_list').css('height', '25px').css('padding','3px 0').css('text-align', 'right');	        		
	        		$('#t_list').html('<span class="tbbutton">Add to Account</span>');
	        		$('#t_list span.tbbutton').button();
	        		$('#t_list .ui-button').click(function() { 
	        			addAPIsToAccount('list');
	        		});
	        		$('#t_list .ui-button').css('margin-right', '8px');
	        	}
	        }
	    },
	    onSelectAll: function(aRowids, status) {
	        if (status) {
	            //alert(aRowids.length);
	        }
	    },
	    onSelectRow: function(rowid, status) {
	    	$('[name="cb_' + rowid + '_srv[]"]').attr("checked", status);
	    }
	});

	

	$("#listView").jqGrid({        
	   	url: url,
		datatype: "json",
		mtype: "POST",
		colNames:['API', 'State', 'Area', 'Operator', 'WellNum', 'TVD', 'LeaseFee'],
	   	colModel:[
	   		{name:'api',index:'api'},
	   		{name:'state',index:'state'},
	   		{name:'area',index:'area'},
	   		{name:'operator',index:'operator'},
	   		{name:'wellnum',index:'wellnum'},
	   		{name:'tvd',index:'tvd'},
	   		{name:'leasefee',index:'leasefee'}
	   	],
	   	pager: '#pager',
	    pagerpos: 'left',
	    altRows: true,
	    rowNum:50,
	    rowList:[50,100,200],
	    sortname: 'api',
	    sortorder: 'desc',
	    viewrecords: true,
	    gridview: true,
	    multiselect: (grantAccess ? true : false),
	    toolbar: [true, 'top'],
	    width: 898,
	    height: 300,
	    caption: 'Search Results',
	    gridComplete: function() {
	    	var maptype = $('[name="data-type"]:checked');
			var datatype = maptype[0].value;
			
			var searchType = '';
			switch(datatype)
			{
    		case 'DirSrv':
				searchType = "Directional Surveys";
				break;
    		case 'WellCurve':
    			searchType = "Digital Well Curves";
				break;
			default:
				searchType = "Velocity Surveys";
    			break;
    		}
    		var tableCaption = 'Search Results for ' + searchType + ': click on column headers to sort data'
    		$("#listView").setCaption(tableCaption);
    		
    		//$('#dataType').html(searchType);
	    	
	    	var recs = $('#listView').jqGrid('getGridParam','reccount');
	        if (recs == 0) {
	        	$('.ui-jqgrid').hide()
	        }
	        else {
	        	$('.ui-jqgrid').show()	        	
	        	
	        	if (grantAccess) {
	        		$('#t_listView').css('height', '25px').css('padding','3px 0').css('text-align', 'right');	        		
	        		$('#t_listView').html('<span class="tbbutton">Add to Account</span>');
	        		$('#t_listView span.tbbutton').button();
	        		$('#t_listView .ui-button').click(function() { 
	        			if (maptype.length > 0) {
	        				maptype = maptype[0].value;
	        				addAPIsToAccount('listView', maptype);
	        			}
	        		});
	        		$('#t_listView .ui-button').css('margin-right', '8px');
	        	}
	        }
	    }
	});
	$('.ui-jqgrid').hide();
});	
