private void btnSave_Click(object sender, EventArgs e)
        {
            MainForm form = (MainForm)this.MdiParent;
            BookDAO dao = new BookDAO(form.CurrentDatabase.FullName);
            this.clearErrors();
            for (int i = 0; i < _textboxes.Length; i++)
            {

                string isbn = _textboxes[i].Text;
                string uri = Constants.GetWebServiceURI("isbn", isbn);
                if (isbn == null || isbn.Equals(""))
                    continue;

                TextBox txtbox = _textboxes[i];
                Label lbl = _resultLabels[i];

                this.setTextBox(txtbox, lbl, "Processing...", Color.Blue, true, true);

                WebRequest request = null;
                WebResponse response = null;
                try
                {
                    request = WebRequest.Create(uri);
                    response = request.GetResponse();
                }
	            catch(WebException e2)
	            {
	            	MessageBox.Show(ErrorMessages.Common.WEB_SERVICE_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	            	this.setTextBox(txtbox,lbl,"No Connection",Color.Red,true,false);
	            	return;
	            }
	            catch (Exception e1)
	            {
	                ExceptionHandler.HandleException(e1);
	                this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false);
	       			continue;
	            }
            

                Element element = XMLParser.ParseXML(response.GetResponseStream());
#if DEBUG
                string tree = "";
                int level = 0;
                XMLParser.GetParseTreeInfo(element, ref tree, ref level);
                Console.Out.WriteLine(tree);
#endif
                Book book = new Book();
                Constants.XMLResultReturnValue result = book.FillFromXMLResults(element);


                if (result == Constants.XMLResultReturnValue.NOT_FOUND)
                    this.setTextBox(txtbox, lbl, "Not Found", Color.Red, true, false);
                else if (result == Constants.XMLResultReturnValue.UNKNOWN)
                    this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false);
                else if (book != null)
                {
                    if (_mode == Constants.LibraryMode.LIBRARY && dao.ExistsInLibrary(book))
                        this.setTextBox(txtbox, lbl, "Already Exists", Color.Red, true, false);
                    else if (_mode == Constants.LibraryMode.WISHLIST && dao.ExistsInWishList(book))
                        this.setTextBox(txtbox, lbl, "Already Exists", Color.Red, true, false);
                    else if (_mode == Constants.LibraryMode.LIBRARY && !dao.InsertIntoLibrary(book))
                        this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false);
                    else if (_mode == Constants.LibraryMode.WISHLIST && !dao.InsertIntoWishList(book))
                        this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false);
                    else
                    {
                        this.setTextBox(txtbox, lbl, "Success", Color.Green, true, false);

                        foreach (Form f in this.MdiParent.MdiChildren)
                        {
                            if (f is ViewBooksForm)
                                (f as ViewBooksForm).Refresh();
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Called when Look Up button is clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLookUp_Click(object sender, EventArgs e)
        {
            if (this.txtLookup.Text.Equals(""))
                this.errorProvider1.SetError(this.txtLookup, "Fill in data to lookup");
            else
                this.errorProvider1.SetError(this.txtLookup, "");

            this.errorProvider1.SetError(this.txtISBN, "");
            this.lblResult.Text = "Processing...";
            this.lblResult.ForeColor = Color.Blue;
            this.lblResult.Visible = true;
            Application.DoEvents();
           
            string uri = Constants.GetWebServiceURI((this.cboLookupBy.SelectedItem as DDItem).Value, this.txtLookup.Text);
            WebRequest request = null;
            WebResponse response = null;
            
            try
            {
                request = WebRequest.Create(uri);
                response = request.GetResponse();
            }
            catch(WebException e2)
            {
            	MessageBox.Show(ErrorMessages.Common.WEB_SERVICE_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            	this.lblResult.Text = "No Connection";
            	this.lblResult.ForeColor = Color.Red;
            	this.lblResult.Visible = true;
            	return;
            }
            catch (Exception e1)
            {
                ExceptionHandler.HandleException(e1);
                this.lblResult.Text = "Failed";
            	this.lblResult.ForeColor = Color.Red;
            	this.lblResult.Visible = true;
            	return;
            }
 

            Element element = XMLParser.ParseXML(response.GetResponseStream());
#if DEBUG 
            string tree = "";
            int level = 0;
            XMLParser.GetParseTreeInfo(element,ref tree,ref level);
            Console.Out.WriteLine(tree);
#endif
            this.lblResult.Text = "";
            this.lblResult.Visible = false;
            _book = new Book();
            Constants.XMLResultReturnValue result = _book.FillFromXMLResults(element);
            if (result == Constants.XMLResultReturnValue.BOOK_ALREADY_EXISTS)
            {
                this.lblResult.Text = "Failed";
                this.lblResult.ForeColor = Color.Red;
                this.lblResult.Visible = true;
                this.errorProvider1.SetError(this.txtLookup, "This book already exists in your library");
            }
            else if (result == Constants.XMLResultReturnValue.NOT_FOUND)
            {
                this.lblResult.Text = "Not Found";
                this.lblResult.ForeColor = Color.Red;
                this.lblResult.Visible = true;
            }
            else
            {
                this.errorProvider1.SetError(this.txtLookup, "");
                this.Refresh();
            }

            if (this.chkAutoAdd.Checked == true && result == Constants.XMLResultReturnValue.SUCCESS)
            {
                this.save();
                this.clear();
            }

        }