/**
  * Init method, called when accessing the page. Handles processing of participant and contest $_POST and $_GET requests.
  */
 function init()
 {
     $contest = '';
     if (isset($_GET['contest'])) {
         $contest = $_GET['contest'];
     }
     if (isset($_GET['export'])) {
         cf_Table_Participants::export_csv($contest);
     }
     if (isset($_GET['togglevalid'])) {
         $participant = new cf_Participant($_GET['togglevalid']);
         if ($participant->_valid) {
             if ($participant->status == 'not_valid') {
                 $participant->set_status('');
             } else {
                 if ($participant->status != 'not_confirmed') {
                     $participant->set_status('not_valid');
                 }
             }
         }
         $url = 'admin.php?page=' . self::page_id;
         if (isset($_GET['contest'])) {
             $url .= '&contest=' . $_GET['contest'];
         }
         wp_safe_redirect(admin_url($url));
         die;
     }
     if (isset($_GET['del'])) {
         $participant = new cf_Participant($_GET['del']);
         if ($participant->_valid) {
             $participant->delete();
         }
         $url = 'admin.php?page=' . self::page_id;
         if (isset($_GET['contest'])) {
             $url .= '&contest=' . $_GET['contest'];
         }
         wp_safe_redirect(admin_url($url));
         die;
     }
     if (isset($_GET['contest'])) {
         $contest = new cf_Contest($_GET['contest']);
         if ($contest->_valid != true) {
             wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Participants::page_id));
             die;
         }
         if (isset($_POST['resetcontest'])) {
             if ($contest->cf_status == 'winners_picked') {
                 $contest->set_status('active');
                 $contest->clear_winners();
             }
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
         if (isset($_POST['setexpired'])) {
             if ($contest->cf_status == 'expired') {
                 $contest->set_status('active');
             } else {
                 if ($contest->cf_status == 'active' || $contest->cf_status == '') {
                     $contest->set_status('expired');
                 }
             }
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
         if (isset($_POST['pickwinners'])) {
             $winners_num = 1;
             if (isset($contest->cf_winners_num) && is_numeric($contest->cf_winners_num) && $contest->cf_winners_num > 0) {
                 $winners_num = $contest->cf_winners_num;
             }
             $current_winners = $contest->get_current_winner_num();
             $pick_num = intval($winners_num) - intval($current_winners);
             if ($pick_num > 0) {
                 $contest->pick_winners($pick_num);
             }
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
         if (isset($_POST['clearwinners'])) {
             $contest->clear_winners();
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
         if (isset($_POST['pickwinner'])) {
             $winners_num = 1;
             if (isset($contest->cf_winners_num) && is_numeric($contest->cf_winners_num) && $contest->cf_winners_num > 0) {
                 $winners_num = $contest->cf_winners_num;
             }
             if ($contest->get_current_winner_num() < $winners_num) {
                 $participant = new cf_Participant($_POST['pickwinner']);
                 if ($participant->_valid) {
                     $participant->set_status('winner');
                     $contest->set_status('winners_picked');
                 }
             }
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
         if (isset($_POST['removewinner'])) {
             $participant = new cf_Participant($_POST['removewinner']);
             if ($participant->_valid) {
                 if (substr($participant->status, 0, 6) == 'winner') {
                     $participant->set_status('');
                 }
             }
             if (isset($_GET['redirect']) && $_GET['redirect'] == 'contest') {
                 wp_safe_redirect(admin_url('admin.php?page=' . cf_Page_Contest::page_id . '&contest=' . $contest->ID . '&cf_page=dashboard'));
             } else {
                 wp_safe_redirect(admin_url('admin.php?page=' . self::page_id . '&contest=' . $contest->ID));
             }
             die;
         }
     }
     add_action('admin_footer', array(&$this, 'list_scripts'));
 }