/* 
	File name: tracking.cache.js
	Description: This is used on tracking home page and tracking input page, helps with ajax calls and auto track
	Revision	: $Revision: 1.16 $
	Modified by	: $Author: prd1gjr $ $Date: 2009/07/16 20:22:47 $
	Checkout Tag	: $Name:  $

	The use, disclosure, reproduction, modification, transfer, or transmittal
	of this work for any purpose in any form or by any means without the
	written permission of United Parcel Service is strictly prohibited.

	Confidential, Unpublished Property of United Parcel Service.
	Use and Distribution Limited Solely to Authorized Personnel.

	Copyright 2009 United Parcel Service of America, Inc. All Rights Reserved.
*/


(function() {
		/**
		 *	Make an AJAX call for description save, save number, discard number functionalities 
		 */
		function makeAJAXCall(params) {
			return $.ajax({
               type: "POST",
               url: url("/hptrack/ajaxSave?loc="+localeStr+"&Requester=UPSHome"),
               data: params,
               async: false, 
               timeout: 1000,
               error: function(req, textStatus, errorThrown) { 
                 //alert( "Error: " + req+"\n"+textStatus+"\n"+errorThrown );
               }
             }).responseText;
        }
		 
		/**
		 * This method will append protocol and host to the supplied path
		 * Path have to be starting with '/'	
		 */
        function url(path) {
            return window.location.protocol +"//"+ window.location.host+ path;
        }

		/////////////// Tracking Dialog Window Functions //////////////
		
		function closeDialogWindow() {
			parent.window.Tracking.closeDialog();
			
			//Enable the parent window scroll bar
			//parent.window.document.body.scroll = 'yes';
			parent.window.document.body.style.overflow = '';
			
			window.com_ups_cclamp.disEnableCClampEvt();
		}
		
		function trackDialogSaveBCDNNumber(number, index) {
			//alert("Save Number clicked"+trkNum);
			var params = "trackingNumber="+number+"&save_number.x=10&Requester=UPSHome";
		    var response = makeAJAXCall(params);		    
			var ajaxResp;	
			if(response) {
				response = $.trim(response);
				 try {
                 	ajaxResp = eval('(' + response + ')');
                 }catch(er) {
                 	//do nothing
                 }
		        if(ajaxResp && ajaxResp.status && ajaxResp.status=="AJAXCall_SUCCESS") {
		 			$("#bcdnSave"+index).css("visibility","hidden"); 			
		 			$("#bcdnSave"+index).css("display","none");
					$("#bcdnDiscard"+index).css("visibility","visible");
					$("#bcdnDiscard"+index).css("display","inline");
					$("#bcdnSaved"+index).css("visibility","visible");
					$("#bcdnSaved"+index).css("display","inline");
					if(isErrorShown) {
						hideErrorOnInputPage();
					}
		        } else {
		        	if(ajaxResp && ajaxResp.message) {
		        		showErrorMessage(ajaxResp.message);
			        }else {
			        	showErrorMessage(sysErr);
			        }
		        }
			}
		}

		function trackDialogSaveNumber(number, index) {
			var params = "trackingNumber="+number+"&save_number.x=10&Requester=UPSHome";
		    var response = makeAJAXCall(params);
			var ajaxResp;
			if(response) {
				response = $.trim(response);
				 try {
                 	ajaxResp = eval('(' + response + ')');
                 }catch(er) {
                 	//do nothing
                 }
		        if(ajaxResp && ajaxResp.status && ajaxResp.status=="AJAXCall_SUCCESS") {
		 			$("#trackSave"+index).css("visibility","hidden");
		 			$("#trackSave"+index).css("display","none"); 			
					$("#trackDiscard"+index).css("visibility","visible"); 			
					$("#trackDiscard"+index).css("display","inline");
					$("#trackSaved"+index).css("visibility","visible");
					$("#trackSaved"+index).css("display","inline");
					if(isErrorShown) {
						hideErrorOnInputPage();
					}
		        } else {
		        	if(ajaxResp && ajaxResp.message) {
		        		showErrorMessage(ajaxResp.message);
			        }else {
			        	showErrorMessage(sysErr);
			        }
		        }
			}
		}
		
		function trackDialogDiscardBCDNNumber(number, index) {
			var params = "trackingNumber="+number+"&discard_number.x=10&Requester=UPSHome";
		    var response = makeAJAXCall(params);
			var ajaxResp;
			if(response) {
				response = $.trim(response);
				 try {
                 	ajaxResp = eval('(' + response + ')');
                 }catch(er) {
                 	//do nothing
                 }
		        if(ajaxResp && ajaxResp.status && ajaxResp.status=="AJAXCall_SUCCESS") {
		 			$("#bcdnSave" + index).css("visibility","visible"); 			
		 			$("#bcdnSave" + index).css("display","inline");
					$("#bcdnDiscard" + index).css("visibility","hidden");
					$("#bcdnDiscard" + index).css("display","none"); 			
					$("#bcdnSaved" + index).css("visibility","hidden");
					$("#bcdnSaved" + index).css("display","none");
					if(isErrorShown) {
						hideErrorOnInputPage();
					}
		        } else {
		        	if(ajaxResp && ajaxResp.message) {
		        		showErrorMessage(ajaxResp.message);
			        }else {
			        	showErrorMessage(sysErr);
			        }
		        }
			}                 
		}
		
		function trackDialogDiscardNumber(number, index) {
			var params = "trackingNumber="+number+"&discard_number.x=10&Requester=UPSHome";
		    var response = makeAJAXCall(params);
			var ajaxResp;
			if(response) {
				response = $.trim(response);
				 try {
                 	ajaxResp = eval('(' + response + ')');
                 }catch(er) {
                 	//do nothing
                 }
		        if(ajaxResp && ajaxResp.status && ajaxResp.status=="AJAXCall_SUCCESS") {		 			
		        	$("#trackSave" + index).css("visibility","visible"); 			
		        	$("#trackSave" + index).css("display","inline");
					$("#trackDiscard" + index).css("visibility","hidden"); 			
					$("#trackDiscard" + index).css("display","none");
					$("#trackSaved" + index).css("visibility","hidden");
					$("#trackSaved" + index).css("display","none");
					if(isErrorShown) {
						hideErrorOnInputPage();
					}
		        } else {
		        	if(ajaxResp && ajaxResp.message) {
		        		showErrorMessage(ajaxResp.message);
			        }else {
			        	showErrorMessage(sysErr);
			        }
		        }
			}                 
		}
		
		var isErrorShown = false;
		function showErrorMessage(msg) {
			isErrorShown = true;
           	$("#ims_error").css("visibility","visible");
           	$("#ims_error").css("position","relative");
          	$("#ims_error").html("&gt;&gt;&gt;&nbsp;" + msg + "<BR>");
		}

		function hideErrorOnInputPage() {
    		$("#ims_error").css("visibility","hidden");
    		$("#ims_error").css("position","absolute");
    		$("#ims_error").html("");
    		isErrorShown = false;
		}
		
		function handleTrackCommand(trackedNumber, showMultipiece, detailNumber) {
			parent.window.submitForm(trackedNumber, showMultipiece, detailNumber);
			window.com_ups_cclamp.disEnableCClampEvt();
		}
		
	    /**
	     * trkErr3 is to show system not available at this time.
	     */
	    var sysErr = "";	    
	    function setSysErrorMessage(errTxt) {
	    	sysErr = errTxt;
	    }
	    
	    var localStr = "en_US";
		function setLocaleString(str) {
			localeStr = str;
		}
		 
		//Public Declarations
        var TrackingDlg = window.TrackingDlg = function() {};
                
    	TrackingDlg.closeDialogWindow = closeDialogWindow;
    	TrackingDlg.handleTrackCommand = handleTrackCommand;
    	TrackingDlg.trackDialogDiscardNumber = trackDialogDiscardNumber;
    	TrackingDlg.trackDialogDiscardBCDNNumber = trackDialogDiscardBCDNNumber
    	TrackingDlg.trackDialogSaveNumber = trackDialogSaveNumber;
    	TrackingDlg.trackDialogSaveBCDNNumber = trackDialogSaveBCDNNumber;
    	TrackingDlg.setSysErrorMessage = setSysErrorMessage;
    	TrackingDlg.setLocaleString = setLocaleString; 
})();
