﻿var quotation = {
	myCon:   		false,
	loader:  		false,
	target: 		false,
	pageURL:		false,
	params: 		false,
	myFuncWhenDone: false,
	transportData:  false,
	shippingData:   false,
	vanningData:    false,
	mafjaaiData:    false,
    summaryData:    false,
    
    getTransportCost: function() {
        var save = document.getElementById("save");
        if (quotation.transportData == false){
		    quotation.myCon = new AjaxDell();
		    if(!quotation.myCon) return;
		    quotation.target = document.getElementById('transportcost');
		    quotation.params = 'action=GETTRANSPORTCOST';
		    quotation.pageURL = "../remotes/action_quotationsystem.aspx";
		    quotation.buildPageLoader('Populating');
    		
		    quotation.myFuncWhenDone = function(xmlObj) {
		       quotation.killPageLoader(); 
		       quotation.transportData = eval(xmlObj.responseText);
    		   
		       var myTable = new DOMTable();
               myTable.data = quotation.transportData;
               myTable.target = quotation.target;
               myTable.ispaged = false;
               myTable.caption = 'Quotation System - Transport Cost Price Table';

               table.build(myTable, 1);
               
		    }
		    quotation.retrieveContent();    
		}
		save.onclick = new Function("quotation.saveQuotation(1)");
	},
	
	getShippingCost: function() {
	    var save = document.getElementById("save");
		if (quotation.shippingData == false){
		    quotation.myCon = new AjaxDell();
		    if(!quotation.myCon) return;
		    quotation.target = document.getElementById('shippingcost');
		    quotation.params = 'action=GETSHIPPINGCOST';
		    quotation.pageURL = "../remotes/action_quotationsystem.aspx";
		    quotation.buildPageLoader('Populating');
    		
		    quotation.myFuncWhenDone = function(xmlObj) {
		       quotation.killPageLoader();
               quotation.shippingData = eval(xmlObj.responseText);
               
               var myTable = new DOMTable()
               myTable.data = quotation.shippingData;
               myTable.target = quotation.target;
               myTable.ispaged = false;
               myTable.caption = 'Quotation System - Shipping Cost Price Table';
               
               table.build(myTable, 1);
		    }
		    quotation.retrieveContent();    
		}
		save.onclick = new Function("quotation.saveQuotation(2)");
		
	},
	
	getVanningCost: function() {
	    var save = document.getElementById("save");
		if (quotation.vanningData == false){
		    quotation.myCon = new AjaxDell();
	        if(!quotation.myCon) return;
	        quotation.target = document.getElementById('vanningcost');
	        quotation.params = 'action=GETVANNINGCOST';
	        quotation.pageURL = "../remotes/action_quotationsystem.aspx";
	        quotation.buildPageLoader('Populating');
        	
	        quotation.myFuncWhenDone = function(xmlObj) {
                quotation.killPageLoader();
                quotation.vanningData = eval(xmlObj.responseText);
        
                var myTable = new DOMTable()
                myTable.data = quotation.vanningData;
                myTable.target = quotation.target;
                myTable.ispaged = false;
                myTable.caption = 'Quotation System - Vanning Cost Price Table';

                table.build(myTable, 1);
	        } 
		    quotation.retrieveContent();    
		}
		save.onclick = new Function("quotation.saveQuotation(3)");
	},
	
	getMAFJAAI: function() {
	    var save = document.getElementById("save");
		if (quotation.mafjaaiData == false){
		    quotation.myCon = new AjaxDell();
		    if(!quotation.myCon) return;
		    quotation.target = document.getElementById('mafjaai');
		    quotation.params = 'action=GETMAFJAAI';
		    quotation.pageURL = "../remotes/action_quotationsystem.aspx";
		    quotation.buildPageLoader('Populating');
    		
		    quotation.myFuncWhenDone = function(xmlObj) {
		       quotation.killPageLoader();
               quotation.mafjaaiData = eval(xmlObj.responseText);
               
               var myTable = new DOMTable()
               myTable.data = quotation.mafjaaiData;
               myTable.target = quotation.target;
               myTable.ispaged = false;
               myTable.caption = 'Quotation System - MAF JAAI Price Table';
               
               table.build(myTable, 1);
		    }
		    quotation.retrieveContent();    
		}
		save.onclick = new Function("quotation.saveQuotation(4)");
	},
	
	getSummary: function(){
	    var save = document.getElementById("save");
	    if (quotation.summaryData == false){
		    quotation.myCon = new AjaxDell();
		    if(!quotation.myCon) return;
		    quotation.target = document.getElementById('summary');
		    quotation.params = 'action=GETSUMMARY';
		    quotation.pageURL = "../remotes/action_quotationsystem.aspx";
		    quotation.buildPageLoader('Populating');
    		
		    quotation.myFuncWhenDone = function(xmlObj) {
		       quotation.killPageLoader(); 
		       quotation.summaryData = eval(xmlObj.responseText);
    		   
		       var myTable = new DOMTable()
               myTable.data = quotation.summaryData;
               myTable.target = quotation.target;
               myTable.ispaged = false;
               myTable.caption = 'Quotation System - Summary';
               table.build(myTable, 1);
		    }
		    quotation.retrieveContent();    
		}
		save.onclick = new Function("quotation.saveQuotation(5)");
	},
	
    calculate: function(obj, row, category){
        
        var arrUnits = [];
	    var arrATJTariff  = [];
	    var arrATJCost = [];
	    
	    var arrOtherTariff = [];
	    var arrOtherCost = [];
	    
	    var arrDifference = [];
	    
	    var atjprice;
	    var otherprice;
	    var difference;
	    
	    var total_atj;
	    var total_other;
	    var total_monthly;
	    var total_yearly;
	    var total;
	    
	    arrUnits = getElementbyClass(category + '_units');
	   
	    if (obj.value != ''){        
	        arrUnits[row].value = parseInt(arrUnits[row].value);
	        arrATJTariff = getElementsByClassName(document, "*", category + '_atjtariff');
	        arrATJCost = getElementsByClassName(document, "*", category + '_atjcost');
    	    
	        arrOtherTariff = getElementsByClassName(document, "*", category + '_othertariff'); 
	        arrOtherCost = getElementsByClassName(document, "*", category + '_othercost'); 
    	    
	        arrDifference = getElementsByClassName(document, "*", category + '_difference'); 
    	    
	        atjprice = arrUnits[row].value * arrATJTariff[row].value
	        otherprice = arrUnits[row].value * arrOtherTariff[row].value
    	    
	        arrATJCost[row].innerHTML = atjprice;
	        arrOtherCost[row].innerHTML = otherprice;
	        arrDifference[row].innerHTML = atjprice - otherprice;
    	    
	        calculateTotal = function(val,index){		
	            if (index == 0)	{
	                total = 0;
	            }
			    total += parseFloat(val.innerHTML)
            }

	        switch(category){
                case 1: //transport cost
                    total_atj = document.getElementById('total_atjtransport')
                    total_other = document.getElementById('total_othertransport')
                    total_monthly = document.getElementById('total_monthlytransport')
                    total_yearly = document.getElementById('total_yearlytransport')
                    break;
                case 2: //shipping cost
                    total_atj = document.getElementById('total_atjshipping')
                    total_other = document.getElementById('total_othershipping')
                    total_monthly = document.getElementById('total_monthlyshipping')
                    total_yearly = document.getElementById('total_yearlyshipping')
                    break;
                case 3: //vanning cost
                    total_atj = document.getElementById('total_atjvanning')
                    total_other = document.getElementById('total_othervanning')
                    total_monthly = document.getElementById('total_monthlyvanning')
                    total_yearly = document.getElementById('total_yearlyvanning')
                    break;   
                case 4: //maf jaai cost
                    total_atj = document.getElementById('total_atjmafjaii')
                    total_other = document.getElementById('total_othermafjaii')
                    total_monthly = document.getElementById('total_monthlymafjaai')
                    total_yearly = document.getElementById('total_yearlymafjaai')
                    break;     
                default:
            }
            arrATJCost.forEach(calculateTotal);
            total_atj.innerHTML = total;
            
            arrOtherCost.forEach(calculateTotal)
            total_other.innerHTML = total;
            
            total_monthly.innerHTML = parseFloat(total_atj.innerHTML) - parseFloat(total_other.innerHTML);
            total_yearly.innerHTML = parseFloat(total_monthly.innerHTML) * 12;
        }else {
            obj.value = 0;
            quotation.calculate(obj, row, category)
        }
        //if (atjprice - otherprice < 0){
	    //    arrDifference[row].setAttribute("class", "gain")
	    //}else{
	    //    if (atjprice - otherprice > 0){
	    //        arrDifference[row].setAttribute("class", "lose")
	    //    }else{
	    //        arrDifference[row].setAttribute("class", "even")
	    //    }
	    //}
        
	},
	
	convertToXML: function(category){       
        var arrTagName = [];
        var tbl = []
        var target;
        switch(category){
                case 1: //transport cost
                    target = document.getElementById('transportcost')
                    break;
                case 2: //shipping cost
                    target = document.getElementById('shippingcost')
                    break;
                case 3: //vanning cost
                    target = document.getElementById('vanningcost')
                    break;   
                case 4: //maf jaai cost
                    target = document.getElementById('mafjaai')
                    break;     
                case 5: //summary
                    target = document.getElementById('summary')
                    break;    
                default:
            }
        tbl = getElementsByClassName(target, '*', 'domtable'); 
        var _return = '';
        var XML=new XMLWriter();
        //XML.XMLHeader('<?xml version="1.0" encoding="iso-8859-1"?>');
        
        for (var x = 0; x < tbl[0].rows.length; x++){
            if (x!=0)XML.BeginNode('row');
            for (var y = 0; y < tbl[0].rows[x].cells.length; y++){
                if (x == 0){ // header of the table
                    arrTagName[y] = tbl[0].rows[x].cells[y].innerHTML;
                }else {
                    var obj = tbl[0].rows[x].cells[y].firstChild
                    var tag = arrTagName[y];                    
                    var value;
                    switch(obj.tagName){
                        case 'LABEL':
                            value = obj.innerHTML;
                            break;
                        case 'INPUT':
                            value = obj.value;
                            break;
                        default:
                    }
                    XML.Node(tag, value);
                }   
                
            }
            XML.EndNode();
           
        }        
        _return = XML.ToString()
        _return = _return.replace(/</g, "{")
        _return = _return.replace(/>/g, "}")
        return _return
	},
	
	saveQuotation: function(category){
	    xml = quotation.convertToXML(category)
	    quotation.myCon = new AjaxDell();
	    if(!quotation.myCon) return;
	    quotation.target = document.getElementById('summary');
	    quotation.params = 'action=SAVEQUOTATION';
	    quotation.params += '&category=' + category;
	    quotation.params += '&xml=' + xml;
        
	    quotation.pageURL = "../remotes/action_quotationsystem.aspx";
	    quotation.buildPageLoader('Populating');
	    quotation.myFuncWhenDone = function(xmlObj) {    
	       quotation.killPageLoader(); 
	    }
	    quotation.retrieveContent();    
        
	},
	
	buildPageLoader: function(valMessage){
	    quotation.loader = document.getElementById('loader');
	    quotation.loader.style.display	= 'block';
		quotation.loader.innerHTML = '<img src="../images/common/ajax-loader.gif" alt="loading">'
 	},
	
	killPageLoader: function() {
		quotation.loader.style.display	= 'none';
	},

	retrieveContent: function() {
		quotation.myCon.connect(quotation.pageURL, "GET", quotation.params, quotation.myFuncWhenDone);
	},
	
	retrieveTContent: function() {
		window.location = quotation.pageURL + '?' + quotation.params;
	}
};