function _ov(_o)
{
	evt.drain(_o);
	evt.fill(_o);
}
function _ot(_o)
{
	evt.drain(_o);
	evt.reset(_o);
}
function _ck(el,type,model)
{	
	if(type=='ni')
	{
		var _Mystar = el.attr('star');
		var _MyId = el.parents('.norate').attr('id').split('norate')[1];//alert(_MyId);
		evt.clean(_MyId);//clean the stars
		$('#rate'+_MyId).attr('star',_Mystar);
		el.parents('.norate').find('.nRate').filter('.on').removeClass('on').end();		
		el.toggleClass('on');
		
		if(arguments.length == 3)
		{
			if(model == 'quickRate')
			{
				evt.send(_Mystar,_MyId,'norate','quickRate');//send request for Index QuickRate	
			}
			else if(model == 'myRate')
			{
				evt.send(_Mystar,_MyId,'norate','myRate');//send request for MyRate
			}
			else if(model == 'recommend')
			{
				evt.send(_Mystar,_MyId,'norate','recommend');//send request for Recommedation	
			}
		}
		else
		{
			evt.send(_Mystar,_MyId,'norate');//send normal request
			changeImg(_MyId,_Mystar);
		}

	}
	else if(type=='skip')//my Recommendation Skip This
	{
		var _Mystar = 0;
		var _MyId = $('.skipIt').attr('id').split('skipIt')[1];//alert(_MyId);
		evt.reset('',_MyId);
		evt.send(_Mystar,_MyId,'title','recommend');//send request for Recommedation
	}
	else
	{
		var _root = el.parents('.rating');
		var _Mystar = el.children('a').attr('title');
		var _MyId = _root.attr('id').split('rate')[1];
		_root.attr('star',_Mystar);
		evt.clean(_MyId);
		evt.reset('',_MyId);
		if(arguments.length == 3)
		{
			if(model == 'quickRate')
			{
				evt.send(_Mystar,_MyId,'norate','quickRate');//send request for Index QuickRate	
			}
			else if(model == 'myRate')
			{			
				evt.send(_Mystar,_MyId,'title','myRate');//send request for MovieRate
			}
			else if(model == 'recommend')
			{
				evt.send(_Mystar,_MyId,'title','recommend');//send request for Recommedation
			}
		}
		else
		{		
			evt.send(_Mystar,_MyId,'title');//send normal request
			changeImg(_MyId,_Mystar);
		}

	}
	//alert(el);return false
	$('.star a').blur();
	return false;
}

// _ck_2 for RatingMovie Skip
function _goNext(id)
{
	var _Mystar = $('#rate'+id).attr('star');
	evt.send(_Mystar,id,'null','myRate');//send request for MyRate & Recommedation
}

function _skinQuickRate(id)
{
	var _Mystar = $('#rate'+id).attr('star');
	evt.send(_Mystar,id,'null','quickRate');//send request for MyRate & Recommedation
}

//---------------------------

function _goRv(d)
{
	d.addClass('goRev');
	d.siblings('.rateDone').css('background-position','top');	
}
function _done(id,type,t)
{
	var _root = $('#rate'+id);
	var _rv = $('#rv'+id).val();
	var _star = _root.attr('star');
	if(_star == 0 && _rv ==0)
	{
		//alert('请输入提示');
		return false;
	}
	evt.send(_star,id,'done');
	if(type == 'show')
	{
		t.css('background-position','bottom');
	}
	else
	{
		$('#hiRate'+id).hide();
		$('#goRate'+id).show();	
		changeImg(id,_star);
	}
	return false;
}
function changeImg(id,star)
{
	var _btnA = $('#rate-now'+id);
	var _btnB = $('#rate-down'+id);
	var _rv = $('#rv'+id).val();
	_btnA.removeClass('star_-1 star_11 star_1 star_2 star_3 star_4 star_5 star_6 star_7 star_8 star_9 star_10')
	_btnB.removeClass('idown_imsg idown imsg');
	
	if(_rv.length!==0 && star==0)
	{
		_btnB.addClass('imsg').show();
	}
	else if(_rv.length!==0 && star!==0)
	{
		_btnB.addClass('idown_imsg').show();
	}
	else if(star !==0 && _rv == '')
	{//alert(_rv.length+'.'+star)
		_btnB.addClass('idown').show();
	}
	else if(star==0 && _rv=='' )
	{//alert(_rv.length+','+star)
		_btnB.hide();
	}
	_btnA.addClass('star_'+star); 
}
var evt = 
{
	clean: function(id)
	{
		$('#rate'+id).find('.star').filter('.on').removeClass('on').end();	
		$('#norate'+id).find('.nRate').filter('.on').removeClass('on').end();	
	},
	fill: function(el)
	{ // fill to the current mouse position.
		var stars = el.parents('.r-star').children('.star');
		var index = el.children('a').attr('title');
		stars
			.children('a').css('width', '100%').end()
			.slice(0,index).addClass('hover').end();
	},
	drain: function(el) 
	{ // drain all the stars.
		var stars = el.parents('.r-star').children('.star');
		stars
			.filter('.on').removeClass('on').end()
			.filter('.hover').removeClass('hover').end();
	},
	reset: function(el,id)
	{ // Reset the stars to the default index.
		id = parseInt(id);
		if(!id)
		{
			var _star = el.parents('.rating').attr('star');
			var stars = el.parents('.r-star').children('.star');
		}
		else
		{
			var _star = $('#rate'+id).attr('star');
			var stars = $('#rate'+id).find('.r-star').children('.star');		
		}
		if(_star > 0 && _star < 11)
		{
			stars.slice(0,_star).addClass('on')
				 .children('a').css('width','100%');
		}
		else if(_star == -1)
		{
			$('#norate'+id).find('.ni').addClass('on');
		}
		else if(_star ==11)
		{
			$('#norate'+id).find('.ws').addClass('on');
		}
		return false;
	},
	send: function(star,id,type)
	{
		//loading style
		//send review
		if(!checkUser()) return false ; 
		_rv = $('#rv'+id).val()+'';
		if(_rv.length==0 || _rv == "undefined")
		{
			_rv=""
		}
		//alert(typeof _rv);
		if($('#rv'+id).attr('rid'))
		{
			_rid = $('#rv'+id).attr('rid');
		}
		else
		{
			_rid = 0
		}
		
		//判断是否为为我推荐,我要评分
		if(arguments.length==4)
		{
			var __tmp = arguments[3];
			jQuery.ajax({
				url:'/userpost/',
				type:'post',
				success:function(d)
				{
					if(__tmp !== 'undefined' && __tmp == 'quickRate')
					{
						quickRateGoBack(d.tgoid);
					}
					else if(__tmp == 'myRate')
					{
						getMyRateData(d.tgoid);
					}
					else if(__tmp == 'recommend')
					{
						_pageNum = $('#skipIt').attr('num')
						getMyRecommend(_pageNum);
					}
				},
				needLogin:true,
				abortLast:true,
				key:'movie-list-rating',
				data:	 
				{
					"do":0,
					"rating": star,
					"tgoid":id,
					"action":'MovieRating',
					"goid":_rid,
					"review":_rv			 
				}
			});			
			
			return false;
		}
		else
		{//for normal Request
		//alert(3)
			
			jQuery.ajax(
			{
				url:'/userpost/',
				type:'post',
				success:function(d){$('.loadin').html('保存完成 :)').fadeOut(1000);},
				needLogin:true,
				abortLast:true,
				key:'movie-list-rating',
				data:	 
				{
					"do":0,
					"rating": star,
					"tgoid":id,
					"action":'MovieRating',
					"goid":_rid,
					"review":_rv			 
				}
			});			
			$('.loadin').fadeIn(300);
			//evt.reset('',id);
		}
	}
}

//this function for MovieRate second Request
function getMyRateData(id)
{
	$('#loading').show();
	$('#loading2').show();	
	$('#c12-rate-intro').hide();
	
	$('.c12-rate-info').hide();
	$('#main-wra').hide();	
	
	jQuery.ajax(
	{
		url:'/movies/rateajax/',
		type:'get',
		data:
		{
			"goid":id
		},
		success:function(d)
		{
			var _d = d.split("<!--@@@-->");
			
			
			$('#loading').hide();
			$('#loading2').hide();	
			$('.c12-rate-intro').html(_d[0]);

			$('#reRefresh').html(_d[1]);
			$('.c12-rate-info').show();
			$('.c12-rate-intro').show();
			$('#main-wra').show();
		},
		needLogin:true,
		abortLast:true,
		key:'my-rating-recommend'
	})
}
//this function for Recommend second Request 
function getMyRecommend(id)
{
	$('#loading1').add($('#loading2')).add($('#loading3')).show();
	
	$('#c12-rate-info').add($('#c13-col1-1-because')).add($('.friend-like-rate')).add($('#main-wra')).hide();
	
	jQuery.ajax(
	{
		url:'/movies/formeajax',
		type:'post',
		success:function(d)
		{
			var _d = d.split("<!--@@@-->");
				//alert(_d.length)
			//var _d = d.parseJSON(); 
			if(_d.length>2)
			{
				$('#loading1').add($('#loading2')).add($('#loading3')).hide();
				$('#c13-callback-left').html(_d[2]);
				$('#c13-callback-right-up').html(_d[0]);
				$('#c13-callback-right-down').html(_d[1]);
				
				$('#c12-rate-info').add($('#c13-col1-1-because')).add($('#main-wra')).show();
				$('#main-wra').show();
			}
			else
			{
				$('#main-wrapper').html(d);
			}
		},
		needLogin:true,
		abortLast:true,
		key:'my-rating-recommend'
	})	
}



if (!Object.prototype.toJSONString) {
    (function (s) {
        var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        };

        s.parseJSON = function (hook) {
            try {
                if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.
                        test(this)) {
                    var j = eval('(' + this + ')');
                    if (typeof hook === 'function') {
                        function walk(v) {
                            if (v && typeof v === 'object') {
                                for (var i in v) {
                                    if (v.hasOwnProperty(i)) {
                                        v[i] = walk(v[i]);
                                    }
                                }
                            }
                            return hook(v);
                        }
                        return walk(j);
                    }
                    return j;
                }
            } catch (e) {
            }
            throw new SyntaxError("parseJSON");
        };
    })(String.prototype);
}
