/* copyright 2009-2010 Julian Lievano and Craft Cult - www.craftcult.com */

var chart_bat={clear_modals:function(typey){$('#'+typey).remove();},create_modal:function(doc_id,css_class,append_to){chart_bat.clear_modals(doc_id);if(typeof append_to==='undefined'){append_to='content';}
var container=document.getElementById(append_to);if(!container){return false;}
var modal_box=document.createElement('div');container.appendChild(modal_box);modal_box.id=doc_id;modal_box.className=css_class;return modal_box;},show_help:function(dm){var this_help=$('#chart_help_'+dm);$('.chart_help_window',$('#majaba_body')).hide();this_help.show().bgiframe({width:'379px'});$(document).bind('click.help',function(){$(this).unbind('click');$('.chart_help_window',$('#majaba_body')).hide();});return false;},open_year_month:function(){chart_bat.chart_3_state.status=true;$('#year_month_list').show();$(document).bind('click.year_month',function(){$('#year_month_menu').trigger('click');});},close_year_month:function(){chart_bat.chart_3_state.status=false;$('#year_month_list').slideUp(100);$(document).unbind('click.year_month');},point_store:{'p_2':null,'p_3':null,'p_4':null,'p_5':null,'m_2':[],'m_3':[],'m_4':[],'m_5':[],'mact_2':'','mact_3':'','mact_4':'','mact_5':''},chart_offset:{},show_point_tips:function(dm,points,serie,box_start_date,hidden){var image_div=document.getElementById('chart_image_'+dm);var class_string;if(!image_div){return false;}
var col_width=Math.floor(638/points[serie].length)-1;$.each(points[serie],function(i,point_array){if(point_array[2]==0){return true;}
if(!document.getElementById('point_column_'+i)){var point_col=document.createElement('span');if(!point_col){return false;}
image_div.appendChild(point_col);point_col.name=i;point_col.className='point_column point_columns_'+dm;point_col.id='pc_'+dm+'_'+serie+'_'+i;point_col.style.width=col_width+'px';point_col.style.left=(point_array[0]-(Math.floor(col_width/2))+1)+'px';}
var chart_heart=document.createElement('span');if(!chart_heart){return false;}
image_div.appendChild(chart_heart);if(hidden){class_string='invisipoint point points_'+dm;}
else{class_string='point points_'+dm;}
if(serie!='heart_chart'){class_string+=' '+serie+'_points_'+dm;}
chart_heart.className=class_string;chart_heart.id=dm+'_'+serie+'_'+i;chart_heart.style.left=(point_array[0]-11)+'px';chart_heart.style.top=(point_array[1]-17)+'px';chart_heart.innerHTML='<span class="point_text ltgray">'+point_array[2]+'</span><a target="_blank" class="point_heart point_hearts_3" id="ph_'+dm+serie+i+'"></a>';$(chart_heart).mouseenter(function(){$('#pc_'+dm+'_'+serie+'_'+i).trigger('mouseenter');});});},activate_tips:function(dm,start_of_box,serie,item_hearts,item_details){$('.point_columns_'+dm).mouseenter(function(){var idd=$(this).attr('name');chart_bat.heart_tip(idd,dm,start_of_box,serie,item_hearts,item_details);$('#ph_'+dm+chart_bat.return_serie(serie,dm)+idd).css('background-position','-11px 0');}).mouseleave(function(){$('#ph_'+dm+chart_bat.return_serie(serie,dm)+$(this).attr('name')).css('background-position','0 0');});},return_serie:function(serie,dm){return serie=='heart_chart'?serie:chart_bat.point_store['mact_'+dm];},heart_tip:function(snip,dm,box_start_date,serie,item_hearts,item_details){var hdate,tip_string='',coords,for_string='',s;if($('#chart_loading_'+dm).is(':visible')){return false;}
if(serie=='heart_chart'){coords=chart_bat.point_store['p_'+dm];}
else{serie=chart_bat.point_store['mact_'+dm];coords=chart_bat.point_store['m_'+dm][serie];if(dm!=5){if(coords[snip][2]==0){return false;}}}
var tip_box=chart_bat.create_modal('heart_info','tip_window','chart_image_'+dm);if(!tip_box){return false;}
tip_box.style.visibility='hidden';tip_box.style.left=coords[snip][0]+23+'px';tip_box.style.top=coords[snip][1]-20+'px';start_time=box_start_date*1000;if(dm==3){var start_of_box=new Date(start_time+108000000);start_of_box.setMonth(start_of_box.getMonth()+snip);hdate=Date.abbrMonthNames[start_of_box.getMonth()]+' '+start_of_box.asString('yy');for_string='<br>for ';}
else if(dm==2||dm==5){var start_of_box=new Date(start_time+3600000);start_of_box.setDate(start_of_box.getDate()+snip);hdate=Date.abbrDayNames[start_of_box.getDay()]+' '+start_of_box.asString('dd mmm yy');for_string=' for<br>';}
else{var hour,meridien;if(snip>11){hour=snip-11;meridien=(hour==12)?'am':'pm';}else{hour=snip+1;meridien=(hour==12)?'pm':'am';}
hdate=hour+' '+meridien;for_string='<br>for ';}
if(dm<4){var start_of_box=new Date(start_time);var og_dawg=chart_bat.calc_offset_guess(coords,dm,snip);var plip_linky="heartomatic.php?userid="+chart_bat.etsy_n_id+"&find=1&og="+og_dawg+"&base="+(start_of_box.getTime()/1000)+"&un="+dm+"&dist="+snip;$('#ph_'+dm+serie+snip).attr('href',plip_linky);if(coords[snip][2]==1){s='';}else{s='s';}
tip_string="<a target='_blank' class='gray' href='"+plip_linky+"'><b>"+coords[snip][2]+"</b>"+(serie=='heart_chart'?'':' '+serie)+" heart"+s+"</b>"+for_string+hdate+"</a>";}
else if(dm==4){tip_box.style.width='80px';if(coords[snip][2]==1){s='';}else{s='s';}
tip_string="<b>"+coords[snip][2]+"</b>"+(serie=='heart_chart'?'':' '+serie)+" heart"+s+"<br> for "+hdate+"<br>";}
else{var hearts=coords[snip][2];tip_string='<a target="_blank" href="heartsitems.php?userid='+chart_bat.etsy_n_id+'"><b>'+hearts+'</b> heart'+(hearts==1?'':'s')+" for<br>"+hdate+"</a>";}
tip_box.innerHTML=tip_string;tip_box.style.visibility='visible';},calc_offset_guess:function(list_of_points,dm,current_point){var this_offset=parseInt(chart_bat.chart_offset[dm],10)||0;for(var elk=list_of_points.length;elk>current_point+1;elk--){this_offset+=parseInt(list_of_points[elk-1][2],10);}
return this_offset;},rnd_thing:function(){var snid=new Date();return String(snid.getTime()+snid.getSeconds());},date_listening:function(dm,items_start){$('#date_from_'+dm).bind('dpClosed',function(e,selectedDates){var d=selectedDates[0];if(d){var dd=new Date(d);$('#date_to_'+dm).dpSetStartDate(dd.addDays(1).asString());}});$('#date_to_'+dm).bind('dpClosed',function(e,selectedDates){var d=selectedDates[0];if(d){var dd=new Date(d);$('#date_from_'+dm).dpSetEndDate(dd.addDays(-1).asString());}});},hide_update_buttons:function(dm){if(dm==5){var plip=document.getElementById('chart_update_5');if(!plip){return false;}
plip.style.display='none';$('#chart_header_5').animate({'width':'746px'},800);}
else{$('#chart_update_3,#chart_update_2,#chart_update_4').hide().remove();if($.browser.msie&&$.browser.version.substr(0,1)<7){$('#chart_header_3,#chart_header_2,#chart_header_4').css('width','746px');}
else{$('#chart_header_3,#chart_header_2,#chart_header_4').animate({'width':'746px'},800);}}},stat_count:0,print_statistics:function(dm,metadata){var type_of_hearts,lines='';var stats=[[metadata.total,'total'],[metadata.avg,'average'],[metadata.min_date+' ('+metadata.min+'%)','lowest'],[metadata.max_date+' ('+metadata.max+'%)','highest'],[metadata.seller+'% ('+metadata.sel_count+')','seller accounts'],[metadata.buyer+'% ('+metadata.buy_count+')','buyer-only accounts'],[metadata.priv+'% ('+metadata.priv_count+')',' anonymous'],[metadata.sb_ratio,'seller/buyer ratio'],[metadata.new_account+'%','new accounts (<3 months)'],[metadata.female+'%','female'],[metadata.male+'%','male'],[metadata.unknown+'%','gender not specified']];var stat_dates=metadata.stat_dates||'';if(dm==2||dm==3){type_of_hearts='shop hearts';}else{type_of_hearts='item hearts';}
var plibble='<span class="chart_info_title green">Statistics for '+type_of_hearts+' received '+stat_dates+'</span>';$.each(stats,function(i,data_line){lines+='<span class="stats"><span class="gray">'+data_line[0]+'</span><span class="ltgray"> '+data_line[1]+'</span></span>';if(i>0&&(i+1)%4==0){var sec='<span class="chart_info_div">'+lines+'</span>';lines='';plibble+=sec;}});chart_bat.chart_offset[dm]=metadata.offset_one||0;$('#chart_info_'+dm).html(plibble).show();chart_bat.stat_count+=1;if(chart_bat.stat_count==1){$('#extra_ad_1').show();}
else if(chart_bat.stat_count==2){$('#extra_ad_2').show();}
else if(chart_bat.stat_count==3){$('#extra_ad_3').show();}},create_key:function(key_mode,dm,four_mode){var heart_type,period;if(dm<4){heart_type='shop';}
else if(dm==5){heart_type='item';}
else{four_array=['shop','','item'];heart_type=four_array[four_mode];}
if(dm==3){period='month';}
else{period='day';}
$('#chart_key_'+dm).html(chart_bat.build_key(key_mode,heart_type,period,dm));},build_key:function(key_mode,heart_type,period,chart){if(key_mode==0){return"<span class='chart_key_entry'><span class='chart_key_square' style='background-color:#DC5C3A'></span>total "+heart_type+" hearts per "+period+"</span><span class='chart_key_entry'><span class='chart_key_square' style='background-color:#B9C21E'></span>average "+heart_type+" hearts per "+period+"</span>";}
else{return"<span class='chart_key_entry clickable chart_key_active' id='sellers_"+chart+"'><span class='chart_key_square' style='background-color:#DC5C3A'></span>"+heart_type+" hearts from sellers</span><span class='chart_key_entry clickable' id='buyers_"+chart+"'><span class='chart_key_square'  style='background-color:#4BA0B1'></span>"+heart_type+" hearts from buyers</span><span class='chart_key_entry clickable' id='secret_"+chart+"'><span class='chart_key_square'  style='background-color:#faa619'></span>anonymous "+heart_type+" hearts</span><span class='chart_key_entry'><span class='chart_key_square' style='background-color:#B9C21E'></span>average "+heart_type+" hearts per "+period+"</span>";}
return false;},clear_loading_state:function(dm){$('#chart_loading_'+dm).remove();$('#chart_show_'+dm).removeClass('chart_show_disabled');if($('#chart_update_'+dm).is(':visible'))
{$('#chart_update_'+dm).removeClass('chart_update_disabled');}},display_error:function(dm,err){if(!document.getElementById('chart_error_'+dm)){$('#chart_'+dm).append('<span><span id="chart_error_'+dm+'" class="chart_error_line red">'+err+'</span></span>');}
else{$('#chart_error_'+dm).text(err);}
var plip_sel=$('#chart_error_'+dm);var plip_width=plip_sel.width();plip_sel.css('left',(Math.round((747-plip_width)/2)));},waiting_for_etso:function(dm){chart_bat.clear_loading_state(dm);$('#chart_image_'+dm).fadeTo('slow',0.50).html("<img alt='' class='chart_rendered' id='chart_rendered_"+dm+"' src='images/chart/blank/chart_"+dm+".gif'>");chart_bat.display_error(dm,'There was an error retrieving the data - please try again later');},set_year_month:function(mo,ar){if(ar<year_min){ar=year_min;}
if(ar>cur_year){ar=cur_year;}
chart_bat.chart_3_state.dates=[mo,ar];$('#year_month_text').text(Date.abbrMonthNames[chart_bat.chart_3_state.dates[0]-1]+' '+chart_bat.chart_3_state.dates[1]);chart_bat.redraw_dur_menu();},redraw_dur_menu:function(dur){var cur_dur_jqe=$('#chart_3_dur');dur=dur||parseInt(cur_dur_jqe.val(),10);if(dur!=3&&dur!=6&&dur!=9&&dur!=12&&dur!=18){dur=12;}
dist=chart_bat.dist_to_sel_month();cur_dur_jqe.find('option').each(function(i,val){var abled;if(this.value>dist){abled=true;}
else{abled=false;}
$(this).attr('disabled',abled);});while(dur>dist&&dur>=3){dur-=3;if(dur==15){dur=12;}}
cur_dur_jqe.val(dur);},redraw_month_year:function(new_year){var dis='year_month_month_disabled';var en='year_month_month';var classy;if(new_year==year_min){classy=dis;}
else{classy=en;}
$('.chart_months',$('#chart_controls_3')).each(function(i){if((new_year==cur_year&&i==cur_month-1)||(new_year==cur_year-1&&cur_month<3)){classy=dis;}
else if(new_year==year_min&&i==month_min-1){classy=en;}
this.className='year_month_choice chart_months '+classy;});if(new_year+1>cur_year){$('#chart_ym_next').addClass('year_month_arrow_hidey');}
else{$('#chart_ym_next').removeClass('year_month_arrow_hidey');}
if(new_year-1<year_min){$('#chart_ym_prev').addClass('year_month_arrow_hidey');}
else{$('#chart_ym_prev').removeClass('year_month_arrow_hidey');}},dist_to_sel_month:function(){return((cur_year-chart_bat.chart_3_state.dates[1])*12)+((cur_month+2)-chart_bat.chart_3_state.dates[0]);}};var cur_year,year_min,cur_month,month_min,items_start,user_start_time,tz,cur_month;$(document).ready(function()
{if(typeof chart_bat.j!='number'){return;}
nd=new Date();tz=((nd.getTimezoneOffset()-240)*60000)*-1;nd=new Date(nd.getTime()-tz);cur_year=nd.getFullYear();items_start=(new Date(nd.getTime()-tz)).addMonths(-6);cur_month=(new Date(nd.getTime()-tz)).getMonth();user_start_time=(new Date((chart_bat.j*1000)-tz));year_min=user_start_time.getFullYear();month_min=user_start_time.getMonth()+1;if(items_start<user_start_time){items_start=user_start_time;}
var last_month=(new Date(nd.getTime()-tz)).addMonths(-1);$('#date_from_2').datePicker({verticalOffset:22,horizontalOffset:-2}).dpSetSelected(last_month.asString()).dpSetStartDate(chart_bat.j,true,false).dpSetEndDate(nd.getTime(),true,true).dpSetDisplayedMonth(last_month.getMonth(),last_month.getFullYear()).trigger('change');$('#date_from_5').datePicker({verticalOffset:22,horizontalOffset:-2}).dpSetSelected(last_month.asString()).dpSetStartDate(items_start.getTime(),true,true).dpSetEndDate(nd.getTime(),true,true).dpSetDisplayedMonth(last_month.getMonth(),last_month.getFullYear()).trigger('change');$('#date_to_2').datePicker({verticalOffset:22,horizontalOffset:-2}).val(nd.asString()).dpSetStartDate(chart_bat.j,true,false).dpSetEndDate(nd.getTime(),true,true).trigger('change');$('#date_to_5').datePicker({verticalOffset:22,horizontalOffset:-2}).val(nd.asString()).dpSetStartDate(items_start.getTime(),true,true).dpSetEndDate(nd.getTime(),true,true).trigger('change');chart_bat.date_listening(2,items_start);chart_bat.date_listening(5,items_start);$('select.chart_month_year_pull').focus(function(){var sec=$(this).attr('name');$('#date_sel_'+sec).attr('checked','checked');});$('select.chart_year_pull').focus(function(){$('#date_sel_3').attr('checked','checked');});$('input.chart_datepicker').click(function(){var sec=$(this).attr('name');$('#date_cal_'+sec).attr('checked','checked');});$('#chart_year_pull').click(function(){$('#date_sel_3').attr('checked','checked');});$('#year_month_menu').click(function(ev){ev.stopPropagation();$('#date_cal_3').attr('checked','checked');});$('#chart_3_dur').focus(function(){$('#date_cal_3').attr('checked','checked');});$('.chart_show,.chart_update').click(function(ev){if($(ev.target).hasClass('chart_show_disabled')||$(ev.target).hasClass('chart_update_disabled')){return false;}
var dm=$(this).attr('name');var update,sel_date_from,sel_date_to,year,month,th,cust,dur=0,which_date_sel;if(dm>9){update='1';dm=dm/5;}
else{update='0';}
if(dm!=4){which_date_sel=$("input[name='sel_"+dm+"']:checked").val();}
$('#chart_error_'+dm+',#chart_loading_'+dm).remove();$('#chart_show_'+dm).addClass('chart_show_disabled');if($('#chart_update_'+dm).is(':visible'))
{$('#chart_update_'+dm).addClass('chart_update_disabled');}
if(dm==2||dm==5){if(which_date_sel==0){month=$('#chart_month_pull_'+dm).val();cust=0;}
else{sel_date_from=$('#date_from_'+dm).dpGetSelected();sel_date_from=((sel_date_from[0])+tz)/1000;sel_date_to=$('#date_to_'+dm).dpGetSelected();sel_date_to=((sel_date_to[0]+tz)/1000)+86400;cust=1;}}
else if(dm==3){if(which_date_sel==0){year=$('#chart_year_pull').val();dur=12;th=month;cust=0;}
else{year=chart_bat.chart_3_state.dates[1]-2000;month=chart_bat.chart_3_state.dates[0];dur=$('#chart_3_dur').val()||0;th=0;cust=1;}}
var sbs=$('#chart_sbs_pull_'+dm).val()||0;var iss=$('#chart_is_pull').val()||0;var from=(sel_date_from)||0;var to=(sel_date_to)||0;var sd=$('#chart_activity_pull').val()||0;var ar=year||0;th=th||month||0;var a_random_plip=chart_bat.rnd_thing();cust=cust||0;$('#chart_image_'+dm).fadeTo("slow",0.50);$('#chart_'+dm).append('<img alt="" class="chart_loading" id="chart_loading_'+dm+'" src="images/chart/patience.gif">');$.ajax({type:'post',url:'/svc/charts.php',data:{'userid':chart_bat.etsy_n_id,'m':dm,'ar':ar,'th':th,'sb':sbs,'k':chart_bat.tk,'is':iss,'from':from,'to':to,'j':chart_bat.j,'cs':cust,'na':chart_bat.etsy_u,'ud':update,'sd':sd,'d':dur,'plip':a_random_plip},dataType:'json',success:function(data){chart_bat.clear_loading_state(dm);if(data.results=='error'){var err;if(data.etype=='no_listings'){err="no active listings";}else if(data.etype=='no_shop_htz'){err='this shop has no hearts yet';}
else{err='err: '+data.etype;}
chart_bat.display_error(dm,err);return false;}
else{$('#chart_image_'+dm).html('<img alt="" style="display:none" class="chart_rendered" id="chart_rendered_'+dm+'" src="'+data.output+'">').fadeTo('normal',1);$('#chart_rendered_'+dm).show();var new_title;if(data.updated){chart_bat.hide_update_buttons(dm);}
if(dm!=4){chart_bat.print_statistics(dm,data.meta_eta);if(dm!=5){chart_bat.chart_offset[dm]=data.meta_eta.offset_one;}
if(which_date_sel==0){new_title=data.date_from;}
else{new_title=data.date_from+(data.date_from!=data.date_to?' to '+data.date_to:'');}
chart_bat.create_key(sbs,dm);$('#chart_title_text_'+dm).text(new_title);if(dm!=3){var date_one=(new Date(data.meta_eta.start*1000));var date_two=(new Date((data.meta_eta.end)*1000));$('#date_from_'+dm).dpSetSelected(date_one.asString());$('#date_to_'+dm).dpSetSelected(date_two.asString());}}
else{new_title=data.day_range||'60';$('#chart_title_text_4').text('Activity for past '+new_title+' days');chart_bat.create_key(sbs,4,iss);}
var item_details,item_hearts;if(dm==5){item_hearts=data.item_hearts;item_details=data.item_details;}
else{item_hearts=false;item_details=false;}
if(sbs==0){chart_bat.point_store['p_'+dm]=data.points.heart_chart;chart_bat.show_point_tips(dm,data.points,'heart_chart',data.meta_eta.start,false);chart_bat.activate_tips(dm,data.meta_eta.start,'heart_chart',item_hearts,item_details);}
else{chart_bat.point_store['m_'+dm]=data.points;chart_bat.show_point_tips(dm,data.points,'anon',data.meta_eta.start,true,item_hearts,item_details);chart_bat.show_point_tips(dm,data.points,'seller',data.meta_eta.start,false,item_hearts,item_details);chart_bat.show_point_tips(dm,data.points,'buyer',data.meta_eta.start,true,item_hearts,item_details);chart_bat.point_store['mact_'+dm]='seller';var buyerpoints=$('.buyer_points_'+dm);var sellerpoints=$('.seller_points_'+dm);var secretpoints=$('.anon_points_'+dm);var nonsecret=$('#buyers_'+dm+',#sellers_'+dm);var nonbuyer=$('#secret_'+dm+',#sellers_'+dm);var nonseller=$('#buyers_'+dm+',#secret_'+dm);$('#secret_'+dm).hover(function(){chart_bat.point_store['mact_'+dm]='anon';sellerpoints.addClass('invisipoint');buyerpoints.addClass('invisipoint');secretpoints.removeClass('invisipoint');$(this).addClass('chart_key_active');nonsecret.removeClass('chart_key_active');});$('#buyers_'+dm).hover(function(){chart_bat.point_store['mact_'+dm]='buyer';sellerpoints.addClass('invisipoint');secretpoints.addClass('invisipoint');buyerpoints.removeClass('invisipoint');$(this).addClass('chart_key_active');nonbuyer.removeClass('chart_key_active');});$('#sellers_'+dm).hover(function(){chart_bat.point_store['mact_'+dm]='seller';secretpoints.addClass('invisipoint');buyerpoints.addClass('invisipoint');sellerpoints.removeClass('invisipoint');$(this).addClass('chart_key_active');nonseller.removeClass('chart_key_active');});chart_bat.activate_tips(dm,data.meta_eta.start,'multi',item_hearts,item_details);}}},timeout:600000,error:function(xhrq,ts,et){chart_bat.waiting_for_etso(dm);}});});$('.cs_questions').click(function(ev){ev.stopPropagation();if($('#chart_help_'+$(ev.target).attr('name')).is(':visible')){$(document).unbind('click.help');$('.chart_help_window',$('#majaba_body')).hide();}
else{chart_bat.show_help($(ev.target).attr('name'));}});$('.chart_image').mouseleave(function(){chart_bat.clear_modals('heart_info');});$('#year_month_menu').toggle(function(ev){chart_bat.open_year_month();},function(ev){chart_bat.close_year_month();});$('.year_month_choice').click(function(ev){if($(ev.target).hasClass('year_month_month_disabled')){return false;}
var sel_month=parseInt($(this).attr('name'),10);var sel_year=parseInt($('#chart_3_year').text(),10);chart_bat.set_year_month(sel_month,sel_year);});$('.year_month_arrow').click(function(ev){ev.stopPropagation();var dir=$(this).attr('name');var cur_sel_year=parseInt($('#chart_3_year').text(),10);if(dir=='7'){if(cur_sel_year==year_min){return;}}
else{if(cur_sel_year==cur_year){return;}}
var new_year=dir==7?cur_sel_year-1:cur_sel_year+1;$('#chart_3_year').text(new_year);chart_bat.redraw_month_year(new_year);});chart_bat.redraw_month_year(chart_bat.chart_3_state[1]);});
