var what=false;
function addNewStream(){
      myLightWindow.activateWindow({
                        href: '/Stream/Create',
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });
}

function editStream(id){
                myLightWindow.activateWindow({
                        href: '/Stream/Edit/'+id,
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });
}

function requestAcessToStream(streamId){
                myLightWindow.activateWindow({
                        href: '/Message/RequestAccess/'+streamId,
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });

}

function viewMyMessages(){
                myLightWindow.activateWindow({
                        href: '/Message/ViewAll',
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });
}

function editFriends(){
                myLightWindow.activateWindow({
                        href: '/Friends/ViewAll',
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });
}

function modifyPost(id){	    
		myLightWindow.activateWindow({
			href: '/Stream/EditPost/'+id, 
			width:600,
			height:300,
			left: 400,
			modal:true,
			loadingAnimation:true
		});		
	} 

function sendFriendRequest2(){
	var v=document.getElementById("newuser").value;
                myLightWindow.activateWindow({
                        href: '/Friends/RequestFriend/'+encodeURIComponent(profileId)+"/1",
                        width:300,
                        height:300,
                        left: 10,
                        modal:true,
                        loadingAnimation:true
                });

}
function sendFriendRequest(profileId,lookup){
                myLightWindow.activateWindow({
                        href: '/Friends/RequestFriend/'+profileId+"/0",
                        width:600,
                        height:300,
                        left: 400,
                        modal:true,
                        loadingAnimation:true
                });

}



        
function reloadMyStreams(struct){
          //need to close the modal..
          var mystreams=document.getElementById("mystreams");
          mystreams.innerHTML="";
          struct.sort(function(a,b){
                if(a.title<b.title) return -1;
                return 1;
          });
          for(var i=0; i<struct.length;i++){
                var div=document.createElement("DIV");
                        div.className="stream_entry"
                        var title=document.createElement("DIV");
                                title.className="stream_title";
                            var a=document.createElement("A");
                                a.appendChild(document.createTextNode(struct[i].title));
                                a.id="A"+struct[i].id;
                                a.href="#";
                                a.onclick=function(){viewStream(this.id.substring(1));};
                                title.appendChild(a);
                        var ctrl=document.createElement("DIV");
                                ctrl.className="stream_controls";
                                var edit=document.createElement("A");
                                        edit.href="#";
                                        edit.id="E"+struct[i].id;
                                        edit.onclick=function(){editStream(this.id.substring(1));};
                                        edit.onclick=function(){editStream(this.id.substring(1));};
                                        edit.appendChild(document.createTextNode("Edit"));
                                var del=document.createElement("A");
                                        del.href="#";
                                        edit.id="D"+struct[i].id;
                                        del.onclick=function(){deleteStream(this.id.substring(1));};
                                        del.appendChild(document.createTextNode("Delete"));
                        ctrl.appendChild(edit);
                        ctrl.appendChild(document.createTextNode(" "));
                        ctrl.appendChild(del);
                div.appendChild(title);
                div.appendChild(ctrl);
                mystreams.appendChild(div);
          }

          myLightWindow.deactivate();
        }
        

function deleteStream(e,w){
           src=(e.srcElement)?e.srcElement:e.target;
           var title=src.parentNode.parentNode.childNodes[0].childNodes[0].innerHTML
           if(confirm("Are you suere you want to delete this stream \""+title+"\"")){
                        _AJAX_.submitRequest("/Stream/DeleteStream","stream_id="+w,deleteStream_close)
           }
}

function deleteStream_close(messages,data){
                var err=_AJAX_.getFatalMessage(messages);
                if(err){
                  alert(err);
                  return;
                }
                var target=data[0].value;
                var ele=document.getElementById("stream_"+target);
                alert("The stream was successfuly deleted.");
                ele.parentNode.removeChild(ele);
}
        
        

function subscribeToStream(streamId){
                _AJAX_.submitRequest("/Stream/Subscribe","stream_id="+streamId,subscribeStream_close)
}


function subscribeStream_close(message,data){
          var err=_AJAX_.getFatalMessage(message);
                if(err){
                  alert(err);
                  return;
                }
                alert("You have been successfuly subscribed.");
                document.location.reload();
}

function unsubscribeStream(streamId){
                _AJAX_.submitRequest("/Stream/Unsubscribe","stream_id="+streamId,unsubscribeStream_close)
}

function unsubscribeStream_close(message,data){
          var err=_AJAX_.getFatalMessage(message);
                if(err){
                  alert(err);
                  return;
                }
                alert("You have been successfuly subscribed.");
                var target=data[0].value;
                var ele=document.getElementById("substream_"+target);
                ele.parentNode.removeChild(ele);
}

function deleteFriend(profileId){
                _AJAX_.submitRequest("/Friends/DeleteFriend","profile_id="+profileId,deleteFriend_close)
}

function deleteFriend_close(message,data){
          var err=_AJAX_.getFatalMessage(message);
                if(err){
                  alert(err);
                  return;
                }
                alert("Your request has been completed.");
                var target=data[0].value;
                var ele=document.getElementById("friends_"+target);
                ele.parentNode.removeChild(ele);
}
     
 
        	
function reloadCurrentStream(){
		myLightWindow.deactivate();
		document.location.reload();
}

function deletePost(id){
	   if(confirm("Are you sure you want to delete this post?.")){
	   	 //ajax call to delete
	   	 var param="post_id="+id;
	   	 performCommand("/Stream/DeletePost",param,deletePost_complete);
	   }
}

function deletePost_complete(msg,data){
	    var err=getFatalMessage(msg);
	    if(err){
	      alert(err);
	      return;
	    }
		document.location.reload();
}
	

function toggleEditHistory(id){
	  var ele=document.getElementById("eh_"+id);
	  ele.style.display=(ele.style.display=="none")?"block":"none";
}


var edit_stream_id='';


function unsubscribeUser(){
	 var ele=document.getElementById("subscribers");
	 var users='';
	 for(var x=0;x<ele.options.length;x++){
	 	if(ele.options[x].selected){
	 		if(users) users+=';';
	 		users+=ele.options[x].value;	 		
	 	}
	 }
	 if(!users){
	 	alert("You must select a user to unsubscribe.");
	 	return;
	 }
	_AJAX_.submitRequest("/Stream/UnsubscribeUser","users="+users+"&stream_id="+edit_stream_id,unsubscribeUser_close);
}

function unsubscribeUser_close(message,data){
	var err=_AJAX_.getFatalMessage(message);
	if(err){
		alert(err);
	  	return;
	}  	 
	
	var ele=document.getElementById("subscribers");
	var opt=ele.options;
	for(var x=0;x<data.length;x++){
		for(var y=0;y<ele.options.length;y++){
			if(opt[y].value=data[x].value){
				if(data[x].name=="unsubscribed"){
					opt[y]=null;
					continue;
				}else{
					alert("Error: User "+opt[y].text+" was not able to be unsubscribed.  Either the user is already unsubscribed or does nto exist.");
					continue;
				}
			}
		}
	}
}

function inviteUser(){
	var users=document.getElementById("newuser").value;
  	_AJAX_.submitRequest("/Stream/InviteUser","user="+users+"&stream_id="+edit_stream_id,inviteUser_close);
}

function inviteUser_close(message,data){
	var err=_AJAX_.getFatalMessage(message);
	if(err){
		alert(err);
	  	return;
	}  	 
	if(data.length>0){
		var opt=document.getElementById("pending_invites").options;
		var user=data[0];
		opt[opt.length]=new Option(user.value[0].value,user.value[2].value);
		alert("The user has been invited to listen to the stream."); 
	}
	
}
  	  
  	  
function banUser(mode){
	var users='';
	var invite=false;
  	switch(mode){
  		case "ban_multiple":
  	    	var selsub=document.getElementById("subscribers");  	     	
  	     	for(var i=0;i<selsub.options.length;i++){
  	     		if(selsub.options[i].selected==true){
  	     	  		if(users) users+=";";
  	     			users=selsub.options[i].value;	  	  	     		
  	     	  	}
  	     	}
  	     	_AJAX_.submitRequest("/Stream/BanUser","users="+encodeURIComponent(users)+"&mode=1&stream_id="+edit_stream_id,banUser_close);
  	     	break;
  	   	case "ban_single":
  	        mode=0;
  	        users=document.getElementById("newuser").value;
  	        _AJAX_.submitRequest("/Stream/BanUser","users="+encodeURIComponent(users)+"&mode=0&stream_id="+edit_stream_id,banUser_close);
  	       	break;
  	    case "unban_invite":
  	       invite=true;
  	    case "unban":
  	        mode=2;
  	    	var selsub=document.getElementById("banned_users");  	     	
  	     	for(var i=0;i<selsub.options.length;i++){
  	     		if(selsub.options[i].selected==true){
  	     	  		if(users) users+=";";
  	     			users=selsub.options[i].value;	  	  	     		
  	     	  	}
  	     	}
  	     	_AJAX_.submitRequest("/Stream/BanUser","users="+encodeURIComponent(users)+"&mode="+mode+"&stream_id="+edit_stream_id+"&invite="+((invite)?1:0),banUser_close);
  	    	break; 
  	}
}
  	  
function banUser_close(messages,data){
	var err=_AJAX_.getFatalMessage(messages);
	if(err){
		alert(err);
	  	return;
	} 
	var mode=data[0].value;
	var sel=document.getElementById("subscribers");  	     	
	var banned=document.getElementById("banned_users");  	     	
	for(var x=1;x<data.length;x++){
		if(data[x].name=="profile"){
			for(var y=0;y<data[x].value.length;y++){
				var idx=data[x].value[y].key;
				var value=data[x].value[y].value;			
				if(mode<2){
					banned.options[banned.options.length]=new Option(value,idx);					
					for(var z=0;z<sel.options.length;z++){
						  if(sel.options[z].value==idx){
						  	sel.options[z]=null;
						  }
					}
				}else{
					for(var z=0;z<banned.options.length;z++){
						  if(banned.options[z].value==idx){
						  	banned.options[z]=null;
						  }
					}					
				}
			}
		}
	}
}

function nameCallback(value, comboBox) {
	if (value.length >= 2){		
  		_AJAX_.submitRequest("/Profile/GetMatchingNames","pattern="+encodeURIComponent(value),nameCallback__close,comboBox);
  	}
}

function nameCallback__close(messages,data,comboBox){
	var err=_AJAX_.getFatalMessage(messages);
    if(err){
    	alert(err);
    	return;
    }          	 
  	var names=new Array();
  	for(var i=0;i<data.length;i++){
  		if(data[i].name=="name"){
  		  names[names.length]=data[i].value;
  		}
  	}
	var items = new Array();			
	var len=Math.min(names.length, 200);
	for (var i = 0; i < len; i++) {
		items.push(names[i]);
	}
	comboBox.setItems(items);
}  

function loadURL(url){
	top.document.location.href=url;
}


function bulkReply(mode){
  	  
			var ele= (mode=='withdraw')?document.getElementById("pending_invites"):document.getElementById("pending_requests");
  			var opt=ele.options;
  			var messages="";
  			for(var x=0;x<opt.length;x++){
  				if(opt[x].selected){
  				  if(messages) messages+=";";
  				  messages+=opt[x].value;
  				}
  			}
  	  		switch(mode){
  	  			case "withdraw":
  	  				_AJAX_.submitRequest("/Message/BulkReply","action=withdraw&messages="+encodeURIComponent(messages),bulkReply_close,ele);
  	  				break;
  	  			case "allow":
  	  				_AJAX_.submitRequest("/Message/BulkReply","action=allow&messages="+encodeURIComponent(messages),bulkReply_close,ele);
  	  				break;
  	  			case "deny":
  	  				_AJAX_.submitRequest("/Message/BulkReply","action=deny&messages="+encodeURIComponent(messages),bulkReply_close,ele);
  	  				break;
  	  				
  	  		}  	  		
  	  }
  	  function bulkReply_close(messages,data,param){
          var err=_AJAX_.getFatalMessage(messages);
          if(err){
          	alert(err);
            return;
          }
          var opt=param.options;
          for(var i=0;i<data.length;i++){          	  
               var id=data[i].value;
          	  for(var x=0;x<opt.length;x++){
          	  	if(opt[x].value==id){
          	  	   opt[x]=null;
          	  	}
          	  }
          }
  	  }
