function create_stars(id,div_name,rating,report_url){this.width=16;this.height=16;this.stars=[];this.orig_rating=rating;this.cur_rating=rating;this.id=id;this.box_div=div_name;this.report_url=report_url;this.b_reporting=0;this.xmlhttp=null;this.msgbox=null;this.display=function(titles_set,show_only){var starbox=gk_get_el(div_name);if(!starbox)return;starbox.innerHTML='';starbox.className='star_box';starbox.style.width=5*this.width+'px';starbox.style.height=this.height+'px';var star_img=gk_get_el('star_img');if(!star_img){star_img=new Image();star_img.id='star_img';star_img.style.width='16px';star_img.style.height='64px';star_img.style.display='none';star_img.src='/img/star-rating.png';starbox.appendChild(star_img);}var titles;if(titles_set==1)titles=['very easy','easy','average','hard','very hard'];else titles=['poor','fair','good','excellent','the best!'];var cur_title=Math.floor((this.cur_rating-1)/2);if(cur_title<0)cur_title=0;else if(cur_title>=titles.length)cur_title=titles.length-1;for(var i=0;i<5;i++){var pc=document.createElement('div');pc.className='star_cell';pc.style.left=i*this.width+'px';pc.style.top='0px';pc.style.width=this.width+'px';pc.style.height=this.height+'px';pc.style.cursor=isIE()?'hand':'pointer';if(!show_only){pc.title=titles[i];pc.onmouseover=this.get_mouse_over_handle(i);pc.onmouseout=this.get_mouse_out_handle(i);pc.onclick=this.get_click_handle(i);}else{pc.title=titles[cur_title];}this.stars[i]=pc;var img=star_img.cloneNode(true);img.style.display='';pc.appendChild(img);starbox.appendChild(pc);this.update_star(pc,2*i>=this.cur_rating?0:((2*i+1)==this.cur_rating?1:2));}};this.handle_mouse_over=function(s){if(s>4)s=4;if(s<0)s=0;for(var i=0;i<5;i++){this.update_star(this.stars[i],i<=s?3:0);}};this.get_mouse_over_handle=function(s){var obj=this;return function(){obj.handle_mouse_over(s);}};this.handle_mouse_out=function(s){if(s>4)s=4;if(s<0)s=0;for(var i=0;i<5;i++){this.update_star(this.stars[i],2*i>=this.cur_rating?0:((2*i+1)==this.cur_rating?1:2));}};this.get_mouse_out_handle=function(s){var obj=this;return function(){obj.handle_mouse_out(s);}};this.handle_click=function(s){if(s>4)s=4;if(s<0)s=0;this.cur_rating=2*(s+1);this.report_rating();};this.get_click_handle=function(s){var obj=this;return function(){obj.handle_click(s);}};this.update_star=function(el,state){var tile=el.firstChild;var ofs_x=0;var ofs_y=0;if(state==1)ofs_y=this.height;else if(state==2)ofs_y=2*this.height;else if(state==3)ofs_y=3*this.height;tile.style.left=-1*ofs_x+'px';tile.style.top=-1*ofs_y+'px';};this.reporting_process=function(){if(!this.xmlhttp)return;if(this.xmlhttp.readyState!=4)return;this.b_reporting=0;var starbox=gk_get_el(this.box_div);if(starbox&&this.msgbox){starbox.removeChild(this.msgbox);}if((typeof rate_stars_callback_set_rating)=='function'){rate_stars_callback_set_rating(this.id,this.cur_rating);}};this.get_reporting_process_handle=function(){var obj=this;return function(){obj.reporting_process();}};this.report_rating=function(){if(!this.report_url)return;if(this.b_reporting)return;this.b_reporting=1;if(!this.xmlhttp)this.xmlhttp=gk_get_http();if(!this.xmlhttp){this.b_reporting=0;return;}var starbox=gk_get_el(this.box_div);if(!this.msgbox){var mb=document.createElement('div');mb.className='hlt_text_mo';mb.style.display='block';mb.style.top='0px';mb.style.left='0px';mb.style.height=(starbox?starbox.clientHeight:16)+'px';mb.style.width=(starbox?starbox.clientWidth:100)+'px';mb.style.position='absolute';mb.style.zIndex=50;mb.style.visibility='visible';mb.style.fontSize='11px';mb.style.cursor='default';mb.style.textAlign='center';mb.innerHTML='Saving...';this.msgbox=mb;}if(starbox&&this.msgbox)starbox.appendChild(this.msgbox);var url=this.report_url;var params=[];params.push('stars=1');params.push('id='+this.id);params.push('r='+this.cur_rating);this.xmlhttp.open('POST',url,true);this.xmlhttp.onreadystatechange=this.get_reporting_process_handle();this.xmlhttp.send(params.join('&'));};}
