﻿var hasBeenModified = false;


function CheckItemSelected(field) {
    if (document.getElementById(field).options.selectedIndex == -1) {
        alert("Please select an item");
        return false;
    }
    return true;
}

function shouldUseNewValue(newValue, oldValue) {
    var valueToUse = 0;
    
    if (newValue == 0) {
        valueToUse = oldValue;
    } else {
        valueToUse = newValue;
    }
    return valueToUse;
}  
     
function MoveItemForward(Available, Users) {
    if (CheckItemSelected(Available) == true) {

        for (var j = 0; j < document.getElementById(Available).length; j++) {
            
            if (document.getElementById(Available).options[j].selected == true) {
                var found = false;

                for (var i = 0; i < document.getElementById(Users).length; i++)
		        {
	                if (document.getElementById(Users).options[i].value == document.getElementById(Available).options[j].value)
	                {
		                found = true;
		                break;
	                } 
                }
                
                if (found == false) {
                    var currentLength = document.getElementById(Users).options.length;
                    document.getElementById(Users).options.length += 1;
                    document.getElementById(Users).options[currentLength].value = document.getElementById(Available).options[j].value;
                    document.getElementById(Users).options[currentLength].text = document.getElementById(Available).options[j].text;
                    document.getElementById(Users).selectedIndex = currentLength;
                } else {
                    alert("You have already selected this item (" + document.getElementById(Available).options[j].text + ")");
                }
            }
        }
    }
    SetModified();
}

function MoveItemBack(Available, Users) {
    if (CheckItemSelected(Users) == true) {
        var obj = document.getElementById(Users);
        for (var j = obj.length - 1; j>=0; j--)
		{
			if (obj.options[j].selected == true)
			{
				obj.options[j] = null;
				/*alert(obj.options.length);
				if (obj.options.length > 0) {
				    obj.selectedIndex = 0;
				}*/
			}
		} 
    }
    SetModified();
}

function MoveAllForward(Available, Users) {
    document.getElementById(Users).options.length = document.getElementById(Available).options.length;
    for (var i = 0; i < document.getElementById(Available).options.length; i++) {
        document.getElementById(Users).options[i].value = document.getElementById(Available).options[i].value;
        document.getElementById(Users).options[i].text = document.getElementById(Available).options[i].text;
        document.getElementById(Users).selectedIndex = i;
    }
    SetModified();
}

function MoveAllBack(Available, Users) {
    document.getElementById(Users).options.length = 0;
    SetModified();
}

function SetModified() {
    hasBeenModified = true;
}

//move items up and down the list
function swapListItems(lObj,direction)
{
    if (direction == 'up')
    {
        var tmpText, tmpValue;
        if (!(lObj.selectedIndex==0))
            {
            tmpText = lObj.options[lObj.selectedIndex-1].text;
            tmpValue = lObj.options[lObj.selectedIndex-1].value;
	        
            lObj.options[lObj.selectedIndex-1].text = lObj.options[lObj.selectedIndex].text;
            lObj.options[lObj.selectedIndex].text = tmpText;
	        
            lObj.options[lObj.selectedIndex-1].value = lObj.options[lObj.selectedIndex].value;
            lObj.options[lObj.selectedIndex].value = tmpValue;
            }
    }
    else
    {
        var tmpText, tmpValue;
        if (!(lObj.selectedIndex==lObj.options.length-1))
        {
        tmpText = lObj.options[lObj.selectedIndex+1].text;
        tmpValue = lObj.options[lObj.selectedIndex+1].value;
        
        lObj.options[lObj.selectedIndex+1].text = lObj.options[lObj.selectedIndex].text;
        lObj.options[lObj.selectedIndex].text = tmpText;
        
        lObj.options[lObj.selectedIndex+1].value = lObj.options[lObj.selectedIndex].value;
        lObj.options[lObj.selectedIndex].value = tmpValue;
        }
    }
}
    
function getSelectedCarrierCount() {
    var strCarriers = GetSelectedCarriers();
    var carrierCount = 0;

    for (var i = 1; i < strCarriers.length; i++) {
        if (strCarriers.substring(i,i+1) == ",") {
            carrierCount += 1;
        }
    }

    return carrierCount;
}
   

function OpenElement(element) {
    document.getElementById(element).style.display = 'block';
    document.getElementById(element).style.visibility = 'visible';
}

function CloseElement(element) {
    document.getElementById(element).style.display = 'none';
    document.getElementById(element).style.visibility = 'hidden';
}

function Toggle(element)
{
	if (document.getElementById(element).style.display == 'none')
	{
		OpenElement(element);
	}
	else
	{
		CloseElement(element);
	}
}

function ChangeToggle(divEl,thisEl) {
    if (document.getElementById(divEl).style.display == 'none') {
        thisEl.style.backgroundImage = "url(../Images/Minus.gif)";
        document.getElementById(divEl).style.display = 'block';
    } else {
        thisEl.style.backgroundImage = "url(../Images/Plus.gif)";
        document.getElementById(divEl).style.display = 'none';
    }
}
    
function Len(str)
{  return String(str).length;  }
        
function InStr(strSearch, charSearchFor)
{
	if (Len(strSearch)>0) 
	
	{	
	for (lk=0; lk < eval(Len(strSearch)); lk++)
	{
		
	    if (charSearchFor == Mid(strSearch, lk, 1))
	    {
			return lk;
	    }
	}
	return -1;
	}
	else
	{
	return-1;
	}
}

function Mid(str, start, len)
{
        if (start < 0 || len < 0) return "";

        var iEnd, iLen = String(str).length;
        if (start + len > iLen)
                iEnd = iLen;
        else
                iEnd = start + len;

        return String(str).substring(start,iEnd);
}

function pad(textIN,padd) {
var padStr='';

if (textIN=='') {textIN='0';}

	if (textIN!='' && padd !='') {
			
		for (var i = 1; i <= (padd - textIN.length); i++)
		{
		   padStr += "0";
		}

        padStr += textIN;
	}
	
	padStr=padStr.toString();

	return padStr;  
}

function jpadright(textIN,padd) {
var paddsr='';
var padright='';
var curlen=0;
var rcurlen=0;
var text= ltrim(textIN, "0");

if (text=='') {text='0';}

	if (text == '' && padd == '') {
		for (padx=1 ; padx <= eval(padd); padx++)
		{			
			paddsr = paddsr + '0';
		}
		padright='0.' + paddsr;
	}
	else
	{	
	    text=eval(text);
		padd=eval(padd);
		
		textpow = Math.pow(10,padd) ;
	
		text=Math.round(text * textpow)/textpow;
		text=text.toString();
		
		if (InStr(text,".") > 0) 
		{
			text=text+''
			text = text.split('.')
			curlen = Len(text[1]);
			rcurlen = eval(padd-curlen);

			if (rcurlen>0) 
			{				
				for (padx = 1; padx <= rcurlen; padx++)
				{			
					paddsr = paddsr + '0';
				}						
			}
			padright = text[0] + '.' + text[1] + paddsr;			
		}
		else
		{		
		    
			for (padx=1; padx <= eval(padd); padx ++)
			{	
				paddsr = paddsr + "0";
			}
			padright=text + '.' + paddsr;
		}	
	}
	
	padright=rtrim(padright.toString(),".");

	return padright;
}

function checkNumeric(code)
{
    if (code < 45 || code > 57) event.returnValue = false;
}

function updateField(field) {
     __doPostBack(document.getElementById(field).name,'');
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function showLabels(showFrom, identifier, carriers, startPos, printType) {
    /*Not Currently Used, was used to pass data to generate labels, but too much data beign passed so had to post data in form */
    
    
    //showFrom = Manifest/Connote/Serial
    //identifier = ManifestNumber/ConnoteNumber/SerialNumbers
    //startPos = start postion, only used for A4, either 1,2,3 or 4
    //printType = All/Partial
    //printArray = Used if Partial is selected, labelnumbers {LAB1,LAB2,LAB3,LAB4,LAB5,LAB6,LAB7,LAB8,LAB9)}
    var windowHeight = 600;
    var windowWidth = 800;
    var theTop = (screen.height/2)-(windowHeight/2);
    var theLeft = (screen.width/2)-(windowWidth/2);
    var identArray = identifier.split(",");
    var identLen = identArray.length - 1;
    var carrierArray = carriers.split(",");
    var url = "GenerateLabels.aspx?showFrom=" + showFrom + "&identLen=" + identLen ;
    //alert(identLen);
    
     url += "&startPos=" + startPos + "&printType=" + printType + "";
     
    for (var i = 0; i < identLen; i++) {
        url += "&ident" + (i+1) + "=" + identArray[i];
        url += "&car" + (i+1) + "=" + carrierArray[i];
    }
   
    //alert(url);
    window.open(url,"GenerateLabels","status=1,resizable=0,height=" + windowHeight + "px,width=" + windowWidth + ",left=" +  theLeft + ",top=" + theTop + "","");
}

function openWindow(url, name, height, width) {
    var theTop = (screen.height/2)-(height/2);
    var theLeft = (screen.width/2)-(width/2);
    
    window.open(url,name,"status=1,resizable=0,height=" + height + "px,width=" + width + ",left=" +  theLeft + ",top=" + theTop + "","");
}

function ResetPageSize(width, height) {

    //window.document.statusbar.visible = false;
    //window.document.titlebar.visible = false;
    //window.document.addressbar.visible = false;
    
    var theTop = (screen.height/2)-(height/2);
    var theLeft = (screen.width/2)-(width/2);
    
    //alert(width + " " + height);
    self.resizeTo(width,height);
    self.moveTo(theLeft,theTop)
}

            
function closeWindow() {
    window.opener = 'x';
    window.open('../Blank.htm', '_parent', '');
    window.close(); 
}

/* Request Start and End */
var PopupBox = '';
var CenterIn = '';

function RegisterRequests(Sys, centerElementID) {

    SetCenterIn(centerElementID);

    with(Sys.WebForms.PageRequestManager.getInstance()) {
        add_beginRequest(onbeginrequest);
        add_endRequest(onendrequest);
    }
}
  
function SetPopupBox(elementID) {
    PopupBox = elementID;
}

function SetCenterIn(elementID) {
    CenterIn = elementID;
}


function onbeginrequest(sender, args) {
    var clientid = args.get_postBackElement().id;

   // get the update progress div
    var pnlpopup =
        document.getElementById(PopupBox); 

    //  get the gridview element        
    var centerElement =
        document.getElementById(CenterIn);
        
    if (centerElement) {
        // make it visible
        pnlpopup.style.display = '';        
        // get the bounds of both the
        // gridview and the progress div
        var centerElementBounds =
            Sys.UI.DomElement.getBounds(centerElement);
        var pnlpopupbounds =
            Sys.UI.DomElement.getBounds(pnlpopup);

        //  center of gridview
        var x = centerElementBounds.x
                + Math.round(centerElementBounds.width / 2)
                - Math.round(pnlpopupbounds.width / 2);
        var y = centerElementBounds.y + 70;
              //  + Math.round(centerElementBounds.height / 2)
              //  - Math.round(pnlpopupbounds.height / 2);        

        //    set the progress element to this position
        Sys.UI.DomElement.setLocation(pnlpopup, x, y);
    }
    
    enabledisablebuttons(true);
    
}

function onendrequest(sender, args) {
        // get the update progress div
        var pnlpopup = document.getElementById(PopupBox); 
        // make it invisible
        pnlpopup.style.display = 'none';
        
        enabledisablebuttons(false);
}

function enabledisablebuttons(bool) {
    var frm = document.forms[0] ;
    
     for(var i = 0; i < frm.length; i++) {
        e = frm.elements[i];
        if ((e.type == 'button') || (e.type == 'submit')) {
            e.disabled = bool;
        }
    }
}
