﻿
function LimitComparison(checkBox) {
    var productsChecked;
    productsChecked = 0;
    var inputArray;
    inputArray = document.getElementsByTagName("input");
    for (var i = 0; i < inputArray.length; i++) {
        control = inputArray[i];
        if (control.type == "checkbox" &&
            control.name.indexOf("ExCmp") > -1 &&
            control.checked == true) {
            productsChecked = productsChecked + 1;
        }
    }
    if (productsChecked > 3) {
        alert("Please note there is a limit of three contracts.");
        checkBox.checked = false;
    }
}

function CheckForContracts(url) {
    var productsChecked = 0;
    var inputArray = document.getElementsByTagName("input");
    var selectedContracts = "";
    
    for (var i = 0; i < inputArray.length; i++) {
        control = inputArray[i];
        
        if (control.type == "checkbox" && control.name.indexOf("ExCmp") > -1 && control.checked == true) {
            productsChecked = productsChecked + 1;
            
            if (selectedContracts != "")
                selectedContracts = selectedContracts + "|" + control.value;
            else
                selectedContracts = control.value;
        }
    }
    
    if (productsChecked == 0) {
        alert("Please select at least one contract.");
        return false;
    }

    window.location = url + selectedContracts

    return true;
}

function LimitItemsChecked(checkBox, itemName, limit) {
    var itemsChecked = 0;
    
    var inputArray = inputArray = document.getElementsByTagName("input");
    
    for (var i = 0; i < inputArray.length; i++) {
        control = inputArray[i];
        if (control.type == "checkbox" &&
            control.name.indexOf(itemName) > -1 &&
            control.checked == true) {
            itemsChecked = itemsChecked + 1;
        }
    }
    if (itemsChecked > limit) {
        alert("Please note there is a limit of " + limit + " contracts.");
        checkBox.checked = false;
    }
}

function CheckForSelectedItems(itemName) {
    var itemsChecked = 0;
    
    var inputArray = document.getElementsByTagName("input");
    
    for (var i = 0; i < inputArray.length; i++) {
        control = inputArray[i];
        
        if (control.type == "checkbox" && control.name.indexOf(itemName) > -1 && control.checked == true)
            itemsChecked = itemsChecked + 1;
    }
    
    if (itemsChecked == 0) {
        alert("Please select at least one contract.");
        return false;
    }

    return true;
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}


function ViewChart(url, itemName) {
    if (CheckForSelectedItems(itemName))
    {
        var chartUrl = url + GetSelectedContracts(itemName);
        
        if (chartUrl != "")
            window.open(chartUrl, 'detailsWin', 'width=800,height=900,toolbar=no,scrollbars=yes,resizable=no');
    }
}

function GetSelectedContracts(itemName) {
    var selectedItems = "";
    var inputArray = inputArray = document.getElementsByTagName("input");
    
    for (var i = 0; i < inputArray.length; i++) {
        control = inputArray[i];
        
        if (control.type == "checkbox" && control.name.indexOf(itemName) > -1 && control.checked == true) {
        
            if (selectedItems != "")
                selectedItems = selectedItems + "|" + control.value;
            else
                selectedItems = selectedItems + control.value;
        }   
    }
    
    return encode64(selectedItems);
}