private bool SynchronizePages()
 {
   for (int index = 0; index < Model.CurrentPositions.Count; index++)
   {
     if (index >= Positions.Count || Positions[index] != Model.CurrentPositions[index])
     {
       int correspondent = Positions.FindIndex(index, delegate(WebPosition pos) { return pos == Model.CurrentPositions[index]; });
       if (correspondent != -1)
       {
         TabPage correspondentPage = tabControl1.TabPages[correspondent];
         tabControl1.TabPages.RemoveAt(correspondent);
         tabControl1.TabPages.Insert(index, correspondentPage);
         return false;
       }
       else
       {
         BrowserPage browserPage = new BrowserPage(Model.CurrentPositions[index]);
         browserPage.InitModel(GetModel);
         browserPage.Dock = DockStyle.Fill;
         TabPage newPage = new TabPage();
         newPage.Controls.Add(browserPage);
         if (index < tabControl1.TabPages.Count)
           tabControl1.TabPages.Insert(index, newPage);
         else
           tabControl1.TabPages.Add(newPage);
         return false;
       }
     }
   }
   if (Positions.Count > Model.CurrentPositions.Count)
   {
     for (int index = Model.CurrentPositions.Count; index < Positions.Count; index++)
       tabControl1.TabPages.RemoveAt(index);
   }
   return true;
 }
 public void SetUp()
 {
     this.Model = new Model();
       Model.Mode = Model.WorkMode.Browse;
       this.form = new BrowserPage(Model.CurrentPositions[0]);
       this.form.InitModel(delegate { return Model; });
       WaitBrowser();
 }