HJ.EventInvitation = Class.create();

HJ.EventInvitation.prototype = Object.extend(new Af.HtmlDialog(), {
      
	initialize: function(title, handler, content) {
		 this._initializeDialog(title, handler, content);
		 this.top = 180;
		 this.obj = null;
	},
      
      
   templateLoaded: function() {
   
     this.element.style.zIndex = "400001";
  
     var ec = new Af.ElementCollection(this.element);

	 this.dontSend =  ec.getFirstElementById("dontSend");
	 this.dontSend.onclick = this.doDontSend.bind(this);
	 this.armedButton = this.dontSend;
	
	 
	 this.emails = ec.getFirstElementById("emails");
	 this.message1 = ec.getFirstElementById("message1");
	 this.message2 = ec.getFirstElementById("message2");
	 this.emailDisplayDiv = ec.getFirstElementById("emailDisplayDiv");
	 
	 
	 this.title1 = ec.getFirstElementById("eventTitle");
	 this.title2 = ec.getFirstElementById("displayName");
	 this.invitedBy = ec.getFirstElementById("invitedBy");
	 
	 this.invitedPeopleList = ec.getFirstElementById("invitedPeopleList");
	 this.eventDetail = ec.getFirstElementById("eventDetail");
	 this.invitationTaskList = new Af.HtmlTable("invitationTaskList", "description,dueDate");
	 
 
	 if (this.obj != null) {
		 this.mySetObj();
	 }
   },
   
   doDontSend: function() {
      this.hide();
   },
   
   setObj: function(obj) {
       this.obj = obj;
       if (this.emails) {
          this.mySetObj();
       }
   },
   
   mySetObj: function() {
	   this.title1.innerHTML = this.obj.displayName;
       this.title2.innerHTML = this.obj.displayName;
       var s = "";
	   var dialogEmailList = "";
       var l = this.obj["group"]; 
       for (var i=0; i<l.length; i++) {
          var g = l[i];
	      g = findObjById(app.workspace["myGroup"], g.UUID);
	      if (g == null) {
	         continue;
	      }
          if (s == "") {
            s = g.name;
          } else {
            s += ", " + g.name;
          }
       }
       l = this.obj["people"]; 
       for (var i=0; i<l.length; i++) {
          var p = l[i];
	      p = findObjById(app.workspace["myPeople"], p.UUID);
	      if (p == null) {
	         continue;
	      }
          if (s == "") {
            s = getFullName(p);
			dialogEmailList = p["email"];
          } else {
            s += ", " + getFullName(p);
			dialogEmailList += "," + p["email"];
          }
       }
       this.invitedPeopleList.innerHTML = s;
   //    s = this.obj["emails"];
	  var emailStr = this.handler.emails.value.split(",");
	  if (emailStr.length == 1) {
		  emailStr = emailStr[0].split(';');
	  }
	  var emailsList = "";
	  if(this.handler.emails.value != this.handler.defaultEmailMessage) {		
		  for(var i=0; i<emailStr.length; i++) {                    
           var ss = trim(emailStr[i]);
		   if(app.emailValidator.validateEmail(ss)==false){
			   continue;
		   }
		   ss = app.emailValidator.extractEmailAddress(ss);
			 if(dialogEmailList.indexOf(ss) < 0) {
				 if(emailsList == ""){
					emailsList = ss;
				 } else {
					 emailsList += "," + ss;
				 }
			 }           
        }	        
	  }	         
	   var temp = emailsList.split(",");
	   var tempEmailList = "";
	   for(var t = 0; t < temp.length; t++) {
		   if(tempEmailList == "") {
			   tempEmailList = temp[t];
		   }else {
				   tempEmailList += "<br/>" + temp[t]; 
			}
			if(t < 7) {			
				this.emailDisplayDiv.style.height = (((t+3)*10)+20) + "px"
				this.emailDisplayDiv.style.overflow = "";				
			}else {				
				this.emailDisplayDiv.style.height = "190px"
				this.emailDisplayDiv.style.overflow = "auto";				
			}
	   }
	   
       this.emails.innerHTML = tempEmailList; 
       var dt = new Date(this.obj["startDT"]);
       s = "Date: " + months[dt.getMonth()] + " " + dt.getDate() + "<br/>";
       s += "Time: " + getDisplayTimeFromMins(this.obj["fromTime"]) + " to " + getDisplayTimeFromMins(this.obj["toTime"]) + "<br/>";
       var t = this.obj["locationName"];
       if (t == null) {
          t = "";
       }
       s += "Location: " + t;
	   if(this.obj["street"] != null) {
		   s += "<br/> Street: " + this.obj["street"];
	   }
	   if(this.obj["city"] != null) {
		   s += "<br/> City: " + this.obj["city"];
	   }
	   if(this.obj["state"] != null) {
		   s += " - " + this.obj["state"];
	   }
	   if(this.obj["zip"] != null) {
		   s += " - " + this.obj["zip"];
	   }

       this.eventDetail.innerHTML = s;
       this.invitedBy.innerHTML = "Thanks, <br/>" + login.userFullName;
       var lists = this.handler.workspace["myList"];
       var oneTaskList = findObjById(lists, this.obj["taskList"]);
       var l = null;
       if (oneTaskList != null) {
          l = oneTaskList["item"];
       }
      
       this.invitationTaskList.setDataList(l);
       
       
       if (l != null && l.length > 0) {
          if (this.obj["message2"] == null) {
			  var msg2;
			  if (this.obj["helpAsked"]) {
				msg2 = "I'd also like your help with the following items."
			  } else {
				msg2 = "Here is a list you might find useful.";
			  }
			  this.message2.innerHTML = msg2;
          }
          this.message2.style.display = "";
       } else {
          this.message2.style.display = "none";
       }
       var s = this.obj["message1"];
       if (s == null) {
          this.message1.innerHTML = "I'm using Jooners to help organize my busy life, and I'd like to invite you to:";
       } else {
          s = s.replace(/\n/g, "<BR>");
          this.message1.innerHTML  = s;
       }
	   this.emails.focus();
   }
      
});

