public function actionInject()
 {
     header('Content-type:application/json');
     $post = Yii::app()->getRequest()->getPost('chart');
     $weeks = $post['weeks'];
     $artists = array();
     $tracks = array();
     $chart_entries = array();
     // traverse $week
     /* weeks : [
      *  {
      *      week : 1,
      *      year : 2008,
      *      tracks : [{
      *          start : 0,
      *          mark : 1,
      *          position : 32,
      *          track : "Sexual Eruption",
      *          artist : "Snoop Dogg"
      *      }]
      *  }
      * ]
      */
     foreach ($weeks as $week) {
         foreach ($week['tracks'] as $chart_entry) {
             // populate artists
             $artist_name = $chart_entry['artist'];
             $artist_hash = md5($artist_name);
             if (!isset($artists[$artist_hash])) {
                 $artists[$artist_hash] = $artist_name;
             }
             // populate tracks
             $track_title = $chart_entry['track'];
             $track_hash = md5("{$track_title}\\%charty\\%{$artist_name}");
             if (!isset($tracks[$track_hash])) {
                 $tracks[$track_hash] = array('title' => $track_title, 'artist_hash' => $artist_hash);
             }
             // populate chart_entry_data
             $chart_entries[] = array('year' => $week['year'], 'week' => $week['week'], 'position' => $chart_entry['position'], 'track_hash' => $track_hash);
         }
     }
     $inserted_artists = Artist::insertMultiple($artists);
     $inserted_tracks = Track::insertMultiple($tracks);
     $inserted_chart_entries = ChartEntry::insertMultiple($chart_entries);
     echo json_encode(array('inserted_artists' => $inserted_artists, 'inserted_tracks' => $inserted_tracks, 'inserted_chart_entries' => $inserted_chart_entries));
 }