module.exports = function (commandLineDimensions) {

commandLineDimensions = '' + commandLineDimensions; // cast to string

function getWidthAndHeight(dimensions) {
    dimensions = /(\d*)x?((\d*))?/i.exec(dimensions);
    return {
        'viewportWidth':  parseInt(dimensions[1]),
        'viewportHeight': parseInt(dimensions[2] || 1500)
    };
}

var multipleDimensions = commandLineDimensions.split(','),
    dimensionsToPass;

if (multipleDimensions.length > 1) {
    dimensionsToPass = multipleDimensions.map(function (cliDimensions) {
        return getWidthAndHeight(cliDimensions);
    });
}
else {
    dimensionsToPass = getWidthAndHeight(commandLineDimensions);
}

return {
    dimensions: dimensionsToPass,
    takingMultipleScreenshots: function (dimensions) {
      return dimensions.length && dimensions.length > 1;
    },
    replaceImageNameWithDimensions: function (image_name, currentDimensions) {
        // shots/clickable_guide__after_click/MULTI_casperjs_english.png
        // ->
        // shots/clickable_guide__after_click/1024x359_casperjs_english.png
        var dirs = image_name.split('/'),
            filename = dirs[dirs.length - 1],
            filenameParts = filename.split('_'),
            newFilename;

        filenameParts[0] = currentDimensions.viewportWidth + 'x' + currentDimensions.viewportHeight;
        dirs.pop(); // remove MULTI_casperjs_english.png
        newFilename = dirs.join('/') + '/' + filenameParts.join('_');
        return newFilename;
    }
}

}