var G_FilterString="";
var G_filter='';

if(!window.G_imgdir) {var G_imgdir='';}

function ShowMain() {
	document.getElementById("loginblock").className="hideblock";
	document.getElementById("mainblock").className="showblock";
}
function HideMain() {
	document.getElementById("loginblock").className="showblock";
	document.getElementById("mainblock").className="hideblock";
}

//--------------------------------------------------------------------------

function LoadReferralsList(page,clickedelement) {
	document.body.style.cursor = "wait";				//this will be reset by ListReferrals or ListReferralsErr.
	if(clickedelement) {if(clickedelement.style) {clickedelement.style.cursor="wait";}}	//this doesn't need to be reset, as the element involved will be destroyed anyway.
	var apicall="listmycommission.php?page="+page+"&perpage="+G_ResultsPerPage+"&start_day="+G_StartDay+"&start_month="+G_StartMonth+"&start_year="+G_StartYear+"&end_day="+G_EndDay+"&end_month="+G_EndMonth+"&end_year="+G_EndYear
			+"&sortfield="+G_SortField+"&sortorder="+G_SortDir;
	apilite_call(apicall, 'ListReferrals', page+","+G_FilterString, 'ListReferralsErr', page+","+G_FilterString);
}

function ListReferrals(responsestring,args) {
	//alert(responsestring);
	var tmp=responsestring.split("\n");	//split the returned lines into an array.
	var argv=args.split(",");
	var outstr="";
	if(tmp.length==0) {
		outstr="<div align='center'>No referral records were found in your account within the specified date range.</div>";
	} else {
		var totnums=parseInt(tmp[0]);
		var pagenum=parseInt(argv[0]);
		var itemdesc="";

		outstr+=ListReferralsSearch('a');

		outstr+=ListReferralsHdr(pagenum);

		for(count=1;count<tmp.length-1;count++) {
			var field=tmp[count].split("~|~");
			var bgcol=(count%2==0?"#FFFBEF":"#FFFFFF")
			outstr+="<tr style='background-color:"+bgcol+";'>"
				+"<td style='padding-left:15px;'>"+field[3]+"</td>"
				+"<td align='left'>"+field[5]+"</td>"
				+"<td align='right' style='text-align:right;'>"+field[0]+"</td>"
				+"<td align='right' style='text-align:right; padding-right:25px;'>&pound; "+(field[4]/100).toFixed(2)+"</td>"
// 				+"<td>"+field[6]+"</td>"
				+"</tr>";
		}
		outstr+="</table>";

		outstr+="<div class='smallText pad15L' align='right' style='margin:0px; width:98%; text-align:right;'>"+Pages((pagenum-1)*G_ResultsPerPage,G_ResultsPerPage,totnums)+"</div>";

		var pstart=parseInt((pagenum-1)*G_ResultsPerPage+1);
		var pend=pstart+(G_ResultsPerPage-1);
		if(pend>totnums) {pend=totnums;}
		outstr+="<div class='smallText' style='width:98%' align='right'>Showing results "+pstart+" to "+pend+" of "+totnums+".</div>";
	}
	document.getElementById("mainblock").innerHTML=outstr;
	document.body.style.cursor = "default";
	ShowMain();
}

function ListReferralsErr(responsestring,args) {
	//alert(responsestring);
	var tmp=responsestring.split("|");	//split the returned lines into an array.
	var argv=args.split(",");
	var outstr="";

	if(responsestring=="9|Error: 500 session expired or not found") {	//login expired error -- show login screen.
		document.body.style.cursor = "default";
		LoginLogout(1);
		document.getElementById("loginmsg").innerHTML='Sorry, but your login has timed out. You will need to log in again to continue.';
		document.getElementById("loggedininfo").innerHTML="";
		return;
	}

	if(tmp.length==2) {responsestring=tmp[1];}	//drop the error code number, if it was passed.
	outstr+=ListReferralsSearch('a');

	outstr+=ListReferralsHdr(0);
	outstr+="<td colspan='20' align='center'>"+responsestring+"</td></tr>";
	outstr+="</table>";

	outstr+="<div class='smallText pad15L' align='right' style='margin:0px; width:98%; text-align:right;'>"+Pages(0,G_ResultsPerPage,0)+"</div>";

	document.getElementById("mainblock").innerHTML=outstr;
	document.body.style.cursor = "default";
	ShowMain();
}

function ListReferralsHdr(pagenum) {
	outstr='';

	outstr+="<div style='padding:3px;' class='smallText'>Order data is shown here in real-time. Commissions will be processed via BACS 45 days in arrears and payments are made only once your balance exceeds &pound;25.</div>";

	outstr+="<table cellspacing='0' cellpadding='2' style='width:98%;' class='smallText pad15L resultTable'>"
		+"<tr style='height:2.5em; font-weight:bold; background-color:#F4F4F4;'>"
		+"<td style='padding-left:15px;'>Date"+SortButtons('date','date',pagenum)+"</td>"
		+"<td>Ref Code"+SortButtons('ref','ref',pagenum)+"</td>"
		+"<td align='right' style='text-align:right;'>Order ID"+SortButtons('orderID','orderID',pagenum)+"</td>"
		+"<td align='right' style='text-align:right; padding-right:15px;'>Commission"+SortButtons('commission','commission',pagenum)+"</td>"
// 		+"<td align='left'>Status"+SortButtons('status','status',pagenum)+"</td>"
		+"</tr>";
	return outstr;
}

function ListReferralsSearch(ab) {
	outstr="";
	outstr+="<table class='smallText pad15L' style='margin:0px; width:98%;'><tr><td align='left'>"
// 	outstr+="<div style='border:1px solid black; padding:3px; width:98%;'>"
		+"<span style='vertical-align:20%;'>Range: </span>"+DayCombo("st_day_"+ab,G_StartDay)+MonthCombo("st_month_"+ab,G_StartMonth)+YearCombo("st_year_"+ab,G_StartYear)+"<span style='vertical-align:20%;'> to </span>"+DayCombo("en_day_"+ab,G_EndDay)+MonthCombo("en_month_"+ab,G_EndMonth)+YearCombo("en_year_"+ab,G_EndYear)
		+"<img src='"+G_imgdir+"images/search-a.gif' class='clickable mgtsearchbtn' style='vertical-align:-25%;' onmouseover='this.src=\""+G_imgdir+"images/search-b.gif\";' onmouseout='this.src=\""+G_imgdir+"images/search-a.gif\";' onclick='SetDateRange(\""+ab+"\"); "+G_LoadFunc+"(1,this);' />"
// 		+"</div>";
		+"</td></tr></table>";
	return outstr;
}

//--------------------------------------------------------------------------

function trigger_search(evt,val) {
	//check which key was pressed (doing various checks to ensure it works for all browsers)
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode :
		((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13 || charCode == 3) {
		G_FilterString=val;
		window[G_LoadFunc](1);	//user pressed return, so trigger search.
	}
}

//--------------------------------------------------------------------------

function SetDateRange(ab,mode) {
	G_StartDay=document.getElementById("st_day_"+ab).value;
	G_StartMonth=document.getElementById("st_month_"+ab).value;
	G_StartYear=document.getElementById("st_year_"+ab).value;
	G_EndDay=document.getElementById("en_day_"+ab).value;
	G_EndMonth=document.getElementById("en_month_"+ab).value;
	G_EndYear=document.getElementById("en_year_"+ab).value;

	if(mode==2) {
		G_viewmode=document.getElementById("showtype_"+ab).value;
		G_st_answer=document.getElementById("status_answer_"+ab).checked?1:0;
		G_st_busy=document.getElementById("status_busy_"+ab).checked?1:0;
		G_st_noanswer=document.getElementById("status_noanswer_"+ab).checked?1:0;
		G_st_other=document.getElementById("status_other_"+ab).checked?1:0;
		G_dnifilter=document.getElementById("shownumber_"+ab).value;

		if(!G_st_busy && !G_st_noanswer && !G_st_other) {G_st_answer=1;}	//force at least one checkbox.
	}
}

function StatusCheckbox(name,caption,checked) {
	var chk=(checked==1?"checked='1'":"");
	var outstr="<input type='checkbox' name='"+name+"' id='"+name+"' value='1' "+chk+" /><label style='vertical-align:20%;' for='"+name+"'>"+caption+"</label>";
	return outstr;
}

function DayCombo(name,def) {
	var outstr="<select style='font-size:1.1em;' name='"+name+"' id='"+name+"'>";
	var sel="";
	for(var count=1; count<=31; count++) {
		sel=(def==count?"selected='1'":"");
		outstr+="<option value='"+count+"' "+sel+">"+count+"</option>";
	}
	outstr+="</select>";
	return outstr;
}

function MonthCombo(name,def) {
	var outstr="<select style='font-size:1.1em;' name='"+name+"' id='"+name+"'>";
	var sel="";
	var mname=new Array("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	for(var count=1; count<=12; count++) {
		sel=(def==count?"selected='1'":"");
		outstr+="<option value='"+count+"' "+sel+">"+mname[count]+"</option>";
	}
	outstr+="</select>";
	return outstr;
}

function YearCombo(name,def) {
	var currDate=new Date();
	var currYear=currDate.getFullYear();
	var outstr="<select style='font-size:1.1em;' name='"+name+"' id='"+name+"'>";
	var sel="";
	for(var count=currYear-10; count<=currYear+10; count++) {
		sel=(def==count?"selected='1'":"");
		outstr+="<option value='"+count+"' "+sel+">"+count+"</option>";
	}
	outstr+="</select>";
	return outstr;
}

function SortButtons(fielddesc,field,page) {
	var outstr="";
	var click1="onclick='G_SortField=\""+field+"\"; G_SortDir=\"asc\"; "+G_LoadFunc+"("+page+",this);'";
	var click2="onclick='G_SortField=\""+field+"\"; G_SortDir=\"desc\"; "+G_LoadFunc+"("+page+",this);'";
	if(field==G_SortField && G_SortDir=='asc') {
		outstr+="<img title='"+fielddesc+" sort ascending' alt='"+fielddesc+" sort ascending' src='"+G_imgdir+"images/sort_up2.gif' class='mgtsortbtn' />";
	} else {
		outstr+="<img title='"+fielddesc+" sort ascending' alt='"+fielddesc+" sort ascending' src='"+G_imgdir+"images/sort_up1.gif' class='clickable mgtsortbtn' "+click1+"/>";
	}
	if(field==G_SortField && G_SortDir=='desc') {
		outstr+="<img title='"+fielddesc+" sort descending' alt='"+fielddesc+" sort descending' src='"+G_imgdir+"images/sort_dn2.gif' class='mgtsortbtn' />";
	} else {
		outstr+="<img title='"+fielddesc+" sort descending' alt='"+fielddesc+" sort descending' src='"+G_imgdir+"images/sort_dn1.gif' class='clickable mgtsortbtn' "+click2+"/>";
	}
	return outstr;
}

function Pages(startat,limit,max) {
	var buildstring="";
	var nextstop=startat+limit;
	var prevstop=startat-limit;
	
	var page=Math.floor((startat)/limit)+1;
	var maxpage=Math.ceil(max/limit);
	if(nextstop>max) {nextstop=max;}
	if(prevstop<1) {prevstop=1;}
	buildstring+="<table width='100%'><tr><td>";

	if(page>1) {
		buildstring+="<a href='javascript:"+G_LoadFunc+"("+(page-1)+",this)'>&lt;&lt; Prev Page</a>";
	} else {
		buildstring+="<span style='color:#bbbbbb'>&lt;&lt; Prev Page</span>";
	}
	var minpg=page-3;
	var maxpg=page+3;
	if(page<=3) {maxpg+=(4-page);}
	for(var count=minpg;count<=maxpg;count++) {
		if(count>0 && count<=maxpage) {
			if(count!=page) {
				buildstring+=" <a href='javascript:"+G_LoadFunc+"("+count+",this)'>["+count+"]</a> ";
			} else {
				buildstring+=" <b>["+count+"]</b> ";
			}
		}
	}
	if(page<maxpage) {
		buildstring+="<a href='javascript:"+G_LoadFunc+"("+(page+1)+",this)'>Next Page &gt;&gt;</a>"
	} else {
		buildstring+="<span style='color:#bbbbbb'>Next Page &gt;&gt;</span>";
	}
	buildstring+="</td>";

	var sel10 =""; if(G_ResultsPerPage==10)  {sel10 ="selected='1'";}
	var sel25 =""; if(G_ResultsPerPage==25)  {sel25 ="selected='1'";}
	var sel50 =""; if(G_ResultsPerPage==50)  {sel50 ="selected='1'";}
	var sel100=""; if(G_ResultsPerPage==100) {sel100="selected='1'";}

	buildstring+="<td align='right'>";
	buildstring+="Results per page: <select style='font-size:1.0em;' onchange='ChangeResultsPerPage(this.value,"+page+");'><option value='10' "+sel10+">10</option><option value='25' "+sel25+">25</option><option value='50' "+sel50+">50</option><option value='100' "+sel100+">100</option></select>";
	buildstring+="</td>";

	buildstring+="</tr></table>";

	return buildstring;
}

function ChangeResultsPerPage(perpage,page) {
	G_ResultsPerPage=parseInt(perpage);
	eval(G_LoadFunc+"(page)");
}
