﻿
function MyWSSSOAP(baseUrl,listName,myQuery) {
    var soapEnv ="<?xml version='1.0' encoding='utf-8'?> \
				<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> \
				  <soap:Body> \
				    <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
				      <listName>" + listName + "</listName> \
				    	<query>"+ myQuery + "</query>\
				    </GetListItems> \
				  </soap:Body> \
				</soap:Envelope>";

    $.ajax({
        url: baseUrl + "/_vti_bin/lists.asmx",
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        complete: ProcessResult,
        contentType: "text/xml; charset=\"utf-8\""
    });
}




function percentageChart(d1, d2, t1, t2, alt, chs){
		alt = alt || '';
		chs = chs || '350x100';
		cht = 'p3';
		
		var p1 = Math.round(((d1*100) / (d1+d2)));
		var p2 = 100 - p1;
				
		return '<img src="http://chart.apis.google.com/chart?chs=' 
			+ chs + '&amp;chd=t:' + p1 + ',' + p2 + '&amp;chl=' + t1 + '%20' + p1 + '%25|' 
			+ t2 + '%20' + p2 + '%25&amp;cht=' + cht + '&amp;chco=1E4961" alt="' + alt + '"/>';
			/*0000FF"*/ 
			/*,FF0000"*/
			/*FF8040*/
			/* we made changes from d1 to p1 , d2 to p2*/
	}
	

	function shareChart(d1, d2, d3, t1, t2, t3, alt, chs){
		alt = alt || '';
		chs = chs || '350x100';
		cht = 'p3';
		
		var p1 = Math.round(((d1*100) / (d1+d2+d3)));
		var p2 = Math.round(((d2*100) / (d1+d2+d3)));
		var p3 = 100 - p1 - p2;
				
		return '<img src="http://chart.apis.google.com/chart?chs=' 
			+ chs + '&amp;chd=t:' + p1 + ',' + p2  + ',' + p3
			+ '&amp;chl=' + t1 + '%20' + p1 + '%25|' + t2 + '%20' + p2 + '%25|' + t3 + '%20' + p3 
			+ '%25&amp;cht=' + cht + '&amp;chco=1E4961" alt="' + alt + '"/>';
	}	
	
	function GenerateChart(xml){
				
				
				
				var row = xml.getElementsByTagName('z:row');
				var Unfilled_Bindery = 0;
				var Unfilled_Check_Out = 0;
				var Unfilled_NFAS = 0;
				var Unfilled_NonCirc = 0;
				var Unfilled_NOS = 0;
				var Unfilled_NYA = 0;
				var Unfilled_Other = 0;
				var Unfilled_Poor_Con = 0;
				var Unfilled_Withdrawn = 0; 

				var Requested_Total = 0;		
				var Received_Total = 0;		
				var Requested_TKN = 0;		
				var Received_TKN = 0;		
				var Lent_Total = 0;		
				var Lent_TKN = 0;		
				var Lent_Electronic = 0;		
				
				var Lent_ETKN = 0;
				var Lent_MTKN = 0;
				var Lent_WTKN = 0;
				
				var ETKN_Lent_Total = 0;		
				var ETKN_Lent_ETKN = 0;
				var ETKN_Lent_MTKN = 0;
				var ETKN_Lent_WTKN = 0;

				var MTKN_Lent_Total = 0;		
				var MTKN_Lent_ETKN = 0;
				var MTKN_Lent_MTKN = 0;
				var MTKN_Lent_WTKN = 0;

				var WTKN_Lent_Total = 0;		
				var WTKN_Lent_ETKN = 0;
				var WTKN_Lent_MTKN = 0;
				var WTKN_Lent_WTKN = 0;
								
				for(var i=0; i<row.length; i++){ 	
					var attrs = row[i].attributes;	

					Requested_Total += parseInt(attrs.getNamedItem('ows_Requested_Total').value);
					Received_Total += parseInt(attrs.getNamedItem('ows_Received_Total').value);
					
					Requested_TKN += parseInt(attrs.getNamedItem('ows_Requested_TKN').value);
					Received_TKN += parseInt(attrs.getNamedItem('ows_Received_TKN').value);
					
					var Library = attrs.getNamedItem('ows_Library').value;					
					var Region = Library.substr(0, 4)					
					
					if (Region == 'ETKN') {					
						ETKN_Lent_ETKN += parseInt(attrs.getNamedItem('ows_Lent_ETKN').value);
						ETKN_Lent_MTKN += parseInt(attrs.getNamedItem('ows_Lent_MTKN').value);
						ETKN_Lent_WTKN += parseInt(attrs.getNamedItem('ows_Lent_WTKN').value);
					}
					else if (Region == 'MTKN') {
						MTKN_Lent_ETKN += parseInt(attrs.getNamedItem('ows_Lent_ETKN').value);
						MTKN_Lent_MTKN += parseInt(attrs.getNamedItem('ows_Lent_MTKN').value);
						MTKN_Lent_WTKN += parseInt(attrs.getNamedItem('ows_Lent_WTKN').value);
					}
					else if (Region == 'WTKN') {
						WTKN_Lent_ETKN += parseInt(attrs.getNamedItem('ows_Lent_ETKN').value);
						WTKN_Lent_MTKN += parseInt(attrs.getNamedItem('ows_Lent_MTKN').value);
						WTKN_Lent_WTKN += parseInt(attrs.getNamedItem('ows_Lent_WTKN').value);
					}
					 	
					//alert(attrs.getNamedItem('ows_Lent_Electronic').value);	
				    Lent_Total += parseInt(attrs.getNamedItem('ows_Lent_Total').value);										
					Lent_TKN += parseInt(attrs.getNamedItem('ows_Lent_TKN').value.replace('float;#',''));
					Lent_Electronic += parseInt(attrs.getNamedItem('ows_Lent_Electronic').value.replace('float;#',''));
										
					Unfilled_Bindery += parseInt(attrs.getNamedItem('ows_Unfilled_Bindery').value);
					Unfilled_Check_Out += parseInt(attrs.getNamedItem('ows_Unfilled_Check_Out').value);
					Unfilled_NFAS += parseInt(attrs.getNamedItem('ows_Unfilled_NFAS').value);
					Unfilled_NonCirc += parseInt(attrs.getNamedItem('ows_Unfilled_NonCirc').value);
					Unfilled_NOS += parseInt(attrs.getNamedItem('ows_Unfilled_NOS').value);
					Unfilled_NYA += parseInt(attrs.getNamedItem('ows_Unfilled_NYA').value);
					Unfilled_Other += parseInt(attrs.getNamedItem('ows_Unfilled_Other').value);
					Unfilled_Poor_Con += parseInt(attrs.getNamedItem('ows_Unfilled_Poor_Con').value);
					Unfilled_Withdrawn += parseInt(attrs.getNamedItem('ows_Unfilled_Withdrawn').value);
				}
				
				//alert("Requested_TKN: " + Requested_TKN);
				//alert(Requested_Total - Requested_TKN);							
				$('#nktnChart').empty().append('<BR/>')
				
				if(Requested_TKN == 0 && Received_TKN == 0 && Lent_TKN == 0 && Lent_Electronic == 0 && ETKN_Lent_ETKN == 0 && MTKN_Lent_ETKN == 0 && WTKN_Lent_ETKN == 0)
				{
					$('#nktnChart').append('<font color=red size=2>No data available for selected period</font>');
					return;
				}
				if(Requested_TKN != 0)
				{
					$('#nktnChart').append().append('<h4>ILL requests from TKN libraries</h4>')
						.append(percentageChart(Requested_TKN, Requested_Total - Requested_TKN, 'TKN', 'Other'));
				}	
				
				if(Received_TKN != 0)
				$('#nktnChart').append('<h4>ILL received from TKN libraries</h4>')
					.append(percentageChart(Received_TKN, Received_Total - Received_TKN, 'TKN', 'Other'));

				if(Received_TKN != 0)
				$('#nktnChart').append('<h4>Fill rate from TKN libraries</h4>')
					.append(percentageChart(Received_TKN, Requested_TKN, 'Filled', 'Unfilled'));

				if(Lent_TKN != 0)
				$('#nktnChart').append('<h4>Lent to TKN libraries</h4>')
					.append(percentageChart(Lent_TKN, Lent_Total - Lent_TKN, 'TKN', 'Other'));

				if(Lent_Electronic != 0)
				$('#nktnChart').append('<h4>Lent to TKNs electronically</h4>')
					.append(percentageChart(Lent_Electronic, Lent_TKN - Lent_Electronic, 'Electronic', 'Mail'));
					
				if(ETKN_Lent_ETKN != 0)
				$('#nktnChart').append('<h4>ETKN lent to TKN</h4>')
					.append(shareChart(ETKN_Lent_ETKN, ETKN_Lent_MTKN, ETKN_Lent_WTKN,
						'ETKN', 'MTKN', 'WTKN'));										

				if(MTKN_Lent_ETKN != 0)
				$('#nktnChart').append('<h4>MTKN lent to TKN</h4>')
					.append(shareChart(MTKN_Lent_ETKN, MTKN_Lent_MTKN, MTKN_Lent_WTKN,
						'ETKN', 'MTKN', 'WTKN'));										

				if(WTKN_Lent_ETKN != 0)
				$('#nktnChart').append('<h4>WTKN lent to TKN</h4>')
					.append(shareChart(WTKN_Lent_ETKN, WTKN_Lent_MTKN, WTKN_Lent_WTKN,
						'ETKN', 'MTKN', 'WTKN'));										
				
				//Bar Chart  
				
				var chs_2 = "300x150";
				var chd_2 = "";
				var cht_2 = "bvg";
				var chl_2 = "";
				var chAlt_2 = "Unfilled Request Chart";
				var axisy = 150;
				var maxy = 0;				
								
				maxy = Unfilled_Bindery > maxy ? Unfilled_Bindery : maxy;
				maxy = Unfilled_Check_Out > maxy ? Unfilled_Check_Out : maxy;
				maxy = Unfilled_NFAS > maxy ? Unfilled_NFAS : maxy;
				maxy = Unfilled_NonCirc > maxy ? Unfilled_NonCirc : maxy;
				maxy = Unfilled_NOS > maxy ? Unfilled_NOS : maxy;
				maxy = Unfilled_NYA > maxy ? Unfilled_NYA : maxy;
				maxy = Unfilled_Poor_Con > maxy ? Unfilled_Poor_Con : maxy;
				maxy = Unfilled_Withdrawn > maxy ? Unfilled_Withdrawn : maxy;
				maxy = Unfilled_Other > maxy ? Unfilled_Other : maxy;
				
				var scale = 1;
				if (maxy > 0) scale = Math.round(axisy/maxy);
				
				chd_2 = (Unfilled_Bindery * scale)
					+ ',' + (Unfilled_Check_Out * scale)  
					+ ',' + (Unfilled_NOS * scale)
					+ ',' + (Unfilled_NonCirc * scale) 
					+ ',' + (Unfilled_Poor_Con * scale)
					+ ',' + (Unfilled_Withdrawn * scale)
					+ ',' + (Unfilled_NFAS * scale)
					+ ',' + (Unfilled_NYA * scale)
					+ ',' + (Unfilled_Other * scale);
										
				chl_2 = 'AB|CO|NS|NC|PC|NO|NF|NY|OT';
				//chl_2 = '1|2|3|4|5|6|7|8|9';
				
				if(Unfilled_Bindery !=0 || Unfilled_Check_Out !=0 || Unfilled_NOS !=0 || Unfilled_NonCirc !=0 ||Unfilled_Poor_Con !=0 || Unfilled_Withdrawn != 0 || Unfilled_NFAS != 0 ||Unfilled_NYA != 0 ||Unfilled_Other != 0)
				{
				
					var chartApi_2='<img src="http://chart.apis.google.com/chart?chs=' + chs_2 + '&amp;chd=t:' 
						+ chd_2 + '&amp;cht=' + cht_2 + '&amp;chl=' + chl_2 
						+ '&amp;chds=0,' + (maxy * scale) + '&amp;chxt=x,y&amp;chxr=1,0,' + (maxy) 
						+ '&amp;chbh=20,8,8;&amp;chco=1E4961' 
						+ '" alt="' + chAlt_2+ '"/>';

					var tbl_2 = [];
					tbl_2.push('<table border="1" style="border-collapse:collapse">');
					tbl_2.push('<tr><th>Reason</th><th>Number</th></tr>');
					
					tbl_2.push('<tr><td><b>AB</b>: at bindery</td><td>' + Unfilled_Bindery + '</td></tr>');
					tbl_2.push('<tr><td><b>CO</b>: checked-out</td><td>' + Unfilled_Check_Out + '</td></tr>');
					tbl_2.push('<tr><td><b>NS</b>: not on shelf/missing</td><td>' + Unfilled_NOS + '</td></tr>');
					tbl_2.push('<tr><td><b>NC</b>: non-circulating</td><td>' + Unfilled_NonCirc + '</td></tr>');				
					tbl_2.push('<tr><td><b>PC</b>: poor condition</td><td>' + Unfilled_Poor_Con + '</td></tr>');				
					tbl_2.push('<tr><td><b>NO</b>: not owned/withdrawn</td><td>' + Unfilled_Withdrawn + '</td></tr>');				
					tbl_2.push('<tr><td><b>NF</b>: not found as cited</td><td>' + Unfilled_NFAS + '</td></tr>');				
					tbl_2.push('<tr><td><b>NY</b>: volume/issue not yet available</td><td>' + Unfilled_NYA + '</td></tr>');				
					tbl_2.push('<tr><td><b>OT</b>: other</td><td>' + Unfilled_Other + '</td></tr>');				
					tbl_2.push('</table>');	
					
					$('#nktnChart').append('<h4>Unfilled Requests by Reason</h4>').append(chartApi_2).append(tbl_2.join(""));
				
				}
			}


