//
//  SearchViewController.m
//  Allzic
//
//  Created by Alia Bourouis on 27/04/14.
//  Copyright (c) 2014 Alia Bourouis. All rights reserved.
//

#import "SearchViewController.h"
#import "AppDelegate.h"

@interface SearchViewController ()

@end

@implementation SearchViewController

- (void)viewWillAppear:(BOOL)animated {
    
    [super viewWillAppear:animated];
    self.title = self.screenName = @"search";
    
    /*
    NSMutableDictionary *event;
    event = [[GAIDictionaryBuilder createEventWithCategory:@"UI"
                                                    action:@"navigation"
                                                     label:@"search"
                                                     value:nil] build];
    [[GAI sharedInstance].defaultTracker send:event];
    [[GAI sharedInstance] dispatch];
    */
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        [footerTabView removeFromSuperview];
        [self.view setBackgroundColor:[UIColor whiteColor]];
        [dataTable setFrame:CGRectMake(0.0f, dataTable.frame.origin.y, dataTable.frame.size.width, dataTable.frame.size.height + footerTabView.frame.size.height)];
        [self displayBackView];
    }
    return self;
}

- (void)backToParentView {
    
    [self.searchTextField setText:@""];
    [self refreshTableWithData:nil];
    [self.searchTextField performSelector:@selector(resignFirstResponder) withObject:nil afterDelay:0.1];
    [appDelegate.window setRootViewController:appDelegate.oldVC];
    appDelegate.isSearching = NO;
}


//-----------------------------------------
//		ScrollView Delegate
//-----------------------------------------

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
	
    [self.searchTextField resignFirstResponder];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
	
    [self.searchTextField resignFirstResponder];
}

//-----------------------------------------
//		UITextFieldDelegate Delegate
//-----------------------------------------

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    
    textField.returnKeyType = UIReturnKeySearch;
    return YES;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    
    if (appDelegate.isSearching == NO) {
        [appDelegate setOldVC:self];
        [appDelegate.window setRootViewController:appDelegate.searchVC];
        appDelegate.isSearching = YES;
    }
}


- (void)textFieldDidChange:(UITextField *)textField {
    
    [self refreshTableWithData:nil];
    [appDelegate.dataController parseResultWithSearch:textField.text];
}

//-----------------------------------------
//		IconDownloader Delegate
//-----------------------------------------

- (void)appImageDidLoad:(IconDownloader *)downloader {
    
    if (downloader.indexPathInTableView != nil && dataArray.count > downloader.indexPathInTableView.row) {
        [dataTable reloadRowsAtIndexPaths:[NSArray arrayWithObject:downloader.indexPathInTableView] withRowAnimation:UITableViewRowAnimationNone];
    }
}


//-----------------------------------------
//		TableView Delegate
//-----------------------------------------

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    
    int nbSection = 1;
    return nbSection;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    //int nbRowInSection = 1;
    int nbRowInSection = 0;
    if (dataArray != nil && dataArray.count > 0) {
        nbRowInSection = [dataArray count];
    }
    return nbRowInSection;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *cellIdentifier = @"dataCell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    //if(cell == nil) {
    //NSLog(@"cell = nil");
    
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    
    UIView *background = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f , tableView.frame.size.width,tableView.rowHeight)];
    if (indexPath.row % 2) {
        background.backgroundColor = [UIColor colorWithRed:232.0f/255.0f green:243.0f/255.0f blue:248.0f/248.0f alpha:1.0f];
    } else {
        background.backgroundColor = [UIColor whiteColor];
    }
    [cell.contentView addSubview:background];
    
    //if (dataArray != nil && dataArray.count > 0) {
        UIImageView *radioLogoImage = [[UIImageView alloc]initWithFrame:CGRectMake(10.0f, 5.0f, tableView.rowHeight - 10.0f, tableView.rowHeight - 10.0f)];
        [radioLogoImage setContentMode:UIViewContentModeScaleAspectFit];
        [radioLogoImage setClipsToBounds:YES];
        UIView *defaultView = [[UIView alloc] initWithFrame:radioLogoImage.frame];
        defaultView.backgroundColor = [UIColor colorWithRed:230.0f/255.0f green:230.0f/255.0f blue:230.0f/255.0f alpha:1.0f];
        [cell.contentView addSubview:defaultView];
        [cell.contentView addSubview:radioLogoImage];
        
        if([iconDownloaderDictionary objectForKey:indexPath] == nil) {
            IconDownloader *iconDownloader = [[IconDownloader alloc] init];
            iconDownloader.indexPathInTableView = indexPath;
            iconDownloader.delegate = self;
            [iconDownloaderDictionary setObject:iconDownloader forKey:indexPath];
            [iconDownloader startDownloadAtUrl:[[dataArray objectAtIndex:indexPath.row] objectForKey:@"thumb"] withMaxSize:(tableView.rowHeight - 10.0f)*2];
        } else if ([[iconDownloaderDictionary objectForKey:indexPath] appIcon] != nil) {
            [radioLogoImage setImage:[[iconDownloaderDictionary objectForKey:indexPath] appIcon]];
            [defaultView removeFromSuperview];
        }
        
        UILabel *radioTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(radioLogoImage.frame.origin.x + radioLogoImage.frame.size.width + 10.0f, 10.0f, tableView.frame.size.width - radioLogoImage.frame.origin.x - radioLogoImage.frame.size.width - 40.0f, tableView.rowHeight - 20.0f)];
        [radioTitleLabel setText:[[dataArray objectAtIndex:indexPath.row] objectForKey:@"title"]];
        [radioTitleLabel setFont:[UIFont systemFontOfSize:16]];
        [radioTitleLabel setNumberOfLines:0];
        [radioTitleLabel setBackgroundColor:[UIColor clearColor]];
        [radioTitleLabel setTextColor:[UIColor blackColor]];
        [cell.contentView addSubview:radioTitleLabel];
        
    /*} else {
        UILabel *radioTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10.0f, 5.0f, tableView.frame.size.width - 20.0f, tableView.rowHeight - 10.0f)];
        [radioTitleLabel setTextAlignment:NSTextAlignmentCenter];
        [radioTitleLabel setText:@"Aucun résultat"];
        [radioTitleLabel setFont:[UIFont boldSystemFontOfSize:16]];
        [radioTitleLabel setNumberOfLines:0];
        [radioTitleLabel setBackgroundColor:[UIColor clearColor]];
        [radioTitleLabel setTextColor:[UIColor grayColor]];
        [cell.contentView addSubview:radioTitleLabel];
    }*/
    
    
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.accessoryType  = UITableViewCellAccessoryDisclosureIndicator;
    cell.tag            = indexPath.row;
    
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    if (dataArray != nil && dataArray.count > 0) {
        [appDelegate.playerVC setNavigationTitle:@"Recherche"];
        [self selectRadioAtIndex:[NSNumber numberWithInt:indexPath.row]];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
