

//contactCollection = {
//                     "1" : { contactId :"1", name : "zakir"},
//                     "2" : {contactId :"2", name : "masum" }
//                    };

var addressBookManager =
{
    userId : null,
	selectedGroupId : null,
	//selectedContactIdArray : new Array(),
    alert : null,
    loading : null,
    confirm : null,
    groupManager : null,
    contactManager : null,
    util : null,
    actionPanelManager : null,
    addToVisible : false,
    removeFromVisible : false,
    init : function( config )
    {
		
        addressBookManager.loading   = new proModalDialog({ width : 200, height : 100});
        addressBookManager.loading.setBody("<center><img src='images/loading.gif'/></center>");
		addressBookManager.loading.setTitle("Please wait...");


        addressBookManager.confirm = new proModalDialog(
                                                        {
                                                            title : "Confirmation",
                                                            width:400

                                                        }
                                                       );
		  //debugger;
          //confirmDialog.setBody("Your changes haven't saved.")
           addressBookManager.alert = new proModalDialog(
                               {
                                 width : 400,
                                 buttons:{
                                           "Ok": function()
                                           {

                                             addressBookManager.alert.close();
                                           }
                                          }



                                });
       addressBookManager.contactManager = new contactCollectionObject( config.contactCollection );
	   addressBookManager.userId = config.userId;
       addressBookManager.groupManager = new groupManager( config.groupCollection );
       addressBookManager.util = new util();
       addressBookManager.actionPanelManager = new actionPanelManager();
    }

}
var util = function()
{
    this.post =  function( url, postData, callback, returnDatatype, progressBarMessage )
    {

        var type = "";
        if( returnDatatype != null || returnDatatype != "" )
        {
            type = returnDatatype;
        }
//        if( postData.formId != null )
//        {
//            if( Dom.get( postData.formId ) != null )
//            {
//                // //debugger;
//                this.connectionBoss.setForm( Dom.get( postData.formId ), ( isUpload == true ) );
//            }
//            else
//            {
//                // error
//                alert("Invalid form ID [" + postData.formId + "] given in FlexDivEditor.util.connectionManager.post");
//            }
//        }



//        if( callback["failure"]== null )
//        {
//            callback["failure"] = this.defaultFailure;
//
//        }
       if( typeof callback == 'function' )
        {
            $.post( url, postData, callback,type);
            //addressBookManager.loading.setTitle( progressBarMessage );
            addressBookManager.loading.open();
        }
        else
        {
            addressBookManager.alert.setTitle("Error");
			addressBookManager.alert.setBody(" Callback is not a function");
            addressBookManager.alert.open();
        }

        //this.connectionBoss.asyncRequest( 'POST', url, callback, data );

    }

    this.isNumber = function ( value )
			{
				var flag = isNaN(value);
				if(flag)
				{
					return false;
				}
				else
				{
					return true;
				}
			}

    this.isValidEmail = function( email )
			{
			    var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
			    if (!filter.test(email))
			    {
			    	return false;
			    }
			    else
			    {
			    	return true;
			    }
			}
    this.isValueExist = function( arrayObject, value )
    {

        for ( var j in  arrayObject )
        {

            if ( arrayObject[j] == value )
            {
                    return true;
            }


        }

        return false;
    }

//remove match value from array
    this.removeValueFromArray = function( arrayObject, value )
    {

        for ( var j in  arrayObject )
        {

            if ( arrayObject[j] == value )
            {
                 arrayObject.splice( j, 1);
            }


        }
    }
}

//contact_action_panel = ' <a href="#" class="edit_name_box_nva_deselect">Edit  </a>'+
//                         '<a href="#" class="edit_name_box_nva">Save  </a>'+
//                         '<a href="#" class="edit_name_box_nva"> Add To  </a>'+
//                         '<a href="#" class="edit_name_box_nva">Remove From  </a>'+
//                         '<a href="#" class="edit_name_box_nva">Delete Contact </a>';

var contactCollectionObject = function( contactCollection )
{
     
     this.contactRequestStructure =
         {
             contactId : "",
             contactName : "",
             email : "",
             company : "",
             notes : "",
             task : "",
             groupId : "",
			 userId : addressBookManager.userId
          };
          
     this.validatonStatus = {
       code: "1",
       message : ""
     };
     this.contactCollection = contactCollection;

     this.actionPanelHtml = '<a href="#" class="edit_name_box_nva_deselect">Edit  </a>'+
                            '<a href="#" class="edit_name_box_nva"> Add To  </a>'+
                            '<a href="#" class="edit_name_box_nva">Remove From  </a>'+
                            '<a href="#" class="edit_name_box_nva_right">Delete Contact </a>';

     this.addEditFormHtml = '<div class="visible_show">'+

					  		 '<table width="93%" cellspacing="0" cellpadding="0" border="0" class="basic_box">'+
                                '<tbody><tr>'+
                                  '<td><table width="100%" cellspacing="0" cellpadding="0" border="0">'+
                                    '<tbody><tr>'+
                                      '<td class="basic_txt" colspan="2">Contact</td>'+
                                    '</tr>'+
                                    '<tr>'+
                                      '<td width="30%" class="form_txt">Name *</td>'+
                                      '<td width="70%"><input type="text" class="txt_fild" name="contactName"/></td>'+
                                    '</tr>'+
                                    '<tr>'+
                                      '<td class="form_txt">Email *</td>'+
                                      '<td><input type="text" class="txt_fild" name="email"/></td>'+
                                    '</tr>'+
                                    '<tr>'+
                                      '<td class="form_txt">Company</td>'+
                                      '<td><input type="text" class="txt_fild" name="company"/></td>'+
                                    '</tr>'+
                                    '<tr>'+
                                      '<td valign="top" align="left" class="form_txt">Notes</td>'+
                                      '<td><textarea style="margin-top: 10px;" class="txt_fild" name="notes"/></td>'+
                                    '</tr>'+

                                    '<tr>'+
                                      '<td><input type = "hidden" name = "contactId" value="" /></td>'+
                                      '<td></td>'+
                                    '</tr>'+
									'<tr><td colspan="2" style="height:20px;"></tr>'+
                                  '</tbody></table></td>'+
                                '</tr>'+
                        '</tbody></table>'+

                        
					  '</div>';

    this.selectAll = function()
    {
        $("input[name ='contactId']").attr("checked", true );
        $("div[contactid]").removeClass("select_name_box_txt2");
        $("div[contactid]").addClass("select_name_box_txt2_selected");
        addressBookManager.actionPanelManager.buildMultipleContactActionPanel();
        this.buildDetailsPanel();
    }

    this.diselectAll = function()
    {
        $("input[name ='contactId']").attr("checked", false );
        //$("div[contactid]").removeClass("select_name_box_txt2_selected");
        //$("div[contactid]").addClass("select_name_box_txt2");
        $( "div[contactId]" ).removeClass("select_name_box_txt2_selected");
        $( "div[contactId]" ).addClass("select_name_box_txt2");
        addressBookManager.actionPanelManager.buildGroupActionPanel();
        $('div#detailsInfoPanel').html(" ");
        addressBookManager.groupManager.buildGroupDetailsPanel();       

    }

	this.isContactChecked = function()
    {
         var n = $("input[contactid]:checked").length;
         if( n > 0 )
         {
             return true;
         }
         else
         {
             return false;
         }
    }


	this.buildContactList = function ( ContactIdArray )
    {
         //debugger;
		 
		 $('div#contactListContainer').html("");
         var contactObject = null;
         var contactListItem = null;
         var label = "";
             if( ContactIdArray != null )
              {

                 for( var contactId in ContactIdArray )
                  {
                     //get contact object from contact collection

                     contactObject = addressBookManager.contactManager.contactCollection[ ContactIdArray[ contactId ] ];
						if( contactObject != null )
						{
						 if( contactObject.contactName && contactObject.contactName != ""  )
						 {
							 label = contactObject.contactName;
						 }
						 else
						 {
							 label = contactObject.email;
						 }

						 contactListItem = '<div contactId ="'+contactObject.contactId+'" class="select_name_box_txt2">'+
							  '<input contactId ="'+contactObject.contactId+'"type="checkbox" onClick = "addressBookManager.contactManager.contactCheckedEvent(\''+contactObject.contactId+'\')" value="'+contactObject.contactId+'" name="contactId"/>'+
							  '<span style ="cursor:pointer; margin-left:5px; display:inline-block; width:130px;" onClick ="addressBookManager.contactManager.contactSelectEvent(\''+ contactObject.contactId +'\')">'+ label +'</span>'+
							  //'<div style ="cursor:pointer; float:left; vertical-align:top; width:120px;" onClick ="addressBookManager.contactManager.contactSelectEvent(\''+ contactObject.contactId +'\')">'+ contactObject.name +'</div>'+
							  '</div>';
						 $('div#contactListContainer').append( contactListItem );
					  }
                  }
              }
              else
              {

                  for( var contact in addressBookManager.contactManager.contactCollection )
                  {
                     //get contact object from contact collection
                    contactObject = addressBookManager.contactManager.contactCollection[contact];

                    if( contactObject.contactName && contactObject.contactName != "" )
                     {
                         label = contactObject.contactName;
                     }
                     else
                     {
                         label = contactObject.email;
                     }
                      contactListItem = '<div contactId ="'+contactObject.contactId+'" class="select_name_box_txt2">' +
                          '<input contactId ="'+contactObject.contactId+'"type="checkbox" onClick = "addressBookManager.contactManager.contactCheckedEvent(\''+contactObject.contactId+'\')" value="'+contactObject.contactId+'" name="contactId"/>'+
                          '<span style ="cursor:pointer; margin-left:5px; display:inline-block; width:130px;" onClick ="addressBookManager.contactManager.contactSelectEvent(\''+ contactObject.contactId +'\')">'+ label +'</span>'+
                          '</div>';
                     $('div#contactListContainer').append( contactListItem );
                  }
              }
        addressBookManager.groupManager.buildGroupDetailsPanel();

    }
	this.getCheckedContactList = function()
    {
        var contacts = $( "input[contactid]:checked" );

        return contacts;
    }

    this.isMultipleContactChecked = function()
    {
        //debugger;
        var length = $("input[contactid]:checked").length;

        if( length > 1 )
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    this.buildContactEditPanel = function()
    {
        var editActionPanelHtml =  '<a href="#" class="edit_name_box_nva">Save  </a>'+
                                   '<a href="#" class="edit_name_box_nva">Cancel  </a>'
        $("div#actionPanel").html();
        $("div#actionPanel").html( editActionPanelHtml );
    }


	this.contactCheckedEvent = function( contactId )
    {
       
           var contactCheckbox = $("input[contactId = '"+ contactId +"']").get(0);

          if( this.isContactChecked())
          {
                if( contactCheckbox.checked )
                {
                    //addressBookManager.selectedContactIdArray.push( contactId );
                    $( contactCheckbox.parentNode ).removeClass("select_name_box_txt2");
                    $( contactCheckbox.parentNode ).addClass("select_name_box_txt2_selected");



                }
                else
                {

                    $( contactCheckbox.parentNode ).removeClass("select_name_box_txt2_selected");
                    $( contactCheckbox.parentNode ).addClass("select_name_box_txt2");


                }


                if( this.isMultipleContactChecked())
                {
                  addressBookManager.actionPanelManager.buildMultipleContactActionPanel();

                }
                else
                {

                  addressBookManager.actionPanelManager.buildSingleContactActionPanel();
                }
                 this.buildDetailsPanel();
           }


            else
            {
            //addressBookManager.selectedContactIdArray.splice();
                
                $( "div[contactId]" ).removeClass("select_name_box_txt2_selected");
                $( "div[contactId]" ).addClass("select_name_box_txt2");
                addressBookManager.actionPanelManager.buildGroupActionPanel();
                $('div#detailsInfoPanel').html(" ");
                addressBookManager.groupManager.buildGroupDetailsPanel();
            }
           
        }

	this.contactSelectEvent = function( contactId )
    {
        //debugger;
        var contactCheckbox = $("input[contactId = '"+ contactId +"']").get(0);
        $('input[contactId]').attr( "checked", false );
        $("input[contactId='"+ contactId +"']").attr( "checked", true );
        $("div[contactId]").removeClass("select_name_box_txt2_selected");
        $("div[contactId]").addClass("select_name_box_txt2");

        $( contactCheckbox.parentNode ).removeClass("select_name_box_txt2");

        $( contactCheckbox.parentNode ).addClass("select_name_box_txt2_selected");
        addressBookManager.actionPanelManager.buildSingleContactActionPanel();
        this.buildDetailsPanel();
    }

	this.addContact = function()
    {
        $('div#detailsInfoPanel').html("");
        $('div#detailsInfoPanel').html( this.addEditFormHtml );
		$("input[name = 'contactId']").val("");
        addressBookManager.actionPanelManager.buildContactEditActionPanel();
    }
	this.editContact = function()
    {
       if( !this.isMultipleContactChecked() && this.isContactChecked())
       {
            $('div#detailsInfoPanel').html();
            $('div#detailsInfoPanel').html( this.addEditFormHtml );
            var checkedContacts = this.getCheckedContactList();
            var contact = this.contactCollection[ checkedContacts.get( 0 ).value ];

            $("input[name = 'contactName']").val( contact.contactName );
            $("textarea[name='notes']").val( contact.notes );
            $("input[name='email']").val( contact.email );
            $("input[name='company']").val( contact.company );
			$("input[name = 'contactId']").val( contact.contactId );
            addressBookManager.actionPanelManager.buildContactEditActionPanel();
       }
    }
	this.performDeleteContact = function()
    {


       if( this.isContactChecked())
       {
            var checkedContacts = this.getCheckedContactList();
            //debugger;
            //
             //var str = checkedContacts.serializeArray();
            //var checkedContactIds = YAHOO.lang.JSON.stringify( str );
             var checkedContactIds = "";
             //alert( checkedContactIds );
             for( var contact = 0; contact < checkedContacts.length; contact++ )
             {
                checkedContactIds += checkedContacts[ contact ].value + ",";
             }
               addressBookManager.util.post(

                   'includes/addressBookManagerAjax.php',
                   {
                       groupId : addressBookManager.selectedGroupId,
                       contacts : checkedContactIds,
                       task : 'deleteContact'
                   },

                   function( response )
                   {
                      addressBookManager.loading.close();
                      if( response.code == "0" )
                      {
						//addressBookManager.alert.setTitle("UploadAndSend: Confirmation");
						addressBookManager.alert.setTitle("Error");
						addressBookManager.alert.setBody( response.message );
						addressBookManager.alert.open();
                      }
                      else
                      {
                        if(addressBookManager.selectedGroupId!='0')
						{
							var group = addressBookManager.groupManager.groupCollection[ addressBookManager.selectedGroupId ];
							var checkedContacts = addressBookManager.contactManager.getCheckedContactList();
							for( var contact in checkedContacts )
							{

								addressBookManager.util.removeValueFromArray( group.contacts, checkedContacts[ contact ].value );
								delete addressBookManager.contactManager.contactCollection[ checkedContacts[ contact ].value ];
							}
							//addressBookManager.groupManager.onGroupSelect( response.data.groupId );
							addressBookManager.contactManager.buildContactList( group.contacts );
							addressBookManager.actionPanelManager.buildGroupActionPanel();
						}
						else
						{
							//var group = addressBookManager.groupManager.groupCollection[ addressBookManager.selectedGroupId ];
							var checkedContacts = addressBookManager.contactManager.getCheckedContactList();
							for( var contact in checkedContacts )
							{

								//addressBookManager.util.removeValueFromArray( group.contacts, checkedContacts[ contact ].value );
								delete addressBookManager.contactManager.contactCollection[ checkedContacts[ contact ].value ];
							}
							//addressBookManager.groupManager.onGroupSelect( response.data.groupId );
							addressBookManager.contactManager.buildContactList( null );
							addressBookManager.actionPanelManager.buildGroupActionPanel();
						}

						addressBookManager.alert.setTitle("Success");
						addressBookManager.alert.setBody(response.message);
						addressBookManager.alert.open();
                      }
                      
                   },


                   "json",

                   "Deleting the contatcs..."

               );
         }

         else
         {
                      addressBookManager.alert.setTitle("Error");
					  addressBookManager.alert.setBody( "No contact is selected. " );
                      addressBookManager.alert.open();
         }
    }

 this.deleteContact = function()
 {
	 addressBookManager.confirm.setOption(
											{
												buttons: {

															  "Cancel":function (){
																				  addressBookManager.confirm.close();
																				},
															  "Yes":function(){
																		  addressBookManager.confirm.close();
																		  addressBookManager.contactManager.performDeleteContact();
																				   }
															}

											}

                                           );
            if( this.isMultipleContactChecked() )
			{
                addressBookManager.confirm.setBody("Are you sure you want to delete these contacts?");
            }
            else
            {
              addressBookManager.confirm.setBody("Are you sure you want to delete this contact?");
            }

            addressBookManager.confirm.open();
 }

 this.saveContact = function()
    {
      var progressBarMessage = "";
      this.validateUserInput();
      
      if( this.validatonStatus.code == 0 )
      {
          addressBookManager.alert.setTitle("Error");
		  addressBookManager.alert.setBody( this.validatonStatus.message );
          addressBookManager.alert.open();
      }
      else
      {
		   //debugger;
		    var contactId = "";
            contactId = $("input[name='contactId']").val();
            if( contactId == null || contactId == "" )
            {
              this.contactRequestStructure.task = "addContact";
              progressBarMessage += " Contact adds task is processing.";
            }
            else
            {
              this.contactRequestStructure.task = "editContact";
              this.contactRequestStructure.contactId = contactId;
              progressBarMessage += " Contact edit task is processing.";
            }

		   this.contactRequestStructure.userId = addressBookManager.userId;
           this.contactRequestStructure.contactName = $("input[name='contactName']").val();
           this.contactRequestStructure.notes = $("textarea[name='notes']").val();
           this.contactRequestStructure.email = $("input[name ='email']").val();
           this.contactRequestStructure.company = $("input[name ='company']").val();
           
           this.contactRequestStructure.groupId = addressBookManager.selectedGroupId;
           //alert( this.contactRequestStructure.toString());
		   //addressBookManager.loading.setTitle("Please wait...");
		   addressBookManager.loading.open();
           addressBookManager.util.post(

               'includes/addressBookManagerAjax.php',this.contactRequestStructure,

               function( response )
               {
                  addressBookManager.loading.close();
				  if( response.code == "0" )
                  {
                       addressBookManager.alert.setTitle("Error");
					   addressBookManager.alert.setBody( response.message );
                       addressBookManager.alert.open();
                  }
                  else
                  {
                    if( response.data != null )
                     {
						 //debugger;
                         addressBookManager.contactManager.contactCollection[ response.data.contact.contactId ] = response.data.contact;
						 if( response.data.groupId != 0 )
						 {
							 
							 var group = addressBookManager.groupManager.groupCollection[ response.data.groupId ];

							 if( !addressBookManager.util.isValueExist( group.contacts,  response.data.contact.contactId ) )
							  {
								  group.contacts.push( response.data.contact.contactId );
							  }
							  //addressBookManager.groupManager.onGroupSelect( addressBookManager.selectedGroupId);

							  addressBookManager.contactManager.buildContactList( group.contacts );
							  
						 }

						 else
						{
							//addressBookManager.groupManager.onGroupSelect( "0" );
							//addressBookManager.groupManager.onGroupSelect( addressBookManager.selectedGroupId );
							addressBookManager.contactManager.buildContactList();
						}
						
						addressBookManager.groupManager.buildGroupDetailsPanel();
						addressBookManager.actionPanelManager.buildGroupActionPanel();

						addressBookManager.alert.setTitle("Success");
						addressBookManager.alert.setBody( response.message );
                        addressBookManager.alert.open();
						
                     }
                    else
                    {
                       addressBookManager.alert.setTitle("Eroor");
					   addressBookManager.alert.setBody("Data is not a valid contact object.");
                       addressBookManager.alert.open();
                    }
                  }				  
               },
               "json",
               progressBarMessage

           );

      }
    }
	this.cancelContact = function()
    {
      if( this.isContactChecked())
	  {
		addressBookManager.actionPanelManager.buildSingleContactActionPanel();
	    this.buildDetailsPanel();
	  }
	  else
	  {
		  addressBookManager.actionPanelManager.buildGroupActionPanel();
		  addressBookManager.groupManager.buildGroupDetailsPanel();
	  }
    }
	this.buildAddToCombo = function()
    {
           //debugger;
           var checkedContacts = this.getCheckedContactList();
           //var addToGroupCollection = addressBookManager.groupManager.getGroupNameArray();
           var addToGroupCollection = new Array();//addressBookManager.groupManager.groupCollection;
		  
           for( var i in addressBookManager.groupManager.groupCollection )
           {
               addToGroupCollection.push( addressBookManager.groupManager.groupCollection[i]);
           }

           var addToGroupHtml = "<table>";

           for( var contact = 0; contact < checkedContacts.length; contact++  )
           {
            for( var group = 0;  group < addToGroupCollection.length; group++ )
            {
                var groupObject = addToGroupCollection[ group ];
             if( addressBookManager.util.isValueExist( groupObject.contacts, checkedContacts[ contact].value ) )
               {
                    //if( addressBookManager.util.isValueExist(  addToGroupCollection, groupObject.name ) )
                    //{
                        // delete addToGroupCollection[ group ];
                         addToGroupCollection.splice(group, 1);
						 group = group - 1;

                   // }
               }
            }
           }

           for( var groupId in addToGroupCollection )
           {
                 groupObject = addToGroupCollection[ groupId ];
              if( typeof groupObject != "undefined"  )
              { 
                  //addToGroupHtml += "<option value='"+ groupId +"'>"+ addToGroupCollection[ groupId ] +"</option>";
                  addToGroupHtml +="<tr style ='cursor:pointer;' onClick ='addressBookManager.contactManager.addToGroup("+ groupObject.groupId +")'><td>"+ groupObject.name +"</td></tr>";
              }
           }
           addToGroupHtml += "</table>";
          // return addToGroupHtml;
         $('div#addToGroupList').html( addToGroupHtml );
         $('div#addToGroupList').show();
         addressBookManager.addToVisible = true;
    }
	this.buildRemoveFromCombo = function()
    {
        //debugger;
           //var checkedContacts = this.getCheckedContactList();
          // var removeFromGroupCollection = addressBookManager.groupManager.getGroupNameArray();
//           var removeFromGroupHtml = "<select size='3' name='removeFromGroup'"+
//                                     "onChange = 'addressBookManager.contactManager.removeFromGroup( this.value )'>"+
//                                     "<option>Remove from...</option>";

           var removeFromGroupHtml = "<table>";
                                     
           
//           for( var contact = 0; contact < checkedContacts.length; contact++ )
//           {
//            for( var group in addressBookManager.groupManager.groupCollection )
//            {
//              var groupObject = addressBookManager.groupManager.groupCollection[ group ];
//             if( !addressBookManager.util.isValueExist( groupObject.contacts, checkedContacts[ contact].value ) )
//               {
//                    //if( addressBookManager.util.isValueExist(  removeFromGroupCollection, groupObject.name ) )
//                    //{
//                        //removeFromGroupCollection.splice( groupObject.groupId, 1);
//                        addressBookManager.util.removeValueFromArray( removeFromGroupCollection, groupObject.name );
//
//                    //}
//               }
//            }
//           }onChange = 'addressBookManager.contactManager.removeFromGroup( this.value )'
           var removeFromGroupCollection = this.getContactCommonGroup();
           
           for( var groupId in removeFromGroupCollection )
           {
               var groupObject1 =    removeFromGroupCollection[ groupId ];
               if( typeof groupObject1!= "undefined" || groupObject1 != null )
               {
                   removeFromGroupHtml += "<tr style = 'cursor:pointer;' onClick ='addressBookManager.contactManager.removeFromGroup("+ groupObject1.groupId +")'><td>"+ groupObject1.name +"</td></tr>";
               }
           }

           removeFromGroupHtml +="</table>";
           //return removeFromGroupHtml;
           $("div#removeFromGroupList").html( removeFromGroupHtml );
           $("div#removeFromGroupList").show();
           addressBookManager.removeFromVisible = true;
    }

    this.getContactCommonGroup = function()
    {
           var checkedContacts = this.getCheckedContactList();
           //var contactCommonGroupCollection = addressBookManager.groupManager.getGroupNameArray();
           //debugger;
           var contactCommonGroupCollection = new Array();

           for( var j in addressBookManager.groupManager.groupCollection )
           {
               contactCommonGroupCollection.push( addressBookManager.groupManager.groupCollection[j] );
           }

          // var contactCommonGroupCollection = addressBookManager.groupManager.groupCollection;

           for( var contact = 0; contact < checkedContacts.length; contact++ )
           {
            for( var group = 0;  group < contactCommonGroupCollection.length; group++ )
            {
              var groupObject = contactCommonGroupCollection[ group ];
             if( !addressBookManager.util.isValueExist( groupObject.contacts, checkedContacts[ contact].value ) )
               {
                    //if( addressBookManager.util.isValueExist(  removeFromGroupCollection, groupObject.name ) )
                    //{
                         contactCommonGroupCollection.splice( group, 1 );
						 group = group - 1;
                        //addressBookManager.util.removeValueFromArray( contactCommonGroupCollection, group );
                        //
                    //}
               }
            }
           }
           return contactCommonGroupCollection;
    }

	this.addToGroup = function( groupId )
    {


        if( groupId != null )
        {
            var checkedContacts = this.getCheckedContactList();
            //debugger;
            //
             //var str = checkedContacts.serializeArray();
            //var checkedContactIds = YAHOO.lang.JSON.stringify( str );
             var checkedContactIds = "";
			  checkedContactIds += checkedContacts[ 0 ].value ;
             //alert( checkedContactIds );
             for( var contact = 1; contact < checkedContacts.length; contact++ )
             {
                checkedContactIds +=  "," +checkedContacts[ contact ].value ;
             }
           //addressBookManager.selectedGroupId = groupId;
           addressBookManager.util.post(

               'includes/addressBookManagerAjax.php',
               {
                   groupId : groupId,
                   contacts : checkedContactIds,
                   task : "addToGroup"
               },

               function( response )
               {
                  
                  if( response.code == "0" )
                  {
					  addressBookManager.loading.close();

					  addressBookManager.alert.setTitle("Error");
                      addressBookManager.alert.setBody( response.message );
                      addressBookManager.alert.open();
                  }
                  else
                  {
					  //debugger;
					
                    var group = addressBookManager.groupManager.groupCollection[ response.groupId ];
                    var checkedContacts = addressBookManager.contactManager.getCheckedContactList();
                    for( var contact = 0;  contact < checkedContacts.length;  contact++  )
                    {
                       
                        group.contacts.push( checkedContacts[ contact ].value );
                    }
                      addressBookManager.groupManager.onGroupSelect( response.groupId );

					  addressBookManager.loading.close();

					  addressBookManager.alert.setTitle("Success");
                      addressBookManager.alert.setBody( response.message );
                      addressBookManager.alert.open();

                  }
					  


               },

               "json",

               "Cantact are adding to group..."

           );
			   
        }
    }
	this.removeFromGroup = function( groupId )
    {
        if( groupId != null )
        {
           // addressBookManager.selectedGroupId = groupId;
            var checkedContacts = this.getCheckedContactList();
            //debugger;
            //
             //var str = checkedContacts.serializeArray();
            //var checkedContactIds = YAHOO.lang.JSON.stringify( str );
             var checkedContactIds = "";
			 checkedContactIds += checkedContacts[ 0 ].value ;
             //alert( checkedContactIds );
             for( var contact = 1; contact < checkedContacts.length; contact++ )
             {
                checkedContactIds += "," + checkedContacts[ contact ].value ;
             }

               addressBookManager.util.post(

                   'includes/addressBookManagerAjax.php',
                   {
                       groupId : groupId,
                       contacts : checkedContactIds,
                       task : "removeFromGroup"
                   },

                   function( response )
                   {                  
                      
                      if( response.code == "0" )
                      {
						  addressBookManager.loading.close();

						  addressBookManager.alert.setTitle("Error");
						  addressBookManager.alert.setBody( response.message );
						  addressBookManager.alert.open();
                      }
                      else
                      {
                        var group = addressBookManager.groupManager.groupCollection[ response.groupId ];
                        var checkedContacts = addressBookManager.contactManager.getCheckedContactList();
                        for( var contact = 0;  contact < checkedContacts.length;  contact++ )
                        {

                            //group.contacts.push( checkedContacts[ contact ].value );
                            addressBookManager.util.removeValueFromArray( group.contacts, checkedContacts[ contact ].value );
                        }
						//debugger;
                        //addressBookManager.groupManager.onGroupSelect( response.groupId );
						addressBookManager.contactManager.buildContactList( group.contacts );

						addressBookManager.loading.close();

						addressBookManager.alert.setTitle("Success");
						addressBookManager.alert.setBody( response.message );
						addressBookManager.alert.open();

                      }                 
                      
                   },

                   "json",
                   "Cantact are adding to group..."

               );
				   
            
        }
    }
    this.buildDetailsPanel =  function()
    {
		if( this.isContactChecked())
	    {
			var detailsPanelContent = "<div align ='center' class = 'detailsPanelContent'>";
			if( this.isMultipleContactChecked())
			{
				var contentCheckedLength = this.getCheckedContactList().length;
				 detailsPanelContent += "<p><span style='font-size:14px; font-weight:bold;'>"+ contentCheckedLength +" Contacts Selected</span></p>";
				$('div#detailsInfoPanel').html( detailsPanelContent );
			}
			else
			{
				 var checkedContacts = this.getCheckedContactList();
				 var contact = addressBookManager.contactManager.contactCollection[ checkedContacts.get( 0 ).value ];
				 var commonGroups = this.getContactCommonGroup();

				 for( var con in contact )
				 {
					 if( con == 'contactName' )
					  {
						  detailsPanelContent += "<p><span style='font-size:14px; font-weight:bold;'>" + contact.contactName+"</span></p>" ;
					  }
					 else if( con != "contactId")
					 {
						  detailsPanelContent +="<p>"+ contact[ con ]+ "</p>";
					 }


				 }

				 detailsPanelContent += "<div>Group(s): ";
				 if( commonGroups.length > 0 )
				 {
					 detailsPanelContent += commonGroups[0].name;

					 for( var i = 1; i < commonGroups.length; i++ )
					 {
						detailsPanelContent += ", " + commonGroups[i].name;

					 }
				}
				 detailsPanelContent += "</div></div>";

				 $('div#detailsInfoPanel').html( detailsPanelContent );
			}
		}
    }
    this.validateUserInput = function()
    {
        //debugger;
        this.validatonStatus.code = "1";
        this.validatonStatus.message = "";
        var contactName = $("input[name='contactName']").val();
        var email = $("input[name='email']").val();

        if( contactName == null || contactName == "" )
        {
            this.validatonStatus.code = "0";
            this.validatonStatus.message = "Contact name can not be empty.";
        }
        else if( !addressBookManager.util.isValidEmail( email ))
        {
            this.validatonStatus.code = "0";
            this.validatonStatus.message = "Please insert valid email.";
        }
    }
}



var groupManager = function( groupCollection )
{

	this.addFromHtml = "";
	this.actionPanelHtml = "";
	this.groupCollection = groupCollection;
	this.detailsInfoPanel = "detailsInfoPanel";
	/*
	 * @method buildGroupList
	 * this function generates the html for group list for groupListContainer and set the html in the div
	 */
	this.buildGroupList = function()
	{
		if(this.groupCollection!=null)
		{
			var groupContainerId = 'groupListContainer';
			var groupObj = null;
			var groupId = null;
			var groupName = null;
			var groupdescription = null;
			var contacts = null;

			var html = "<div groupId='0' onClick='addressBookManager.groupManager.onGroupSelect(0);' class='all_contact_txt_group'>All Contacts</div>\n";

			for( var i in this.groupCollection )
			{
				groupObj = this.groupCollection[i];
				groupId = groupObj.groupId;
				groupName = groupObj.name;
				groupdescription = groupObj.description;
				contacts = groupObj.contacts;

				html += "<div groupId='"+groupId+"' onClick='addressBookManager.groupManager.onGroupSelect(\""+groupId+"\");' class='all_contact_txt_group'>"+groupName+"</div>\n";
			}

			$("#"+groupContainerId).html(html);
		}
	}

	/*
	 * @method
	 */
	this.addGroup = function()
	{
		addressBookManager.actionPanelManager.buildGroupEditActionPanel();

		var groupFormhtml = '';
		var groupObj = null;
		var groupId = "";
		var groupName = "";
		var groupDescription = "";
		var userId = addressBookManager.userId;



		groupFormhtml +='<table width="93%" border="0" cellpadding="0" cellspacing="0" class="basic_box">'+
							'<tr><td colspan="2" class="basic_txt">Groups</td></tr>'+
							'<tr>'+
							  '<td width="30%" class="form_txt"> Name* </td>'+
							  '<td width="70%"><input name="groupName" id="groupNameFieldId" type="text" class="txt_fild" value="'+groupName+'" /></td>'+
							'</tr>'+
							'<tr>'+
							  '<td class="form_txt" valign="top">Description</td>'+
							  '<td><textarea name="groupDescription" id="groupDescriptionFieldId" class="txt_fild" >'+groupDescription+'</textarea></td>'+
							'</tr>'+
							'<tr>'+
								'<td colspan="2" style="height:20px;">'+
									'<input type="hidden" name="groupId" id="groupFieldId" value="'+groupId+'">'+
									'<input type="hidden" name="userId" id="userFieldId" value="'+userId+'">'+
								'</td>'+
							'</tr>'+
						'</table>';

		$("div#"+this.detailsInfoPanel).html(groupFormhtml);
	}

	/*
	 * @method
	 */
	this.editGroup = function()
	{
		addressBookManager.actionPanelManager.buildGroupEditActionPanel();

		var groupFormhtml = '';
		var groupObj = null;
		var groupId = "";
		var groupName = "";
		var groupDescription = "";
		var userId = addressBookManager.userId;

		if(addressBookManager.selectedGroupId != null)
		{
			if(addressBookManager.selectedGroupId != "0")
			{
				groupObj = this.groupCollection[addressBookManager.selectedGroupId];
				groupId = groupObj.groupId;
				groupName = groupObj.name;
				groupDescription = groupObj.description;
			}
		}

		groupFormhtml +='<table width="93%" border="0" cellpadding="0" cellspacing="0" class="basic_box">'+
							'<tr><td colspan="2" class="basic_txt">Groups</td></tr>'+
							'<tr>'+
							  '<td width="30%" class="form_txt"> Name* </td>'+
							  '<td width="70%"><input name="groupName" id="groupNameFieldId" type="text" class="txt_fild" value="'+groupName+'" /></td>'+
							'</tr>'+
							'<tr>'+
							  '<td class="form_txt" valign="top">Description</td>'+
							  '<td><textarea name="groupDescription" id="groupDescriptionFieldId" class="txt_fild" >'+groupDescription+'</textarea></td>'+
							'</tr>'+
							'<tr>'+
								'<td colspan="2" style="height:20px;">'+
									'<input type="hidden" name="groupId" id="groupFieldId" value="'+groupId+'">'+
									'<input type="hidden" name="userId" id="userFieldId" value="'+userId+'">'+
								'</td>'+
							'</tr>'+
						'</table>';

		$("div#"+this.detailsInfoPanel).html(groupFormhtml);
	}

	/*
	 * @method
	 */
	this.deleteGroup = function()
	{
		
		addressBookManager.confirm.setOption(
											{
												buttons: {

															  "Cancel":function (){
																				  addressBookManager.confirm.close();
																				},
															  "Yes":function(){
																		  addressBookManager.confirm.close();
																		  addressBookManager.groupManager.performDeleteGroup();
																				   }
															}
												
											}
	
                                           );
			addressBookManager.confirm.setBody("Are you sure you want to delete this group?");
            addressBookManager.confirm.open();

	}

	this.performDeleteGroup = function()
	{
		var groupObj = null;
		var groupId = "";
		var groupName = "";
		var groupDescription = "";
		var userId = addressBookManager.userId;
		var groupTask = "deleteGroup";

		if(addressBookManager.selectedGroupId != null && addressBookManager.selectedGroupId != "0")
		{			
			groupObj = this.groupCollection[addressBookManager.selectedGroupId];
			groupId = groupObj.groupId;
			groupName = groupObj.name;
			groupDescription = groupObj.description;
			var options={"groupId":groupId, "groupName":groupName,"groupDescription":groupDescription,"userId":userId,"task":groupTask};


			//addressBookManager.loading.setTitle("Please wait...");
			addressBookManager.loading.open();
			$.post("includes/addressBookManagerAjax.php", options, function(data){

				addressBookManager.loading.close();
				addressBookManager.groupManager.showGroupDeleteStatusMessage(data);
			  });
		}

		
	}

	/*
	 * @method
	 */
	this.saveGroup = function()
	{
		//alert("you r trying to save group ");
		var groupId = "";
		var groupName = "";
		var groupDescription = "";
		var groupTask = "";
		var userId = "";

		if($("#groupFieldId"))
		{
			groupId = $("#groupFieldId").val();
		}
		if($("#userFieldId"))
		{
			userId = $("#userFieldId").val();
		}
		if($("#groupNameFieldId"))
		{
			groupName = $("#groupNameFieldId").val();
		}
		if($("#groupDescriptionFieldId"))
		{
			groupDescription = $("#groupDescriptionFieldId").val();
		}

		if(groupId != "")
		{
			groupTask = "editGroup";
		}
		else
		{
			groupTask = "addGroup";
		}
		var options={"groupId":groupId, "groupName":groupName,"groupDescription":groupDescription,"userId":userId,"task":groupTask};


		if(groupName != "")
		{
			//addressBookManager.loading.setTitle("Please wait...");
            addressBookManager.loading.open();
			$.post("includes/addressBookManagerAjax.php", options, function(data){

				addressBookManager.loading.close();
				
				if(groupTask.match("editGroup"))
				{
					addressBookManager.groupManager.showGroupUpdateStatusMessage(data);
				}
				else if(groupTask.match("addGroup"))
				{
					addressBookManager.groupManager.showGroupAddStatusMessage(data);
				}
			  });
		}
		else
		{
			//show modal
			addressBookManager.alert.setTitle("Error");
			addressBookManager.alert.setBody("Group name must not be empty");
            addressBookManager.alert.open();
		}		
	}

	/*
	 *
	 */
	this.showGroupUpdateStatusMessage = function(resdata)
	{
		//alert("updated:"+data);
		var response = eval('('+resdata+')');
		var code = response.code;
		var message = response.message;
		var data = response.data;

		var groupId = data.groupId;
		var groupName = data.groupName;
		var groupDescription = data.groupDescription;
		var userId = data.userId;


		if(code=='1')
		{
			//this.groupCollection[ groupId ] = {'groupId' : groupId, 'name' : groupName , 'description' : groupDescription , 'contacts' : null};
			this.groupCollection[ groupId ].name = groupName;
			this.groupCollection[ groupId ].description = groupDescription;

			addressBookManager.groupManager.buildGroupList();
			addressBookManager.selectedGroupId = groupId;
			addressBookManager.groupManager.buildGroupDetailsPanel();

			$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").addClass("all_contact_txt_deselect");
			addressBookManager.actionPanelManager.buildGroupActionPanel();
			
			addressBookManager.alert.setTitle("Success");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();

		}
		else
		{
			addressBookManager.alert.setTitle("Error");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();
		}

	}

	/*
	 *
	 */
	this.showGroupAddStatusMessage = function(resdata)
	{
		var response = eval('('+resdata+')');
		var code = response.code;
		var message = response.message;
		var data = response.data;

		var groupId = data.groupId;
		var groupName = data.groupName;
		var groupDescription = data.groupDescription;
		var userId = data.userId;

		if(code=='1')
		{
			this.groupCollection[ groupId ] = {'groupId' : groupId, 'name' : groupName , 'description' : groupDescription , 'contacts' : []};
			addressBookManager.groupManager.buildGroupList();
			//if(addressBookManager.selectedGroupId != null)
			//{
			//	$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").removeClass("all_contact_txt_deselect");
			//	$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").addClass("all_contact_txt_group");
			//}
			addressBookManager.selectedGroupId = groupId;
			
			addressBookManager.groupManager.buildGroupDetailsPanel();
			$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").addClass("all_contact_txt_deselect");			



			addressBookManager.contactManager.buildContactList( this.groupCollection[ groupId ].contacts );

			addressBookManager.actionPanelManager.buildGroupActionPanel();
			//addressBookManager.alert.setBody("Group '"+groupName+"' has been successfully added");
			addressBookManager.alert.setTitle("Success");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();
			
		}
		else
		{
			//addressBookManager.alert.setBody("An error occured. Please retry.");
			addressBookManager.alert.setTitle("Error");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();
		}
	}


	/*
	 *
	 */
	this.showGroupDeleteStatusMessage = function(resdata)
	{
		var response = eval('('+resdata+')');
		var code = response.code;
		var message = response.message;
		var data = response.data;

		var groupId = data.groupId;
		var groupName = data.groupName;
		var groupDescription = data.groupDescription;
		var userId = data.userId;

		if(code=='1')
		{		
			delete this.groupCollection[ groupId ];
			addressBookManager.groupManager.buildGroupList();

			addressBookManager.selectedGroupId = null;
			addressBookManager.groupManager.buildGroupDetailsPanel();

			addressBookManager.alert.setTitle("Success");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();

		}
		else
		{
			//addressBookManager.alert.setBody("An error occured. Please retry.");
			addressBookManager.alert.setTitle("Error");
			addressBookManager.alert.setBody(message);
            addressBookManager.alert.open();
		}
	}

	/*
	 * @method
	 */
	this.cancelEditGroup = function()
	{
		addressBookManager.actionPanelManager.buildGroupActionPanel();
		//$("div#"+this.detailsInfoPanel).html("");
		addressBookManager.groupManager.buildGroupDetailsPanel();
	}



	/*
	 * @method
	 */
	this.buildGroupDetailsPanel = function()
	{
		//$("div#"+this.detailsInfoPanel).html("");

		//addressBookManager.groupManager.buildGroupDetailsPanel();
		var groupId = addressBookManager.selectedGroupId;
		//debugger;
		if(groupId == null)
		{
			$("div#"+this.detailsInfoPanel).html("");
		}
		else if(groupId=="0")
		{
			var contactLength = 0;
			var contactString = "Contact";

			for(var i in addressBookManager.contactManager.contactCollection)
			{
				contactLength++;
			}
			if(contactLength > 1)
			{
				contactString = "Contacts";
			}

			var groupName = "All contacts";
			var html = "<p><span style='font-size:14px; font-weight:bold;'>"+groupName+"</span></p><p><span style='font-size:12px; font-weight:bold;'>"+contactLength+" "+contactString+"</span></p>";
			$("div#"+this.detailsInfoPanel).html(html);
		}
		else if(groupId!="0" && groupId!=null )
		{
			var contactLength = 0;
			var contactString = "Contact";
			contactLength = addressBookManager.groupManager.groupCollection[ groupId ].contacts.length;

			if(contactLength > 1)
			{
				contactString = "Contacts";
			}

			var groupName = addressBookManager.groupManager.groupCollection[ groupId ].name;
			var html = "<p><span style='font-size:14px; font-weight:bold;'>"+groupName+"</span></p><p><span style='font-size:12px; font-weight:bold;'>"+contactLength+" "+contactString+"</span></p>";
			$("div#"+this.detailsInfoPanel).html(html);
		}
		
	}

	/*
	 * @method
	 */
	this.onGroupSelect = function(groupId)
	{
		if(groupId != null)
		{
			var conArray = null;

			if(addressBookManager.selectedGroupId != groupId )
			{
				
				if(addressBookManager.selectedGroupId != null)
				{
					$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").removeClass("all_contact_txt_deselect");
					$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").addClass("all_contact_txt_group");
				}
				addressBookManager.selectedGroupId = groupId;
				$('div#groupListContainer').find("div[groupId='"+addressBookManager.selectedGroupId+"']").addClass("all_contact_txt_deselect");

				addressBookManager.actionPanelManager.buildGroupActionPanel();
				if(this.groupCollection[ groupId ])
				{
					conArray = this.groupCollection[ groupId ].contacts;
				}
				addressBookManager.contactManager.buildContactList( conArray );
				addressBookManager.groupManager.buildGroupDetailsPanel();
			}
		}

	}
	


	
	/*
	 * @method
	 */
	this.getGroupNameArray = function()
	{
		var returnArray = new Array();

		var groupObj = null;
		var groupId = null;
		var groupName = null;

		if(this.groupCollection != null)
		{
			for( var i in this.groupCollection )
			{
				groupObj = this.groupCollection[i];
				groupId = groupObj.groupId;
				groupName = groupObj.name;
				returnArray[groupId] = groupName;
			}
		}

		return returnArray;
		
	}



	/*
	 * @method
	 */
	this.buildDetailsPanel = function()
	{

	}

	/*
	 * @method
	 */
	this.validateUserInput = function()
	{

	}
}




var actionPanelManager = function()
{
	/*
	 * @method
	 */
	this.actionPanelId = "actionPanel";
	this.buildGroupActionPanel = function()
	{
		if(addressBookManager.selectedGroupId!=null)
		{
			var html = "";
			if(addressBookManager.selectedGroupId =='0')
			{
				html += "<a href='JavaScript:void(0);' class='edit_name_box_nva_deselect' ><img src='images/edit_group_dis.png'  border='0'></a>";
				html += "<a href='JavaScript:void(0);' class='edit_name_box_nva_deselect_right' ><img src='images/delete_group_dis.png'  border='0'></a>";
			}
			else
			{
				html += "<a href='JavaScript:void(0);' toolTipText='Edit this group' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' onClick='addressBookManager.groupManager.editGroup();' class='edit_name_box_nva' ><img src='images/edit_group.png'  border='0'></a>";
				html += "<a href='JavaScript:void(0);' toolTipText='Delete this group' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' onClick='addressBookManager.groupManager.deleteGroup();' class='edit_name_box_nva_right' ><img src='images/delete_group.png'  border='0'></a>";
			}

			$("#"+addressBookManager.actionPanelManager.actionPanelId).html(html);
		}
		else
		{
			$("#"+addressBookManager.actionPanelManager.actionPanelId).html("");
		}

	}


	/*
	 * @method
	 */
	this.buildGroupEditActionPanel = function( )
	{
		
		var html = "";
		html += "<a toolTipText='Save changes' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' href='JavaScript:void(0);' onClick='addressBookManager.groupManager.saveGroup();' class='edit_name_box_nva' ><img src='images/save_icon.png'  border='0'></a>";
		html += "<a toolTipText='Cancel edit' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' href='JavaScript:void(0);' onClick='addressBookManager.groupManager.cancelEditGroup();' class='edit_name_box_nva' ><img src='images/cancel_icon.png'  border='0'></a>";
		$("#"+addressBookManager.actionPanelManager.actionPanelId).html(html);
		

	}


	/*
	 * @method
	 */
	this.buildSingleContactActionPanel = function()
	{
		var html = "";
		var removeComboHTML = addressBookManager.contactManager.buildRemoveFromCombo();
		var addComboHTML = addressBookManager.contactManager.buildAddToCombo();
		
		//html += "<a href='JavaScript:void(0);' onClick='addressBookManager.contactManager.editContact();' class='edit_name_box_nva' >Edit Contact</a>";
		//html += removeComboHTML;
		//html += addComboHTML;
		//html += "<a href='JavaScript:void(0);' onClick='addressBookManager.contactManager.deleteContact();' class='edit_name_box_nva_right' >Delete Contact</a>";
		html = '<div id="contactActionPanel">'+
					'<table>'+
					 '<tr>'+
						'<td nowrap>'+
							'<a toolTipText="Edit this contact" href="JavaScript:void(0);" onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()" onClick="addressBookManager.contactManager.editContact();" class="edit_name_box_nva" ><img src="images/edit_contact.png"  border="0"></a>'+
						'</td>'+
						'<td nowrap>'+
							'<a   toolTipText="Add to group..." onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()" href="JavaScript:void(0);"  class="edit_name_box_nva" ><img id="addToMenu" onClick="addressBookManager.contactManager.buildAddToCombo();" src="images/add_to_group.png"  border="0"></a>'+
						'</td>'+
						 '<td nowrap>'+
							'<a toolTipText="Remove from group..." onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()"  href="JavaScript:void(0);"  class="edit_name_box_nva" ><img id ="removeFromMenu" src="images/remove_from_group.png" onClick="addressBookManager.contactManager.buildRemoveFromCombo();"  border="0"></a>'+
						 '</td>'+
					   '<td nowrap>'+
						 '<a toolTipText="Delete this contact" onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()"  id ="deleteContact" href="JavaScript:void(0);" onClick="addressBookManager.contactManager.deleteContact();" class="edit_name_box_nva_right" ><img src="images/delete_contact.png"  border="0"></a>'+
					   '</td>'+
					 '</tr>'+
					'</table>'+
					'<div id="addToGroupList" name="addToGroup">'+
					'</div>'+
					'<div id="removeFromGroupList" name="removeFromGroup">'+
					'</div>'+
				'</div>';

		$("#"+addressBookManager.actionPanelManager.actionPanelId).html(html);
	}

	/*
	 * @method
	 */
	this.buildMultipleContactActionPanel = function()
	{
		var html = "";

		var removeComboHTML = addressBookManager.contactManager.buildRemoveFromCombo();
		var addComboHTML = addressBookManager.contactManager.buildAddToCombo();

		//html += "<a href='JavaScript:void(0);' class='edit_name_box_nva_deselect' >Edit Contact</a>";
		//html += removeComboHTML;
		//html += addComboHTML;
		//html += "<a href='JavaScript:void(0);' onClick='addressBookManager.contactManager.deleteContact();' class='edit_name_box_nva_right' >Delete Contacts</a>";

		html = '<div id="contactActionPanel">'+
					'<table>'+
					 '<tr>'+
						'<td nowrap>'+
							'<a href="JavaScript:void(0);" toolTipText="Edit contacts" class="edit_name_box_nva_deselect" ><img src="images/edit_contact_dis.png"  border="0"></a>'+
						'</td>'+
						'<td nowrap>'+
							'<a    href="JavaScript:void(0);" toolTipText="Add to group...." onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()" class="edit_name_box_nva" ><img id="addToMenu" onClick="addressBookManager.contactManager.buildAddToCombo();" src="images/add_to_group.png"  border="0"></a>'+
						'</td>'+
						 '<td nowrap>'+
							'<a toolTipText="Remove from group..."  onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()"  href="JavaScript:void(0);"  class="edit_name_box_nva" ><img id ="removeFromMenu" src="images/remove_from_group.png" onClick="addressBookManager.contactManager.buildRemoveFromCombo();"  border="0"></a>'+
						 '</td>'+
					   '<td nowrap>'+
						 '<a toolTipText="Delete contacts"  onmouseover="showToolTips( event, this )"  onmouseout="hideToolTips()" id ="deleteContact" href="JavaScript:void(0);" onClick="addressBookManager.contactManager.deleteContact();" class="edit_name_box_nva_right" ><img src="images/delete_contact.png"  border="0"></a>'+
					   '</td>'+
					 '</tr>'+
					'</table>'+
					'<div id="addToGroupList" name="addToGroup">'+
					'</div>'+
					'<div id="removeFromGroupList" name="removeFromGroup">'+
					'</div>'+
				'</div>';

		$("#"+addressBookManager.actionPanelManager.actionPanelId).html(html);
		

	}


	/*
	 * @method
	 */
	this.buildContactEditActionPanel = function()
	{
			var html = "";

				html += "<a href='JavaScript:void(0);' toolTipText='Save contact' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' onClick='addressBookManager.contactManager.saveContact();' class='edit_name_box_nva' ><img src='images/save_icon.png'  border='0'></a>";
				html += "<a href='JavaScript:void(0);' toolTipText='Cancel edit contact' onmouseover='showToolTips( event, this )'  onmouseout='hideToolTips()' onClick='addressBookManager.contactManager.cancelContact();' class='edit_name_box_nva' ><img src='images/cancel_icon.png'  border='0'></a>";

			$("#"+addressBookManager.actionPanelManager.actionPanelId).html(html);
		}


}


