if (! cranesiding){
	var cranesiding = new Object();
}
if (! cranesiding.ep){
	cranesiding.ep = new Object();
}

if (! cranesiding.ep.CartUtil){
	cranesiding.ep.CartUtil = new Object();
}




cranesiding.ep.CartUtil.GetNewCartStr = function(inputQtyA){
    cranesiding.ep.CartUtil.SetNames(inputQtyA);
    
    //if a qty field has a non whole #, default it to quantity of "1"
    cranesiding.ep.CartUtil.CleanBadValues(inputQtyA, 1);
    
    var mystr = "";
    var f = null;
    var fieldsA = inputQtyA;
    for(var i=0; i < fieldsA.length; i++)
    {
        f = fieldsA[i];
        
        mystr += f.name + ":" + f.value;
        
        //add ";" to string with each iteration except last
        if( i < (fieldsA.length - 1)){
            mystr += ";"
        }
    } //end for
    return mystr;
}

cranesiding.ep.CartUtil.RemoveItem = function(inputQtyA, prodIDToRemove){
    cranesiding.ep.CartUtil.SetNames(inputQtyA);
    
    var fieldsA = inputQtyA;
    var fieldsANew = new Array();
    var f = null;
    
    for(var i=0; i < fieldsA.length; i++)
    {
        f = fieldsA[i];
        
        if ( f.name != prodIDToRemove){
            fieldsANew[(fieldsANew.length)] = f;
        }
    } //end for
    
    var newCartStr = cranesiding.ep.CartUtil.GetNewCartStr(fieldsANew);
    return newCartStr;
}

cranesiding.ep.CartUtil.CleanBadValues = function(fieldsA, defaultValue){
    var f = null;
    for(var i=0; i < fieldsA.length; i++)
    {
        f = fieldsA[i];
        
        if (! cranesiding.ep.CartUtil.IsPosInt(f.value) ){
            f.value = defaultValue;
        }
    } //end for
}

//for IE, id's might exist, but names might be empty
cranesiding.ep.CartUtil.SetNames = function(fieldsA){
    var f = null;
    for(var i=0; i < fieldsA.length; i++)
    {
        f = fieldsA[i];
        
        if (f.name.replace(/ /g, '')==''){
            f.name = f.id.split("_")[1];
        }
    } //end for
}

cranesiding.ep.CartUtil.IsPosInt= function(n){
    if ( isNaN(n) ){
         //is not a number
         return false;
    }
    
    var n2 = parseInt(n, 10);
    if( n != n2){
        //is not a whole number
        return false;
    }
    
    if( n < 0){
        //is not a positive number
        return false;
    }
    
    return true;
}

