var MSVoting=function(itemID, rating,ajaxObj)
{
    this.ItemID=itemID;
    this.Rating=rating;
    this.Rated=0;
    this.inOp=0;
    this.AjaxObj=ajaxObj;
    
    this.UpVoting=function(callback)
    {
        if(this.inOp==0)
        {
            if(this.Rated<=0)
            {
                this.inOp=1;
                this.AjaxObj.Vote(this.ItemID,this.Rating, MSVoting.CallBackFunction);   
            }
        }
    }
    
    this.DownVoting=function()
    {
        if(this.inOp==0)
        {
            if(this.Rated>=0)
            {
                this.inOp=1;
                this.AjaxObj.Vote(this.ItemID,this.Rating*(-1), MSVoting.CallBackFunction); 
            }
         }
    }
    
}


//result.value:: up success:1 down success: -1 not happen: 0
 MSVoting.CallBackFunction=function(result)
    {
        if(result.error==null)
        {
            var tt=eval("MSVoting" +result.value[0]);
            if(tt)
            {
                tt.inOp=0;
            }
            if(result.value[1]==999)
            {
                alert("You have given a positive vote, so you can not do it again");
                return;              
            }
            else if(result.value[1]==-999)
            {
                alert("You have given a negative vote, so you can not do it again");
                return;  
            }
            else
            {
            
                if(tt)
                {
                    tt.Rated=result.value[2];
                }
                var status=0;
                if(result.value[2]>0)
                {
                    status=2;
                }
                else if(result.value[2]<0)
                {
                    status=1;
                }
                var unVTable=document.getElementById('table-'+result.value[0]);
                var upVTable=document.getElementById('upTable-'+result.value[0]);
                var downVTable=document.getElementById('downTable-'+result.value[0]);
                if(unVTable==null||upVTable==null||downVTable==null)
                {
                    return;
                }
                //0:UnVoted 1:can be UpVoted 2: can be DownVoted
                switch(status)
                {
                    case 0:
                        unVTable.style.display='';
                        upVTable.style.display='none';
                        downVTable.style.display='none';
                        break;
                    case 2:
                        upVTable.style.display='';
                        unVTable.style.display='none';
                        downVTable.style.display='none';
                        break;
                    case 1:
                        downVTable.style.display='';
                        unVTable.style.display='none';
                        upVTable.style.display='none';
                        break;
                    default:
                        unVTable.style.display='';
                        upVTable.style.display='none';
                        downVTable.style.display='none';
                        break;
                  }
            
            
                var unVPoint=document.getElementById('point-'+result.value[0]);                
                var upVPoint=document.getElementById('upPoint-'+result.value[0]);
                var downVPoint=document.getElementById('downPoint-'+result.value[0]);
                if(unVPoint==null||upVPoint==null||downVPoint==null)
                    return;
                var point=parseInt(unVPoint.innerHTML);
                point+=result.value[1];
                unVPoint.innerHTML=point;
                upVPoint.innerHTML=point;
                downVPoint.innerHTML=point;
            }
        }
    }