"use strict";

module.exports = function(grunt) {

  require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);

  grunt.initConfig({

    watch: {
      options: {
        livereload: true
      },
      html: {
        files: "**/*.php"
      },
      sass: {
        files: "dev/scss/**/*.scss",
        tasks: ["sass", "cmq", "postcss", "cssmin"]
      },
      js: {
        files: ["dev/js/**/*.js", "Gruntfile.js"],
        tasks: ["uglify"]
      },
      images: {
        files: "dev/img/**/*.{png,jpg,gif}",
        tasks: ["imagemin"]
      },
      svg: {
        files: "dev/svg/**/*.svg",
        tasks: ["svgmin"]
      }
    },

    sass: {
      options: {
        sourceMap: true
      },
      dist: {
        files: {
          'style.css': 'dev/scss/style.scss'
        }
      }
    },

    postcss: {
      options: {
        processors: [
          require('autoprefixer-core')({browsers: 'last 1 version'})
        ]
      },
      dist: {
        src: 'style.css'
      }
    },

    cmq: {
      options: {
        log: true
      },
	    dist:{
	      files: {
	        'style.css': 'style.css'
	      }
	    }
    },

    cssmin: {
      options: {
        keepSpecialComments: 1,
        noAdvanced: true,
        banner: '/* ======= Guilherme Marconi: http://guilhermemarconi.me =======*/'
      },
      css: {
        files: {
          "style.css": "style.css"
        }
      }
    },

    uglify: {
      options: {
        mangle: true
      },
      production: {
        files: {
          "js/scripts.js": "dev/js/scripts.js"
        }
      }
    },

    imagemin: {
      dynamic: {
        options: {
          optimizationLevel: 7,
          progressive: true
        },
        files: [{
          expand: true,
          cwd: 'dev/img/',
          src: '**/*.{png,jpg,gif}',
          dest: 'img/'
        }]
      }
    },

    svgmin: {
      options: {
        plugins: [{
          removeViewBox: false
        }, {
          removeUselessStrokeAndFill: false
        }, {
          removeEmptyAttrs: false
        }]
      },
      dist: {
        expand: true,
        cwd: 'dev/svg/',
        src: '*.svg',
        dest: 'includes/svg'
      }
    },

    browserSync: {
      files: {
        src : [
        	'style.css',
          'js/*.js',
        	'**/*.php',
        ]
      },
      options: {
        watchTask: true,
        proxy: "[projectDir].dev",
        ghostMode: {
        	clicks: true,
          scroll: true,
          links: true,
          forms: true
        }
      }
    },

    ftpush: {
      build: {
        auth: {
          host: "ftp.domain.com",
          port: 21,
          authKey: "key1"
        },
        src: ".",
        dest: "/www/wp-content/themes/mytheme/",
        exclusions: [
          ".DS_Store",
          "Thumbs.db",
          "LICENSE",
          "README.md",
          "Gruntfile.js",
          "package.json",
          "node_modules",
          ".ftppass",
          ".gitignore",
          ".git",
          ".sass-cache",
          "dev"
        ]
      }
    },

    devUpdate: {
      main: {
        options: {
          updateType: 'force',
          reportUpdated: false,
          semver: false,
          packages: {
            devDependencies: true,
            dependencies: false
          },
          packageJson: null,
          reportOnlyPkgs: []
        }
      }
    }

  });

  grunt.registerTask("default", ["browserSync", "watch"]);
  grunt.registerTask("css", ["sass", "cmq", "postcss", "cssmin"]);
  grunt.registerTask("img", ["imagemin"]);
  grunt.registerTask("js", ["uglify"]);
  grunt.registerTask("svg", ["svgmin"]);
  grunt.registerTask("update", ["devUpdate"]);
  grunt.registerTask("deploy", ["sass", "cmq", "postcss", "imagemin", "uglify", "svgmin", "ftpush"]);

};

@@ -2231,25 +2231,42 @@
 nc: %7B%0A      
-f
+dev: %7B%0A        bsF
 iles: %7B%0A    
@@ -2273,16 +2273,18 @@
     
+  
 src : %5B%0A
     
@@ -2275,24 +2275,26 @@
     src : %5B%0A
+  
         %09'st
@@ -2313,16 +2313,18 @@
         
+ 
+ 
 'js/*.js
@@ -2322,24 +2322,26 @@
  'js/*.js',%0A
+  
         %09'**
@@ -2349,16 +2349,18 @@
 *.php',%0A
+  
         
@@ -2363,27 +2363,31 @@
     %5D%0A      
+  
 %7D,%0A
+  
       option
@@ -2395,24 +2395,26 @@
 : %7B%0A        
+ 
+ 
 watchTask: t
@@ -2410,32 +2410,34 @@
 atchTask: true,%0A
+  
         proxy: %22
@@ -2457,122 +2457,8 @@
 dev%22
-,%0A        ghostMode: %7B%0A        %09clicks: true,%0A          scroll: true,%0A          links: true,%0A          forms: true
 %0A   

optimize default gruntfile browsersync config