/*mainly setup of ajax stuff*/
var TAGID=0;
var TAGNAME=1;
var ROLE=2;
var TAGPSI=3;
var LOCALTAGID=4; 
var ROLEPSI=5;
var PEER=6;
var PEERURL=7;

xhr=Ajax.Request;	

function ts(){
  var d = new Date();
  return '&tstamp='+d.getTime();  	
}

function pageReload(){
  window.setTimeout('location.reload(true)',1000);
}
function goHome(){
  window.setTimeout('document.location="/"',1000);
}

function isErrorMsg(str){
   return ((str.indexOf('Error') > -1)  && (str.indexOf('Error') < 3));	
}
function isWarningMsg(str){
   return ((str.indexOf('Warning') > -1)  && (str.indexOf('Warning') < 3));	
}


function XhrCmd(req){
	new xhr(req+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
}

function XhrCmd2(req,pnlid){
	new xhr(req+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res)){$(pnlid).innerHTML=res;}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
}

	
function getSuggestedTopicsForURL(strURL,resourceId,resourceType){
    new xhr('/ajax/tag/GetSuggestedTopicsforURL.aspx?url='+strURL+'&resourceId='+resourceId+'&resourceType='+resourceType+ts(),   
	{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))                						
				document.getElementById('autoSuggestedTopics').innerHTML = response;							
			else
				msgErr(response);
	     },     
	     onFailure: function(t) {
            alert('Failed to get suggested topics for URL. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}
			
	
function getMyTagsListing(resourceId,resourceType){
    new xhr('/ajax/tag/GetMyTagsListing.aspx?resourceId='+resourceId+'&resourceType='+resourceType+ts(),{     
	   method:'get', onSuccess: function(transport)
	     {       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))                						
				document.getElementById('topicMapperMyTags').innerHTML = response;							
			else
				msgErr(response);
	     },     
	     onFailure: function(t) {
            alert('Failed to get my tags listing. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}
	
	
	
function getMyLatestUsedTagsListing(resourceId,resourceType,reltype){
    new xhr( '/ajax/tag/GetMyLatestUsedTagsListing.aspx?resourceId='+resourceId+'&resourceType='+resourceType+'&reltype='+reltype+ts(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText||"No Response";   
            if( ! isErrorMsg(response))
				document.getElementById('topicMapperMyLatestUsedTags').innerHTML = response;
			else
				msgErr(response);
	     },
	     onFailure: function(t){
            alert('Failed to get my latest tags. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}
	

function issueResourceRecommendedVote(resourceId,resourceType,voteUp){
    new xhr('/ajax/resource/voteRecommendedResources.aspx?resourceId='+resourceId+'&resourceType='+resourceType+'&voteUp='+voteUp+ts(),{ 
         method:'get', onSuccess: function(transport){      
           var response = transport.responseText || "No Response"; 
             if( ! isErrorMsg(response)){             		   
	            msg(response);  
                GetWhoHasVotedOnResource(resourceId,resourceType);
	        }else                   
                msgErr(response);  
         },     
         onFailure:  function(t) {               
             msgErr('Failed to vote on recommended resource.<br>Error ' + t.status + ' - ' + t.statusText);	
         }
    }); 
}
	

function issueResourceDelete(resourceId, resourceType,reason,redirect){    
    new xhr('/ajax/resource/resourceDelete.aspx?resourceId='+resourceId+'&resourceType='+resourceType+'&reason='+reason+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText||"No Response";  
            if(!isErrorMsg(response)){         
                msg(response);  
                if(response.indexOf('was deleted') > 0){	
                   if(redirect)window.setTimeout('document.location="/"',1000);
			    }
			    else
			        GetWhoOwnsResource(resourceId, resourceType);
			}else
			    msgErr(response);
         },     
         onFailure:function(t){               
             msgErr('Failed to delete resource.<br>Error ' + t.status + ' - ' + t.statusText);	
         }
    }); 
}


function GetResourcesForTag(tagId,panelId,execpath){
    new xhr(execpath+'?id='+tagId+ts(),{
         method:'get', onSuccess: function(transport){
            var response = transport.responseText || "No Response";
            if(!isErrorMsg(response)){
	            $(panelId).innerHTML=response;
	        }else         
               msgErr(response);
         },
         onFailure: function(t){
             msgErr('Failed to load books for tag. GetBooksForTag()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    }); 
}

function GetBooksForUser(userId,panelId){        
    new xhr('/ajax/book/GetBooksForUser.aspx?id='+userId+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response"; 
            if( ! isErrorMsg(response)){             		   
	            $(panelId).innerHTML = response;  
	        }else                   
               msgErr(response);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed to load books for user. GetBooksForUser()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    }); 
}



function GetMyUpcommingEventForMapping(resourceId,resourceType,panelId){        
    new xhr('/ajax/happening/GetMyUpcommingEventForMapping.aspx?resourceId='+resourceId+'&resourceType='+resourceType+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var res = transport.responseText || "No Response"; 
            if(!isErrorMsg(res)){ $(panelId).innerHTML = res;}else msgErr(res);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed to load upcomming events. GetMyUpcommingEventForMapping()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    }); 
}



function GetMyRelatedPlaces(resourceId,resourceType,panelId){        
    new xhr('/ajax/place/GetMyRelatedPlaces.aspx?resourceId='+resourceId+'&resourceType='+resourceType+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var res = transport.responseText || "No Response"; 
            if(!isErrorMsg(res)){ $(panelId).innerHTML = res;}else msgErr(res);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed to load places for user. GetMyRelatedPlaces()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    }); 
}

	


function GetWhoOwnsResource(resourceId,resourceType){
    new xhr('/ajax/resource/GetWhoOwnsResource.aspx?resourceId=' + resourceId +'&resourceType='+resourceType+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";  
            if(!isErrorMsg(response))   
                 $('divWhoOwnsbook').innerHTML = response;            		   
	            //msg(response);  
	        else                   
                msgErr(response);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed on GetOwnersOfBook().<br>Error ' + t.status + ' - ' + t.statusText);	
         }
    }); 
}

function GetWhoHasVotedOnResource(resourceId,resourceType){
    new xhr('/ajax/resource/GetWhoHasVotedOnResource.aspx?resourceId='+resourceId +'&resourceType='+resourceType+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";  
            if(!isErrorMsg(response))   
                 $('divWhoHasVoted').innerHTML = response;            		   
	        else                   
                msgErr(response);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed on GetWhoHasVotedOnResource().<br>Error ' + t.status + ' - ' + t.statusText);	
         }
    }); 
}



function getDescriptionAndAliasesForTopic(strTopicId,sourceBox){	    
    getStyleObject('Pageheader1_imgTopLoading').display='block'; 
	new xhr('/ajax/tag/GetDescriptionAndAliases.aspx?topicid=' + strTopicId+'&sourceListBox='+sourceBox+ts(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){	             
                var strDescription = response.substr(12,response.indexOf("&ALIASES")-12);
			    var nPosStart = response.indexOf("&ALIASES")+9;			
			    var strAliases = response.substr(nPosStart);
			    var nPosEnd = strAliases.indexOf("&SOURCELISTBOX");
			    strAliases = strAliases.substr(0,nPosEnd);
			    var strSource = response.substr(response.indexOf("&SOURCELISTBOX")+15);
				
			    document.getElementById('TextBoxDescription'+strSource).innerHTML = strDescription;			
			    document.getElementById('TextBoxAlsoKnownAs'+strSource).innerHTML = strAliases; 
	//alert('???? getDescriptionAndAliasesForTopic');
	//getPrivateTagsForLink(resourceId,'linkTagsPrivate'); 					
				
			}else{ //show as error message
				msgErr(response);       
			}            
	     },     
	      onFailure: function(t) {
           alert('Failed to load tags. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
	getStyleObject('Pageheader1_imgTopLoading').display='none'; 
}


function UseValue(strVal){ 
	document.frmStuff.txtName.value = strVal; 
} 



function getTagsForResource(itemId,resourceType,tagreltype){
    new xhr('/ajax/tag/GetTagListing.aspx?resourceId='+itemId+'&resourceType='+resourceType+'&tagreltype='+tagreltype+ts(),{
         method:'get',onSuccess: function(transport){
            var response = transport.responseText||"No Response"; 
            if(response.indexOf('#|#')>1){
                var taglistings=response.split("#|#");
                $('divTags'+1).innerHTML = taglistings[0];
                $('divTags'+2).innerHTML = taglistings[1];
                $('divTags'+3).innerHTML = taglistings[2];
                $('divTags'+4).innerHTML = taglistings[3];
                $('divTags'+5).innerHTML = taglistings[4];
                $('divTags'+6).innerHTML = taglistings[5];
            }else{
            $('divTags'+tagreltype).innerHTML = response;
            }
         },
         onFailure: function(t){
            $(outputPanel).innerHTML = 'Failed to load tags.<br>Error '+t.status +' - '+t.statusText;
         }
    }); 
}

function getPrivateTagsForResource(resourceId,resourceType,outputPanel){
    new xhr('/ajax/tag/GetTagListingPrivate.aspx?resourceId=' + resourceId + '&resourceType='+resourceType+ts(),{     
       method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            $(outputPanel).innerHTML = response;  
         },     
         onFailure:  function(t) {
           $(outputPanel).innerHTML = 'Failed to load tags.<br>Error ' + t.status + ' - ' + t.statusText;
         }
    }); 
}


	

function loadTagBagContents(tagId){
    var mytime = "&ms="+new Date().getTime();
	new xhr('/ajax/tagBag/GetTagBagcontents.aspx?tagId='+tagId+ mytime,{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){						
				$('divTagBagContents').innerHTML = response;	
			}else{ 
				msgErr(response);									
			}                
	     },     
	      onFailure: function(t) {
           alert('Failed to load tag bag contents. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}


function deleteResourceComment(commentId,resourceId,resourceType){
	new xhr('/ajax/resourceComments/deleteComment.aspx?id=' + commentId  +'&resourceType='+resourceType+ts(),{     
	   method:'get', onSuccess: function(transport){       
	        var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){	
                setTimeout('getResourceComments('+resourceId+','+resourceType+')',600);			
                msg(response);
			}else{ //show as error message
				msgErr(response);									
			}
            
	     },     
	      onFailure: function(t) {
           alert('Failed to delete comment. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}


function addResourceCommentVote(commentId,resourceId,resourceType,vote){   
    new xhr('/ajax/resourceComments/VoteOnComment.aspx?commentId='+commentId+'&resourceId='+resourceId+'&resourceType='+resourceType+'&vote='+vote+ts(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){			  	   
                msg(response);				
				setTimeout('getResourceComments('+resourceId+','+resourceType+')',600);	
			}else{
				msgErr(response);									
			}
	     },     
	     onFailure: function(t) {
            alert('Failed to add comment vote. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}


function getResourceComments(resourceId, resourceType){
    var url = '/ajax/resourceComments/GetCommentsList.aspx?resourceId='+resourceId+'&resourceType='+resourceType+ts();
    new xhr(url,{     
         method:'get', onSuccess: function(transport){   	         
            var response = transport.responseText || "Error No Response"; 
	        $('commentsListing').innerHTML = response; 
         },     
         onFailure:  function(t) {
           alert('Failed to load comments for resource [' +resourceId +']. <br>Error ' + t.status + ' - ' + t.statusText);
         }
    }); 
}
	

function addResourceComment(resourceId, resourceType){                   
    message = safeVal($('txtAddComment').value);        
    new xhr('/ajax/resourceComments/addComment.aspx?resourceId='+resourceId +'&resourceType='+resourceType+'&message='+message+ '&ms='+new Date().getTime(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){						
				$('txtAddComment').value = '';    					
                msg(response);
				setTimeout('getResourceComments('+resourceId+','+resourceType+')',600);				
			}else{
				msgErr(response);									
			}
	     },     
	     onFailure: function(t) {
            alert('Failed to add comment. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}



function clearPostForm(){ 
	$('btPrevious').disabled = true;	
	$('btNext').disabled = true;	
	//$('txtPostBody').innerHTML = "&nbsp;";  
	$('txtPostAddTitle').value ='';
    $('txtPostAddBody').value ='';		      
	getStyleObject('txtPostBody').display = 'none';
	getStyleObject('divPostBody').display = 'block';
	$('divPostBody').innerHTML = getLoadingText(); 
}

var previousShownPostId;
function getForumPost(postId,pageId,method){	     
    var mytime = "&ms="+new Date().getTime();
    
    var url;
    if(method==1)
       url = '/ajax/debate/debateGetPost.aspx';
    else
       url = '/ajax/propositionVotes/getPost.aspx';
    
    new xhr(url+'?id='+postId+'&pageId='+pageId+mytime,   
    {     
       method:'get', onSuccess: function(transport)
         {       
            var response = transport.responseText || "Error No Response";  
            if(! isErrorMsg(response))
            {    
   
                //0=threadid,1=title,2=body,3=addedDate,4=changed,5=addedBy,6=addedByname,7=item added by logged in user,8=prevId,9=nextId                    
                getStyleObject('postPanelView').display = 'block';
                getStyleObject('postPanelEdit').display = 'none';	                                        
                getStyleObject('postPanelAdd').display = 'none';	 		    	
	   	                    
                var arrPost = response.split("&&");  
	            $('headerPostTitle').innerHTML = arrPost[1];
	            
	            if(arrPost[1].substring(0,4)=='Re: ')
	                $('txtPostAddTitle').value = arrPost[1]; 
	             else
	              	$('txtPostAddTitle').value = 'Re: '+arrPost[1]; 
	              		           
	            $('divPostAuthor').innerHTML = "<a href=\"/member/" + arrPost[5] +"/\">" + arrPost[6]+"</a>"; 
	            $('divPostDateAdded').innerHTML = arrPost[3]; 
	            if(arrPost[4].length > 2)		                		               		            
	                $('divPostDateChanged').innerHTML = 'Changed ' + arrPost[4]; 
	            else		               
	                $('divPostDateChanged').innerHTML = '&nbsp;';		            
	     
	            if(arrPost[8]>0){
	               $('btPrevious').disabled = false;		              
	               $('btPrevious').onclick = function (){ 
	                  clearPostForm();	  
	                  window.setTimeout('getForumPost('+arrPost[8]+','+pageId+','+method+')',300); 
	               }		               
	            }else
	               $('btPrevious').disabled = true;			            
	          
	            if(arrPost[9]>0){
	               $('btNext').disabled = false;		
	               $('btNext').onclick = function (){ 
	                  clearPostForm();	  
	                  window.setTimeout('getForumPost('+arrPost[9]+','+pageId+','+method+')',300); 
	               }	
	            }else
	               $('btNext').disabled = true;	
	           
	         
	          if(previousShownPostId)        
	            $('threadPostCell'+previousShownPostId).className=''; 	             
	            $('hiddenfieldParentPost').value = postId; 
	            $('threadPostCell'+postId).className = 'selectedThreadPost'; 
	            previousShownPostId = arrPost[0];
	            getStyleObject('divPostBody').display = 'block';
	            $('divPostBody').innerHTML = arrPost[2]; 	
	            $('divInReplyToMessage').innerHTML = arrPost[2]; 	
	            $('btPostReply').onclick = function () 
                {                       
                    showAddPostForm(); 
                    getStyleObject('divInReplyTo').display = 'inline';
                    $('divInReplyToFrom').innerHTML = $('divPostAuthor').innerHTML;
                                                                 
                }                            
	                
	            if(arrPost[7]==1)  //added by me
	            {
	                getStyleObject('txtPostBody').display = 'block';		               
	                //$('txtPostBody').innerHTML = arrPost[2]; 		              
	                getStyleObject('btPostEdit').display = 'inline';
	                getStyleObject('btPostDelete').display = 'inline'; 
	               
	                /*if(document.all)
	                  $('btPostDelete').addEventListener('onclick',false,deleteForumPost(postId,tagId));
	                else
	                  $('btPostDelete').attachEvent('onclick',deleteForumPost(postId,tagId));
                    */

                    $('btPostDelete').onclick = function () 
                    {
                       deleteForumPost(postId, tagId,method);                        
                    } 

	               // $('btPostDelete').onclick='javascript:deleteForumPost(postId,tagId)';		                
	            }
	            else
	            {	
	            	getStyleObject('btPostDelete').display = 'none'; 		            	
	                getStyleObject('btPostEdit').display = 'none';
	            }
	            
	                
	        }else{
	            alert('Failed to load post<br>' + response);
	        }
         },     
         onFailure:  function(t) {
           alert('Failed to load post. <br>Error ' + t.status + ' - ' + t.statusText);
         }
    }); 
}

function showEditPostform(){
    getStyleObject('postPanelAdd').display='none';		
    getStyleObject('postPanelEdit').display='block';		
    getStyleObject('postPanelView').display='none';		
    $('txtPostBody').focus();	
}	
	

function deleteForumPost(postId, tagId, method)  //method 1=tagdebating, 2=proposiotion debate
{
    var mytime = "&ms="+new Date().getTime();
	var url;
    if(method==1)
       url = '/ajax/debate/debateDeletePost.aspx';
    else
       url = '/ajax/propositionVotes/deletePost.aspx';
       
	new xhr(url + '?id=' + postId  + mytime,   
	{     
	   method:'get', onSuccess: function(transport)
	     {       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {	
                msg(response);					
				//update page with topics listing					
				getThreadList(tagId,method);
				getStyleObject('postPanelView').display='none';									
				
			}else{ //show as error message
				msgErr(response);									
			}
            
	     },     
	      onFailure: function(t) {
           alert('Failed to delete posting. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}
   


function addForumPost(pageItemId,method){    
    title = safeVal($('txtPostAddTitle').value);          
    message = safeVal($('txtPostAddBody').value); 
    parentId = $('hiddenfieldParentPost').value; 

    var mytime = "&ms="+new Date().getTime();
    var url;
    if(method==1)
       url = '/ajax/debate/debateAddPost.aspx';
    else
       url = '/ajax/propositionVotes/addPost.aspx';
    
    new xhr(url+ '?id=' + pageItemId +'&parent='+parentId+'&title=' +title+ '&message='+message + mytime,   
	{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {	      
                arrMessage = response.split("&&");	//frst part mesage second part id of new post
                msg(arrMessage[0]);					
	
				setTimeout('getForumPost('+arrMessage[1]+','+pageItemId+','+method+')',1300);
			
				$('txtPostAddTitle').value = '';          
                $('txtPostAddBody').value = ''; 
        
                $('hiddenfieldParentPost').value=''; 	
                setTimeout('getThreadList('+pageItemId+','+method+')',600);									
				
			}else{ //show as error message
				msgErr(response);									
			}
	     },     
	     onFailure: function(t) {
            alert('Failed to add posting. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}


function updateForumPost(postId,method)
{    
    title = $('txtPostTitle').value; 
    message = $('txtPostBody').value; 
    var mytime = "&ms="+new Date().getTime();
    
    var url;
    if(method==1)
       url = '/ajax/debate/debateUpdate.aspx';
    else
       url = '/ajax/propositionVotes/update.aspx';
    
    new xhr(url+'?tid=' + tagId +'&title=' +title+ '&message='+message + mytime,   
	{     
	     method:'get', onSuccess: function(transport)
	     {       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {	
                msg(response);
				getThreadList(tagId,method);	
			}else{ 
				msgErr(response);									
			}
	     },     
	      onFailure: function(t) {
           alert('Failed to add posting. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}


	



		

	
function getThreadList(id, method)
{
    var mytime = "&ms="+new Date().getTime();
    
    var url;
    if(method==1)
       url = '/ajax/debate/debateGetThreadList.aspx?id='+id + mytime;
    else
       url = '/ajax/propositionVotes/getThreadList.aspx?id='+id + mytime;

    new xhr(url,   
    {     
         method:'get', onSuccess: function(transport)
         {       
            var response = transport.responseText || "Error No Response"; 
            //alert(response);             
      
	        $('threadList').innerHTML = response; 
         },     
         onFailure:  function(t) {
           alert('Failed to load thread. <br>Error ' + t.status + ' - ' + t.statusText);
         }
    }); 
}


function doAjaxCommand(query)
{
    var mytime = "&ms="+new Date().getTime();
    var url = '/ajax/' + query + mytime;	   
    new xhr(url,   
    {     
         method:'get', onSuccess: function(transport)
         {   	         
            var response = transport.responseText || "Error No Response";  
             if( ! isErrorMsg(response))                		   
	             msg(response);
	         else
				 msgErr(response);	
         },     
         onFailure:  function(t) {
           alert('Failed to perform ajax call: (' + query + '). <br>Error ' + t.status + ' - ' + t.statusText);
         }
    }); 
}






function getMemberContributions(userId,panelId){    
    var mytime = "&ms="+new Date().getTime();
    new xhr('/ajax/member/GetMemberContributions.aspx?userId='+userId + mytime,   
	{     
	     method:'get', onSuccess: function(transport)
	     {       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {			
                $(panelId).innerHTML = response; 
			}else{
				msgErr(response);									
			}
	     },     
	     onFailure: function(t) {
            alert('Failed to get member contributions. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 	    
}



function addToTagBag(tagId,showIncontextOfTag){	
    var mytime = "&ms="+new Date().getTime();
	new xhr('/ajax/tagBag/addToTagBag.aspx?tagId='+tagId+ mytime,   
	{     
	   method:'get', onSuccess: function(transport)
	     {       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {        
                if(showIncontextOfTag)
                    loadTagBagContents(tagId);	
                else
                    loadTagBagContents();	
			}else{ 
				msgErr(response);									
			}                
	     },     
	      onFailure: function(t) {
           alert('Failed to add tag to tag bag. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}


function removeFromTagBag(tagId, originTag){
    var mytime = "&ms="+new Date().getTime();
	new xhr('/ajax/tagBag/removeFromTagBag.aspx?tagId='+tagId+ mytime,{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response))
            {				
                msg(response);	
                loadTagBagContents(originTag);	
				
			}else{ 
				msgErr(response);									
			}                
	     },     
	      onFailure: function(t) {
           alert('Failed to remove tag from tag bag. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}


function getPropositionVotingStatusText(propId){
var mytime = "&ms="+new Date().getTime();
new xhr('/ajax/propositionVotes/getPropositionvoteStatusText.aspx?id=' + propId + mytime,{     
   method:'get', onSuccess: function(transport){       
        var response = transport.responseText || "No Response";   
        if( ! isErrorMsg(response))                						
			$('divVotingStatus').innerHTML = response;  					
		else
			msgErr(response);									
		
     },     
     onFailure: function(t) {
        alert('Failed to get proposition status. Error ' + t.status + ' - ' + t.statusText);
     }  
}); 	    
}




function AddPrivateTagForResource(topicId, resourceId, resourceType){
	new xhr('/ajax/resource/topicAddPrivateForResource.aspx?topicId=' + topicId + '&resourceId=' + resourceId + '&resourceType='+ resourceType + '&ms='+new Date().getTime(),   
	{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){	                
				msg(response);										
				getPrivateTagsForResource(resourceId,resourceType,'tagsListingPrivate'); 					
				
			}else{ //show as error message
				msgErr(response);       
			}                
	     },     
	      onFailure: function(t) {
           alert('Failed to load private tags. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}


function getPrivateTags(resid, resType,panel){
	new xhr('/ajax/tag/GetMyPrivateTagsListing.aspx?resourceId='+resid+'&resourceType='+resType+ts(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            $(panel).innerHTML = response;  
	     },     
	      onFailure: function(t) {
           $(panel).innerHTML = 'Failed to load tags.<br>Error ' + t.status + ' - ' + t.statusText;
         }  
	}); 
}
  

function getRelationsForTopic(topicId){
	new xhr('/ajax/tag/GetRelationsForTopic.aspx?topicId='+topicId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res))
            {	           
				var arrSections = res.split("&&");
			    var textOut = arrSections[0];				
			    var nTopicId = arrSections[1];				
			    $('relatedTagsBox').innerHTML = textOut; 		
			}
			else{msgErr(res);}                	
	     },onFailure:function(t){$('relatedTagsBox').innerHTML='Failed to load tags.<br>Error '+t.status +' - '+t.statusText;}  
	}); 
}
 

function issueAssociationVote(assocId,voteUp,tagId){
	new xhr('/ajax/VoteTopic2TopicAssociation.aspx?assocId='+assocId+'&voteUp='+voteUp+'&tagId='+tagId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Failed to load tags.<br>Error '+t.status +' - '+t.statusText);}  
	}); 
}
	


function AddTopicAsFavourite(topicId){
	new xhr('/ajax/tag/topicAddAsFavourite.aspx?topicId='+topicId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
}
   

function issueUserVote(user2voteOnId){
	new xhr('/ajax/member/voteUser.aspx?userId='+user2voteOnId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response";                     
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
}

   	
function issueDeleteRecommendedVoteOnLink(linkId){ 			
	new xhr('/ajax/link/RecommendedLinkVoteDelete.aspx?linkId=' + linkId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){
            msg(res);
            pageReload();
            }
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 

 function issueCreateTopicRelation(assocId, topicIdA, topicIdB, roleIdA, roleIdB){ 				
	new xhr('/ajax/tag/topiccreateRelation.aspx?assocId=' + assocId + '&topicIdA=' + topicIdA + '&topicIdB=' + topicIdB + '&roleIdA=' + roleIdA + '&roleIdB=' + roleIdB +ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 	

	
function issueDeleteRelationFromMyAccount(relationId){ 			
	new xhr('/ajax/tag/associationDelete.aspx?relationId=' + relationId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){               
            msg(res);
            pageReload();     
            }
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 			
  
	
function issueDeleteImportantVoteOnLink(linkId){		
	new xhr('/ajax/ImportantVoteOnLinkDelete.aspx?linkId='+linkId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){               
            msg(res);
            window.setTimeout('location.reload(true)',1000);
            }
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 			


function issueDeleteUserVote(userVoted){
	new xhr('/ajax/member/userRemoveVote.aspx?userVoted='+userVoted+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){               
            msg(res);
            pageReload();                
            }
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 		


function issueDeleteFriend(friend){
	new xhr('/ajax/member/userRemoveFriend.aspx?friend='+friend+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){               
            msg(res);
            pageReload();                
            }
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 		


function issueLinkImportantVote(linkId){ 		
	new xhr('/ajax/link/VoteImportantOnLink.aspx?linkId='+linkId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){msg(res);}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 		


function GetMetadataFromPage(url,nameCtrl,descrCtrl){ 	 
	getStyleObject('imgGetRemoteLoading').display="block";
    getStyleObject('btGetRemote').display="none";
    getStyleObject('txtGetRemote').display="none";    
    
	new xhr('/ajax/link/GetMetadataFromPage.aspx?url='+safeVal(url)+ts(),{     
	   method:'get', onSuccess: function(transport)
	     {    
	        var res=transport.responseText || "No Response"; 	                      
            if(res.indexOf('Failed')==0)
			{	
			    msg(res);						
			}
			else if(! isErrorMsg(res))
			{	
				arrMessage = res.split("&&");						
				$(nameCtrl).value = arrMessage[0];	
				$(descrCtrl).innerHTML = arrMessage[1];	
			}
			else
			{				
				msgErr(res);				
			}  
			getStyleObject('imgGetRemoteLoading').display="none";
            getStyleObject('btGetRemote').display="block";
            getStyleObject('txtGetRemote').display="block";    	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 		
 

function updateLinkVisitCounter(topicId,strURL){ 
	new xhr('/ajax/updateLinkVisitCounter.aspx?topicid='+topicId+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 	


function GetXhrTo(req,pnlId,hightlight){
    new xhr(req+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response"; 
            if( ! isErrorMsg(response)){             		   
	            $(pnlId).innerHTML = response; 
	            if(hightlight==1){new Effect.Highlight(pnlId);}
	        }else
               msgErr(response);               
         },     
         onFailure:  function(t) {               
             msgErr('Failed to load request. GetXhrTo()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    }); 
}

function GetXhrToWithTggle(req,pnlId,tgglPnl,hightlight){
    toggleDisplay(tgglPnl);   
    new xhr(req+ts(),{ 
         method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response"; 
            if( ! isErrorMsg(response)){   
	             var f = function() {toggleDisplay(tgglPnl); $(pnlId).innerHTML=response; if(hightlight){new Effect.Highlight(pnlId,{ duration: 0.5});}};
	             setTimeout(f,200); 
	        }else                   
               msgErr(response);                   
         },     
         onFailure:  function(t) {               
             msgErr('Failed to load request. GetXhrTo()<br>Error ' + t.status + ' - ' + t.statusText);	
         }            
    });    
}


function removeExpert(uid,tid){
	new xhr('/ajax/member/RemoveExpert.aspx?uid='+uid+'&tid='+tid+ts(),{     
	   method:'get', onSuccess: function(transport){       
            var response = transport.responseText || "No Response";   
            if( ! isErrorMsg(response)){	                
				msg(response);	
				LoadExperts(tid);
			}else{ 
				msgErr(response);       
			}
	     },     
	      onFailure: function(t) {
           alert('Failed to remove member as expert for tag. Error ' + t.status + ' - ' + t.statusText);
         }  
	}); 
}

function voteOnExpert(uid,isVoteUp,tid){
    new xhr('/ajax/member/VoteOnExpert.aspx?uid='+uid+'&tid='+tid+'&isVoteUp='+isVoteUp+ts(),    {
         method:'get', onSuccess: function(transport){
            var response = transport.responseText || "No Response";  
            if( ! isErrorMsg(response)){
	            msg(response);
				LoadExperts(tid);
	        }else
               msgErr(response);
         },
         onFailure:  function(t){
             msgErr('Failed to vote on resource group relation.<br>Error '+t.status+' - '+t.statusText);	
         }
    }); 
}

function fuzzserviceFeedme(verbose,overrideDefaultLimit){
    if(verbose)getStyleObject('adminserviceLoader').display="block"; 
    new xhr('/ajax/service/feedme.aspx?domore='+overrideDefaultLimit+ts(),{
         method:'get', onSuccess: function(transport){
             if(verbose){                         
                var response = transport.responseText || "No Response";  
                if(!isErrorMsg(response)){
	                msg(response);	                			
	            }else{
                   msgErr(response);              
                }
               getStyleObject('adminserviceLoader').display="none";
             }
         },
         onFailure:  function(t){
             msgErr('Failed on fuzzserviceFeedme.<br>Error '+t.status+' - '+t.statusText);	
         }
    }); 
}

function moderateItem(resid,restype,status){
    new xhr('/ajax/resource/moderate.aspx?resid='+resid+'&restype='+restype+'&status='+status+ts(),{
         method:'get',onSuccess: function(transport){
         var response = transport.responseText || "No Response";  
            if(!isErrorMsg(response)){
	            msg(response);				
	        }else
               msgErr(response);
         },
         onFailure:function(t){
             msgErr('Failed on moderateItem.<br>Error '+t.status+' - '+t.statusText);	
         }
    }); 
}


function fuzzserviceListRetweets(){ 	
	new xhr('/ajax/twitter/GetTwitterRetweets.aspx?t=1'+ts(),{     
	   method:'get', onSuccess: function(transport){    
	        var res=transport.responseText || "No Response"; 		                       
            if(!isErrorMsg(res)){$('retweets').innerHTML=res;}
			else{msgErr(res);}                	
	     },onFailure:function(t){msgErr('Error '+t.status +' - '+t.statusText);}  
	}); 
} 

function GetTweetsByHashtag(tag){XhrCmd2('/ajax/twitter/search.aspx?tag='+tag+ts(),'divHashtagstream');}

