Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.Designer.cs	(revision 30536)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.Designer.cs	(revision 30536)
@@ -0,0 +1,247 @@
+﻿namespace Picasa2Piwigo
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+            this.label1 = new System.Windows.Forms.Label();
+            this.AlbumNameTextBox = new System.Windows.Forms.TextBox();
+            this.SyncButton = new System.Windows.Forms.Button();
+            this.OptionsButton = new System.Windows.Forms.Button();
+            this.label2 = new System.Windows.Forms.Label();
+            this.NewAlbumParentAlbumComboBox = new System.Windows.Forms.ComboBox();
+            this.NewAlbumRadioButton = new System.Windows.Forms.RadioButton();
+            this.NewAlbumGroupBox = new System.Windows.Forms.GroupBox();
+            this.AccessComboBox = new System.Windows.Forms.ComboBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.AddTopAlbumCheckbox = new System.Windows.Forms.RadioButton();
+            this.AddToAlbumGroupbox = new System.Windows.Forms.GroupBox();
+            this.AddToAlbumComboBox = new System.Windows.Forms.ComboBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.NewAlbumGroupBox.SuspendLayout();
+            this.AddToAlbumGroupbox.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label1.Location = new System.Drawing.Point(6, 27);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(89, 16);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "Album Name:";
+            // 
+            // AlbumNameTextBox
+            // 
+            this.AlbumNameTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.AlbumNameTextBox.Location = new System.Drawing.Point(103, 24);
+            this.AlbumNameTextBox.Name = "AlbumNameTextBox";
+            this.AlbumNameTextBox.Size = new System.Drawing.Size(631, 22);
+            this.AlbumNameTextBox.TabIndex = 2;
+            // 
+            // SyncButton
+            // 
+            this.SyncButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.SyncButton.Location = new System.Drawing.Point(333, 250);
+            this.SyncButton.Name = "SyncButton";
+            this.SyncButton.Size = new System.Drawing.Size(111, 33);
+            this.SyncButton.TabIndex = 3;
+            this.SyncButton.Text = "Execute";
+            this.SyncButton.UseVisualStyleBackColor = true;
+            this.SyncButton.Click += new System.EventHandler(this.SyncButton_Click);
+            // 
+            // OptionsButton
+            // 
+            this.OptionsButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.OptionsButton.Location = new System.Drawing.Point(490, 250);
+            this.OptionsButton.Name = "OptionsButton";
+            this.OptionsButton.Size = new System.Drawing.Size(108, 33);
+            this.OptionsButton.TabIndex = 4;
+            this.OptionsButton.Text = "Options";
+            this.OptionsButton.UseVisualStyleBackColor = true;
+            this.OptionsButton.Click += new System.EventHandler(this.OptionsButton_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label2.Location = new System.Drawing.Point(6, 64);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(91, 16);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "Parent Album:";
+            // 
+            // NewAlbumParentAlbumComboBox
+            // 
+            this.NewAlbumParentAlbumComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.NewAlbumParentAlbumComboBox.FormattingEnabled = true;
+            this.NewAlbumParentAlbumComboBox.Location = new System.Drawing.Point(103, 61);
+            this.NewAlbumParentAlbumComboBox.Name = "NewAlbumParentAlbumComboBox";
+            this.NewAlbumParentAlbumComboBox.Size = new System.Drawing.Size(631, 24);
+            this.NewAlbumParentAlbumComboBox.TabIndex = 4;
+            // 
+            // NewAlbumRadioButton
+            // 
+            this.NewAlbumRadioButton.AutoSize = true;
+            this.NewAlbumRadioButton.Checked = true;
+            this.NewAlbumRadioButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.NewAlbumRadioButton.Location = new System.Drawing.Point(12, 39);
+            this.NewAlbumRadioButton.Name = "NewAlbumRadioButton";
+            this.NewAlbumRadioButton.Size = new System.Drawing.Size(94, 20);
+            this.NewAlbumRadioButton.TabIndex = 5;
+            this.NewAlbumRadioButton.TabStop = true;
+            this.NewAlbumRadioButton.Text = "New Album";
+            this.NewAlbumRadioButton.UseVisualStyleBackColor = true;
+            this.NewAlbumRadioButton.CheckedChanged += new System.EventHandler(this.NewAlbumRadioButton_CheckedChanged);
+            // 
+            // NewAlbumGroupBox
+            // 
+            this.NewAlbumGroupBox.Controls.Add(this.AccessComboBox);
+            this.NewAlbumGroupBox.Controls.Add(this.NewAlbumParentAlbumComboBox);
+            this.NewAlbumGroupBox.Controls.Add(this.label3);
+            this.NewAlbumGroupBox.Controls.Add(this.label2);
+            this.NewAlbumGroupBox.Controls.Add(this.AlbumNameTextBox);
+            this.NewAlbumGroupBox.Controls.Add(this.label1);
+            this.NewAlbumGroupBox.Location = new System.Drawing.Point(124, 14);
+            this.NewAlbumGroupBox.Name = "NewAlbumGroupBox";
+            this.NewAlbumGroupBox.Size = new System.Drawing.Size(741, 138);
+            this.NewAlbumGroupBox.TabIndex = 1;
+            this.NewAlbumGroupBox.TabStop = false;
+            this.NewAlbumGroupBox.Text = "New Album";
+            // 
+            // AccessComboBox
+            // 
+            this.AccessComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.AccessComboBox.FormattingEnabled = true;
+            this.AccessComboBox.Items.AddRange(new object[] {
+            "Public",
+            "Private"});
+            this.AccessComboBox.Location = new System.Drawing.Point(103, 97);
+            this.AccessComboBox.Name = "AccessComboBox";
+            this.AccessComboBox.Size = new System.Drawing.Size(79, 24);
+            this.AccessComboBox.TabIndex = 5;
+            this.AccessComboBox.SelectedIndexChanged += new System.EventHandler(this.AccessComboBox_SelectedIndexChanged);
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label3.Location = new System.Drawing.Point(6, 100);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(85, 16);
+            this.label3.TabIndex = 1;
+            this.label3.Text = "Access type:";
+            // 
+            // AddTopAlbumCheckbox
+            // 
+            this.AddTopAlbumCheckbox.AutoSize = true;
+            this.AddTopAlbumCheckbox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.AddTopAlbumCheckbox.Location = new System.Drawing.Point(12, 189);
+            this.AddTopAlbumCheckbox.Name = "AddTopAlbumCheckbox";
+            this.AddTopAlbumCheckbox.Size = new System.Drawing.Size(112, 20);
+            this.AddTopAlbumCheckbox.TabIndex = 5;
+            this.AddTopAlbumCheckbox.Text = "Add To Album";
+            this.AddTopAlbumCheckbox.UseVisualStyleBackColor = true;
+            this.AddTopAlbumCheckbox.CheckedChanged += new System.EventHandler(this.AddTopAlbumCheckbox_CheckedChanged);
+            // 
+            // AddToAlbumGroupbox
+            // 
+            this.AddToAlbumGroupbox.Controls.Add(this.AddToAlbumComboBox);
+            this.AddToAlbumGroupbox.Controls.Add(this.label4);
+            this.AddToAlbumGroupbox.Enabled = false;
+            this.AddToAlbumGroupbox.Location = new System.Drawing.Point(124, 168);
+            this.AddToAlbumGroupbox.Name = "AddToAlbumGroupbox";
+            this.AddToAlbumGroupbox.Size = new System.Drawing.Size(741, 57);
+            this.AddToAlbumGroupbox.TabIndex = 2;
+            this.AddToAlbumGroupbox.TabStop = false;
+            this.AddToAlbumGroupbox.Text = "Add To Album";
+            // 
+            // AddToAlbumComboBox
+            // 
+            this.AddToAlbumComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.AddToAlbumComboBox.FormattingEnabled = true;
+            this.AddToAlbumComboBox.Location = new System.Drawing.Point(103, 20);
+            this.AddToAlbumComboBox.Name = "AddToAlbumComboBox";
+            this.AddToAlbumComboBox.Size = new System.Drawing.Size(631, 24);
+            this.AddToAlbumComboBox.TabIndex = 4;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label4.Location = new System.Drawing.Point(6, 23);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(49, 16);
+            this.label4.TabIndex = 1;
+            this.label4.Text = "Album:";
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(881, 306);
+            this.Controls.Add(this.AddToAlbumGroupbox);
+            this.Controls.Add(this.AddTopAlbumCheckbox);
+            this.Controls.Add(this.NewAlbumGroupBox);
+            this.Controls.Add(this.NewAlbumRadioButton);
+            this.Controls.Add(this.OptionsButton);
+            this.Controls.Add(this.SyncButton);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "Form1";
+            this.Text = "Picasa2Piwigo - Version 1.0 - KenL";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.NewAlbumGroupBox.ResumeLayout(false);
+            this.NewAlbumGroupBox.PerformLayout();
+            this.AddToAlbumGroupbox.ResumeLayout(false);
+            this.AddToAlbumGroupbox.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.TextBox AlbumNameTextBox;
+        private System.Windows.Forms.Button SyncButton;
+        private System.Windows.Forms.Button OptionsButton;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox NewAlbumParentAlbumComboBox;
+        private System.Windows.Forms.RadioButton NewAlbumRadioButton;
+        private System.Windows.Forms.GroupBox NewAlbumGroupBox;
+        private System.Windows.Forms.RadioButton AddTopAlbumCheckbox;
+        private System.Windows.Forms.GroupBox AddToAlbumGroupbox;
+        private System.Windows.Forms.ComboBox AddToAlbumComboBox;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.ComboBox AccessComboBox;
+        private System.Windows.Forms.Label label3;
+    }
+}
+
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.cs	(revision 30536)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.cs	(revision 30536)
@@ -0,0 +1,269 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.IO;
+using System.Net;
+using System.Xml;
+
+namespace Picasa2Piwigo
+{
+    using Picasa2PiwigoConstants;
+    public partial class Form1 : Form
+    {        
+        string[] command_line_args;
+        XmlDocument AlbumList = new XmlDocument();
+        public struct AlbumListStruct
+        {
+            public string album_name;
+            public string full_album_path;
+            public int album_index;
+            public string album_parent_chain;
+        }
+        AlbumListStruct[] album_list_array = new AlbumListStruct[1024];
+        int album_count;
+
+        public Form1(string[] args)
+        {
+            InitializeComponent();
+            command_line_args = args;
+        }
+
+        private void Form1_Load(object sender, EventArgs e)
+        {
+           
+            this.SyncButton.Enabled = false;
+            this.Show();
+            this.Refresh();
+
+            //if no arguments then exit
+            if (command_line_args.Length == 0)
+            {
+                return;
+            }
+            AccessComboBox.SelectedIndex = Form1Settings.Default.AccessSetting;
+            this.SyncButton.Enabled = true;
+            //determine album name, if possible
+            AlbumNameTextBox.Text = DetermineAlbumNameFromCommandLine(command_line_args[0]);
+
+            if (FormSettings.Default.PiwigoUrlSetting.Length == 0 ||
+                FormSettings.Default.PicasaContactsLocation.Length == 0)
+            {
+                MessageBox.Show("Set up your Piwigo Server Connection using the Options button.", "Picasa2Piwigo");
+                return;
+            }
+
+            //ok to try to login etc
+            LoginBuildAlbumList();
+
+            //populate album listbox
+            PopulateAlbumListBox();
+        }
+
+        private void SyncButton_Click(object sender, EventArgs e)
+        {
+            DialogResult result;
+
+            if (NewAlbumRadioButton.Checked)
+            {
+                if (AlbumNameTextBox.Text.Length == 0)
+                {
+                    MessageBox.Show("Error:  Blank Album Name");
+                    return;
+                }            
+                GlobalClass.NewAlbumName = AlbumNameTextBox.Text;
+                if (NewAlbumParentAlbumComboBox.SelectedIndex == -1)
+                {
+                    GlobalClass.NewAlbumNameParentID = -1;
+                }
+                else
+                {
+                    GlobalClass.NewAlbumNameParentID = album_list_array[NewAlbumParentAlbumComboBox.SelectedIndex].album_index;
+                }
+                if (AlbumAlreadyExists(NewAlbumParentAlbumComboBox.SelectedIndex))
+                {
+                    MessageBox.Show("Album already exists in Piwigo.  Please choose a different album name.");
+                    return;
+                }
+
+                Form StatusForm = new StatusForm(constants.COMMAND_NEW_ALBUM, command_line_args);
+                result = StatusForm.ShowDialog();
+                StatusForm.Close();
+                if (result == DialogResult.No)
+                {
+                    MessageBox.Show(GlobalClass.StatusDialogErrorMessage, "Picasa2Piwigo Error",
+                        MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+                else
+                {
+                    MessageBox.Show("Add to new album complete.");
+                    Application.Exit();
+                }
+            }
+
+            if (AddTopAlbumCheckbox.Checked)
+            {
+                if (AddToAlbumComboBox.SelectedIndex == -1)
+                {
+                    MessageBox.Show("Error:  No Album Selected");
+                    return;
+                }
+                GlobalClass.AddAlbumCategoryID = album_list_array[AddToAlbumComboBox.SelectedIndex].album_index;
+                Form StatusForm = new StatusForm(constants.COMMAND_ADD_TO_ALBUM, command_line_args);
+                result = StatusForm.ShowDialog();
+                StatusForm.Close();
+                if (result == DialogResult.No)
+                {
+                    MessageBox.Show(GlobalClass.StatusDialogErrorMessage, "Picasa2Piwigo Error",
+                        MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+                else
+                {
+                    MessageBox.Show("Add to album complete.");
+                    Application.Exit();
+                }
+            }
+
+        }
+
+        private void OptionsButton_Click(object sender, EventArgs e)
+        {
+            DialogResult option_form_result;
+
+            Form OptionsForm = new OptionsForm();
+            OptionsButton.Enabled = false;
+            option_form_result = OptionsForm.ShowDialog();
+            OptionsButton.Enabled = true;
+            if (option_form_result == DialogResult.OK)
+            {
+                if (FormSettings.Default.PiwigoUrlSetting.Length != 0 &&
+                    FormSettings.Default.PicasaContactsLocation.Length != 0)
+                {
+                    this.SyncButton.Enabled = true;
+                    //ok to try to login etc
+                    LoginBuildAlbumList();
+
+                    //populate album listbox
+                    PopulateAlbumListBox();
+                }
+            }
+        }
+
+        private void NewAlbumRadioButton_CheckedChanged(object sender, EventArgs e)
+        {
+            if (NewAlbumRadioButton.Checked)
+            {
+                NewAlbumGroupBox.Enabled = true;                
+                AddToAlbumGroupbox.Enabled = false;
+            }
+        }
+        private void AddTopAlbumCheckbox_CheckedChanged(object sender, EventArgs e)
+        {
+            if (AddTopAlbumCheckbox.Checked)
+            {
+                NewAlbumGroupBox.Enabled = false;                
+                AddToAlbumGroupbox.Enabled = true;
+            }
+        }
+        public void LoginBuildAlbumList()
+        {
+            DialogResult result;
+            Form StatusForm = new StatusForm(constants.COMMAND_START_UP, command_line_args);
+            result = StatusForm.ShowDialog();
+            StatusForm.Close();
+            if (result == DialogResult.No)
+            {
+                MessageBox.Show(GlobalClass.StatusDialogErrorMessage, "Picasa2Piwigo Error",
+                    MessageBoxButtons.OK, MessageBoxIcon.Error);
+            }
+            AlbumList = GlobalClass.AlbumList;
+
+            //build album list
+            BuildAlbumList(AlbumList);
+        }
+        public string DetermineAlbumNameFromCommandLine(string command_line)
+        {
+            int k, l, m;
+            string album_name;
+ 
+            k = command_line.LastIndexOf("\\");
+            album_name = "";
+            if (k != -1)
+            {
+                l = command_line.LastIndexOf("\\", k - 1);
+                m = command_line.LastIndexOf(":", k - 1);
+                if (l != -1)
+                {
+                    album_name = command_line.Substring(l + 1, k - l - 1);
+                }
+                else if (m != -1)
+                {
+                    album_name = command_line.Substring(m + 1, k - m - 1);
+                }
+            }
+            return album_name;
+        }
+        public void BuildAlbumList(XmlDocument AlbumList)
+        {            
+            album_count = 0;
+            XmlNodeList nodelist = AlbumList.GetElementsByTagName("category");
+            foreach (XmlNode anode in nodelist)
+            {
+                if (album_count >= album_list_array.Length)
+                {
+                    Array.Resize(ref album_list_array, album_list_array.Length + 1024);
+                }
+                if (anode.Attributes.Item(0).Name == "id")
+                {
+                    album_list_array[album_count].album_index = Convert.ToInt32(anode.Attributes.Item(0).Value);
+                }
+                album_list_array[album_count].album_name = anode.ChildNodes[0].InnerText;
+                album_count++;
+            }
+        }
+        public void PopulateAlbumListBox()
+        {
+            int i;
+
+            for (i = 0; i < album_count; i++)
+            {
+                NewAlbumParentAlbumComboBox.Items.Add(album_list_array[i].album_name);                
+                AddToAlbumComboBox.Items.Add(album_list_array[i].album_name);
+            }
+        }
+        public bool AlbumAlreadyExists(int selected_index)
+        {
+            int i;
+            string NewAlbumNameFull;
+
+            if (selected_index == -1)
+            {
+                NewAlbumNameFull = GlobalClass.NewAlbumName;
+            }
+            else
+            {
+                NewAlbumNameFull = album_list_array[selected_index].album_name + " / " + GlobalClass.NewAlbumName;
+            }
+            for (i = 0; i < album_count; i++)
+            {
+                if (album_list_array[i].album_name == NewAlbumNameFull)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        private void AccessComboBox_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            Form1Settings.Default.AccessSetting = AccessComboBox.SelectedIndex;
+            Form1Settings.Default.AccessValue = AccessComboBox.Text;
+            Form1Settings.Default.Save();
+        }
+
+    }
+}
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.resx	(revision 30536)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Form1.resx	(revision 30536)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAIAA
+        AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+        AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh3d3d3d3eHOZm5mZmZ
+        mZM5iHiJmZmZkztwcHiZmZmTMAd3cJmZmZMwB3BwmZmZkzhwB3iZmZmTOQh3CZmZmZMAm4uZkzM5kwAR
+        EQMwAIkAAHd3d4iIh3cAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAEEA
+        AABBAAAAAAAAACIAAADAAAAAwHAAAMAAAAD//wAA//8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA
+        AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
+        /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAMzMzMzMzMzMzMzMzMzMzA7u7u5mZu7u7u7u7u7u7uzOZmZm4iJmZmZmZmZmZmZkzuZ
+        mwAAAImZmZmZmZmZmbM7mYCHAAcAmZmZmZmZmZmTO5gHAHcAcImZmZmZmZmZkzOQcHd3d3cJmZmZmZmZ
+        mZM5gAB3d3B3iJmZmZmZmZmTOYAHd3d3B4CZmZmZmZmZkzmAB3d3dweAmZmZmZmZmZM5gAd3d3B3iJmZ
+        mZmZmZmTOZBwcHAHhwuZmZmZmZmZkzuYBwd3eAgJmZmZmZmZmZM7mQB3d3eAuZmZmZmZmZmTO5mYCIiA
+        C5mZmZmZmZmZkzuZmbiIiJmZmZmZmTmZmZM7mZmZmZmZmZMzMzMzmZmz4zMzMzMzMzmYAAAAA5MzMQAA
+        AAAAAAAbl4CIgIOzAAAAAAAAAAAAAzmZmZmZMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+        ////////////////////////gAAAAQAAAAAAAAAAA/AAAAQMAAAIBAAAEAIAABAAAAAQAQAAEAEAABAA
+        AAAQAgAACAIAAAwEAAACGAAAAAAAAAAAAAAAAD+A//wRD//+AB///////////////////////////w==
+</value>
+  </data>
+</root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.Designer.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.Designer.cs	(revision 30536)
@@ -83,4 +83,28 @@
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string DebugFileLocation {
+            get {
+                return ((string)(this["DebugFileLocation"]));
+            }
+            set {
+                this["DebugFileLocation"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool DebugEnabled {
+            get {
+                return ((bool)(this["DebugEnabled"]));
+            }
+            set {
+                this["DebugEnabled"] = value;
+            }
+        }
     }
 }
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.settings
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.settings	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/FormSettings.settings	(revision 30536)
@@ -18,4 +18,10 @@
       <Value Profile="(Default)" />
     </Setting>
+    <Setting Name="DebugFileLocation" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="DebugEnabled" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
   </Settings>
 </SettingsFile>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/GlobalClass.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/GlobalClass.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/GlobalClass.cs	(revision 30536)
@@ -7,7 +7,49 @@
 using System.Windows.Forms;
 using System.Drawing;
+using System.IO;
+using Picasa2PiwigoConstants;
 
 namespace Picasa2PiwigoCommonFunctions
 {
+    public class logit
+    {
+        public static void WriteLog(string logMessage)
+        {
+            string strLogFile;
+            
+            strLogFile = FormSettings.Default.DebugFileLocation;
+#pragma warning disable 0162
+            if (constants.DEBUG_LOG_ENABLED &&
+                FormSettings.Default.DebugEnabled &&
+                FormSettings.Default.DebugFileLocation.Length > 3)
+            {
+                try
+                {
+#pragma warning restore 0162
+                    StreamWriter swLog;
+
+                    logMessage = string.Format("{0}: {1}", DateTime.Now, logMessage);
+
+                    if (!File.Exists(strLogFile))
+                    {
+                        swLog = new StreamWriter(strLogFile);
+                    }
+                    else
+                    {
+                        swLog = File.AppendText(strLogFile);
+                    }
+
+                    swLog.WriteLine(logMessage);
+                    swLog.WriteLine();
+
+                    swLog.Close();
+
+                }
+                catch
+                {
+                }
+            }
+        }
+    }
     public class LabelAdjust
     {
@@ -46,5 +88,5 @@
         public const bool DEBUG_LOCALE = false;
         public const string SET_LOCALE = "es";
-        public const bool DEBUG_LOG_ENABLED = false;
+        public const bool DEBUG_LOG_ENABLED = true;
 
         public const int COMMAND_START_UP = 1;
@@ -53,5 +95,5 @@
 
         public const int MAX_DUPLICATE_FILENAMES = 10000;
-        public const int MAX_NUMBER_OF_CONTACTS = 512;
+        public const int MAX_NUMBER_OF_CONTACTS = 2000;
         public struct PersonIDStruct
         {
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.da.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.da.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.da.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Version 1,3 - KenL</value>
+    <value>Picasa2Piwigo - Version 1,4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Fejl: Alt for mange mennesker tags i Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Log sti er ikke indstillet. Skal du indstille logsti ved at klikke på valgknappen .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Fejl: Kan ikke uploade foto. Foto kan være større end webserver tillader.</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.de.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.de.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.de.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Version 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Version 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Fehler: Zu viele Menschen Tags in Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Protokollpfad ist nicht gesetzt. Bitte stellen Sie den Protokollpfad , indem Sie auf das Optionsfeld .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Fehler: Unable to Foto hochladen. Foto kann größer sein als Webserver erlaubt.</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.fr.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.fr.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.fr.resx	(revision 30536)
@@ -221,5 +221,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Version 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Version 1.4 - KenL</value>
   </data>
   <data name="OFCancelButtonStrRes" xml:space="preserve">
@@ -287,3 +287,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Erreur: trop de gens tags dans Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Chemin du journal est pas défini. Se il vous plaît définir le chemin de journal en cliquant sur le bouton d'option .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Erreur: Impossible de télécharger photos. Photo peut être plus grand que le serveur web permet .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.hu.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.hu.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.hu.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - 1.3 verzió - KenL</value>
+    <value>Picasa2Piwigo - 1.4 verzió - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Hiba: Túl sok ember címkék Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Log útvonal nincs beállítva . Állítsa be a log path kattintva opció gombra.</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Hiba: Nem sikerült feltölteni a képet. Photo nagyobb lehet , mint a web szerver lehetővé teszi .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.it.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.it.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.it.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Versione 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Versione 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Errore: troppe persone etichette in Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Percorso di registro non è impostato . Impostare il percorso del registro facendo clic sul pulsante di opzione .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Errore : Impossibile caricare foto . La foto potrebbe essere più grande di web server consente .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.nl.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.nl.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.nl.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Versie 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Versie 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Fout: Te veel mensen in Picasa codes</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Inloggen pad niet is ingesteld . Stel de log weg door te klikken op de optie knop .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Fout : Kan geen foto uploaden. Foto kan groter zijn dan de webserver kunt zijn.</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.pl.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.pl.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.pl.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Wersja 1.3 - KENL</value>
+    <value>Picasa2Piwigo - Wersja 1.4 - KENL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Błąd: Zbyt wielu ludzi tagi w programie Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Ścieżka dziennika nie jest ustawiony . Proszę ustawić ścieżkę dziennika , klikając przycisk opcji .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Błąd : Nie można przesłać zdjęcie. Zdjęcie może być większa niż serwer WWW pozwala .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.ru.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.ru.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.ru.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Версия 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Версия 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Ошибка: слишком много людей теги в Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Путь Вход не установлен . Пожалуйста, установите путь к журналу , нажав на кнопку выбора .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Ошибка : Не удается загрузить фотографию. Фотография может быть больше, чем веб-сервер позволяет .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.tr.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.tr.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.tr.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Sürüm 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Sürüm 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Hata: Picasa çok sayıda kişi etiketleri</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Giriş yolu ayarlı değil . Seçenek düğmesine tıklayarakgünlük yolu ayarlayın.</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Hata: Fotoğraf yüklenemiyor. Fotoğraf web sunucusu izin verdiğinden daha büyük olabilir .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.zh.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.zh.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/WinFormStrings.zh.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - 1.3版 - KenL</value>
+    <value>Picasa2Piwigo - 1.4版 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>错误：在Picasa太多人标签</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>日志路径没有设置。点击选项按钮，请设置日志路径。</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>错误：无法上传照片。照片可能会大于web服务器允许。</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/winFormStrings.es.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/winFormStrings.es.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Language/winFormStrings.es.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Versión 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Versión 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,15 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Error: Demasiados etiquetas de personas en Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Ruta de registro no está establecida. Por favor, establecer la ruta de registro haciendo clic en el botón de opción .</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Error : No se puede cargar la foto . La foto puede ser más grande que el servidor web permite .</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/MainForm.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/MainForm.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/MainForm.cs	(revision 30536)
@@ -51,5 +51,13 @@
         {
             int command_length, i;
-            
+
+            byte[] temp_array2 = new byte[2];
+            string tempstr;
+
+            temp_array2[0] = 0xC3;
+            temp_array2[1] = 0xAF;
+            tempstr = Encoding.UTF8.GetString(temp_array2);
+
+
             this.AddToAlbumGroupbox.Text = WinFormStrings.MFAddToAlbumGroupboxStrRes;
             this.AddTopAlbumCheckbox.Text = WinFormStrings.MFAddTopAlbumCheckboxStrRes;
@@ -81,4 +89,6 @@
             this.Refresh();
 
+            logit.WriteLog("Program Start up");
+
             //if no arguments then exit
             if (command_line_args.Length == 0)
@@ -99,4 +109,5 @@
             }
 
+            logit.WriteLog("Reading command line arguments. Length: " + command_length.ToString());
             AccessComboBox.SelectedIndex = Form1Settings.Default.AccessSetting;
             this.SyncButton.Enabled = true;
@@ -107,14 +118,29 @@
             DescriptionTextBox.Text = DetermineAlbumDescription(command_line_args[0]);
 
-            if (FormSettings.Default.PiwigoUrlSetting.Length == 0 ||
-                FormSettings.Default.PicasaContactsLocation.Length == 0)
-            {
+            if (FormSettings.Default.PiwigoUrlSetting.Length == 0)
+            {
+                logit.WriteLog("Piwigo URL must be configured.");
                 MessageBox.Show(WinFormStrings.SetUpConnStrRes, "Picasa2Piwigo");
+                this.SyncButton.Enabled = false;
                 return;
             }
-
+            if (FormSettings.Default.PicasaContactsLocation.Length == 0)
+            {
+                logit.WriteLog("Picasa contacts not set");                
+            }
+
+            if (FormSettings.Default.DebugEnabled)
+            {
+                if (FormSettings.Default.DebugFileLocation.Length < 4)
+                {
+                    MessageBox.Show( WinFormStrings.LogPathErrStrRes, "Picasa2Piwigo");                        
+                }
+            }    
+
+            logit.WriteLog("Going to log in to piwigo.");
             //ok to try to login etc
             LoginBuildAlbumList();
 
+            logit.WriteLog("Populating album list box.");
             //populate album listbox
             PopulateAlbumListBox();
@@ -154,4 +180,10 @@
                 result = StatusForm.ShowDialog();
                 StatusForm.Close();
+
+                //bring window to front
+                this.WindowState = FormWindowState.Minimized;
+                this.Show();
+                this.WindowState = FormWindowState.Normal;
+
                 if (result == DialogResult.No)
                 {
@@ -177,4 +209,10 @@
                 result = StatusForm.ShowDialog();
                 StatusForm.Close();
+
+                //bring window to front
+                this.WindowState = FormWindowState.Minimized;
+                this.Show();
+                this.WindowState = FormWindowState.Normal;
+
                 if (result == DialogResult.No)
                 {
@@ -200,4 +238,12 @@
             if (option_form_result == DialogResult.OK)
             {
+                if (FormSettings.Default.DebugEnabled)
+                {
+                    if (FormSettings.Default.DebugFileLocation.Length < 4)
+                    {
+                        MessageBox.Show(WinFormStrings.LogPathErrStrRes, "Picasa2Piwigo");
+                    }
+                }            
+
                 if (FormSettings.Default.PiwigoUrlSetting.Length != 0 &&
                     FormSettings.Default.PicasaContactsLocation.Length != 0)
@@ -239,4 +285,5 @@
                 MessageBox.Show(GlobalClass.StatusDialogErrorMessage, WinFormStrings.Picasa2PiwigoErrStrRes,
                     MessageBoxButtons.OK, MessageBoxIcon.Error);
+                this.SyncButton.Enabled = false;
             }
             AlbumList = GlobalClass.AlbumList;
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.Designer.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.Designer.cs	(revision 30536)
@@ -41,4 +41,8 @@
             this.PicasaContactsFileTextBox = new System.Windows.Forms.TextBox();
             this.SetContactPathBtn = new System.Windows.Forms.Button();
+            this.button1 = new System.Windows.Forms.Button();
+            this.DebugtextBox = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.LogEnabled = new System.Windows.Forms.CheckBox();
             this.SuspendLayout();
             // 
@@ -112,10 +116,40 @@
             this.SetContactPathBtn.Click += new System.EventHandler(this.SetContactPathBtn_Click);
             // 
+            // button1
+            // 
+            resources.ApplyResources(this.button1, "button1");
+            this.button1.MaximumSize = new System.Drawing.Size(54, 23);
+            this.button1.Name = "button1";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.SetDebugPathBtn_Click);
+            // 
+            // DebugtextBox
+            // 
+            resources.ApplyResources(this.DebugtextBox, "DebugtextBox");
+            this.DebugtextBox.Name = "DebugtextBox";
+            this.DebugtextBox.ReadOnly = true;
+            // 
+            // label4
+            // 
+            resources.ApplyResources(this.label4, "label4");
+            this.label4.MaximumSize = new System.Drawing.Size(133, 16);
+            this.label4.Name = "label4";
+            // 
+            // LogEnabled
+            // 
+            resources.ApplyResources(this.LogEnabled, "LogEnabled");
+            this.LogEnabled.Name = "LogEnabled";
+            this.LogEnabled.UseVisualStyleBackColor = true;
+            // 
             // OptionsForm
             // 
             resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.LogEnabled);
+            this.Controls.Add(this.label4);
             this.Controls.Add(this.label8);
+            this.Controls.Add(this.DebugtextBox);
             this.Controls.Add(this.PicasaContactsFileTextBox);
+            this.Controls.Add(this.button1);
             this.Controls.Add(this.SetContactPathBtn);
             this.Controls.Add(this.ACancelButton);
@@ -147,4 +181,8 @@
         private System.Windows.Forms.TextBox PicasaContactsFileTextBox;
         private System.Windows.Forms.Button SetContactPathBtn;
+        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.TextBox DebugtextBox;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.CheckBox LogEnabled;
     }
 }
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.cs	(revision 30536)
@@ -45,4 +45,7 @@
             PiwigoPasswordTextBox.Text = FormSettings.Default.PiwigoPassword;
             PicasaContactsFileTextBox.Text = FormSettings.Default.PicasaContactsLocation;
+            DebugtextBox.Text = FormSettings.Default.DebugFileLocation;
+            LogEnabled.Checked = FormSettings.Default.DebugEnabled;
+
 
             LabelAdjust AdjustLabelClass = new LabelAdjust();
@@ -62,4 +65,6 @@
             FormSettings.Default.PiwigoPassword = PiwigoPasswordTextBox.Text;
             FormSettings.Default.PicasaContactsLocation = PicasaContactsFileTextBox.Text;
+            FormSettings.Default.DebugFileLocation = DebugtextBox.Text;
+            FormSettings.Default.DebugEnabled = LogEnabled.Checked;
             FormSettings.Default.Save();
             this.DialogResult = DialogResult.OK;
@@ -82,4 +87,15 @@
             }
         }
+
+        private void SetDebugPathBtn_Click(object sender, EventArgs e)
+        {
+            SaveFileDialog openFile1 = new SaveFileDialog();
+            openFile1.Filter = "Text Files|*.txt";
+            if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+            {
+                DebugtextBox.Text = openFile1.FileName;
+            }
+
+        }
     }
 }
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/OptionForm.resx	(revision 30536)
@@ -142,5 +142,5 @@
   </data>
   <data name="&gt;&gt;PiwigoURLTextbox.ZOrder" xml:space="preserve">
-    <value>10</value>
+    <value>14</value>
   </data>
   <data name="label1.Font" type="System.Drawing.Font, System.Drawing">
@@ -169,5 +169,5 @@
   </data>
   <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>7</value>
+    <value>11</value>
   </data>
   <data name="PiwigoUserNameTextBox.Font" type="System.Drawing.Font, System.Drawing">
@@ -193,5 +193,5 @@
   </data>
   <data name="&gt;&gt;PiwigoUserNameTextBox.ZOrder" xml:space="preserve">
-    <value>9</value>
+    <value>13</value>
   </data>
   <data name="label2.Font" type="System.Drawing.Font, System.Drawing">
@@ -220,5 +220,5 @@
   </data>
   <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
-    <value>6</value>
+    <value>10</value>
   </data>
   <data name="PiwigoPasswordTextBox.Font" type="System.Drawing.Font, System.Drawing">
@@ -247,5 +247,5 @@
   </data>
   <data name="&gt;&gt;PiwigoPasswordTextBox.ZOrder" xml:space="preserve">
-    <value>8</value>
+    <value>12</value>
   </data>
   <data name="label3.Font" type="System.Drawing.Font, System.Drawing">
@@ -274,8 +274,8 @@
   </data>
   <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
-    <value>5</value>
+    <value>9</value>
   </data>
   <data name="OKButton.Location" type="System.Drawing.Point, System.Drawing">
-    <value>196, 176</value>
+    <value>196, 269</value>
   </data>
   <data name="OKButton.Size" type="System.Drawing.Size, System.Drawing">
@@ -298,8 +298,8 @@
   </data>
   <data name="&gt;&gt;OKButton.ZOrder" xml:space="preserve">
-    <value>4</value>
+    <value>8</value>
   </data>
   <data name="ACancelButton.Location" type="System.Drawing.Point, System.Drawing">
-    <value>334, 177</value>
+    <value>334, 270</value>
   </data>
   <data name="ACancelButton.Size" type="System.Drawing.Size, System.Drawing">
@@ -322,5 +322,5 @@
   </data>
   <data name="&gt;&gt;ACancelButton.ZOrder" xml:space="preserve">
-    <value>3</value>
+    <value>7</value>
   </data>
   <data name="label8.Font" type="System.Drawing.Font, System.Drawing">
@@ -349,5 +349,5 @@
   </data>
   <data name="&gt;&gt;label8.ZOrder" xml:space="preserve">
-    <value>0</value>
+    <value>2</value>
   </data>
   <data name="PicasaContactsFileTextBox.Enabled" type="System.Boolean, mscorlib">
@@ -376,5 +376,5 @@
   </data>
   <data name="&gt;&gt;PicasaContactsFileTextBox.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>4</value>
   </data>
   <data name="SetContactPathBtn.Font" type="System.Drawing.Font, System.Drawing">
@@ -403,5 +403,123 @@
   </data>
   <data name="&gt;&gt;SetContactPathBtn.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>6</value>
+  </data>
+  <data name="button1.Font" type="System.Drawing.Font, System.Drawing">
+    <value>Microsoft Sans Serif, 9.75pt</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="button1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="button1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>538, 184</value>
+  </data>
+  <data name="button1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>54, 23</value>
+  </data>
+  <data name="button1.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name="button1.Text" xml:space="preserve">
+    <value>Set</value>
+  </data>
+  <data name="&gt;&gt;button1.Name" xml:space="preserve">
+    <value>button1</value>
+  </data>
+  <data name="&gt;&gt;button1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;button1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="DebugtextBox.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="DebugtextBox.Font" type="System.Drawing.Font, System.Drawing">
+    <value>Microsoft Sans Serif, 9.75pt</value>
+  </data>
+  <data name="DebugtextBox.Location" type="System.Drawing.Point, System.Drawing">
+    <value>151, 184</value>
+  </data>
+  <data name="DebugtextBox.Size" type="System.Drawing.Size, System.Drawing">
+    <value>381, 22</value>
+  </data>
+  <data name="DebugtextBox.TabIndex" type="System.Int32, mscorlib">
+    <value>8</value>
+  </data>
+  <data name="&gt;&gt;DebugtextBox.Name" xml:space="preserve">
+    <value>DebugtextBox</value>
+  </data>
+  <data name="&gt;&gt;DebugtextBox.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;DebugtextBox.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;DebugtextBox.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="label4.Font" type="System.Drawing.Font, System.Drawing">
+    <value>Microsoft Sans Serif, 9.75pt</value>
+  </data>
+  <data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
+    <value>12, 188</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>133, 16</value>
+  </data>
+  <data name="label4.TabIndex" type="System.Int32, mscorlib">
+    <value>22</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Log Path</value>
+  </data>
+  <data name="&gt;&gt;label4.Name" xml:space="preserve">
+    <value>label4</value>
+  </data>
+  <data name="&gt;&gt;label4.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label4.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="LogEnabled.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="LogEnabled.Font" type="System.Drawing.Font, System.Drawing">
+    <value>Microsoft Sans Serif, 9.75pt</value>
+  </data>
+  <data name="LogEnabled.Location" type="System.Drawing.Point, System.Drawing">
+    <value>151, 221</value>
+  </data>
+  <data name="LogEnabled.Size" type="System.Drawing.Size, System.Drawing">
+    <value>122, 20</value>
+  </data>
+  <data name="LogEnabled.TabIndex" type="System.Int32, mscorlib">
+    <value>23</value>
+  </data>
+  <data name="LogEnabled.Text" xml:space="preserve">
+    <value>Enable Logging</value>
+  </data>
+  <data name="&gt;&gt;LogEnabled.Name" xml:space="preserve">
+    <value>LogEnabled</value>
+  </data>
+  <data name="&gt;&gt;LogEnabled.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;LogEnabled.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;LogEnabled.ZOrder" xml:space="preserve">
+    <value>0</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -412,5 +530,5 @@
   </data>
   <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>604, 229</value>
+    <value>604, 327</value>
   </data>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj	(revision 30536)
@@ -127,4 +127,5 @@
     <EmbeddedResource Include="StatusForm.resx">
       <DependentUpon>StatusForm.cs</DependentUpon>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Language\WinFormStrings.ru.resx" />
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj.user
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj.user	(revision 30536)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/Picasa2Piwigo.csproj.user	(revision 30536)
@@ -0,0 +1,17 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <StartArguments>"D:\downloads\junk\IMG_5715a.jpg"</StartArguments>
+  </PropertyGroup>
+  <PropertyGroup>
+    <PublishUrlHistory />
+    <InstallUrlHistory />
+    <SupportUrlHistory />
+    <UpdateUrlHistory />
+    <BootstrapperUrlHistory />
+    <ErrorReportUrlHistory />
+    <FallbackCulture>en-US</FallbackCulture>
+    <VerifyUploadedFiles>false</VerifyUploadedFiles>
+    <ProjectView>ProjectFiles</ProjectView>
+  </PropertyGroup>
+</Project>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/StatusForm.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/StatusForm.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/StatusForm.cs	(revision 30536)
@@ -77,5 +77,5 @@
             {
                 case constants.COMMAND_START_UP:
-                    WriteLog("Start up");
+                    logit.WriteLog("Start up");
 
                     //1.  Reading Picasa contacts
@@ -91,4 +91,5 @@
                     }
 
+                    logit.WriteLog("Read picasa contacts");    
                     //2.  Validate that server can be reached                   
                     SetStatus(WinFormStrings.CheckServerConnStrRes);
@@ -104,4 +105,5 @@
 
                     //3.  Login                    
+                    logit.WriteLog("logging in");    
                     SetStatus(WinFormStrings.LogInStrRes);
                     step_passed = UpdateStatus(SyncPiwigoLogIn());
@@ -117,4 +119,5 @@
                     //4.  Get Piwigo Version
                     PiwigoVersionNumber = "";
+                    logit.WriteLog("getting version number from piwigo");    
                     SetStatus(WinFormStrings.GetPiwigoVersionStrRes);
                     step_passed = UpdateStatus(SyncPiwigoGetVersion(ref PiwigoVersionNumber));
@@ -126,4 +129,5 @@
 
                     //5.  Get list of albums
+                    logit.WriteLog("getting list of albums from piwigo");    
                     SetStatus(WinFormStrings.RetrieveAlbumListStRes);
                     step_passed = UpdateStatus(SyncPiwigoGetAlbums(ref AlbumList));
@@ -140,5 +144,5 @@
 
                 case constants.COMMAND_ADD_TO_ALBUM:
-                    WriteLog("Add to Album");
+                    logit.WriteLog("Add to Album");
 
                     //1.  Validate that server can be reached
@@ -182,5 +186,5 @@
 
                 case constants.COMMAND_NEW_ALBUM:
-                    WriteLog("New Album");
+                    logit.WriteLog("New Album");
 
                     //1.  Validate that server can be reached
@@ -482,8 +486,8 @@
                 0x70, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6D, 0x77, 0x67, 0x2D, 0x72, 0x73, 0x3A, 
                 0x4E, 0x61, 0x6D, 0x65, 0x3D, 0x22 };
-            int temp1, temp2, k, i, m;
+            int temp1, temp2, k, l, i, m, LengthToConvert;
             UInt16 signature, exif_length;
             string name_from_photo, tempstr;
-            byte[] temp_array = new byte[1];
+            byte[] temp_array = new byte[4];
 
             try
@@ -517,32 +521,58 @@
                         {
                             name_from_photo = "";
-                            do
+                            //found a name
+                            if (k >= exif_length - 5)
                             {
-                                //found a name
-                                temp_array[0] = filedata[k];
-                                tempstr = Encoding.Default.GetString(temp_array);
-                                if (tempstr != "\"")
+                                //just in case we're trying to read beyond end of filedata
+                                //probably will never happen
+                                logit.WriteLog("Read to end of xml");
+                                break;
+                            }
+                            temp_array[0] = filedata[k];
+                            temp_array[1] = filedata[k + 1];
+                            temp_array[2] = filedata[k + 2];
+                            temp_array[3] = filedata[k + 3];
+                            //tempstr = Encoding.UTF8.GetString(filedata);
+                            if (exif_length - k > 1024)
+                            {
+                                LengthToConvert = 1024;
+                            }
+                            else
+                            {
+                                LengthToConvert = exif_length - k;
+                            }
+                            if (LengthToConvert < 3)
+                            {
+                                logit.WriteLog("Too close to end of xml");
+                                break;
+                            }
+                            tempstr = Encoding.UTF8.GetString(filedata, k, LengthToConvert);
+                            l = tempstr.IndexOf("\"");
+                            if (l != -1)
+                            {
+                                tempstr = tempstr.Substring(0, l);
+                                k += tempstr.Length;
+                                name_from_photo = tempstr;
+
+                                if (name_from_photo.Substring(0, 1) == "0")
                                 {
-                                    name_from_photo += tempstr;
+                                    name_from_photo = name_from_photo.Substring(1);
                                 }
-                                else
+                                //have name, search for it in array
+                                for (i = 0; i < person_count; i++)
                                 {
-                                    if (name_from_photo.Substring(0, 1) == "0")
+                                    if (name_from_photo == contact_array[i].name)
                                     {
-                                        name_from_photo = name_from_photo.Substring(1);
+                                        found_contact_in_photo_array[i] = true;
+                                        break;
                                     }
-                                    //have name, search for it in array
-                                    for (i = 0; i < person_count; i++)
-                                    {
-                                        if (name_from_photo == contact_array[i].name)
-                                        {
-                                            found_contact_in_photo_array[i] = true;
-                                            break;
-                                        }
-                                    }
-                                    break;
                                 }
-                                k++;
-                            } while (tempstr != "\"");
+                            }
+                            else
+                            {
+                                //couldn't find end of name, abort
+                                logit.WriteLog("couldn't find end of name: " + tempstr);
+                                break;
+                            }
                         }
                         k++;
@@ -603,5 +633,5 @@
             string filepath, inidata, photofilename, photo_file_name, ini_unique_id;
             string face_tag_list;
-            bool[] found_contact_in_photo_array = new bool[256];
+            bool[] found_contact_in_photo_array = new bool[Picasa2PiwigoConstants.constants.MAX_NUMBER_OF_CONTACTS];
             bool found_photo;
             bool finished_faces, found_person;
@@ -616,11 +646,5 @@
 
             //if it's a video file then skip it
-            if (photofilename.ToLower().IndexOf(".jpg", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".gif", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".png", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".tga", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".tif", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".tiff", StringComparison.OrdinalIgnoreCase) == -1 &&
-                  photofilename.ToLower().IndexOf(".psd", StringComparison.OrdinalIgnoreCase) == -1)
+            if (!CheckFileNameExtension(photofilename.ToLower()))
             {
                 return face_tag_list;
@@ -636,5 +660,5 @@
             {
                 if (found_contact_in_photo_array[k])
-                {                    
+                {
                     face_tag_list += RemoveCommaFromContract(GlobalClass.contact_array[k].name) + ",";
                 }
@@ -644,4 +668,5 @@
             if (File.Exists(filepath + "\\.picasa.ini"))
             {
+                logit.WriteLog("picasa.ini file exists");
                 try
                 {
@@ -659,4 +684,5 @@
             else if (File.Exists(filepath + "\\Picasa.ini"))
             {
+                logit.WriteLog("Picasa.ini file exists");
                 try
                 {
@@ -678,5 +704,5 @@
             {
                 while ((inidata = inifile.ReadLine()) != null)
-                {
+                {                    
                     if (inidata.Length > 4)
                     {
@@ -684,5 +710,5 @@
                         {
                             found_photo = false;
-                            k = inidata.IndexOf("]");
+                            k = inidata.IndexOf("]");                            
                             if (k != -1)
                             {
@@ -694,11 +720,5 @@
                             }
 
-                            if (photo_file_name.ToLower().IndexOf(".jpg", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".gif", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".png", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".tga", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".tif", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".tiff", StringComparison.OrdinalIgnoreCase) != -1 ||
-                                photo_file_name.ToLower().IndexOf(".psd", StringComparison.OrdinalIgnoreCase) != -1)
+                            if (CheckFileNameExtension(photo_file_name.ToLower()))
                             {
                                 found_photo = true;
@@ -746,4 +766,5 @@
                                             {
                                                 face_tag_list += GlobalClass.contact_array[l].name + ",";
+                                                logit.WriteLog("face_tag_list:  " + face_tag_list);
                                             }
                                         }
@@ -763,4 +784,5 @@
             if (face_tag_list.Length > 1)
             {
+                logit.WriteLog("end face_tag_list:  " + face_tag_list);
                 face_tag_list = face_tag_list.Substring(0, face_tag_list.Length - 1);
             }
@@ -820,4 +842,9 @@
                         GlobalClass.picasa_unique_id_arrary[GlobalClass.unique_id_count].index = GlobalClass.person_count;
                         GlobalClass.person_count++;
+                        if (GlobalClass.person_count >= constants.MAX_NUMBER_OF_CONTACTS)
+                        {
+                            GlobalClass.StatusDialogErrorMessage = WinFormStrings.TooManyPeopleTags;
+                            return false;    
+                        }
                     }
                     else
@@ -837,8 +864,8 @@
 
             WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.session.getStatus";
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
 
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
 
             if (WebResponse.IndexOf("An error occurred:") != -1)
@@ -865,16 +892,16 @@
             WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.session.login";            
             PostData = "username=" + FormSettings.Default.PiwigoUserName + "&password=" + FormSettings.Default.PiwigoPassword;
-            WriteLog(WebRequest);
-            WriteLog(PostData);
+            logit.WriteLog(WebRequest);
+            logit.WriteLog("username=" + FormSettings.Default.PiwigoUserName + "&password=" + "*****");
             response = SendWebPost(WebRequest, PostData, "application/x-www-form-urlencoded");            
             if (!response)
             {
-                WriteLog("Log In Post Fail.");
+                logit.WriteLog("Log In Post Fail.");
                 return false;
             }
             WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.session.getStatus";
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
             if (WebResponse.IndexOf("An error occurred:") != -1)
             {
@@ -896,8 +923,8 @@
 
             WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.getVersion";
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
 
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
 
             PiwigoVersionNumber = "";
@@ -935,8 +962,8 @@
             }
 
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
 
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
 
             if (WebResponse.IndexOf("An error occurred:") != -1)
@@ -959,8 +986,8 @@
 
             WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.tags.getList";
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
 
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
 
             if (WebResponse.IndexOf("An error occurred:") != -1)
@@ -1004,8 +1031,8 @@
             }
 
-            WriteLog(WebRequest);
+            logit.WriteLog(WebRequest);
 
             WebResponse = SendWebGet(WebRequest);
-            WriteLog(WebResponse);
+            logit.WriteLog(WebResponse);
 
             if (WebResponse.IndexOf("An error occurred:") != -1)
@@ -1030,5 +1057,5 @@
             string [] file_to_send = {local_command_line_args[0]};
             string[,] post_array = new string[10,2];
-            string image_id;
+            string image_id, filtered_xml;
             bool upload_failed, response;
             string face_tag_list, tag_list, comment_list, all_tags;
@@ -1044,76 +1071,91 @@
                 SetStatus(WinFormStrings.UploadingPHotoStrRes + " " + (i + 1).ToString() + " " + WinFormStrings.ofStrREf + " " + local_command_line_args.Length.ToString() + "...");
 
-                face_tag_list = SyncPiwigoGetFaceTags(local_command_line_args[i]);
-
-                tag_list = "";
-                comment_list = "";
-                all_tags = "";
-                SyncPiwigoGetTagsandComments(ref tag_list, ref comment_list, local_command_line_args[i]);
-
-                if (face_tag_list.Length != 0)
-                {
-                    all_tags = face_tag_list;
-                }
-                if (tag_list.Length != 0)
-                {
-                    if (all_tags.Length != 0)
-                    {
-                        all_tags += ",";
-                    }
-                    all_tags += tag_list;
-                }
-
                 k = local_command_line_args[i].LastIndexOf("\\");
                 filename = local_command_line_args[i].Substring(k + 1);
-                PhotoFileContents = FileToByteArray(local_command_line_args[i]);
-
-                WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.images.addSimple";
-
-                WebResponse = "";
-                local_command_line_args[i] = local_command_line_args[i].Replace("\\","\\\\");
-                post_array[0, 0] = "name=\"category\"";
-                post_array[0, 1] = NewPiwigoAlbumId.ToString();
-                post_array[1, 0] = "name=\"name\"" ;
-                post_array[1, 1] = filename;
-                k = 2;
-                if (all_tags.Length != 0)
-                {                    
-                    post_array[k, 0] = "name=\"tags\"";
-                    post_array[k, 1] = all_tags;
-                    k++;
-                }
-                if (comment_list.Length != 0)
-                {
-                    post_array[k, 0] = "name=\"comment\"";
-                    post_array[k, 1] = "\"" + comment_list + "\"";
-                    k++;
-                }
-                post_array[k, 0] = "name=\"image\"" + ";filename=" + "\"" + local_command_line_args[i] + "\"";
-
-                WriteLog(WebRequest);
-                for (di = 0; di < k; di++)
-                {
-                    WriteLog(post_array[k, 0] + post_array[k, 1]);                    
-                }
-                
-
-                response = SendWebPostMultipart(WebRequest, post_array, "multipart/form-data", PhotoFileContents,
-                    ref WebResponse);
-
-                WriteLog(WebResponse);
-
-                if (!response)
-                {
-                    return false;
-                }
-                xmlResponse = XmlGetAttribute(FilterForXML(WebResponse), "stat");
-                if (xmlResponse == "ok")
-                {
-                    image_id = XmlGetElement(FilterForXML(WebResponse), "image_id");
-                }
-                else
-                {
-                    upload_failed = true;
-                }                
+                if (CheckFileNameExtension(filename.ToLower()))
+                {
+                    face_tag_list = SyncPiwigoGetFaceTags(local_command_line_args[i]);
+
+                    tag_list = "";
+                    comment_list = "";
+                    all_tags = "";
+                    SyncPiwigoGetTagsandComments(ref tag_list, ref comment_list, local_command_line_args[i]);
+
+                    if (face_tag_list.Length != 0)
+                    {
+                        all_tags = face_tag_list;
+                    }
+                    if (tag_list.Length != 0)
+                    {
+                        if (all_tags.Length != 0)
+                        {
+                            all_tags += ",";
+                        }
+                        all_tags += tag_list;
+                    }
+
+                    k = local_command_line_args[i].LastIndexOf("\\");
+                    filename = local_command_line_args[i].Substring(k + 1);
+                    PhotoFileContents = FileToByteArray(local_command_line_args[i]);
+
+                    WebRequest = FormSettings.Default.PiwigoUrlSetting + "/ws.php?method=pwg.images.addSimple";
+
+                    WebResponse = "";
+                    local_command_line_args[i] = local_command_line_args[i].Replace("\\", "\\\\");
+                    post_array[0, 0] = "name=\"category\"";
+                    post_array[0, 1] = NewPiwigoAlbumId.ToString();
+                    post_array[1, 0] = "name=\"name\"";
+                    post_array[1, 1] = filename;
+                    k = 2;
+                    if (all_tags.Length != 0)
+                    {
+                        post_array[k, 0] = "name=\"tags\"";
+                        post_array[k, 1] = all_tags;
+                        k++;
+                    }
+                    if (comment_list.Length != 0)
+                    {
+                        post_array[k, 0] = "name=\"comment\"";
+                        post_array[k, 1] = "\"" + comment_list + "\"";
+                        k++;
+                    }
+                    post_array[k, 0] = "name=\"image\"" + ";filename=" + "\"" + local_command_line_args[i] + "\"";
+
+                    logit.WriteLog(WebRequest);
+                    for (di = 0; di < k; di++)
+                    {
+                        logit.WriteLog(post_array[di, 0] + " " + post_array[di, 1]);
+                    }
+
+
+                    response = SendWebPostMultipart(WebRequest, post_array, "multipart/form-data", PhotoFileContents,
+                        ref WebResponse);
+
+                    logit.WriteLog(WebResponse);
+
+                    GlobalClass.StatusDialogErrorMessage = WinFormStrings.UploadUnableToUploadStrRes;                    
+
+                    if (!response)
+                    {
+                        return false;
+                    }
+
+                    filtered_xml = FilterForXML(WebResponse);
+                    if (filtered_xml.Length == 0)
+                    {                        
+                        logit.WriteLog("No xml response after upload.");
+                        return false;
+                    }
+
+                    xmlResponse = XmlGetAttribute(filtered_xml, "stat");
+                    if (xmlResponse == "ok")
+                    {
+                        image_id = XmlGetElement(FilterForXML(WebResponse), "image_id");
+                    }
+                    else
+                    {
+                        upload_failed = true;
+                    }
+                }
             }
             return !upload_failed;
@@ -1126,4 +1168,5 @@
             try
             {
+                ServicePointManager.Expect100Continue = false;
                 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
@@ -1133,4 +1176,6 @@
                 request.Timeout = 60000;
                 request.Credentials = CredentialCache.DefaultCredentials;
+                request.Referer = "user-agent";
+                request.UserAgent = "Mozilla/5.0";
                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
@@ -1154,4 +1199,5 @@
             {
                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(webrequest);
+                ServicePointManager.Expect100Continue = false;
                 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
                 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
@@ -1161,4 +1207,6 @@
                 request.Method = "POST";
                 request.Credentials = CredentialCache.DefaultCredentials;
+                request.Referer = "user-agent";
+                request.UserAgent = "Mozilla/5.0";
 
                 // Create POST data and convert it to a byte array.
@@ -1217,9 +1265,13 @@
         {
             XmlDocument StatusResponse = new XmlDocument();
-            StatusResponse.LoadXml(xmlstring);
-            XmlNodeList nodelist = StatusResponse.GetElementsByTagName(element);
-            foreach (XmlNode anode in nodelist)
-            {
-                return anode.ChildNodes[0].Value;
+
+            if (xmlstring.Length != 0)
+            {
+                StatusResponse.LoadXml(xmlstring);
+                XmlNodeList nodelist = StatusResponse.GetElementsByTagName(element);
+                foreach (XmlNode anode in nodelist)
+                {
+                    return anode.ChildNodes[0].Value;
+                }
             }
             return "";
@@ -1284,4 +1336,5 @@
         {
             int i;
+            ServicePointManager.Expect100Continue = false;
             ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
             ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
@@ -1298,4 +1351,6 @@
             request.Credentials = CredentialCache.DefaultCredentials;
             request.KeepAlive = true;
+            request.Referer = "user-agent";
+            request.UserAgent = "Mozilla/5.0";
 
             try
@@ -1420,4 +1475,19 @@
             return true;
         }
+        public bool CheckFileNameExtension(string photofilename)
+        {
+            if (photofilename.IndexOf(".jpg", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".jpeg", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".gif", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".png", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".tga", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".tif", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".tiff", StringComparison.OrdinalIgnoreCase) == -1 &&
+                  photofilename.IndexOf(".psd", StringComparison.OrdinalIgnoreCase) == -1)
+            {
+                return false;
+            }
+            return true;
+        }
         public string FilterForXML(string input_xml)
         {
@@ -1433,42 +1503,7 @@
             else
             {
-                WriteLog("No xml found in string");
+                logit.WriteLog("No xml found in string");
             }
             return xml_only_str;
-        }
-        public void WriteLog(string logMessage)
-        {
-            string strLogFile;
-
-            strLogFile = "c:\\temp\\picasa2piwigo_log.txt";
-#pragma warning disable 0162
-            if (constants.DEBUG_LOG_ENABLED)            
-            {             
-                try
-                {
-#pragma warning restore 0162
-                    StreamWriter swLog;
-
-                    logMessage = string.Format("{0}: {1}", DateTime.Now, logMessage);
-
-                    if (!File.Exists(strLogFile))
-                    {
-                        swLog = new StreamWriter(strLogFile);
-                    }
-                    else
-                    {
-                        swLog = File.AppendText(strLogFile);
-                    }
-
-                    swLog.WriteLine(logMessage);
-                    swLog.WriteLine();
-
-                    swLog.Close(); 
-
-                }
-                catch
-                {
-                }
-            }
         }
     }
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.Designer.cs	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.Designer.cs	(revision 30536)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.2012
+//     Runtime Version:4.0.30319.34209
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -170,4 +170,13 @@
         
         /// <summary>
+        ///   Looks up a localized string similar to Log path is not set.  Please set the log path by clicking the option button..
+        /// </summary>
+        internal static string LogPathErrStrRes {
+            get {
+                return ResourceManager.GetString("LogPathErrStrRes", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Add To Album.
         /// </summary>
@@ -269,5 +278,5 @@
         
         /// <summary>
-        ///   Looks up a localized string similar to Picasa2Piwigo - Version 1.3 - KenL.
+        ///   Looks up a localized string similar to Picasa2Piwigo - Version 1.4 - KenL.
         /// </summary>
         internal static string MFVersionStrRes {
@@ -431,4 +440,13 @@
         
         /// <summary>
+        ///   Looks up a localized string similar to The path to the Picasa contacts file has not been set.  You will be able to upload files to Piwigo, but they will not contain people tags.  Click on the options button to set the Picasa contacts file..
+        /// </summary>
+        internal static string SetUpContactsStrRes {
+            get {
+                return ResourceManager.GetString("SetUpContactsStrRes", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Stop.
         /// </summary>
@@ -467,4 +485,13 @@
         
         /// <summary>
+        ///   Looks up a localized string similar to Error:  Too many people tags in Picasa.
+        /// </summary>
+        internal static string TooManyPeopleTags {
+            get {
+                return ResourceManager.GetString("TooManyPeopleTags", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Error:  Unable to contact Piwigo Server..
         /// </summary>
@@ -544,4 +571,13 @@
             get {
                 return ResourceManager.GetString("UploadPhotosStrRes", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Error:  Unable to upload photo.  Photo may be larger than web server allows..
+        /// </summary>
+        internal static string UploadUnableToUploadStrRes {
+            get {
+                return ResourceManager.GetString("UploadUnableToUploadStrRes", resourceCulture);
             }
         }
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.resx
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.resx	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/WinFormStrings.resx	(revision 30536)
@@ -202,5 +202,5 @@
   </data>
   <data name="MFVersionStrRes" xml:space="preserve">
-    <value>Picasa2Piwigo - Version 1.3 - KenL</value>
+    <value>Picasa2Piwigo - Version 1.4 - KenL</value>
     <comment>Picasa2Piwigo - Version 1.1 - KenL</comment>
   </data>
@@ -333,3 +333,19 @@
     <comment>Error:  Unable to retrieve version number.</comment>
   </data>
+  <data name="SetUpContactsStrRes" xml:space="preserve">
+    <value>The path to the Picasa contacts file has not been set.  You will be able to upload files to Piwigo, but they will not contain people tags.  Click on the options button to set the Picasa contacts file.</value>
+    <comment>The path to the Picasa contacts file has not been set.  You will be able to upload files to Piwigo, but they will not contain people tags.  Click on the options button to set the Picasa contacts file.</comment>
+  </data>
+  <data name="TooManyPeopleTags" xml:space="preserve">
+    <value>Error:  Too many people tags in Picasa</value>
+    <comment>Error:  Too many people tags in Picasa</comment>
+  </data>
+  <data name="LogPathErrStrRes" xml:space="preserve">
+    <value>Log path is not set.  Please set the log path by clicking the option button.</value>
+    <comment>Log path is not set.  Please set the log path by clicking the option button.</comment>
+  </data>
+  <data name="UploadUnableToUploadStrRes" xml:space="preserve">
+    <value>Error:  Unable to upload photo.  Photo may be larger than web server allows.</value>
+    <comment>Error:  Unable to upload photo.  Photo may be larger than web server allows.</comment>
+  </data>
 </root>
Index: /extensions/Picasa2Piwigo/Picasa2Piwigo/app.config
===================================================================
--- /extensions/Picasa2Piwigo/Picasa2Piwigo/app.config	(revision 30535)
+++ /extensions/Picasa2Piwigo/Picasa2Piwigo/app.config	(revision 30536)
@@ -39,4 +39,10 @@
                 <value />
             </setting>
+            <setting name="DebugFileLocation" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DebugEnabled" serializeAs="String">
+                <value>False</value>
+            </setting>
         </Picasa2Piwigo.FormSettings>
         <Picasa2Piwigo.Settings1>
