﻿function updateContact(_action,_origname,_origemail,_name,_email) 
{
    var options = {
        type: "POST",
        url: "/CMWizard3-new3a.aspx/updataContact",
        data: "{action:'" +_action +"',origname:'" + _origname + "',origemail:'" +_origemail + "',name:'" + _name +"',email:'" +_email + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) 
        {
           finalizeContactModification(msg.d);
        }
    };
    $.ajax(options);
}

function clearHighlight() 
{
    var options = {
        type: "POST",
        url: "/CMWizard3-new3a.aspx/clearHighlight",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) 
        {
           //alert('d');
        }
    };
    $.ajax(options);
}

function finalizeContactModification(result)
{
      if (result != null && result == "1")
      {
        $(".toggle").slideUp();
        $(".toggleEdit").removeClass("active");
        $(".toggleEdit").html('Edit');
        $(".currentContactElement").attr("onMouseout", "this.style.backgroundColor='White'"); 
        $(".currentContactElement").css("background-color","White");
        
        var hidOrigName = $(".currentContactElement").find(".OrigName");
        var hidOrigEmail = $(".currentContactElement").find(".OrigEmail");
        var updateName  = $(".currentContactElement").find("#name").val();
		var updateEmail = $(".currentContactElement").find("#email").val();
		var lblName  = $(".currentContactElement").find(".contactName");
		var lblEmail = $(".currentContactElement").find(".contactEmail");
		
        $(lblName).html(updateName);
        $(lblEmail).html(updateEmail);
        $(hidOrigName).html(updateName);
        $(hidOrigEmail).html(updateEmail);
        
        var errorMsg = $(".currentContactElement").find(".errormsg");
        $(errorMsg).find("span").html("");    
        $(errorMsg).removeAttr("style"); 
        
        $(".currentContactElement").removeClass("currentContactElement");          
      } 
      else
      {
         var errorMsg = $(".currentContactElement").find(".errormsg");
         $(errorMsg).find("span").html(result);                
         $(errorMsg).css("visibility","visible"); 
         $(errorMsg).show("slow");        
      }
}

function bindEdit()
{
    $(".toggleEdit").click(function()
	{
	  var errorMsg = $(".errormsg");
      $(errorMsg).find("span").html("");   
      $(errorMsg).removeAttr("style");
      $(".currentContactElement").removeClass("currentContactElement"); 
        
	  myEdit   = $(this);
	  contactElement = $(this).parent().parent();
	  txtName  = $(contactElement).find(".contactName");
	  txtEmail = $(contactElement).find(".contactEmail");
	  myToggle = $(contactElement).find(".toggle");
	  lblOrigName = $(myToggle).find(".OrigName");
      lblOrigEmail = $(myToggle).find(".OrigEmail");		  
	  
	 $(myToggle).find("#name").val($(txtName).html());
	 $(myToggle).find("#email").val($(txtEmail).html());
	 
	 $(".toggle").not(myToggle).slideUp();
	 $(".toggle").not(myToggle).parent().attr("onMouseout", "this.style.backgroundColor='White'");
	 $(".toggle").not(myToggle).parent().css("background-color","White");		  
	 $(".toggleEdit").not(this).removeClass("active").html('Edit');		 
	 
	  if($(this).hasClass("active"))
	  {              
		$(this).removeClass("active");
		$(this).html('Edit');
		$(this).parent().parent().attr("onMouseout", "this.style.backgroundColor='White'"); 			
	  }
	  else
	  { 
	  	$(this).addClass("active");
		$(this).html('Close');
		$(this).parent().parent().attr("onMouseout", ""); 
	  }

	   myToggle.slideToggle("fast");
	  return false;
	});
}

function bindCancel()
{
    $(".toggleCancel").click(function()
    {
          var errorMsg = $(".errormsg");
          $(errorMsg).find("span").html("");   
          $(errorMsg).removeAttr("style"); 
          $(".currentContactElement").removeClass("currentContactElement"); 
    
          $(".toggleEdit").removeClass("active");
          $(".toggleEdit").html('Edit');
          myToggle = $(this).parent().parent().parent();
          $(myToggle).slideUp();              
          $(myToggle).parent().css("background-color","White");
          $(myToggle).parent().attr("onMouseout", "this.style.backgroundColor='White'"); 
          return false;
    });
}

function bindSave()
{
    $(".toggleSave").click(function()
    {              
          var originalName  = $(lblOrigName).html();
	      var originalEmail = $(lblOrigEmail).html();
          var updateName  = $(myToggle).find("#name").val();
	      var updateEmail = $(myToggle).find("#email").val();		      
	      updateContact("Update",originalName,originalEmail,updateName,updateEmail);
	      $(contactElement).addClass("currentContactElement");         
          return false;
    });
}

function bindRemove()
{
    $(".toggleRemove").click(function()
    {
          var errorMsg = $(".errormsg");
          $(errorMsg).find("span").html("");   
          $(errorMsg).removeAttr("style");
          $(".currentContactElement").removeClass("currentContactElement"); 
      
          myToggle = $(this).parent().parent().find(".toggle");
          $(".toggle").not(myToggle).slideUp();
	      $(".toggle").not(myToggle).parent().attr("onMouseout", "this.style.backgroundColor='White'");
	      $(".toggle").not(myToggle).parent().css("background-color","White");		  
	      $(".toggleEdit").not(this).removeClass("active").html('Edit');		 
          
          lblOrigName = $(myToggle).find(".OrigName");
          lblOrigEmail = $(myToggle).find(".OrigEmail");
      
          $(this).parent().parent().parent().remove(); 
          updateContact("Remove",$(lblOrigName).html(),$(lblOrigEmail).html(),"","");
          
          // Update Contact count label
          var currentCount = $(".ContactCount").html(); 
          $(".ContactCount").html(currentCount - 1);
          return false;
    });
}

function BindContactListEvents()
{
    bindCancel();        
    bindSave();
    bindRemove();   
    bindEdit();
}

function DoContactHighlight()
{
    // Do contact highlight
    var contactsToHighlight = $("span[class=hidden contactHighlight]:contains('True')");
    if (contactsToHighlight != null && contactsToHighlight.length > 0)
    {
        $(contactsToHighlight).parent().parent().css("background-color","#fbf4c2");
        setTimeout(function(){ $(contactsToHighlight).parent().parent().css("background-color","White"); }, 3000); 
        clearHighlight();
    } 
}

function SetArrowAnimation()
{
    // Set arrow animation on EmailCollector
    $(".emailCollector .ManualContact").change(function(){
		    $(".emailCollector .addbtn .arrow")
			        .animate({"left": "+=15px"}, 300)
					.animate({"left": "-=15px"}, 400, "swing", function() {$(".emailCollector .ManualContact").change();});
	});
}

$(document).ready(function()
{       
    var contactElement = null;
    var myToggle = null;
    var txtName  = null;
    var txtEmail = null;
    var lblOrigName = null;
    var lblOrigEmail = null;
    var myEdit   = null;
    
    // Bind contactlist events on initial load
//    BindContactListEvents();    
//    DoContactHighlight(); 
//    SetArrowAnimation();
    
    // Rebind contactlist events after partial page postback
    //Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);            
}); 

function EndRequestHandler(sender, args) {    
	BindContactListEvents();
	DoContactHighlight();
	//SetArrowAnimation(); NOT WORKING!!!!
}
